alt

feature - 3

Shared on October 18, 2026

13:01:03

원의 사이즈. 원으로 그려져 있는데 사실은 이미지에서 사각한 윈도우가 되겠죠. 이 윈도우를 어느 정도의 사이즈로 해야 이 코너를 오른쪽의 코너랑 매치를 할 수가 있을 거냐, 같은 키포인트를 뽑을 수 있을 거냐에 대한 얘기가 되는 거죠. 그래서 저희가 이 두 코너를, 여기가 이 만큼 확대가 된 건데요. 두 코너를 같은 코너로 검출하기 위해서 이 왼쪽의 이미지에서는 저희가 눈대중으로 봤을 때

13:01:03

이 정도 원 사이즈, 이 정도 윈도우 사이즈를 쓰고 오른쪽에서 이 빨간색 윈도우 사이즈 정도를 쓰면 두 코너를 동일한 스케일에서 보는 것과 마찬가지가 되는 거고요. 이렇게 빨간색 원으로 뽑으면 이제 저희가 매칭에 성공할 수가 있는 거죠. 리피터블한 키펜 디텍션에 성공을 할 수가 있는 겁니다. 그래서 저희가 이걸 리전 사이즈에 보면은 왼쪽에서 이렇게 크고 오른쪽 코너에서 이렇게 작게 되는데 지금 저희는 이 두 이미지를 동시에 보고 이렇게 결정을 했지만

13:01:03

저희가 리피터빌리티의 조건이 뭐였냐면은 이미지에 독립적으로 뽑았을 때 같이 뽑혀야 되는 거였죠. 그래서 사실은 저희가 왼쪽 이미지 혹은 오른쪽 이미지 둘 중 하나만 보고 이 원의 사이즈를 결정을 해줘야 되는 거예요. 그러면은 이제 이거를 어떻게 하느냐 에 대한 얘기구요 저희가 어떤 함수를 만약 정의할 수가 있으면 이 함수가 리전 사이즈별로 달라져요 윈도우의 사이즈별로 달라질텐데

13:01:03

이 함수의 최대값이 부분을 뽑았을 때 이 빨간색 원이 리전 사이즈가 된다고 하고 얘도 최대값을 뽑았을 때 이 빨간색 원이 이 정도의 리전 사이즈 값을 갖게 되면 저희가 이 두 개를 매치를 할 수 있겠다라는 거죠 그러면 우리가 이 f라는 function을 어떻게 정의를 할 수 있을까에 대해서 고민을 해야 되는 겁니다 그래가지고 저희가 이제 원래는 이미지만 가지고

13:01:03

이제 x축 y축만 있는 이미지에서 해설스 매치실을 계산해서 코너를 디텍트를 했는데 이제 축이 하나 추가가 된거죠 스케일 축이 하나 추가가 되거든요 저희가 맨 아래에서는 이 정도 윈도우 사이즈인거고 위로 올라갈수록 윈도우 사이즈가 점점 커지는 것을 저희가 생각을 할 수가 있구요 그러면은 저희가 해리스는 x, y축에서 코너가 될만한 x, y를 검출을 하는 거고 스케일축에서는 어느정도 윈도우 사이즈를 켜요

13:01:03

검출을 해야 되는지 결정을 해주는 거죠 그래서 저희가 총 3가지 축에서 키포인트를 디테크를 해줘야 된다는 겁니다 그래서 방금 말씀드렸던 이 function으로 생각을 하면은 저희가 어떤 함수가 있어요 함수가 이런 모양이 있는데 이 함수가 scale에 대해서 만약에 scale에 대해서 우리가 최대값을 뽑으려면은 이 함수를 이렇게 스케일을 바꿨을 때 함수를 스케일을 낮춰서 이렇게 좀 찌그러졌죠

13:01:03

이렇게 찌그러졌을 때 일단 모양이 변하면 안 될 거고요 첫 번째로 모양이 변하면 안 될 거고 두 번째로 우리가 뽑은 이 맥시멈의 포인트 이 S1이랑 이 S2가 어떤 관계를 가져야 되냐면은 이제 스케일에 코배리언한 관계를 가져야 됩니다 그 얘기는 뭐냐면은 저희가 이 function을 2배만큼 예를 들어서 이제 downsample를 했다고 하면은 그러면은 s2가 s1을 2로 나눈 것과 같아야 된다 라는 거죠

13:01:03

이런 성질을 가지는 우리가 함수를 원한다 라고 생각을 하시면 되겠습니다 그래서 이제 invariant랑 covariant가 여러개가 나와서 헷갈릴 수가 있는데 invariant라는 것은 어떤 키포인트를 기준으로 잡았을 때 이 키포인트는 이미지의 스케일이 어떻게 되든 똑같은 키포인트를 우리가 잡을 수 있다 라는 것을 invariant라고 얘기를 할 수가 있는 거고요

13:01:03

이 covariant는 region size에 대한 거예요 region size 저희가 어떤 이미지 정해진 이미지의 사이즈에서 이 윈도우 사이즈로 만약에 뽑았어요 그러면 이 이미지 사이즈를 일정 수준 만큼 줄였을 때 그 리전 사이즈도 그만큼 비례해서 줄어야 된다 그래서 리전 사이즈는 코벨이한테 해야 된다는 얘기입니다 그래서 그 두 개를 좀 구분 지어서 생각을 해주시면 좋을 것 같아요 그래서 저희가 이렇게 이런 함수를 어떻게 정의를 할 거냐 라는 거고요

13:01:03

그래서 이 함수가 정의가 되면은 우리가 왼쪽 함수에서 최대값 뽑고 오른쪽 함수에서 최대값 뽑으면은 인디펜던트하게 뽑은 거죠 두 이미지를 같이 본 게 아님에도 불구하고 저희가 매칭이 되는 리전 사이즈들을 결정을 해줄 수가 있다는 얘기고 리전 사이즈는 당연히 다르겠죠 결정을 해줄 수가 있고 각각의 리전 사이즈에 맞춰서 뽑으면은 저희가 스케일의 인베리아트한 키포인트를 뽑을 수 있을 거라고 이렇게 연결이 되는 겁니다

13:01:03

근데 이 함수가 어떤 모양이면 좋을까 당연히 저희가 최대값을 뽑는 거기 때문에 이 최대값이 이렇게 너무 앰비규어스 하면 안 좋겠죠 최대값이 이렇게 거의 유사한 최대값이 굉장히 많이 있으면 안 좋을 거고 그리고 localmaxima가 여러 개가 있는 함수도 별로 좋지는 않을 겁니다 사실 저희가 원하는 거는 스케일이 딱 정해지면 그 스케일에서의 윈도우 사이즈가 딱 결정되길 원하죠

13:01:03

