2023.11.22 DAY46
SLAM 특징점에 관해 배웠다. 사실 강의 시간 자체는 길지 않은데 정리하면서 들으려니 시간이 너무 오래걸린다ㅠㅠ 이렇게 하는 방법이 맞는지 모르겠다... 오늘까지는 다시 공부에 적응하는 시간이라고 하고 내일부터는 강의 듣고, 이제 SLAM을 구현해볼 환경을 만들어야겠다. 환경을 설정하고 만드는게 가장 어렵다ㅠㅠ
그리고 지금 듀얼부팅을 사용하여 우분투를 사용하고 있는데 용량을 너무 적게 할당했는지 용량이 거의 다 차간다ㅠㅠ 주말에 윈도우 용량을 정리하고 우분투 용량을 늘리는 작업이 필요할 것 같다. 그냥 윈도우를 밀고 우분투를 깔았으면 좋았을까하는 생각이 들지만.. 언젠가 윈도우를 써야할지도 모르니까...ㅎㅎ
📝 배운 내용
line, edge 검출
- sobel : gradient operateor 기반
- hough transform : robust edge 검출
- canny edge detection : sobel의 edge 정보와 hysteresis thresholding(주변의 분류 결과에 따라 자신의 분류결과가 달라진다)을 통해 strong edge 검출
- line의 경우 시점이 변화하면 같은 line인지에 관한 연관성을 알기 어렵다 -> line이 아닌 다른 방법을 찾기 시작했다 (point를 사용하여 특징 찾는 연구)
feature detector
- point feature = keypoint(위치) + descriptor(특징 기술자)
- correspondence matcher : 두 개의 point feature가 같은 객체를 의미하는지에 대한 matching 정보
Moravec
- 픽셀을 기준으로 4방향(45도 간격)들로의 gradient를 비교하여 코너인지 아닌지 판단
harris corner
- 4방향이 아닌 x방향, y방향의 gradient 계산 -> 코너 방향성을 계산할 수 있는 matrix 만들었다
- eigan value 추출
- corner-ness score 계산하여 코너인지 아닌지 판단
SIFT
- 정확도 매우 좋다 but 무겁다
- scale-invariant(불변)와 rotation-invariant에 초점을 둔 local feature 기법
- descriptor도 제안
FAST
- keypoint만 찾는다
- 속도가 매우 빠르다
- 빠른 motion, rotation(orientation)에도 invariant하다
- 픽셀 주변 16개의 밝기값을 탐지하여 연속된 픽셀이 기준 픽셀보다 밝거나 어두우면 코너로 검출
BRIEF
- 빠르다
- binary descriptor 생성
- hamming distance로 비교가능
- rotation이 되면 잘 작동하지 않는다
FLANN library
- descriptor 종류와 dataset의 크기에 맞는 알고리즘을 자동으로 골라준다
ORB
- oriented FAST + Rotated BRIEF
- SIFT와 비슷한 정확도를 갖지만 실시간 작동이 가능하다
- FAST로 keypoint 추출 + BRIEF로 descriptor 계산
- FAST 할때 image pyramid 사용 -> scale invariant
- keypoint 주변의 gradient를 이용(밝기값과 거리를 곱한다)하여 코너의 방향성을 찾고 그 방향에 맞춰 BRIEF를 뽑는다 -> rotation invariant