학습 내용
1. Corner Detection 하는법
2. Harris Corner
1. Corner Detection 하는법
일반적인 Corner Detection IDEA
(위, 아래, 좌, 우) 어느 방향으로든 움직였을 때 Sum of Squared Difference(아래 그림의 네모 박스 내부 픽셀 합의 변화) 가 가장 작은 녀석 "마저" Threshold를 넘으면 Corner다!
즉, 모든 방향으로의 변화가 크면 코너다!
2. Harris Corner
용어정리
- textureless : 픽셀변화가 눈에띄지 않아 '특징점(엣지)'이 없다.
Harris Corner도 위의 Corner Detection IDEA랑 동일.
이를, 아래에서는 수식으로 좀더 복잡하게 설명
- I(x,y)는 FDG를 image에 컨볼루션 하면 나오는 "gradient"를 의미한다.
- W는 ROI(Region of Interest).
- 테일러급수를 이용해서 정리했더니, x, y를 분리하여 행렬형태로 나타낼 수 있게 되었다.
- 픽셀값들이 타원형태로 분포한다고 가정했을 때(일반적으로 타원 형태다), 단축과 장축이 있다. 단축과 장축의 크기가 eigen value이다.
- 이 두 값 모두 일정 Threshold 넘어가면( 즉, 크면! ) corner point라고 말해도 되겠다는게 harris의 방식
- 장축과 단축은 행렬의 (1,1), (2,2) 에 나타난다(N으로 나누면 '분산'이 된다)
- 단, (1,2)와 (2,1)은 0이어야 한다.
- 0이 아닌경우는, x축, y축에 평행하지 않고, 회전한 경우 -> 다시 회전시켜 diagonal matrix만들어줘야함
(만드는법 : 선형대수)
- 그렇다면, Threshold 설정은 어떤방식으로 해야하나? (아래에 있음)
- 람다1, 람다2가 앞서 x^2, y^2이다.
- R은 corner인지 아닌지 threshold랑 비교되는 값.
- 복잡하게 짜여져있는데, Kanade-Tomasi라는 사람은 그냥, eigen value중에 작은거로 보면 된다고 했다. 그 이유는, 작은값마저 Threshold 넘으면 큰값도 넘을것이기 때문이고, 이렇게 했더니 잘 되더란다..
Harris Corner 구하는 알고리즘 정리
- FDG를 통해 I(x,y)를 만든다. (Gradient 변화 map)
=> 걍 미분하면 되지 왜 Gaussian 적용하냐? -> 영상의 high frequency noise를 없애줘야 미분했을 때 급격한 변화가 일어나는 부분을 제대로 검출할 수 있다. (12강. Edge Detection 중 3. Noise가 있을떄 Edge Detection하는법)
- Corner점으로 판별된 픽셀에 weight를 1을 주고, 주변 일정 범위 픽셀들에 weight를 조금씩 준다(Gaussian weight : 중심 픽셀로부터 떨어진 거리만큼 가우시안 분포처럼 weight를 주는 방법)
- weight가 점점 쌓이게 되면, Local maxima가 나타날텐데, 픽셀값이 비슷비슷한 점들이 뭉쳐있다. Non-maxima suppression(젤 큰놈 찾는법)하게되면 한 점이 나오고, 그 점이 Corner다! (Non-maxima suppression으로 알수있다)
(13강 Canny Edge Detection 중 2. Non-maxima suppression)
출처
'Computer Vision' 카테고리의 다른 글
16. Generalized Hough Transform (0) | 2021.02.27 |
---|---|
15. Hough Transform Circle (0) | 2021.02.07 |
13. Canny Edge Detection (Bilinear Interpolation) (0) | 2021.01.22 |
12. Edge Detection (Discrete 환경, Noise 환경) (0) | 2021.01.22 |
11. Fourier Transform (1) | 2021.01.13 |
댓글