그래서 이제 딱 하나의 로컬 레시마를 갖고 있는 이런 샤프한 펑션을 사용하기를 원한다는 거예요 그래서 이렇게 스케일 임패런트하게 디텍션을 하기 위해서는 저희가 이 함수의 모양이 이렇게 되기를 원한다 이렇게 되면 바람직하다 라고 생각해주시면 되겠습니다 그리고 당연히 저희가 이제 키포인트를 뽑으면 리피터블하게 뽑는 것도 중요하지만

13:01:03

키포인트가 디스틴티브 해야 되죠. 그 얘기는 뭐냐면 주변과 차이가 있어야 되죠. 그래서 샤프 로컬 인텐스티 체인지라고 했는데 저희 엣지된 코너는 주변과 얼마나 차이 나는지에 대한 리본 값을 이용해서 뽑아 냈죠. 이것도 마찬가지입니다. 저희가 사용하는 예쁜 펑션은 주변이랑 자기 자신이 얼마나 다른지를 나타내는 함수여야 저희가 디스틴티브한 피처를 꼽을 수 있을 거라

13:01:03

그래서 저희가 사용하려는 이 function f의 조건을 첫 번째로 스토한 유니모달의 로컬 레시만을 갖고 있는 이런 function이어야 되고 두 번째로는 로컬 인텍시티 체인지를 반영을 할 수가 있어야 된다 이렇게 이해해주시면 되고요 이거에 적합한 게 저희가 배웠던 로컬 레이시아 오브가을 차이라고 하는 에로지라는 것이 이거에 적합합니다 예로지 평소가 어떻게 생겼는지 생각해보시면 이렇게 생겼고요.

13:01:03

가오시안의 실차가 2차 미분이고요. 그러면 그때 얘기했지만 멕시칸 핫을 뒤집어 놓은 모양처럼 생겼고요. 그래서 자기 자신을 기준으로 자기 자신은 굉장히 어둡고요. 근데 큰 음수값을 갖고 있고요 그 다음에 이것보다 살짝 나와서 이게 꼴록하죠 조금 꼴록합니다 이렇게 해서 이 원을 양수를 가지고요 바깥쪽은 거의 0을 가져서 영향을 안 주는 모양을 갖고 있어요

13:01:03

그래서 이게 LOG 필터 모양이 되겠습니다 그래서 우리가 필터의 모양을 보면은 얘를 컨볼루션 했을 때 어떤 경우가 나올지를 예상을 할 수 있다고 얘기를 했었죠 얘는 이제 원의 모양으로 자기 자신과 주변이 얼마나 다른지를 측정을 해주는 역할을 수행을 하겠죠 소벨 필터가 어떻게 생겼었어요? 소벨 필터는 이렇게 한쪽이 까맣고 한쪽이 축의 얼라인이 되어서 하얗게 되어가지고 이 디퍼런스를 측정을 했다면은

13:01:03

왜냐하면 얘는 원의 모양으로 가운데와 중심과 주변과 얼마나 차이가 나는지를 측정을 해줍니다 그래서 저희가 뭘 얘기를 할 수가 있느냐는 소벨 필터는 X주간의 로컬 디퍼런스를 측정할 수가 있고 얘는 모든 방향과의 로컬 디퍼런스를 측정해서 얘를 통합한 결과를 얻어낼 수가 있어요 통합한 결과를 얻어낼 수가 있고요 네 이제 차이점은 다 통합을 하기 때문에 저희가 방향은 모릅니다

13:01:03

이렇게 영상을 해서 컴플레이션을 했을 때 만약에 위쪽과 가운데가 차이가 커가지고 이 최종값이 매견해져서 크게 나왔는지 아니면 오른쪽과 차이가 커서 크게 나왔는지 이런 걸 알 수가 없어요 그래서 이게 저희 엣지 디텍션 했을 때랑 유사한데 엣지 디텍션 할 때 이 라플레이션을 이용해서 엣지 디텍션 할 수 있었죠 2차 미분을 이용해서 그때도 얘기를 했던 게 양방향 엣지를 검출할 수 있다 라는 얘기를 했는데

13:01:03

이제 어떤 방향인지는 알 수 없다 이런 얘기를 했었죠 제로 브러싱 포인트를 잡으면서 이런 특징을 기억을 해주시면 되고요 엣지 디텍션 했을 때 이렇게 엣지로 엣지 디텍션 했던 거 기억을 해주시면 되고 사실 이 엣지 디텍션에서도 사용이 되는데 엣지 말고 블랍이라는 걸 검출할 때 사용할 수가 있어요 블랍이라는 거는 이제 어떤 원 모양 둥그런 모양의 패턴이라고 생각해주시면 되겠습니다

13:01:03

그래서 저희가 왼쪽 이미지에서 라플레이션을 컨볼루션하면 이런 결과가 나오고요 저희가 이 결과 나온 것 중에 굉장히 낮은 각 검게 표현된 영역을 보면 이렇게 동글동글하게 잡혀있는 모습을 볼거에요 그래서 이 나비 날개에 있는 패턴 중에 둥글스름한 패턴들을 다 라플레이션이 잡아낼 수가 있어요 어떻게 둥근 걸 잡는지를 생각을 하면은 라플레이션의 모양을 떠올리면 그렇겠죠

13:01:03

저희가 라플레이션 모양이 안쪽에는 까맣고 여기는 하얀 모양을 갖고 있는데 가장 낮은 값이 나오려면 가운데는 굉장히 높고 가운데에 둥그렇게 둘러싸고 있는 주변이 모두 낮으면 이게 최소값을 가지겠죠 그래서 한 방향으로만 낮으면 어중간하게 낮은 값을 갖게 될 거고요.

13:01:03

예를 들어서 주변 중에 위랑만 차이가 있으면 조금 어중간한 값을 가질 텐데 주변의 모든 방향, 원으로 둘러싸고 있는 모든 방향과 차이가 있으면 가장 낮은 미니몸을 갖게 됩니다. 그래서 이 LOG가 이 원 모양의 블럭을 검출하는데 특화가 되어 있다. 생각을 해주시면 되겠습니다 그래서 이거를 그림으로 보면은 저희가 알 수가 있는데요 저희가 주어진

13:01:03

라플레이션 컨블루션을 시그널에서 적용을 했다고 생각을 해 볼게요 저희가 지금 오리지널 시그널이 총 4종류가 있고요 0과 1의 값을 바이널 값을 가지는데 왼쪽에 1번을 굉장히 넓은 모양의 이거를 갖고 있고요. 그 다음에 2번은 살짝 이게 좁아져 있고요. 이 1인 영역이 한 번은 더 좁아지고 4번은 더 좁아집니다. 그러면 이렇게 됐을 때 저희가

13:01:03

