Feature detector

2023. 2. 23. 14:55Devcorse/Visual SLAM(02.20~3.31)

pre 1980 과거의 특징점 기술

- 2D image 에서 3D world 이해하는 것 중점

- noise가 많이낀 사진으로 line을 검출하는것에 중점

 

Sobel operator

- gradient 즉 미분을 활용하는 방법을 사용함

Roberts(left) Prewitt(mid) Sobel(right)

-> 위와같은 방법으로도 threshold 값때문에 robust한 성능이 안나옴

 

Hough transform

- sobel operator를 활용한 후 점들을 (p, theta)로 표현하여 중첩되는 부분을 선으로 판단하는 기법

- 현재에도 많이 쓰인다.

 

Canny Edge

- sobel이 4방향에 대한 edge 검출이라면 Canny는 8방향 비교로 보다 더 정확한 edge를 검출한다.

- 파라미터를 통해 검출도를 조절할 수 있지만 비교 연산량이 많다.

 

=> 두사진에서 거리가 떨어진 or 기울어진 물체에대해 line으로 매칭을 할수가 없었다.(동일객체 판단불가)

 

Feature Detector

Point Feature 용어

- keypoint detector: feature로 정한 points

- descriptor extractor: 선택한 points의 feature (ex points주변의 10x10의 밝기값 분석)

- correspondence matcher: 2개의 이미지에서 각각 features을 찾고 discriptor를 비교

- Local feature: local scale로 image를 표현하는 것으로 , point feature, line feature가 있을 수 있지만 point만 가정

 

corner detection

moravec(사람임)

- {0,0}, {1,0}, {1,1}, {0,1}, {-1,1} 의 gradient를 분석하여 corner인지 아닌지 판단

 

Harris Corner

- moravec을 발전시킴

- 4방향만 gradient를 분석하여 Eigenvalues를 추출하여 이 값에따라 corner, edge, flat인지 판단

- 지금도 종종쓰임

 

Sift(detector + descriptor) - floating point

- deep learning기법의 성능과 비교할정도로 성능이 좋음

- Scale, rotation invariant

- 기본 알고리즘

  - multi scale 및 blur로 여러 이미지를 만들고 그에대한  Diffrence를 통해 DOG를 만든다.

    scale별로 쌓아 keypoints를 뽑는다.

  - keypoints에서 위치 스케일 방향을 토대로 keypoint vector를 만든다.

  - 각 keypoint위치에서 사각형 영역을 설정하고 16개 방향으로 나누고 8개의 방향으로 비교하여 matching한다.

 

FAST(detector) - binary point

- harris corner 보다 17배, SIFT보다 42배 빠르다.

- descriptor는 없지만 빨라서 많이쓰임

- Robust in fast motion + orientation change

- 이후 faster가 나와 FAST를 대체하였으며 통상 Faster를 FAST라고 부름

- 기본 알고리즘

  - pixcel의 주변 16개 pixcel중 연속된 10개 픽셀값이 나머지 6보다 밝거나 어두우면 keypoints로 판단

 

BRIEF(descriptor)

- Binary descrptor를 사용하여 Fast와 잘 맞음

 

FLANN Libray

- 데이터베이스에서 많은 descriptor들 중 방금 뽑은 descriptor가 어떤것이랑 가장 비슷한지 매칭해 준다.

- descriptor에 따라 적용 알고리즘이 다름

 

ORB

- SIFT의 정확도를 가지며, 실시간에 작동한다.

- Oriented Fast + Rotated BRIEF (fast의 scale variance, BRIEF의 rotated variance를 해결함) 

- scale invariance - Image pyramid

- Rotation invariance - rotated descriptor based on centroid angle

 

AKAZE

- SIFT와 ORB의 중간에 위치(정확도는 ORB보다 높고, 속도는 ORB보다 느린듯)

- 하드웨어 스펙이 남는다면 ORB에서 AKAZE로 변경하기도함

 

Learned features(deep learning 기반)

- 지도학습 기반으로 gt를 설정하는 것이 어렵다. (알고리즘으로 추출하면 최대성능은 그 알고리즘이 한계)

- detector model , descriptor model이 마찬가지로 있으며 통합된 model도 있다.

- SuperPoint - 성능 좋지만 license 있다.

- KeyNet - keypoint detector

- HardNet - descriptor extracor

- keynet, hardnet 조합을 많이쓰며 새로운 것을 이것에 비교를 많이함

 

 

'Devcorse > Visual SLAM(02.20~3.31)' 카테고리의 다른 글

FAST Corner paper  (0) 2023.02.23
Harris Corner paper  (0) 2023.02.23
카메라 센서 구조 및 좋은 카메라 고르기  (0) 2023.02.22
카메라 projection  (0) 2023.02.22
동차 좌표계  (0) 2023.02.22