[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 |