여기다 라플레이션 커널을 컨볼루션한 결과를 쭉 보면요. 왼쪽에서는 얘는 너무 넓은 거예요. 간격이 너무 넓기 때문에 우리가 라플레이션 컨볼루션 했을 때 결과가 엣지 두 개를 검춘합니다. 이 제로 크래싱래인 엣지죠. 엣지 구현을 검출하고, 이 엣지 간의 간격이 점점 가까워지다가 이 엣지가 완전히 가까워져서 어떻게 보면은

13:01:03

두 엣지로 구분이 되는게 아니라 이미지에서는 원이 되는거죠. 원이 되었을 때 이 컨볼루션의 결과가 굉장히 낮은 미니멈 컷을, 없는 컷을 보실 수가 있습니다 그래서 여기 이미지에서 블랍에 대응되는거죠 그래서 저희가 어떤 블랍이 있을 때 이 블랍이 사이즈가 너무 크면은 엣지로 두 개로 구분해서 구분하게 되고요

13:01:03

적절한 사이즈의 블랍이 딱 만들어지면은 이 에로지가 딱 검출을 합니다 그러면은 우리가 이 리스폰스 값 LOG 컨볼레이션 결과를 매그네이티드로 표현하면 음소도 양소로 바꿔서 표현하면 이때의 매그네이티드 값이 최대가 되겠죠 그리고 이 사이즈가 아닐 때는 매그네이티드 값이 점점 떨어지는 효과를

13:01:03

그래서 실제로 이 라플레이션을 컨볼루션한 이 리스폰스 값을 저희가 앞에서 말했던 이 FFunction으로 사용할 수가 있어요 샤픈한 모양을 가지고 있고 주변과의 로컬 인테리티 체인지를 캡처할 수 있기 때문에 그 로즈를 쓸 수가 있다는 거죠 그래서 저희가 이 에로지를 쓸 건데 결국에는 이미지 스케일을 다르게 하면서 어떤 스케일에서 에로지 리스폰서가 제일 큰지를 찾으면 되고요.

13:01:03

사실 이 두가지 방법이 있어요. 첫번째로는 이미지를 리사이즈 하는 방법이 있어요. 윈도우 사이즈는 3x3으로 에듬어서 고정을 시켜야 하는데 이미지를 점점 리사이즈 하면은 상대적으로 이 3x3 윈도우가 보는 영역이 점점 커지겠죠 이거를 저희가 스케일이 커진다고 얘기를 할 수가 있고요 그래서 이미지를 다운샘플링 할수록 스케일이 커지고요 그리고 이미지를 다운샘플링 하는게 어떤 거랑 유사하면

13:01:03

저희가 이미지를 블러리하게 만드는 것과 유사합니다 이미지가 작아지면 블러리해지는 것과 유사해요 그래서 저희가 박스 필터든 가오시안 필터든 이거를 쓰면은 점점 주변의 영역을 많이 가져와서 뿌옇게 변하죠. 이런 상태에서 적용을 하는 것도 저희가 스케일이 블러리해지면 해질수록 스케일이 커진다고 얘기를 할 수가 있습니다. 그래서 이미지 사이즈를 작게 만드는 것 외에도 가오시안

13:01:03

필터를 적용하는데 시그마를 바꿔가면서 가오시안 필터를 적용했을 때 가오시안을 여러번 적용한거에요 가오시안을 여러번 적용하는 것은 큰 가오시안이 씹는 것과 똑같죠 그래서 이렇게 적용을 했을 때 이미지가 점점 블러리해지고 스케일이 커진다고 얘기를 할 수가 있겠습니다 이제 다 완성이 됐어요. 저희가 스케일도 마음대로 바꿀 수 있고 스케일별로 라플레이션, 가우션을 적용해서

13:01:03

어떤 스케일에서 LOG의 리스폰스가 제일 크지만 찾아주면 되는 겁니다. 그래서 저희가 이제 여러 개의 스케일에서 LOG 필터를 적용한 다음에 가장 높은 리스폰스, 물론 이제 매그네투드 값으로, 절대값으로 가장 높은 값을 가지는 스케일을 찾아서 블록을 비주얼라이즈를 하면은 이런 식으로 돼요. 그래서 이런 꽃 모양에서 꽃의 가운데의 신 부분을 원으로 잘 검출을 하고요. 꽃잎 부분들도 적절한 사이즈로 하고요.

13:01:03

그 다음에 작은 꽃의 블럭 사이즈 검출하고 큰 꽃의 블럭 사이즈 검출하죠 그래서 스케일별로 저희가 LOG 리스폰스 값을 비교해가면서 가장 적합한 스케일을 찾을 수가 있다는 거죠 그래서 이제 제 규칙이 정의가 된거에요 X, Y축은 Harris로 찾으면 되죠 Harris Matrix의 리스폰스 값으로 찾으면 되고요

13:01:03

Z축 스케일은 저희가 이미지를 다운센핑하거나 아니면은 가온 시간을 적용해서 블러리하게 만들어서 여러개의 스케일을 만든 다음에 그 스케일 중에서 무엇을 선택할지는 라플레이션의 절대값이 가장 높은 스케일을 선택해 주면 됩니다. 그래서 실제로 순서는 이렇게 돼요. 먼저 스케일을 찾고요. 픽셀별로 어떤 스케일이 적합한 곳을 찾고요. 그 스케일별로 헬스를 적용해서 픽셀마다 적합한 코너를 검출해 주는 거예요.

13:01:03

그래서 이거를 실제로 적용한 결과고요. 이제 이 원의 모양이 여러 개의 원이 의미하는 게 서로 다른 스케일이라고 생각해 주시면 되고 그 중에서 이제 겹치는 스케일 이렇게 되는 것을 보고 있습니다. 그래서 이것도 보시면은 이 이미지를 이렇게 확대를 한 건데 여기 비슷한 위치에 있는 키포이트가 서로 잘 검출된 것을 볼 수가 있고요 이것도 마찬가지입니다. 이 새 이미지에서 새 무게에 있는 패턴을

13:01:03

서로 다른 이미지와 새 사이즈가 다름에도 불구하고 저희가 다양한 스케일 중에서 가장 에로지가 가능하는 스케일을 찾았기 때문에 이제 인디펜던트하게 뽑았음에도 리프터블하게 결정이 되는 것을 보실 수가 있습니다 그래서 이거를 저희가 Harris에다 Laplation을 붙였다 해서 Harris-Laplation 방법이라고 얘기를 할 수가 있고요 이 Harris-Laplation을 요약을 하면 스케일에 임패디언트하게 코너를 뽑는 그런 알고리즘이라고 볼 수가 있습니다

13:01:03

