SIFT
David Lowe가 2004년에 발표한 SIFT (Scale-Invariant Feature Transform) 는 스케일 및 회전 불변 지역 특징을 위한 기념비적인 알고리즘입니다. ORB, AKAZE, SuperPoint 등이 지금도 따르는 검출기 + 디스크립터 템플릿을 정의했으며, (예를 들어 COLMAP 스타일의 오프라인 재구성에서) 여전히 매칭 정확도의 금본위(gold standard)로 남아 있습니다.
키포인트 검출: 스케일 공간의 블롭
SIFT는 코너가 아니라 블롭(blob) 을 검출하며, 이를 여러 스케일에 걸쳐 수행하여 이미지에서 크게 보이든 작게 보이든 동일한 세계 구조가 검출되도록 합니다. 가우시안 스케일 공간은 이미지를 점점 커지는 스케일 의 가우시안으로 합성곱하여 구축됩니다:
인접한 스케일 사이의 가우시안 차분 (Difference of Gaussians, DoG) 은 스케일 정규화된 가우시안 라플라시안(블롭 검출기)을 훨씬 적은 비용으로 근사합니다:
스케일 공간은 옥타브(옥타브 사이에서 이미지를 2배 다운샘플링)로 구성되며, 옥타브마다 여러 스케일을 가집니다 — 피라미드 레벨마다 여러 블러 레벨을 가진 이미지 피라미드입니다.
키포인트는 공간과 스케일 모두에서 의 지역 극값입니다: 각 샘플은 에 걸친 큐브 내의 26개 이웃과 비교됩니다. 후보는 다음 과정을 거칩니다:
- 극값 주변에 이차식(D의 2차 테일러 전개)을 피팅하여 부화소/부스케일 정확도로 정제;
- 대비로 필터링 — 가 작은 극값은 불안정하여 폐기됨;
- 에지 반응으로 필터링 — DoG는 위치 추정이 부정확한 에지를 따라 강하게 반응합니다. Harris 검정과 유사하게, 주곡률의 비율(의 헤시안의 고유값)에 임계값을 적용하여 블롭 형태이면서 위치가 잘 정해진 점만 남깁니다.
디스크립터: 128차원 기울기 히스토그램
- 방향 할당: 키포인트 주변 영역의 기울기 방향 히스토그램(기울기 크기와 가우시안 윈도우로 가중)을 만들고, 가장 두드러진 피크가 키포인트의 정규 방향을 정의합니다. 모든 디스크립터 측정치는 이 방향에 상대적으로 이루어집니다 — 이것이 회전 불변성을 제공합니다.
- 디스크립터: 키포인트 주변 영역(검출된 스케일에서)을 그리드의 하위 영역으로 나누고, 각 하위 영역은 8빈 기울기 방향 히스토그램을 누적하여 차원 벡터를 만듭니다. 이 벡터는 조명 불변성을 위해 정규화됩니다(큰 성분을 클램핑한 후 재정규화).
매칭
SIFT 디스크립터는 부동소수점 벡터이며 L2 거리로 비교됩니다. 모호한 매칭은 Lowe의 비율 테스트로 필터링됩니다: 최근접 이웃은 인 경우에만 허용되며, 여기서 는 각각 첫 번째와 두 번째 최근접 이웃까지의 거리입니다. 대규모 데이터베이스의 경우 근사 최근접 이웃 구조(kd-트리, FLANN)가 무차별 대입 탐색을 대체합니다 — SIFT의 128차원은 kd-트리의 실용적 한계에 가깝습니다.
비용
SIFT는 매우 정확하지만 느립니다 — CPU에서 고해상도 이미지 한 장당 약 1초 수준입니다 — 이것이 실시간 SLAM이 역사적으로 대신 FAST/ORB를 채택한 이유이며, 온라인에서 SIFT 수준의 강건성이 필요할 때 GPU 구현이나 이진 대안이 사용되는 이유입니다.
SLAM에서의 의미
- 스케일 불변성은 카메라가 구조에 다가가거나 멀어질 때 필수적입니다 — 고정 스케일 코너가 실패하는 큰 깊이 변화에서도 매칭이 살아남습니다.
- SIFT의 파이프라인(스케일 공간 검출, 방향 할당, 기울기 히스토그램 디스크립터, 비율 테스트 매칭)은 SLAM에서 사용되는 모든 특징 시스템의 개념적 청사진입니다. ORB는 이를 실시간으로 근사한 것으로 가장 잘 이해할 수 있습니다.
- 오프라인 매핑과 구조로부터의 운동(structure-from-motion, 예: COLMAP)은 최대 매칭 품질을 위해 여전히 기본적으로 SIFT를 사용합니다. 시각적 장소 인식은 역사적으로 SIFT 디스크립터로부터 시각 단어 사전(bag-of-visual-words)을 구축했습니다.