- feature : 모든 주변 방향으로 작은 양만큼 이동할 때 가장 큰 변동을 갖는 이미지 영역 선택
feature detection
- Harris Corner Detection
- feature(1. corner 2. edge 3. flat) 추출
- cv.cornerharris()
-input: grayscale 이미지 (float32 type)
-output: 평가점수를 포함한 grayscale image
-cv.cornerSubPix()
-감지된 corner를 sub-pixel 정확도로 세분화
-Rotation-invarient / Scale-varient
- Shi-Tomashi corner Detection
-Harris Corner Detection 개선 버전
-cv.goodFeaturesToTrack() // 가장 강한 n개의 corner를 찾는다.
-input: grayscale image
-output: n개의 코너지점
-Rotation-invarient / Scale-varient
- SIFT(Scale Invarient Feature Transform)
- 스케일의 변화에 영향을 받지 않음
- 순서
1. Scale-space Extrema Detection
2. Keypoint Localization
3. Orientation Assignment
4. KeyPoint Descriptor
5. KeyPoint Matching
- cv.SIFT_create()
- cv.detectAndCompute(gray, None)
- SURF(Speed-Up Robust Features)
- SIFT의 개선 버전
- 최소한의 정보를 사용을 통해 descriptor의 기능 저하 없음
- 계산 속도에서 SIFT의 3배이상 개선
- good: blurring, rotation
- bad: view point change, illumination change
- U-SURF : SURF보다 속도 개선, 하지만 특징점의 방향은 고려하지 않음
- FAST(Feature from Accelerated Segment Test)
- harris coner, shi-tomasi, SIFT, SURF는 실시간성을 보장 못함
- 위의 방식에 비해 몇 배는 빠름
- 노이즈에 약함
- 임계값에 의존
- Machine Learning 사용
- BRIEF(Binary Robust Independent Elementary Features)
- feature descriptor 역할만 하기 때문에 feature detection은 SIFT, SURF등을 이용해 추출함
- 제작자는 CensSurE를 권장
- 회전이 크지 않을 때 준수한 결과를 보장
- faster method feature descriptor calculation and matching
- ORB(Oriented Fast and Rotated BRIEF)
- OpenCV에서 만든 저작권 free feature 추출 기법
- FAST의 keypoint Detector + BRIEF의 descriptor
1. FAST를 통해 keypoint 추출
2. harris corner measurement를 통해 상위 N개의 포인트 추출
3. pyramid를 이용하여 멀티 스케일링
Feature Matching
- Brute Force Matcher
- A set의 feature하나의 descriptor를 B set의 feature 전수조사를 통해 가장 가까운 거리의 feature 선정
- FLANN Matcher(Fast Library for Aboutly Neighbors)
- 대규모 데이터 셋에서 BF Matcher보다 빠르게 동작
Feature Matching + Homography to find objects
- cv.findHomography() // 두 개의 이미지 포인트 셋을 통과시키면 물체의 투시변환을 찾을 수 있음 // inlier와 outlier를 구분하는 mask를 제공
- cv.perspectiveTransform() // 물체 탐지
- RANSAC 알고리즘, LEAST_MEDIAN 알고리즘 사용됨
'학습 > SLAM' 카테고리의 다른 글
| online map merging (0) | 2022.07.11 |
|---|---|
| LIO-SAM SLAM (0) | 2022.06.30 |
| map merging_unknown initial pose (0) | 2022.06.30 |
| map merging_known initial pose (0) | 2022.06.30 |
| SLAM Simulatuins (0) | 2022.03.10 |