[CV] Edges and Corners

u_jinju·2021년 8월 12일
0

Computer Vision

목록 보기
1/4

Good visual feature의 조건은 무엇일까?

  1. Repeatability
    같은 이미지에 같은 사람이 다른 행동을 취하여도 같은 사람이라고 인식을 할 수 있어야 한다.
  2. Saliency
    원하는 위치에 feature가 존재해야한다.
  3. Locality
    이미지에서 작은 영역이여야 한다.
    (모든 영역을 다 feature라고 할 수 없기 때문에)

Aperture problem

이미지에서의 영역이 일정한 값을 가지고 있으면 움직임이 있더라도 별다른 정보를 얻을 수 없는 문제를 뜻한다.
ex. openCV 함수 중 optical flow()함수가 있는데 이 함수는 object의 움직임을 tracking 하는 함수로 많이 사용됨 이와 같이 현재 frame과 다음 frame의 pixel값으로 비교하여 문제를 해결하는 경우 일정한 값을 가지고 경우에는 정보를 얻을 수 없다는 것!

Feature Detection

이미지 내에서 intersting 한 part를 찾는 것을 의미

그렇다면 Interest Point dectection은 무엇일까?
1. 이미지 영역 내에서 잘 정의된 position이여야 한다.
2. rech information contents를 가지고 있어야 한다.
3. 이미지 내에서 consistent 해야하고 제어가능 해야한다.
4. scale이 기준이 되어야 한다.

intereset points 의 예시들

  • edges
  • corners
  • blobs
  • etc

Edge 란 무엇일까?

위 그림과 같이 한 방향에서 변화가 급격한 점을 말한다.
image는 pixel로 이루어져있는데 pixel의 값이 갑자기 확 커지거나 작아지는 구간을 의미

magnitude of gradient

gradient는 기울기, 증감, 변화도, 즉, 변화하는 정도를 나타낸다.

I=[gxgy][IxIy]\triangledown I =\begin{bmatrix}g_x\\g_y\end{bmatrix}\begin{bmatrix}\frac{\partial I}{\partial x}\\ \frac{\partial I}{\partial y}\end{bmatrix}

gradient의 계산 수식은 위와 같음

gxg_x는 수평방향의 변화를 의미하고, gyg_y는 수직방향으로 변화를 나타냄
(x,y)(x, y) 에서 수평방향, 수직방향으로 얼마나 변화했는지는 나타냄

M(x,y)=gx2+gy2M(x, y) = \sqrt{g_x^2+g_y^2} : gradient magnitude

α(x,y)=tan1\alpha(x, y)=tan^{-1}[gygx]\begin{bmatrix}\frac{g_y}{g_x}\end{bmatrix} :gradient 방향

Corner란 무엇일까?


코너는 두 edge의 intersection 이라 하며, 두 방향 이상에서 변화가 급격한 점을 말한다.

출처

edge img: https://sss20-02.tistory.com/29
corner img: https://bskyvision.com/668

0개의 댓글