그래서 우리가 이 Laplation of Gaussian이 Edge 디텍션 할 때 사용할 수도 있지만 블럭을 검출할 때도 사용할 수가 있습니다 이제 여러가지 성질이 있는 거죠 엣지를 검출할 때는 제로 크로싱레인을 잡고 그 다음에 블럭을 검출할 때는 음수값이든 양수값이든 매긋리투드가 굉장히 큰 영역을 잡으면 된다는 거죠 우선 이 회전 사례를 지원해 주시고요

13:01:03

이거를 이제 발전시킨게 이제 Shift라는 거고요 Scale Invariant Feature Transform의 약자입니다 이 Shift라는 모델 구조가 있고요 Shift는 키포인트도 뽑고요 이거를 디스크립하는 Feature도 뽑는 그런 알고리즘이라고 보시면 돼요 그래서 키포인트 뽑는 거랑 feature 표현하는 거랑 둘 다 이제 하고 있습니다. 그래서 매칭 프로세스에서 이 세 단계를 한 번에 담당을 하는 거에요. 이것을 다 담당할 수가

13:01:03

있습니다. 그래서 저희가 방금 봤던 Harris-Laplation이랑 굉장히 유사해요. 굉장히 유사한데 이제 차이점은 뭐냐면은 Harris-Laplation에서는 퀸어를 키포인트로 사용을 했죠. 그래서 저희가 Harris-Matrix-Response-Function을 다 계산을 해줬는데 Shift는 그냥 블락포인트 자체를 블락을 저희가 키포인트로 사용을 하겠다는 거에요. 그래서 코너랑 비슷하게 블락도 주변과 얼마나 차이가 나는지를 측정을 해 준거죠

13:01:03

그 때문에 블락이라는 것 자체가 키포인트로 사용될 가능성이 충분히 있는거죠 그래서 이게 첫번째 차이점이구요 코너 대신에 블락을 키포인트로 사용을 하구요 두번째로는 이것도 저희 배웠던건데 difference of Gaussian, DOG라는 애가 LOG랑 거의 approximate이 된다 얘기를 했었죠 그래서 저희가 2차 미분을 계산해서 replication of Gaussian을 계산하는게 계산량이 오래 걸린다

13:01:03

그래서 difference of Gaussian으로 LOG 대신 DOG를 사용을 하자 라는게 이 시프트 기펜트 디텍션의 다른 점입니다 그래서 어떻게 하냐면은 저희가 이미 이미지 스케일을 여러개를 뽑기 위해서 가오샨을 시그마를 다르게 해서 여러개를 적용을 했죠 그러면은 얘를 재활용을 하자는 거에요 재활용을 해서 얘를 이제 서로 붙어있는 애들끼리 빼주면은 이거 자체가 디퍼런스 오브 가오샨이 되구요

13:01:03

이거 자체가 라큘레이션을 시뮬레이스한 어플럭시맥한 결과가 됩니다 저희가 따로 라플레이션과 가오시안을 컨볼루션 할 필요 없이 계산할 필요 없이 이 두 서로 다른 시그마를 가진 가오시안들을 어차피 우리가 만들었어야 됐으니까 스케일 때문에 만들었어야 되니까 얘네를 빼주기만 하면은 바로 계산할 수가 있겠다는 거죠 실제는 인접해 있는 가오샤와 시그마키를 이렇게 해서 DOG를 뽑아보면 서로 다른 결과를 나오는 것을 볼 수 있고요.

13:01:03

저희는 예전에 비주얼에 대해서 봤었죠. 이렇게 될 수 있고요. 여기서 이제 만약에 한 픽셀을 정해놓고 이 픽셀의 경우에 여러 개의 DOG 중에서 리스포스 값이 가장 높은 애를 찾으면 그게 바로 블록, 를 찾을 수가 있을 겁니다.

13:01:03

그래서 이 시프트한 방법이 굉장히 효율적인 방법이라고 생각을 해주시면 돼요 아까 해리스 라플레이시안 같은 걸 생각하면 몇 단계였냐면 첫 번째로 다운샴플링이나 가오시안으로 여러 개의 스케일을 만들어서 준비를 하고요 두 번째로는 스케일 중에서 어떤 게 좋은지를 알려면 각 스케일별로 라플레이시안을 컴플레이션을 해줬어야 되고요 거기서 찾은 것을 3번은 찾아낸 스케일들에 대해서

13:01:03

해리스 톤업 디텍션을 다 돌려줘야 되죠 그러면 최악의 경우에는 모든 스케일에 대해서 해리스 톤업 디텍터를 돌려야 되요 이렇게 세 가지 과정을 갖고 있는 거에 반해서 Shift 같은 경우에는 먼저 첫 번째로 스케일별로 준비하기 위해서 가오샷을 다르게 적용을 하죠 두 번째로는 가오샷을 서로 빼면 그게 바로 엘 로즈를 대체할 디오지가 되는 거고요 세 번째로는 원래는 거기서 코너 디텍터를 돌려야 되는데

13:01:03

얘는 그냥 DOG 값 자체를 메인위치 를 매시마이즈 하는 포인트를 그대로 찾습니다 그래서 헤리스 코너 디텍터처럼 별다른 이런 알고리즘을 따로 돌리지 않다고 포인트를 찾아갈 수가 있습니다 그래서 이 시프트가 굉장히 효율적인 방법이라고 알려져 있고요 그래서 시프트에서 방금 말씀드린 것처럼 이제 가오샤는 다르게 해서 스케일을 다르게 하고요 그리고 플러스 이제 다운샘플링도 같이 사용한다고 생각해주시면 됩니다

13:01:03

그래서 저희가 이제 같은 이미지 사이즈에서 가오샨을 서로 다르게 적용하는 것을 옥타 브라고 하고요 첫번째 옥타 브로서 여러개의 스케일, 여기서 5개의 스케일을 하고요 이미지를 다운 샘플링해서 이제 1/2를 줄인 다음에 여기에서 또 5개의 서로 다른 가오샨을 적용해서 5개의 스케일을 만들고요 두번째 옥타 브로서, 요거를 5번 방법을 하도록 하겠습니다 5번 반복했다는 것은 총 6개의 옥타버가 만들어지는 거고요

13:01:03

옥타버별로 예를 들어서 5개의 가부션을 쓰면 총 30개의 스케일을 쓰는 거예요 30개의 스케일을 써서 혹시 저희가 스케일을 이벤트하게 키펜트를 뽑을 수가 있습니다 그래서 아까 말씀드렸듯이 시프트 같은 경우에는 따로 코너를 검출하는 해리스 디펙터 이런 걸 사용하지 않고요 이미 우리가 스케일을 뽑기 위해서 스케일을 정하기 위해서 사용한 DOG 맵이 있죠. DOG 맵 자체가 이미 블락을 검출하는데

13:01:03

