더북(TheBook)

FAST 코너 검출 방법을 좀 더 수학적으로 표현하기 위해 점 p에서의 밝기를 Ip라고 표현하겠습니다. 만약 주변 16개의 픽셀 중에서 그 값이 Ip+t보다 큰 픽셀이 아홉 개 이상 연속으로 나타나면 점 p는 어두운 영역이 뾰족하게 돌출되어 있는 코너입니다. 반면에 주변 16개의 픽셀 중에서 그 값이 Ip-t보다 작은 픽셀이 아홉 개 이상 연속으로 나타나면 점 p는 밝은 영역이 돌출되어 있는 코너라고 간주합니다. 여기서 t는 충분히 밝거나 어두운 정도를 조절하기 위한 임계값입니다.

FAST 방법은 특정 코너 점 주변 픽셀들도 함께 코너로 검출하는 경우가 많기 때문에 주변 코너 픽셀 중에서 가장 코너에 적합한 픽셀을 선택하는 비최대 억제 작업을 추가적으로 수행하는 것이 좋습니다. FAST 방법에서는 코너 점과 주변 16개 점과의 픽셀 값 차이 합을 코너 점수로 정의하고, 인접한 코너 중에서 코너 점수가 가장 큰 코너만 최종 코너로 선택합니다.

OpenCV는 FAST 코너 검출 방법을 구현한 FAST() 함수를 제공합니다. FAST() 함수 이름은 영문자 대문자로 구성되어 있으며, 함수 원형은 다음과 같습니다.

void FAST(InputArray image, std::vector<KeyPoint>& keypoints,
          int threshold, bool nonmaxSuppression = true);

image

입력 그레이스케일 영상

keypoints

검출된 특징점을 표현하는 KeyPoint 객체의 벡터. KeyPoint::pt 멤버 변수에 코너 점 좌표가 저장됩니다.

threshold

중심 픽셀 값과 주변 픽셀 값과의 차이 임계값

nonmaxSuppression

비최대 억제 수행 여부. true이면 비최대 억제를 수행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.