what i learned
[OpenCV] keypoint detector 본문
이미지에서 특징점(keypoint)를 찾아서 물체를 추적하거나 인식한다.
좋은 특징점의 조건으로는 코너점(corner point)이 사용되어서 대부분의 물체 추적 알고리즘에서는 corner 검출을 사용한다.
특징점을 찾는 기본적인 방법으로는 작은 윈도우를 조금씩 이동시키면서 코너점일 경우 모든 방향으로 영상 변화가 크다는 것을 활용한다.
[종류]
0. Moravec
1. Harris Corner
2. SIFT
2. FAST Corner
3. BRIEF
4. ORB
5. FLANN, AKAZE...
0. Moravec
각 픽셀위치를 수직, 수평, 좌우 대각선 방향으로 픽셀을 움직이면서 코너를 확인
1. Harris corner
Moravec의 알고리즘을 보완
4방향이 아닌 2방향 X, Y 방향만 계산하고 코너의 방향성을 분석할 수 있는 mtx를 생성해서 코너 확인
현재 위치가 flat, edge, corner인지 파악이 가능
2. SIFT
코너 검출 정확도가 높은 알고리즘으로 딥러닝 이전까진 가장 정확한 point feature
scale-invariant, rotation-invariant에 초점을 두어 고안
✔️ scale-invariant, rotation-invariant
scale-invariant(크기불변성): 이미지의 크기가 작거나 커도 모두 동일한 keypoint가 추출될 경우
rotation-invariant(회전불변성): 이미지가 회전되어도 동일한 keypoint가 추출될 경우
3. FAST
빠른 keypoint를 찾는 알고리즘
픽셀의 중점에서 16개의 밝기 값을 탐지
16개 중 10개의 연속된 픽셀이 나머지 6개보다 밝거나 어둡다면 코너로 인식
4. BRIEF
데이터들의 값을 float형태로 표현하는 SIFT와 달리 값들을 binary로 표현하기 때문에 메모리 용량이 덜 소모적
5. ORB
SIFT처럼 정확도도 가지면서 실시간 작동이 가능한 알고리즘
속도도 빠르면서 scale-invariant, rotation-invariant 성질도 포함
[참고자료]
공부한 내용을 기록하는 공간입니다.
잘못된 정보가 있을 경우 댓글로 피드백 주세요.
올바른 지식을 알려주셔서 감사합니다:)
'Image Processing' 카테고리의 다른 글
[VSLAM] Ubuntu18.04에서 ORB_SLAM3 build후 실행 (0) | 2023.07.27 |
---|---|
[VSLAM] SLAM이란? (0) | 2023.07.20 |
[OpenCV] Camera Calibration - Python, ROS (0) | 2023.06.20 |