Lowe, David G. "Distinctive image features from scale-invariant keypoints." International journal of computer vision 60.2 (2004): 91-110.

 

영상에서 스케일 불변의 특징점을 추출해내는 알고리즘 중 SIFT를 먼저 공부하면서 정리

 

서론

 

- 이미지 매칭은 객체 또는 장면 인식, 여러 이미지에서 3D 구조의 문제 해결, 스테레오 대응 및 모션 추적을 포함하여 컴퓨터 비전의 다양한 문제의 근본적인 측면이다.

 

- SIFT는 이미지 스케일 및 회전에 불변한 특성을 갖고, 조명 및 3D 카메라 관점에서 부분적으로도 강인하다.

 

- SIFT를 통해 추출한 keypoint들은 공간 및 주파수 영역 모두에 잘 위치하며 교합, 혼란 또는 잡음에 의한 실패 가능성을 줄인다.

 

- 효율적인 알고리즘을 사용하여 추출한 특징들은 데이터베이스와 연동하여 정확하게 일치시킬 수 있어 개체 및 장면 인식의 기반을 제공한다.

 

- SIFT의 keypoint 세트 생성 단계

  1. Scale-space extrema detection : 이미지의 모든 스케일 및 지역 탐색, DoG(Difference of Gaussian)

     함수를 사용하여 스케일 및 방향에 영향을 받지 않는 잠재적 keypoint를 식별

 

  2. Keypoint localization : 각 후보 위치에서 자세한 모델이 위치와 규모를 결정하는데 적합. keypoint들

     은 그들의 안정성 측정 기준에 따라 선택된다.

 

  3. Orientation assignment : 로컬 이미지 그래디언트 방향에 따라 각 keypoint 위치에 하나 이상의 방향

     이 지정된다. 이 후의 모든 작업은 각 특징에 지정된 방향, 눈금 및 위치와 관련하여 변형된 이미지

     데이터에서 수행되므로, 이러한 변환에 대한 불변성이 제공된다.

 

  4. Keypoint descriptor : 로컬 이미지 그래디언트는 각 keypoint 주변 영역에서 선택된 눈금에서 측정. 이

     들은 상당한 레벨의 로컬 형태 왜곡 및 조명 변화의 허용으로 표현된다.

 

- 약 500x500 사이즈의 이미지에서 2000개 정도의 안정적인 Feature가 검출이 되고, 객체를 인식하려

   면 3개 이상의 Feature가 매칭되면 된다.

 

 

 

Detection of Scale-Space Extrema

 

- 후보 위치를 식별한 후 디테일을 확인하는 cascade filtering 방식을 사용하여 keypoint를 탐지한다.

 

- keypoint 탐지의 첫 번째 단계는 동일한 객체가 다른 뷰에서 반복적으로 할당 될 수 있는 위치와 스케일

  을 식별하는 것이다.

 

- Scale-space로 알려진 스케일의 연속 함수를 사용하여 가능한 모든 스케일에서 안정된 Feature를 검색

  함으로써 이미지의 스케일에 불변인 위치를 검출할 수 있다.

 

- 다양한 가정하에도 유일하게 가능한 Scale-sace Kernel이 Gaussian 함수임이라는 것이라는 연구가 있

  다.

 

- 따라서, 이미지의 Scale-space는 입력 이미지와 함께 가변 스케일 가우시안의 Convolution으로부터 함

  수를 생성한다.

 

 

- *는 Convolution의 기호로 Convolution이란

 

 

일 때, 아래 수식처럼 기호로 나타낸다.

 

 

- 가우시안 함수는 아래와 같다.

 

 

- 가우시안 함수의 차(DoG) 함수를 이용하여 극값을 계산한다.

 

- 이 함수를 사용하는 이유는 이전 연구된 것을 보면 알 수 있는데, DoG는 Scale-Normalized Laplacian

  of Gaussian의 근삿값을 가진다고 한다.

 

- 라플라시안을 직접 사용하지 않는 이유는 당연하게 연산 속도 때문일 것이라는 개인적인 생각

 

- 방정식의 계수 (k - 1)는 모든 눈금에 대해 일정하므로 상한선 위치에 영향을 미치지 않는다.

   (논문의 그림 참고해야 함)

 

- 초기에는 Gaussian과 점진적으로 곱하여 누적되면서 표시된 눈금 간격에서 상수 계수 k로 분리된

  이미지를 생성한다.

 

