-
[Perception] 3-1. Visual FeaturesCV & ML 2022. 3. 19. 11:40
오늘은 이미지에서 뽑아내는 특징점에 대해 알아보도록 하겠습니다.
영상에서 특징점은 왜 필요할까요?
1. localization과 reconstruction
2. 장소 인식 등 서로 다른 것들은 분류
어떤 것들이 특징점이 되야 할까?
어떻게 촬영되든 계속해서 특징점으로 인식(detect)되어야 -> detection invariance
다른 영상에 찍힌 같은 특징점은 이웃들의 상태를 묘사하는 정보에 의해서 제대로 짝지어 져야 함 -> descriptor invariance
대표적인 특징 추출 방법: SIFT
scale space 개념
위키피디아에는 이렇게 적혀있다.
2D 영상이 있을 때, 선형적인 scale-space은 2D gaussian filter을 이용하여 convolution 한 신호들의 집합으로 표현할 수 있다. 밑에 그림은 t(가우시안의 분산)에 따른 영상의 scale-space를 나타낸 그림이다.
t에 따른 scale-space 이 때 신호는 normalize한다. 그 이유는 laplacian 응답 신호가 사라지지 않도록 하기 위함이다.
분산 값이 서로 다른 가우시안 블러링 된 이미지들을 서로 빼서 Difference of Gaussian(DoG) 영상들을 생성한다.
SIFT 로 keypoint 찾기
우리는 앞서서 scale space에 대해 배웠고, 이 scale space로 DoG를 계산하는 방법도 배웠습니다.
이제는 Laplacian of Gaussian을 생성하여 scale invariant 한 keypoint를 찾는 방법에 대해 배워보겠습니다.
영상에 한 점을 뽑아 같은 scale에서 8개의 이웃점들과 비교, 현 scale보다 한단계 coarser, finer 한 scale-space에서 9개의 이웃점과 비교하여 local extrema인 것은 가능성있는 keypoint라고 봅니다.
Keypoint Descriptor
rotation-invariant 한 특징을 찾기 위해서는 먼저 이웃들과의 gradient를 계산한다. 영상을 16x16 칸으로 나눠 각 칸의 gradient을 계산하여 360도를 표현하기 위한 36 bin에 맞는 방향을 선택한다. 그런 다음 4x4 로 histogram을 다시 계산한 후에 가장 dominant한 gradient를 가진 방향을 일정 방향 (예를 들면 벡터를 x축 방향으로 바꾸기)하게 나열하면 모든 특징을 rotation invariant하게 나타낼 수 있다.
다음은 SIFT를 사용하여 뽑힌 keypoint와 descriptor 들 모습이다.
SIFT를 사용하여 추출된 keypoint와 descriptor 참고한 블로그
https://medium.com/data-breach/introduction-to-sift-scale-invariant-feature-transform-65d7f3a72d40
'CV & ML' 카테고리의 다른 글
Undefined Symbols (vlfeat 오류) (0) 2022.03.23 [Perception] 3-2 Singular Value Decomposition (0) 2022.03.19 [Perception] 2-2. Compute Projective Transformations (0) 2021.12.14 [Perception] 1-3. 소실점(Vanishing Points) (0) 2021.12.14 [Perception] 1-2. Single View Geometry (0) 2021.12.09