Distinctive Image Features from Scale-Invariant Keypoints

ETRI 과제 진행에 있어 SIFT 코드의 진행과정 이해가 필요해 본 논문을 선택해 리뷰합니다.

본 논문은 SIFT를 설명하는 논문이다.


SIFT가 keypoint 를 추출하는 알고리즘의 순서에 맞게 리뷰를 진행하려고한다.

이미지의 feature를 추출하는 주요 스테이지는 다음과 같다.
1. Scale-space extrema detection

2. Keypoint localization

3. Orientation assignment

4. Keypoint descriptor

그럼 각 단계별로 어떠한 과정을 통해 feature를 추출하는지 알아보자.

1. Scale-space extrema detection

1-1 피라미드
원본 이미지의 2배 크기를 기준으로 절반씩 크기를 줄여 4층의 피라미드를 만듭니다. 그리고 각 층마다 가우시안 필터를 씌워 블러처리를 해줍니다. 이는 크기에대해 강인함을 키워주기 위함입니다.

1-2 DoG

엣지와 코너등의 특징점을 검출해주는 LoG(Laplacian of Gaussian) 연산과 비슷한 성능을 내지만, 연산에 있어 빠른 DoG 연산을 통해 특징점을 검출합니다.

DoG연산은 위에서 생성한 각 옥타브에서 이웃한 이미지들끼리 빼주면 된다.
1-2, 2-3, 3-4, 4-5 그렇게 하면 옥타브당 4개, 총 16개의 DoG 이미지가 생성된다.

이렇게 얻은 DoG이미지로 Keypoints를 검출한다. 검출하는 방법은 다음과 같다.

4장의 DoG이미지중 가운데 2이미지에 대해, 한 픽셀과 그 주위의 8개의 픽셀,
해당 이미지의 윗 스케일 9개의 픽셀, 아래 스케일 9개의 픽셀 총 26개의 픽셀을 비교하여 한 픽셀이 나머지 26개의 모든 픽셀보다 값이 크거나, 작으면(극대, 극소값) keypoint로 검출한다.

이렇게 한 이미지에 대해, 각 옥타브마다 2개의 keypoint 총 8개의 kepoint이미지를 얻게된다.

2. KeyPoint localization
1에서 구한 keypoints에서 적절한 후보를 검출하는 과정이다. 2가지 기준으로 제거한다.

2-1. 테일러급수
테일러 급수를 사용해 더욱 정확한 keypoints를 검출한다. 테일러 급수를 적용해 얻은 이미지에 다시 테일러급수로 선형보간해주준 값(contrast)의 절대값이 threshold보다 낮으면 keypoint 후보에서 제거한다.

2-2. 엣지
엣지위에 존재하는 keypoint를 제거한다. DoG가 엣지를 너무 잘 찾아내기 때문에, 노이즈를 엣지로 검출해 낼 수 있기 때문이다.

2의 과정을 끝내서 얻어낸 keypoints는 스케일불변(Scale invariance)의 특성을 갖게된다.

3. Orientation Assignment
회전 불변 특성을 갖게 해주는 과정이다.
위에서 구한 keypoint를 중심으로 16×16 의 그레디언트 방향과 크기를 구한다. 이때의 이미지는 keypoint가 검출된 이미지의 scale값으로 가우시안 블러링된 이미지이다. 이 방향으로 360을 10도씩 36개로 나눠 해당 각도에 크기만큼 히스토그램을 쌓아 해당 keypoint의 방향성을 구한다.

4. Keypoint descriptor

4-1 descriptor
회전되거나 스케일이 변한 이미지에서 물체를 찾기 위해 특징점을 검출하는데, 두 이미지에 똑같은 물체가 똑같은 특징점을 가지면 이를 매칭시켜 찾아내는 방법을 통해 물체를 찾아낸다. 즉 똑같은 물체에 대해 똑같은 특징점을 검출해야하는데, 이를 위해 특징점에 descriptor를 정해주어야 한다.

4-2 회전불변성
픽셀을 기준으로 16×16개의 윈도우를 만들고 각 윈도우를 4×4의 작은 윈도우로 나눠 각 윈도우에 gradient 방향과 크기를 구해 3에서 한것과 유사하게 이번엔 360을 8개로 나눠 히스토그램을 쌓아준다.
그리고 3에서구한 keypoint의 방향성을 각 윈도우의 방향성에서 빼주어 keypoint의 방향성에 상대적이게 만든다. 이렇게 회전 불변의 특성을 얻는다.
4-3 밝기불변성
밝기 의존성 해결을 위해 값을 정규화해준다. 이렇게 만들어진 16(개의 윈도우)x 8(크기의 히스토그램) 총 128개의 값이 keypoint의 descriptor가 된다.

Author: rcvlab

RCV연구실 홈페이지 관리자 입니다.

2 thoughts on “Distinctive Image Features from Scale-Invariant Keypoints

  1. 키포인트 제거시 테일러 급수가 갖는 물리적 의미는 무엇인가요?

  2. 테일러 급수를 적용하면 이진영상에 근사되어 노이즈에 민감한low contrast를 제거 할 수 있고, keypoint가 실제의 위치가 아닌곳에 생기는것(픽셀단위로 계산하기 때문에)을 실제 위치로 이동시켜줄 수 있다고 합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다