- Scale-space의 각 옥타브(octave = 시그마의 배증)를 간격의 정수 s로 나눔으로써 k = 21 / s를 선택한

  다.

 

- 각 옥타브에 대해 블러처리된 이미지의 스택에 3개의 이미지를 생성해야만 최종적인 극한값 감지가

  난다.

 

- 인접한 이미지 스케일을 빼서 Gaussian Difference 이미지를 생성한다.

 

- 완전하게 옥타브가 처리되면, 각 행과 열의 두번째 픽셀을 취하여 시그마의 초기값이 두배인 Gaussian

  이미지를 다시 샘플링한다.(스택 맨 위에서 2개의 이미지를 사용)

 

- 시그마와 관련된 샘플링의 정확도는 이전 옥타브의 시작과 다르지 않지만 계산은 크게 감소한다.

 

Local Exrema Detection

 

방법은 총 26개, 현재 스케일의 8이웃, 위아래 스케일의 각 9이웃과 비교하여 가장 큰 값과 가장 작은

  값이 선택된다.

 

- 극값을 안정적으로 검출하는 데에는 이미지의 스케일 도메인의 샘플링 주파수가 중요하다.

 

- 해당 논문에서는 시그마값을 모두 1.6으로 사용했다.

  -> 시그마값이 크면 연산 속도가 느려지기 때문에, 적당한 시그마값을 결정하여 사용했다.

  -> 시그마값을 결정하기 위한 실험은 논문에 그림으로 나타나있다.

 

- 옥타브당 3개의 스케일을 샘플링할 때 가장 좋은 반복성을 얻을 수 있다.

  -> 더 많은 스케일을 샘플링해도 더 좋은 반복성을 얻지는 않는다.

 

- 가우시안 이미지를 사용하여 키포인트를 검출하는데 이는 높은 주파수가 제거되는 이점이 있기 때문에

  도 좋다.

 

- 첫번째 피라미드를 만들기 위해 이미지를 2배 크기로 확대하는데 여기서는 Linear interpolation을 사용

  한다.

  -> 이미지 사이즈를 더 키운다고 해서 개선점이 발견되지는 않는다.

 

- 이러한 실험결과를 토대로 극값을 검출한다.

 

Accurate Keypoint Localization

 

- 픽셀을 이웃과 비교하여 키포인트 후보를 찾을 후에 주 곡률의 위치, 눈금 및 비율에 대해 근처 데이터

  에 세부적으로 맞추는 과정

  -> 낮은 contrast(noise에 민감)를 가지거나 edge를 따라 localization이 제대로 이루어지지 않은 포인트

      를 사용하지 않기 위함.

 

- Hessian과 D의 미분은 샘플 차이를 사용하여 근사화된다.

 

- 오프셋x가 0.5보다 큰 것은 극값이 다른 샘플 포인트에 더 가까움을 뜻하는데, 이럴 때는 샘플 포인

  트가 변경되고 대신 해당 포인트에 대한 보간이 수행됨.

 

- 최종적으로 오프셋x는 샘플 포인트 위치에 추가되어 극값의 위치에 대한 보간된 측정값을 얻는다.

 

- 극값에서의 함수 값 D(x)는 낮은 대비의 불안정한 극값을 거부하는데 유용함.

 

- 위 과정을 거치고 난 후에도 안정성을 위해 낮은 대비의 키포인트를 피하는 것만으로는 충분하지 않다.

 

- DoG는 edge에 따른 위치가 잘못 결정되어 소량의 노이즈로 인해 불안정한 경우에도 edge에 대해 강한

  반응을 보인다.

 

- 따라서 별도의 threshold를 두어 특징점이 edge에 가까우면 제외시킨다(논문에서는 10을 사용).

 

Orientation Assignment

 

- 로컬 이미지 속성을 기반으로 각 키포인트에 일관된 방향을 지정하면 키포인트 기술자가 이 방향을 기

  준으로 표현될 수 있으므로, 이미지 회전에 대한 불변성이 발생한다.

 

- 키포인트 주변 픽셀의 방향성을 구하고, 방향별 히스토그램을 구한다.

 

- 히스토그램에서 가장 큰 값에 대응되는 방향을 해당 키포인트의 방향으로 정한다.

 

 

+ Recent posts