학습/SLAM

Feature Matching

juhyeon 2022. 7. 11. 17:36

- 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