가능성을 갖고 있기 때문에 저희가 스케일이랑 XY측에서의 키포인트 뽑는 것을 한 번에 뽑을 수가 있어요 그래서 저희가 원래 헬스 코너 디텍터에서는 NMS를 적용하기 위해서 x, y축에서만 봤죠 그래서 스케일을 뽑을 때는 이제 LOG를 썼고 그 다음에 x, y축에서 코너를 뽑을 때는 이제 NMS를 써서 이렇게 뽑았는데

13:01:03

Shift에서는 이걸 한번에 해서 얘를 3차원으로 보고 만약에 얘를 하나의 예시 포인트로 우리가 잡으면요 얘 이웃이 주변 8개의 픽셀도 있지만 주변 8개의 픽셀이 끝이 아니라 이제 위의 스케일, 인접해 있는 스케일에 같은 위치에 있는 9개의 이웃을 뽑을 수가 있고요 아래의 스케일에서 9개의 이웃을 뽑을 수가 있습니다 그래서 저희가 큐뿐 모양을 생각하면 되죠

13:01:03

이렇게 해서 3x3 큐브가 만들어진 거고요 3x3 큐브의 가운데 지점을 기준으로 주변에 26개의 이웃이 만들어집니다 그래서 이 가운데 픽셀이 주변 26개의 이웃이랑 비교해서 로컬 맥시멈인지 아닌지를 판단을 해서 뽑아준다는 거예요 그래서 여기서 이제 당연히 음수 값으로 나오는 경우도 있습니다. 절대 값을 취한 다음에 local maximal을 갖고 있는 픽셀들을 뽑아주면은

13:01:03

저희가 스케일도 결정이 되는 거고요. 그 다음에 이제 xy쪽에서 keep point 위치도 결정이 되는 거죠. 블럼모양의 keep point 위치가 결정이 됩니다. 그래서 이렇게 뽑았을 때 키포인트 뽑으면 이런 식으로 나온다고 하는 거예요 그래서 이런 온모양 블럭을 잘 뽑히는 것을 볼 수가 있고요 이 사각형을 전체를 덮는 것을 뽑을 수가 있고요 약간 이 코너 영역도 사실 로컬 디퍼런스를 갖고 있기 때문에 이런 경우도 검출되고요

13:01:03

그리고 여기 입꼬리 슈벤도 검출되는 것을 볼 수가 있고요 그리고 이 미니언즈 사례를 보면은 굉장히 다양한 블럭을 뽑히는 모습을 보실 수가 있습니다 그래서 스케일이 굉장히 다르고 원의 사이즈가 스케일을 의미하는 거예요 서로 다른 스케일에서 블랑보형의 키포인트들을 잘 검출을 한다 라고 선정해주시면 됩니다 마찬가지로 이 관광지에서도

13:01:03

자체, 새로 다른 각보에서 찍힌 사이즈도 다르죠 사이즈도 다른 상태에서 찍혔을 때 이제 비슷한 위치에서 키포인트들을 잘 검출을 해내는 것을 볼 수가 있겠습니다. 그래서 이 두 개를 잘 비교를 해서 생각을 해주시면 좋아요. 해리스 라플레이션이랑 치프트 키포인 디덕션 둘 다 목적은 스케일의 이 배려한트에 키포인트를 뽑고 싶은 게 목적인 거고요. 해리스 라플레이션은 그 중에서 키포인트를 코너로 정의해서 뽑은 거고

13:01:03

그리고 스케일을 정하기 위해서는 에로지를 쓴 거죠. 라플레이션 워크아웃을 쓴 거죠. 그래서 호나랑 에너지가 중요한 거고 이 Shift-Hirtu에는 코너 대신에 Blob을 뽑았구요 Blob을 뽑는게 계산적으로 계산이 적으니까 뽑은거고 LoG 대신에 계산이 적은 DOG를 사용했다는거죠 그래서 Shift-Hirtu가 Detection이 Trace-Lock-Fention보다 훨씬 빠를거라고 저희가 예상을 할 수 있구요

13:01:03

실제 시선 결과 이런식으로 나와요 그래서 저희가 이거를 이 시큐트 논문에서 있었던 시험 결과인 것 같은데 이제 리피터빌리티 레잇이라고 해서 얼마나 똑같은 데서 같은 키포인트가 검출됐는지를 이제 계산을 해주는 이 매직 입장으로 생각해서 해주는 거에요 그래서 이 리피터빌리티 레잇은 높으면 높을수록 좋은 거고요 그 다음에 X축은 스케일이에요 스케일이 달라졌을 때 원본 스케일이랑 똑같은데서

13:01:03

키포인트가 뽑혔냐 안 뽑혔냐 이렇게 봐주시면 되고요 그래서 맨 처음에 일단 헤리스 빨간색 선을 보면은 얘는 리피터빌리티가 굉장히 떨어지죠 성향이 떨어지는 걸 볼 수가 있고요 헤리스 라플레이션 쓰면 굉장히 잘 잡아요. 사람의 차는 굉장히 스케일이 다르다 잘 잡는데 거기보다 여기 시프트는 리프터 리스는 조금 떨어지지만 그래도 원래 오리지널 헤리스보다는 훨씬 잘 잡는 것을 볼 수가 있습니다.

13:01:03

그래서 이 순으로 헤리스 시프트, 헤리스 라플레이션 순으로 리프터 리스는 좀 더 좋아진다. 이렇게 되면 좀 더 이베리언타가 되는 거죠. 대신에 이제 아까 말씀드렸듯이 시프트가 훨씬 속도가 빨라서 많이 사야 됩니다. 그래서 사실 페이스 라플레이션보다 이 시프트를 훨씬 많이 사용했고요. 그래서 두 가지 왜 빠른지에 대해서 설명을 하실 수 있어야겠죠.

13:01:03

그래서 DOG가 에러지보다 빠르고 그리고 디오제를 적용한 게 바로 블락을 검출해주기 때문에 별도 코너 디텍터 같은 것을 돌릴 필요가 없어서 빠르다 라고 이해를 해주시면 되겠습니다. 그래서 이제 키포인트 뽑는 거는 됐어요 키포인트 뽑는 거는 어떻게 뽑는지를 코너랑 블랍 측면에서 키포인트 뽑는 거는 제가 알았고요 그러면은 이 뽑은 키포인트를 어떻게 매칭을 하냐

13:01:03

매칭을 하려면은 저희가 이제 시밀어리티를 유사도를 정의할 수가 있어야 되고요 그 유사도를 정의할 때 이제 feature라는 것을 사용을 하는 거죠 feature 또는 디스크립터를 사용을 하죠 그래서 기본적으로 vector 형식의 이제 feature를 우리가 뽑아가지고 그거를 벡터 간의 유산호를 통해서 두 키 포인트가 얼마나 유산한지를 계산할 거고요 저희 디스크립터를 많이 배우진 않은 거고 shift에서 사용하는 디스크립터를 배울 겁니다

