SIFT & SURF
객체 인식 영상으로부터 검출된 특징정보(feature)를 이용 기계학습을 통해 생성된 분류기로 인식하는 방법 특징기술자(descriptor)를 매칭하여 인식하는 방법
특징기술자 기반 객체 인식 영상에서 특징점(interest point)을 검출 특징점 주변 모양을 특징정보(local feature)로 나타내는 특징기술자 추출 특징기술자를 데이터베이스 내의 특징기술자와 매칭하여 객체를 식별
특징점의 종류 Corner Blob Region
Blob detector
Blob detector: LoG Laplacian of Gaussian (LoG)
Blob detector: Hessian response Hessian matrix (H) – 2nd derivative Hessian (determinant of H) Laplacian (trace of H) Blob detection DoH: detect maxima
특징정보의 조건 영상의 여러 변화에 대해서 불변성을 가져야 한다 노이즈 스케일 변화 회전 시점 변화 조명 변화
대표적인 특징기술자 SIFT (Scale-Invariant Feature Transform) D. Lowe, “Distinctive image features from scale-invariant keypoints,” IJCV, vol. 60, no. 2, pp. 91-110, 2004. SURF (Speeded Up Robust Features) H. Bay, T. Tuytelaars, and L. V. Gool, “SURF: Speeded Up Robust Features,” European Conference on Computer Vision, 2006.
SIFT (SCALE-INVARIANT FEATURE TRANSFORM)
SIFT 4단계 알고리즘 Scale-space extreme detection Keypoint localization and filtering Orientation assignment Descriptor construction
Scale-space extreme detection Gaussian scale-space 입력 영상에 σ를 증가시켜가며 가우시안 필터를 적용한 영상을 만든다. σ가 두 배가 될 때마다 영상을 ½로 다운샘플링하고 위의 과정을 반복한다. DoG (Difference of Gaussian)
Blob detector: DoG Difference of Gaussian Approximated LoG
DoG
Local extreme detection of DoG DoG 영상에서 x,y,s축으로 인접한 26지점보다 DoG값의 절대값이 큰(극값을 갖는) 지점을 찾아 특징점 후보로 선택한다.
Keypoint localization and filtering 낮은 극값을 갖는(low contrast) 특징점 후보 제거 에지 응답을 갖는 특징점 후보 제거 Principal curvature가 큰 후보 샘플링된 극점이 아닌 subpixel 극점을 찾는다
검출 예 (a) original image (b) extreme points (832) (c) low extreme threshold (729) (d) large ratio of principal curvature threshold (536)
Orientation assignment
Orientation assignment
Orientation assignment
Descriptor construction 특징점 주변 영역을 4×4 블록으로 나누고, 각 블록내의 그래디언트 방향의 분포를 8개의 bin을 갖는 히스토그램으로 만든다. SIFT 특징기술자는 16블록×8bin =128 차원을 갖는 벡터 형태가 된다. 특징기술자 벡터를 정규화함으로써 조명 변화에 강건하게 만든다.
SURF (SPEEDED UP ROBUST FEATURES)
SURF SURF의 특징 특징점의 고속 검출 Haar-wavelet 응답을 이용한 특징기술자 Laplacian의 부호를 이용하여 매칭속도 향상
Integral image 원본 영상의 원점으로부터 각 위치까지의 픽셀값의 합을 저장한 영상 특정 사각형 영역 내의 픽셀값 합을 매우 빠르게 계산 가능 SURF에서는 속도 향상을 얻기 위해 integral image를 사용
Fast hessian detector 박스 필터를 이용하여 hessian 응답을 근사
Scale-space 영상의 크기를 줄이는 대신 필터의 크기를 키움으로써 고속화
Scale-space 영상의 크기를 줄이는 대신 필터의 크기를 키움으로써 고속화
Local maxima detection Thresholding Non-maxima suppression Interpolation (subpixel accuracy)
Orientation assignment
Descriptor construction 특징점 주변 영역을 4×4 블록으로 나누고, 각 블록 내를 5×5로 샘플링 블록 내의 각 샘플에 대한 Haar-wavelet 응답을 구하고 dx, dy, |dx|, |dy|의 합을 구한다. 특징기술자는 4×4×4=64차원의 벡터 형태가 된다. 특징기술자 벡터를 정규화하여 조명 변화에 강건하게 만든다.
SURF 특징기술자의 매칭 Laplacian 부호를 비교 유클리드 거리로 최근접이웃 탐색 부호에 따른 두 가지 타입 부호가 같은 경우에만 유클리드 거리 계산 유클리드 거리로 최근접이웃 탐색 Nearest neighbor distance ratio
PRACTICE
SURF in OpenCV SURF 특징점 및 특징기술자 추출함수 SURF 특징점 구조체
SURF in OpenCV SURF 파라미터
SURF를 이용한 매칭 SURF_matching.zip의 소스로 빌드 후, 실행