430 likes | 1.37k Views
SIFT & SURF. 객체 인식. 영상으로부터 검출된 특징정보 (feature) 를 이용 기계학습을 통해 생성된 분류기로 인식하는 방법 특징기술자 (descriptor) 를 매칭하여 인식하는 방법. 특징기술자 기반 객체 인식. 영상에서 특징점 (interest point) 을 검출 특징점 주변 모양을 특징정보 (local feature) 로 나타내는 특징기술자 추출 특징기술자를 데이터베이스 내의 특징기술자와 매칭하여 객체를 식별. 특징점의 종류. Corner Blob Region.
E N D
객체 인식 • 영상으로부터 검출된 특징정보(feature)를 이용 • 기계학습을 통해 생성된 분류기로 인식하는 방법 • 특징기술자(descriptor)를 매칭하여 인식하는 방법
특징기술자 기반 객체 인식 • 영상에서 특징점(interest point)을 검출 • 특징점 주변 모양을 특징정보(local feature)로 나타내는 특징기술자 추출 • 특징기술자를 데이터베이스 내의 특징기술자와 매칭하여 객체를 식별
특징점의 종류 • Corner • Blob • Region
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 • 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
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)
Descriptor construction • 특징점 주변 영역을 4×4 블록으로 나누고, 각 블록내의 그래디언트 방향의 분포를 8개의 bin을 갖는 히스토그램으로 만든다. • SIFT 특징기술자는 16블록×8bin =128 차원을 갖는 벡터 형태가 된다. • 특징기술자 벡터를 정규화함으로써 조명 변화에 강건하게 만든다.
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)
Descriptor construction • 특징점 주변 영역을 4×4 블록으로 나누고, 각 블록 내를 5×5로 샘플링 • 블록 내의 각 샘플에 대한 Haar-wavelet 응답을 구하고 dx, dy, |dx|, |dy|의 합을 구한다. • 특징기술자는 4×4×4=64차원의 벡터 형태가 된다. • 특징기술자 벡터를 정규화하여 조명 변화에 강건하게 만든다.
SURF 특징기술자의 매칭 • Laplacian 부호를 비교 • 부호에 따른 두 가지 타입 • 부호가 같은 경우에만 유클리드 거리 계산 • 유클리드 거리로 최근접이웃 탐색 • Nearest neighbor distance ratio
SURF in OpenCV • SURF 특징점 및 특징기술자 추출함수 • SURF 특징점 구조체
SURF in OpenCV • SURF 파라미터
SURF를 이용한 매칭 • SURF_matching.zip의 소스로 빌드 후, 실행