13:01:03

그래서 사실 shift라는 거는 키 포인트 뽑는 것도 새롭게 제안을 하고 이 feature-descript 하는 방식도 새로 제안을 한 거에요 shift는 키포인 디스크립터도 하고 이제 feature-descript도 한다 이렇게 생각을 해주시면 되겠습니다 그래서 저희가 이제 키포인터를 뽑았으면 거기 스케일에 맞춰서 주변 윈도우가 결정이 될 거고요 윈도우 내부의 정보를 매칭을 해줘야 되는 거죠 그래서 이 이미지와 이 이미지 둘 다 같은 장난감을 표기를 하고 있는데

13:01:03

얘가 트랜슬레이션이 있든 로테이션이 있든 스케일이든 인베리언트하게 키파이키가 뽑히고 이 Feature들도 이제 뽑히는 Feature도 마찬가지로 이런 성질을 가져야 되겠죠 그래서 이런 식으로 저희가 뒤집혀 있는 애들끼리 또 이렇게 매칭을 할 수가 있어야 이제 좋은 Feature Descriptor가 되겠습니다 그래서 저희 Shift 알고리즘을 쭉 하나하나 볼 거에요. 스텝 바이 스텝으로 알고리즘이 어떻게 이제

13:01:03

진행이 되는지를 살펴보고 보고 각각 어떤 목적으로 만들어진지를 생각을 해볼겁니다. 그래서 저희가 일단은 이제 키포인트를 먼저 뽑아야죠. 키포인트를 뽑을 때 여기서 16x16에 윈도우를 써서 뽑았다고 얘기를 했어요. 지정된 스케일에서 16x16을 뽑습니다. 그러면은 저희가 이 패치 안에 16x16의 픽셀이 존재하는 거죠 16x16 쪽 96 갠가요?

13:01:03

에 이제 픽셀이 존재합니다 이 상태에서 우리가 얘가 각도에 대해서 상관없이 똑같은 feature가 뽑혔으면 좋겠어요 똑같은 descriptor가 뽑혔으면 좋겠어요 그러면 어떻게 하냐면요 얘네의 gradient을 다 계산을 해서요 gradient을 다 계산을 해서 이제 얘네의 gradient을 평균을 해서 전체 패치가 어떤 방향을 향하고 있는지를 계산합니다 이게 어떻게 계산을 하냐면은

13:01:03

저희가 각 픽셀별로 이제 그래디언트 방향이 있죠. 애체방향을 갖고 있을텐데 그거를 이제 히스토그램으로 쌓는거에요. 저희가 각도는 0도부터 360도까지 있죠. 각 픽셀별로 0도에서 360도를 가질 수가 있는데 10도 단위로 저희가 quantize를 하고요. 그러면은 0도부터 10도인 애들 0도부터 10도인 애들은 예를 들어서 이런 애 0도부터 10도겠죠.

13:01:03

여기에 히스토그램을 쌓는거에요. 여기에 1개. 0도에서 10도 사이 1개 추가되는거고 예를 들어서 얘는 거의 한 바퀴 돌았으니까 한 300도 쯤 되겠죠 300도 쯤에 또 하나 쌓고 이렇게 해서 16과 26, 196개의 픽셀에 대해서 엣지의 방향을 저희가 히스토그램으로 만들어 주는 겁니다 그래서 히스토그램은 360도를 10도씩 쪼갠 형식의 히스토그램으로 만들어 주는 거고요

13:01:03

그러면 우리가 히스토어램을 만들고 나면은 이 중에서 가장 많은 픽셀이 바라보고 있는 방향 엣지의 방향을 우리가 픽셀을 찾을 수가 있겠죠 이걸 찾아서 이거를 패치의 방향으로 정의를 해주는 거예요 패치는 이 방향을 바라보고 있구나 이 방향으로 바이아스가 되어있는거죠 그러면은 저희가 똑같은 키포인트에서 뽑힌 feature더라도

13:01:03

rotation 정도에 따라서 어떤에는 여기를 바라보고 있고 어떤에는 여기를 바라보고 있겠죠 그러면은 우리가 이걸 맞춰줘야 되겠죠 각도를 맞춰줘야 똑같은 feature가 뽑힐테니까요 이걸 맞춰주기 위해서 Shift는 이 방금 뽑은 Pick Orientation을 0도로 만들어줘요. 이 패치 자체를 Rotate를 해서 그러니까 원래 갈 거 있던 각도를 Pick 각도로 빼주면 Rotate 한 것과 같은 결과를 얻을 수가 있겠죠. 그래서 얘를 이렇게 회전을 시켜줍니다.

13:01:03

그러면은 아까 봤던 누구는 이렇게 돼있고 누구는 각도가 이렇게 돼있는데 얘는 둘 다 피크를 빼주게 되면은 둘 다 각도가 0도로 맞춰지게 된다는거에요 이제 당연히 그러면 여기서 이제 로테이션의 인베리언트한 특성을 갖게 되는거죠 어떤 각도든 상관없이 각도를 다 0도로 맞춰주기 때문에 로테이션의 임배량차한 측선을 갖게 되는 거군 그래서 이제 아까 예제에서 이렇게 로테이션이 바로 있더라도

13:01:03

저희가 이제 높은 유사도를 만들어 줄 수가 있는 거예요 네 번째로는 이제 피처를 1차원 빅터로 이제 표현을 해야 돼요 얘를 어떻게 표현할까 을 생각을 한 거고요 이 shift 같은 경우에는 이제 엣지의 오리엔테이션을 많이 활용을 합니다 엣지의 오리엔테이션을 이용해서 우리가 이 어떤 패치를 표현하는 feature descriptor로 만들어요 그래서 얘는 어떻게 만드냐면은 16x16인 것을 우리가 4x4로 나눠줘요

13:01:03

4x4의 명령이면은 이제 각 그리드당 들어있는 거는 4x4의 픽셀이 들어있죠 16개의 픽셀이 들어있을 거예요 이 16개의 픽셀에 또 엣지의 오리엔테이션, 그래디언트의 오리엔테이션을 쭉 티스토어램을 쌓습니다 그래서 여기서 히스토리엠 쌓을 때는 45도 간격으로 쌓여요.

13:01:03

45도, 90도 조금 러프하게 해서 360도까지 쌓게 되는 거고요. 그러면은 이제 8개의 빈이 나오는 거죠 0도부터 45도, 그리고 45도 90도, 90도부터 135도 그래서 각 빈열로 픽셀이 몇 개만큼 있는지를 개수를 세주고요 그러면은 우리가 히스토그램끼리 비슷하면은 이제 유사한 거라고 얘기를 했었죠

