FAST (Features from Accelerated Segment Test)

FAST(Rosten & Drummond, 2006)는 단 하나를 위해 설계된 코너 검출기다: 속도. 이미지 기울기와 구조 텐서를 계산하거나(Harris/Shi-Tomasi) 스케일 공간을 구성하는 것(SIFT) 대신, FAST는 후보 픽셀 주변의 작은 원 위에서 몇 개의 강도 비교만으로 코너인지 아닌지를 결정한다 — 매 프레임의 모든 픽셀에서 고속으로 실행할 수 있을 만큼 저렴하며, 이 덕분에 실시간 SLAM 프론트엔드(PTAM, SVO, 그리고 ORB를 통해 ORB-SLAM 계열)의 기본 검출기가 되었다.

세그먼트 테스트

강도 IpI_p를 가진 후보 픽셀 pp와, 그 주위 반지름 3인 브레젠험 원 위의 16개 픽셀을 생각해 보자. 픽셀 pp는 이 원 위에 최소 nn개의 연속된 호가 존재하고, 그 호에 속한 모든 픽셀이 임계값 tt가 주어졌을 때 pp보다 유의미하게 밝거나 모두 유의미하게 어두우면 코너로 판정된다.

∀x∈arc:Ix>Ip+tor∀x∈arc:Ix<Ip−t\forall x \in \text{arc}: \quad I_x > I_p + t \qquad \text{or} \qquad \forall x \in \text{arc}: \quad I_x < I_p - t

고전적인 선택은 n=12n = 12(FAST-12: 16개 중 12개)이며, 이는 매우 효과적인 **고속 테스트(high-speed test)**를 허용한다: 나침반 방향의 네 픽셀(위, 오른쪽, 아래, 왼쪽 — 위치 1, 5, 9, 13)만 검사한다. 12픽셀 연속 호가 존재한다면, 이 네 개 중 최소 세 개는 Ip+tI_p + t보다 밝거나 Ip−tI_p - t보다 어두워야 한다. 세 개 미만이 통과하면 pp는 단 네 번의 비교만으로 거부된다. 이미지 픽셀의 대부분은 코너가 아니므로, 이 조기 종료가 평균 비용을 지배한다.

기계 학습 변형

수공예 나침반 테스트에는 두 가지 약점이 있다: n<12n < 12로 일반화되지 않으며, 고정된 질문 순서가 실제 이미지 통계에 대해 최적이 아니다. 그래서 Rosten과 Drummond는 검출기를 학습했다: 원 위의 16개 픽셀 각각을 IpI_p에 대해 밝음/어두움/유사로 분류하고, (정보 이득을 최대화하는 ID3 알고리즘으로 구축된) 결정 트리가 학습 이미지에서 가장 적은 예상 비교 횟수로 코너를 분류하는 픽셀 질의 순서를 학습한다. 트리는 중첩된 if문으로 컴파일된다. 이렇게 해서 FAST-9(n=9n = 9) — 보통 가장 반복성이 높은 변형 — 가 실용적으로 만들어졌으며, 이는 OpenCV의 cv::FastFeatureDetector가 구현하는 방식이다.

비최대 억제

세그먼트 테스트는 하나의 코너 주변의 여러 인접 픽셀에서 반응한다. 코너당 하나의 응답만 유지하기 위해, 각 검출에 대해 코너 점수가 계산된다.

V=max⁡ ⁣(∑x∈Sbright(Ix−Ip)−t,    ∑x∈Sdark(Ip−Ix)−t),V = \max\!\left( \sum_{x \in S_{\text{bright}}} (I_x - I_p) - t,\;\; \sum_{x \in S_{\text{dark}}} (I_p - I_x) - t \right),

즉 뒷받침하는 호의 최대 총 대비이며, 비최대 억제는 3×3 근방에서 VV의 지역 극댓값만 유지한다. SLAM 프론트엔드에서는 검출 결과가 추가로 이미지 격자로 버킷화되어, 특징이 하나의 텍스처가 있는 영역에 몰리지 않고 프레임 전체를 커버하게 한다.

변형

FAST가 제공하지 않는 것

SLAM에서의 의미

특징 검출은 트래킹 루프 안에서 매 프레임마다 실행되므로, 그 비용은 임베디드 하드웨어에서 달성 가능한 프레임 레이트를 직접 제한한다. FAST는 완전한 검출-기술-매칭 파이프라인을 CPU에서 실시간으로 만들었다 — PTAM은 트래킹에 FAST를 사용했고, SVO는 FAST 코너에서 깊이 필터를 시드하며, VIO 프론트엔드(VINS-Mono, MSCKF 구현체들)는 FAST 코너를 검출해 KLT로 추적하고, ORB(oFAST + rBRIEF)는 이를 ORB-SLAM 계열의 완전한 특징으로 만들었다. 세그먼트 테스트를 알면 실전에서 관찰하게 될 FAST의 실패 모드도 설명된다: 잡음 하의 에지에서의 반응, 고대비 텍스처에서의 클러스터링, 모션 블러에 대한 민감성(기울기가 뭉개지면 원의 대비가 무너진다).

실습

관련 문서