Keypoints
**키포인트(keypoint)**는 반복 가능한 기하학적 특성을 가진 구별되는 이미지 위치입니다 — 동일한 장면의 다른 이미지에서도 다시 찾을 수 있는 코너, 블롭, 또는 에지 교차점입니다. **디스크립터(descriptor)**는 키포인트 주변의 지역적 외형을 인코딩하는 컴팩트한 수치 서명으로, 시점과 조명이 달라져도 이미지 간 매칭을 가능하게 합니다. 검출기(detector)(어디를 찾을지)와 디스크립터(무엇을 인코딩할지)가 함께 특징점 기반 SLAM의 프론트엔드 어휘를 구성합니다.
키포인트를 유용하게 만드는 두 가지 속성이 있습니다:
- 반복성(repeatability): 동일한 물리적 점이 다른 시점, 스케일, 조명에서도 다시 검출됩니다.
- 구별성(distinctiveness): 디스크립터가 다른 점들의 디스크립터와 충분히 다르므로 매칭이 모호하지 않습니다.
고전적 계보
| 방법 | 검출기 | 디스크립터 | 비고 |
|---|---|---|---|
| SIFT (2004) | 스케일 공간에서의 DoG 블롭 | 128차원 기울기 히스토그램 | 매우 정확하지만 CPU에서 느림 |
| FAST (2006) | 16픽셀 원 위의 연속된 밝은/어두운 호 | 없음 | 매우 빠른 코너 테스트 |
| ORB (2011) | oFAST (FAST + 강도 중심 방향) | rBRIEF, 256비트 이진 | SLAM의 표준 도구 (ORB-SLAM) |
| AKAZE (2013) | 비선형 확산 스케일 공간 | 이진 (M-LDB) | 가우시안 스케일 공간보다 에지 보존이 우수함 |
SIFT는 스케일 공간에서 블롭을 검출합니다: 이미지를 점점 커지는 스케일의 가우시안으로 컨볼루션하여 를 얻고, 가우시안 차이(Difference of Gaussians) 가 라플라시안-오브-가우시안 블롭 검출기를 근사합니다. 키포인트는 공간과 스케일 양쪽에 걸쳐 의 지역 극값이며, 이차 함수 피팅으로 서브픽셀 정확도까지 정제되고, 대비와 에지 반응으로 필터링됩니다. 디스크립터는 지역 기울기 히스토그램으로부터 지배적 방향을 할당한 뒤, 8빈 기울기 히스토그램의 격자를 구성합니다 — 조명 불변성을 위해 정규화된 128차원 벡터입니다. SIFT는 매우 정확하지만 느립니다(고해상도 이미지 한 장당 CPU에서 약 1초), 이는 실시간 SLAM에서의 활용을 제한합니다.
FAST는 반대 극단으로 갑니다: 픽셀 주변 반지름 3인 원 위의 16픽셀 중 개의 연속된 호가 모두 임계값 이상으로 보다 밝거나 어두우면 코너로 판정합니다. 속도 향상 테스트는 먼저 네 개의 나침반 픽셀만 확인합니다 — 이 중 3개 미만이 기준을 충족하면 는 코너가 될 수 없습니다. FAST는 디스크립터도 없고 방향이나 스케일도 없습니다; 디스크립터와 짝을 이루어야 하는 검출 원시 요소입니다.
ORB는 실시간 SLAM이 거의 보편적으로 채택한 조합입니다. 강도 중심을 통해 FAST에 방향을 추가하는데 — 패치 모멘트 를 이용해 방향은 이 됩니다 — 그리고 BRIEF의 이진 샘플링 패턴을 만큼 회전시켜 회전 불변성을 얻습니다(rBRIEF). 256비트 디스크립터는 32바이트를 차지하며, 매칭은 XOR + popcount 명령어로 계산되는 해밍 거리를 사용합니다 — 프레임당 수천 개의 특징을 매칭할 수 있을 만큼 빠릅니다. 스케일 불변성은 이미지 피라미드에서의 검출로부터 얻어집니다.
AKAZE는 가우시안 블러링 대신 비선형 확산 필터링으로 스케일 공간을 구성하는데, 이는 에지를 보존하여 경계 근처에서 더 정확한 키포인트를 만들어냅니다; “가속화(accelerated)“라는 이름은 비용을 실용적인 수준으로 낮추는 Fast Explicit Diffusion (FED)에서 왔습니다.
검출에서 매칭까지
검출은 프론트엔드의 절반일 뿐이며, 매칭이야말로 기하학이 소비하는 대상입니다:
- 브루트 포스(brute force): 모든 디스크립터를 다른 모든 디스크립터와 비교합니다 — 부동소수점 디스크립터(SIFT, SuperPoint)에는 L2 거리를, 이진 디스크립터(ORB, BRIEF)에는 해밍 거리를 사용합니다. Lowe의 비율 테스트는 모호한 매칭을 걸러냅니다: 최근접 거리가 두 번째 최근접 거리보다 충분히 작을 때만 매칭을 허용합니다(예: ).
- 근사 검색: FLANN은 대규모 매칭을 위해 무작위 kd-트리(부동소수점 디스크립터)와 지역성 민감 해싱(이진 디스크립터) 중에서 선택합니다.
- 기하 검증: 살아남은 매칭에도 여전히 이상치가 섞여 있습니다; 에피폴라 또는 PnP 모델에 대한 RANSAC이 마지막 정리를 수행합니다.
매 프레임마다 검출하고 매칭하는 대안으로 **추적(tracking)**이 있습니다: 피라미드형 Lucas-Kanade (KLT)를 이용해 연속된 프레임 사이에서 키포인트를 따라가며, 순방향-역방향 검사로 신뢰할 수 없는 트랙을 걸러냅니다 — 더 저렴하며, 많은 VIO 시스템의 표준 프론트엔드입니다.
SLAM 시스템이 그 위에 더하는 것
- 공간적 분포: 모든 특징이 하나의 텍스처가 풍부한 물체에 몰리면 정확도가 떨어집니다. ORB-SLAM 스타일의 시스템은 이미지 그리드(쿼드트리 정제와 함께)에 셀당 예산을 강제하여 특징이 프레임 전체를 커버하도록 합니다.
- **비최대 억제(non-maximum suppression)**와 레벨별 임계값은 검출기가 동일한 코너에서 여러 번 반응하지 않도록 합니다.
- 피라미드 관리: 특징이 검출된 피라미드 레벨은 이후 해당 랜드마크가 재검출될 수 있는 스케일 범위를 정의합니다.
학습 기반 세대
학습된 검출기/디스크립터는 반복성과 구별성을 위해 학습된 네트워크로 수작업 설계를 대체합니다. SuperPoint는 자기지도 방식으로 학습됩니다: 합성 형상으로 사전 학습한 뒤, 합성 호모그래피 아래에서 실제 이미지를 자기 레이블링하여 미세 조정합니다(“호모그래픽 적응”); 하나의 공유 인코더가 검출기 헤드(키포인트 점수 맵)와 디스크립터 헤드(밀집 디스크립터 맵)에 공급됩니다. R2D2는 두 개의 별도 맵을 예측합니다 — 반복성(이 점이 다시 검출될 것인가?)과 신뢰성(이 디스크립터가 구별력이 있는가?) — 그리고 둘 다 높은 점을 유지하는데, 이는 텍스처가 없거나 반복적인 영역에서 도움이 됩니다. 이들은 보통 이후 단계에서 SuperGlue와 같은 학습된 매처와 짝을 이룹니다.
SLAM 파이프라인에서 키포인트는 하위 모든 처리의 원재료입니다: 초기화와 essential 행렬 추정을 위한 2D-2D 대응, 포즈 추적(PnP)을 위한 2D-3D 대응, 3D 랜드마크로의 삼각측량, 그리고 루프 클로저를 위한 시각 단어 가방(bag-of-visual-words) 장소 인식입니다.
SLAM에서의 의미
PTAM에서 ORB-SLAM3에 이르는 주류 패러다임인 특징점 기반(간접) SLAM은 전적으로 키포인트에 의존합니다: 검출된 특징의 품질, 속도, 분포가 전체 시스템의 정확도와 견고성을 결정짓습니다. 검출기/디스크립터의 트레이드오프(정확도 대 Hz, 이진 대 부동소수점 디스크립터, 수작업 대 학습 기반)를 이해하는 것은 논문을 읽는 데도, 자신의 컴퓨팅 예산에 맞는 프론트엔드를 고르는 매우 실용적인 작업에도 필수적입니다.