13:01:03

그래서 얘도 마찬가지에요 이 히스토그램을 사용할 건데 이제 히스토그램을 일렬로 쭉 나열을 해주는 거예요 그래서 저희가 갖고 있는 이 값들의 개수를 히스토렘의 개수를 숫자로 표현을 해주는 겁니다. 그러면은 저희가 이제 360도를 45도 단위로 쪼개으니까 하나의 히스토렘은 8개의 숫자로 표현이 되겠죠. 그래서 이렇게 해서

13:01:03

이렇게 히스터렘이 만들어졌는데, 이런식으로 히스터렘이 만들어졌는데, 이걸 세는거에요. 얘는 히스터렘이 2개가 있고, 3개가 있고, 4개가 있고, 1개가 있고, 2개가 있고, 1개가 있고, 2개가 있고, 1개가 있고, 이런식으로 총 8개의 숫자가 만들어지겠죠. 히스터렘 빈별로 갯수를 세면, 0도부터 45도 사이에는 2개가 있고, 45도부터 90도 사이에는 3개의 픽셀이 있고, 이렇게 해서 총 합이 16개의 픽셀을 분별을 해준거죠.

13:01:03

빈별로 이 8개의 숫자가 히스토그램을 표현을 하는 벡터가 되는거죠. 이렇게 벡터가 되는거구요. 저희가 이제 그리드를 4x4로 나눴으니까 이 히스토그램은 총 16개가 나옵니다. 히스토그램 총 16개가 나오고 각각의 히스토그램이 갖고 있는 숫자는 8개의 벡터, 숫자 벡터죠. 그래서 16개랑 8을 곱하면 총 128차원의 히스토그램을 만들어 줄 수가 있습니다.

13:01:03

그리고 나서 이 128,000원을 노멀라이즈 해주는거에요. 전체 L2 노멀을 이용해서 노멀라이즈를 해줘서 이렇게 얻어낸 것을 피처로 사용하겠죠. 그래서 저희가 딥러닝 할 때는 네트워크 태워서 최종적으로 나온 아웃풋이 512,000원 이렇게 되죠. 그런데 얘는 손수, 그 피처를 계산하는 알고리즘을 만든 겁니다. 이 8000원을 만들기 위해서, 이런 알고리즘을 통해서 얻어낼 수 있도록 하는거죠.

13:01:03

그리고 당연히 숫자가 다 양수고 이제 1,2,3,4,5,6,2,3 적으로 나오니까 이거 로말라이즈 한번 해준 거고요. 마지막 로말라이즈를 해줘서 이렇게 쓰는 지치를 잘 배상할 수 있게 되는 겁니다. 사실 이게 전부에요. 피쳐와 디스크립터 뽑는 다섯 가지 과정이고요. 그래서 중요한 거는 피크를 찾아서 피크 방향을 0도로 만드는 거 그 과정에서 이제 로테이션에 대해서 인벨 같은 특징을 갖게 되는 거고요.

13:01:03

그 다음에 스케일에 대해서도 invariant 하겠죠. 왜냐하면 저희가 뽑은 키포인트 자체가 스케일별로 픽처를 찍는 애를 잡아놓기 때문에 저희가 포인트별로 적합한 스케일에서 이 픽처를 계산하기 때문에 스케일에 invariant 합니다. 그래서 이 두 가지에 대해서 invariant 하는 것은 자명하고요. 이거의 별개로 추가적으로 파셜리 인베드 한 특징들을 몇개 갖고 있어요 일루미네이션 체인지를 생각을 해보면은 얘가 직접적인 RGB값을 사용하지 않죠

13:01:03

엣지의 방향값만 그냥 그래디언트 방향값만 사용하기 때문에 일루미네이션이 바뀌더라도 전체적인 엣지 모양이 안 변하면은 그래디언트 방향이 안 변하면은 이제 인베디언트하게 잘 동작합니다 그래서 밝기가 달라지더라도 매칭을 잘 할 수가 있구요 카메라 뷰포인트도 마찬가지로 이제 파셜리 인베드 한 특징입니다 카메라 뷰포인트가 달라졌을 때 여러가지의 왜곡이 있겠지만 그중에 하나는 로테이션이 되는거죠 로테이션이 인베드 한 특징이기 때문에 카메라 뷰포인트에 대해서 일부 인베드 한 특징을 완벽하게 해야 했지만

13:01:03

마지막에 어클로션이라는 플러스에 대해서도 파셜리 인베드 한 특징인데 이거는 얘가 이제 16바이 16의 로컬한 패치를 뽑아놓고 피처를 뽑은거니까 그쵸? 그래서 16x26을 뽑고 또 그 안에서도 4x4 그리드로 나눴죠 그래서 4x4 그리드 중에 일부가 가려지더라도 나머지가 매칭이 되기 때문에 나머지가 이제 vector simulator 연산에 영향을 주기 때문에 어플루션이 있더라도 매칭에 성공할 수가 있습니다

13:01:03

시트가 되게 유명하고 되게 좋은 피처로 알려져 있고요 실제로 딥강이 나오기 전에는 제일 많이 사용되는 피처라고 얘기를 해도 과학이 아닐 정도입니다 그래서 처음에 딜러닝 네트워크가 나왔을 때 Shift 이기는 게 첫 번째 과제였던 거예요 시프트보다 성능이 더 좋아야 우리가 써먹을 수가 있으니까 그래서 Shift가 이렇게 되는 거고요 그래서 이렇게 뽑으면 이미지별로 Shift가 다 이제 킬포인트가 뽑히고 이거에 대해서 128 차원 어떤 네트워크가 다 하나씩 나올 텐데

13:01:03

어떻게 매칭을 할 거냐 시뮬러리티를 이용을 하면 되고요 시메아인트 또한 디스턴스를 이용을 하면 되죠 그래서 feature 간의 차이를 이용한다고 치면 vector 간의 차이의 fnm을 측정을 해주면 됐고 얘가 이제 다 계산한거죠 f1, f2, f3에 대해서 다 계산했을 때 가장 미니멈의 distance를 갖는 거꾸로 얘기하면 가장 similarity가 높은 애랑

13:01:03

이제 매칭을 해주면 되겠다는 거죠 이렇게 매칭을 해주면 된다 F1에나 F3'이 매칭이 된다 라고 하는게 이제 가장 단순한 방법인데요 이 방법의 단점은 이제 이제 미니먼 디스턴스가 어떤 애는 예를 들어서 예를 들어서 얘가 0.7이에요 근데 그 다음이 0.71일 수도 있죠 그러면은 우리가 그냥 최소값만 보고 매칭을 하기에는

13:01:03

