-
Scale Invariant Feature Transform (SIFT)컴퓨터 비전 공부 2021. 1. 12. 22:32반응형
SIFT는 Scale Invariant Feature Transform의 약자이며 2004년 British Columbia 대학교 D.Lowe에 의해 처음 발표됐다. SIFT는 이미지의 스케일 및 회전에 불변이다. 이 알고리즘은 특허를 받았기 때문에 OpenCV의 Non-free 모듈에 포함되어 있다.
Scale-space peak Selection
Scale-space
현존하는 물체는 특정한 scale에서만 의미가 있다. 탁자 위 각설탕은 우리에게 완벽한 정육면체로 보이지만 우주적인 scale에서 보면 이는 존재하지 않는 것과 같다. 이처럼 사물의 multi-scale 특성은 자연에서 꽤 흔하다.
이미지의 scale space은 입력 이미지와 다른 scale에서 Gaussian kernel (Blurring)의 convolution에서 생성되는 함수 L (x, y, σ)이다. Scale space은 옥타브로 분리되며 옥타브 및 scale의 수는 원본 이미지의 크기에 따라 다르다. 그래서 원본 이미지의 여러 옥타브를 생성한다. 각 옥타브의 이미지 크기는 이전 이미지의 절반 크기이다.
Blurring
한 octave 내에서 이미지는 Gaussian Blur 연산자를 사용하여 점진적으로 blurring 된다. 수학적으로 "blurring"은 Gaussian 연산자와 이미지의 convolution이다. Gaussian blur에는 각 픽셀에 적용되는 "연산자"가 있다. 이에 대한 결과는 흐릿한 이미지이다.
G는 Gaussian Blur 연산자이고 I는 이미지이다. x, y는 위치 좌표이고 σ는 "scale" parameter이다. Blur 되는 값이 클수록 Blur가 많이 된다.
DOG(Difference of Gaussian kernel)
이제 blurred 이미지를 사용하여 다른 이미지 세트를 생성한다. 바로 Difference of Gaussians (DoG)이다. 이러한 DoG 이미지는 이미지에서 흥미로운 keypoint을 찾는 데 유용하다. difference of Gaussian은 σ와 kσ로 두 개의 다른 σ를 갖는 이미지의 Gaussian blurring의 차(difference)로서 얻어진다. 이 프로세스는 Gaussian Pyramid에서 이미지의 다른 옥타브에 대해 수행됩니다. 위 과정은 아래 그림에 나타나 있다.
Finding keypoints
지금까지 scale space를 생성하고 scale space를 사용하여 Difference of Gaussian을 계산했다. 이는 scale invariant인 Gaussian approximation의 Laplacian을 계산하는 데 사용된다.
이미지의 한 픽셀은 다음 scale의 9개의 픽셀과 이전 scale의 9개의 픽셀뿐만 아니라 8개의 이웃 픽셀과 비교된다. 이렇게 총 26개의 픽셀을 비교하는데, 이 중 최솟값과 최댓값을 가지는 픽셀이 잠재적인 keypoint이다.
반응형'컴퓨터 비전 공부' 카테고리의 다른 글
Superpixels (슈퍼 픽셀 알고리즘) (0) 2021.11.28 Distance Transform (0) 2021.08.21