[1. Octave]

1. 원본 이미지 2배 확대한 이미지에 점진적으로 블러(octave 1)

2. 원본이미지를 점진적으로 블러(Oct.2)

3. 원본이미지를 반으로 축소시킨 이미지에 점진적으로 블러(Oct.3)

4. 또 반으로 축소시킨 후 이미지에 점진적으로 블러(Oct.4)

 

-> 원본 이미지를 일단 2배하는 이유

: DoG이미지를 만들때 같은 옥타브 내에서 인접한 2개의 블러 이미지를 활용해서 만들고, 또 그렇게 생성된 DoG이미지들 중에서 인접한 세 개의 DoG이미지를 활용해서 keypoint를 찾기 때문

 

 

[2. DoG]

octave들을 구한 이후 DoG

 

(모든 octave에서) 전 단계에서 얻은 같은 옥타브 내에서 인접한 두 개의 블러 이미지들끼리 빼주면 됨

-> 결과적으로 4개씩 16장의 DoG를 얻음

 

[3. keypoints]

한 픽셀에서의 극대값, 극소값을 결정할 때에는 동일한 octave내의 세 장의 DoG이미지가 필요

 

지금 체크할 픽셀 주변의 8개 픽셀, scale이 한 단계씩 다른 위 아래 두 DoG이미지에서 가까운 9개 픽셀

-> 총 26개 픽셀 검사

 

체크하는 픽셀의 값이 주변 26개의 픽셀값 중에 가장 작거나 가장 클 때 key point로 인정

 

 

=> 두 장의 극값 이미지를 얻게 됨(4장의 DoG이미지로)

 

4. keypoint 선별

1) 낮은 contrast 제거 -> threshold두기

2) edge위에 존재하는 것들 제거 -> 노이즈를 엣지로 찾아낼 가능성 존재, 코너점들만을 keypoint로 남겨서 안전하게..

=> 수직, 수평 gradient계산 - 모든 방향으로 변화가 크면 코너

=> Hessian Matrix사용

 

=> scale invariance를 만족

 

5. keypoint에 방향 할당

=> rotation invariance를 위해

각 keypoint주변의 gradient방향과 크기를 모으기 -> 가장 두드러지는 방향을 찾아내어 keypoint의 방향으로 할당

=> keypoint 주변에 윈도우를 만들어준 다음 가우시안 블러링 (scale값으로 가우시안 블러링)

 

 

'공부일지 > Computer Vision & Image Processing' 카테고리의 다른 글

Tensorflow in Practice 1, Computer Vision  (0) 2020.06.21
GAN  (0) 2020.06.02
OpenCV, visual studio에서 시작  (0) 2020.05.28
scale  (0) 2020.01.28
OpenCV 정리하기(1)_Finger Count  (0) 2019.10.16

+ Recent posts