얘랑 얘랑 0.7일, 0.7일 누구한테 매칭을 해야 될지가 애매하죠 이런 경우가 생기기 때문에 이 Loss Ratio Test라는게 있습니다 Loss Ratio Test라고 해서 가장 미니멈 박스를 갖는 애랑 그 다음과 미니멈 갖고 있는 애랑 차이가 어느정도 벌어져야 그러니까 1등이 단독 1등이 독보적인 1등이어야 우리가 매치를 할 수 있는 거죠. 1등하고 2등하고 너무 차이가 안나면 매치하지 말라는 거죠.

13:01:03

그래서 실제로 1등과의 디스턴스를 2등과의 디스턴스로 노멀라이즈를 해줍니다. 이 값을 Threshold로 사용해서 2등 대비 1등이 얼마나 머냐 또는 얼마나 부담냐를 계산해서 Threshold를 적용해서 좀 더 리듬직스러운 Reliance으로 매칭을 수행할 수 있겠습니다. 그래서 이 매칭까지 하면 저희 이제 했던 건 다 배운 거죠.

13:01:03

다 배운 거죠. 처음에 키포인트 뽑는 것부터 해서 키포인트 필터를 표현하고 매칭까지 하는 거. 그러면 저희가 이제 저희 슬라이드밤에 처음에 했던 홀스파먼스를 수행할 수가 있는 거에요. 그래서 실제로 이 이미지에서 지금 Shift를 이용해서 매칭을 하면 매칭이 굉장히 잘 되는 걸 볼 수가 있어요. 그래서 요거는 좀 이제 선이 겹쳐서 잘 안 보이는데 이제 이 같은 문양과 같은 문양끼리 매칭이 되고 다리의 같은 부분이 문의 같은 부분이 같은 부분끼리 연결이 되고

13:01:03

그래도 마찬가지에요 저희가 이 벽화 벽에 그려져 있는 이 벽화를 이 정면 각도에서 찍은 거랑 사이드에서 찍은 거랑 차이가 굉장히 크죠 눈으로 봐도 차이가 굉장히 큰 데 그럼에도 불구하고 이 캐릭터 영역이랑 이 영역이 이렇게 되는거죠. 이 영역이 이제 잘 매칭이 되는 모습을 볼 수가 있습니다. 그래서 눈인 부분이 눈이랑 매칭이 되고 다리부분이 다리랑 매칭이 되고

13:01:03

에세프트 굉장히 단순하지만 성능이 잘 나오는 방법이었다. 이런 것도 가능한거에요. 별이 빛나는 밤, 이 작품에 대한 사진이 있고 작품을 보고 있는 사람들의 미술관 사진이 있어요 이렇게 있을 때도 스케일이 굉장히 다르죠 왼쪽 이미지에서는 스케일이 작은 사이즈가 이미지 사이즈가 굉장히 크고 오른쪽이 스케일이 큰데 상황에서도 충분히

13:01:03

키포인트들끼리 매칭을 잘 해 줄 수가 있다는 거죠 키포인트가 스케일의 인베리언트하고 스케일이 로테이션의 인베리언트이기 때문에 잘 동작한다고 생각해 주시면 되겠습니다 그래서 이걸 이용하면 이런 것도 가능하겠죠 저희가 이제 이 장난감을 오른쪽 이미지에서 찾고 싶은 거예요 찾고 싶으면은 이 장난감 키포인트랑 키포인트도 뽑힐거고 이쪽 뽑아가지고 오른쪽 이미지에서 매칭이 되는 거를 쭉 연결을 하면은

13:01:03

이제 이 왼쪽에 컴퓨터로 주어진 애랑 이제 키포인트들 매칭이 되는 게 이 초록색 박스들이 키포인트들 매칭이 된 거고요 얘네들을 이제 뭉뚱그리면은 이제 장난값 하나를 찾은 것과 동일하게 되는거죠 마찬가지로 여기도 모든걸 볼수가 있고 그 다음에 개구리 이미지 같은 경우에도 제 어클루전이 있죠 위에

13:01:03

이거에 가려져 있지만 개구리를 표현하는 키 포인트들이 여러개가 있고 충분한 양이 있고 개구리의 앞다리 부분이랑 몸통 부분이 가려졌음에도 불구하고 머리 부분에 있는 키 포인트들이 이제 feature 매칭이 됐구요 뒷다리에 있는 키 포인트들도 매칭이 되서 우리가 개구리가 가려졌지만 얘를 잘 검출을 해낼 수가 있다는거죠 그래서 굉장히 잘 되는 알고지음입니다. 그래서 여기까지 해가지고 저희 시험공이 후다닥 달려왔는데

13:01:03

그래서 오늘 배움에서 중요한 거는 T-Point가 Scale에 Invariant를 해야 된다는 거 그걸 위해서는 우리가 어떤 함수를 정의해야 되는데 그 함수가 Scale별로 비교를 해 봤을 때 Region 사이즈를 바꿔가면서 했을 때 Local Maximum가 딱 하나 있는 Sharp Function이어야 되고 그 다음에 이미지에 Local Intensity를 반영할 수 있어야 된다 시사에 담당 인텔지어 로컬 인텐시티 체인지를, 적극한게 LOG였죠. 어펜션으로 가오션이었고, 그래서 그거랑 해리스를 결합을 하면은

13:01:03

시프트에 임패전트하게 코너를 뽑을 수가 있었고, 그거를 좀 더 효율적으로 만든게 시프트였구요. 시프트는 딱 두가지를 바꿨죠. 코너 뽑던거를 블럭을 뽑았고, 그 다음에 LOG 하던거를 디퍼런스 오브 가오션으로 적용을 했고, 그 다음에 시프트는 기능이 시프트 디텍션은 그렇게 하고요 뒤에 feature descriptor 뽑는거는 rotation의 invariant한 특성을 추가하기 위해서 피트를 이용해서 회전을 하고 그 다음에 이제 rgb 값을 feature로 사용하는게 아니라

13:01:03

gradient의 방향을 piece for m을 쌓아서 feature를 사용해서 검추를 했더니 굉장히 잘 된다 그래서 이 시프트의 장점도 기억을 해주시고요 장점 기억해주시고 뽑힌 feature를 이제 매칭만 하면 되는데 1d vector로 뽑혔으니까 아니 이제 118dm와 feature bar로 뽑혔으니까 이것끼리 이제 비교를 해서 미니봄인거 찾으면 되는데 좀 더 로봇하게 하려면은 이제 1등이 2등보다 독보적이어야 된다라는 룰을 추가를 해주면은 좀 더 잘 된다 까지 해서

13:01:03

오늘 내용 잘 기억해주시면 되겠습니다 네 그럼 수고 많으셨고요. 저희 다음 주 화요일 9시 반에 시험에 오세요.