https://he-kate1130.tistory.com/150
[Computer Vision/OpenCV] 20. Feature Descriptor(1)
์ค๋์ Feature Descriptor๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ์๋์ง ํฐ ํ์์ ์์๋ณด๋๋กํ๋ค.Feature Descriptor๋ ์ด๋ฏธ์ง์ ํน์ง์ ์ ์์นํํ๋ ๋๊ตฌ๋ก, object detection, panorama matching ๋ถํฐ SLAM๊น์ง ๋ค์ํ
he-kate1130.tistory.com
์ด์ ๊ธ์์๋ Feature Descriptor๊ฐ ๋ฌด์์ธ์ง ์์๋ณด์๋ค.
์ค๋์ ๋ํ์ ์ Descriptor์ธ SIFT์ ๋ํด์ ์์๋ณด์.
0. ๋ฌธ์ ์ : Harris Corner Detector
์ด๋ฏธ์ง์์ ์ง์ญ์ ์ธ ํน์ง์ ์ ์ถ์ถํด๋ด๋ ๊ฒ์ ๋๋ค์์ ๋น์ ํ ์คํฌ์์ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ๊ธฐ์กด์ ๋ฐฐ์ ๋ ํน์ง์ ๊ฒ์ค ๋ฐฉ์ ์ค ํ๋๋ ์ฝ๋๋ฅผ ํคํฌ์ธํธ๋ก ๊ฒ์ถํ๋ Harris Corner Detector๊ฐ ์๋ค.
Harris Corner Detector ์๊ณ ๋ฆฌ์ฆ์ ์๋ ํฌ์คํ ์ ์์ฑ๋์ด์๋ค.
https://he-kate1130.tistory.com/149
[Computer Vision/OpenCV] 19. Corner Detection - Harris Corner Detection
์ง๋ ๊ธ์์๋ ์ด๋ฏธ์ง์์ ์ฃ์ง(Edge)๋ฅผ ๊ฒ์ถํ๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ค์ ๋ํด ์ดํด๋ณด์๋ค์ด๋ฒ ๊ธ์์๋ ๊ทธ๋ณด๋ค ํ ๋จ๊ณ ๋ ๋์๊ฐ, ์ฝ๋ ๊ฒ์ถ(Corner Detection)์ ๋ํด ์์๋ณด์ ์ฝ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ๊ฐ
he-kate1130.tistory.com

Harris Corner Detector๋ ์๋์ฐ๋ฅผ ์ ์ ์์น์์ ์์ง์์ ๋ ํ๊ฒ ํฝ์ ์ฃผ๋ณ์ ๋ณํ๋์ ์ธก์ ํ์ฌ ์ฝ๋๋ฅผ ๊ฒ์ถํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ์์ด๋์ด์ด๋ค.
์ด ๋ฐฉ์์ ์ฅ์ ์ ํฝ์ ์ฃผ๋ณ์ local information์ ๊ด์ฐฐํ๊ณ , ์๋์ฐ๋ฅผ ์ฌ๋ฌ๋ฑกํฅ์ผ๋ก ์ด๋ํ๋ฉฐ ๊ด์ฐฐํ๋ฏ๋ก rotation๊ณผ translation, intensity change์ Robustํ๋ค๋ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๊ฐ ๋ฐ๋ ๋๋ ์ฝ๋๋ฅผ ์ ๋๋ก ๊ฒ์ถํ์ง ๋ชปํ๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.

์์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์.
๊ธฐ์กด ์ฝ๋๋ก ๊ฒ์ถ๋์๋ ๋ถ๋ถ์ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๋ฅผ ์ค์ผ์ผ์ ํ์ ๋ Edge ๋ก ๊ฒ์ถ๋๊ฒ๋๋ค. ์ฝ๋๊ฒ์ถ์ ์ฌ์ฉํ๋ ์๋์ฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ณธ ์ด๋ฏธ์ง์์๋ ํน์ ์์ญ์ด ์ฝ๋๋ก ์ ๊ฒ์ถ๋์๋๋ผ๋,
๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ด๋ฏธ์ง๋ผ๋ ํฌ๊ธฐ(์ค์ผ์ผ)๋ฅผ ํค์ฐ๋ฉด ํด๋น ์์ญ์ด ๋ ์ด์ ์ฝ๋๋ก ์ธ์๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ Harris Detector์์ ์ฌ์ฉํ๋ ์๋์ฐ์ ํฌ๊ธฐ๋ ๊ณ ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฆ, ์ด๋ฏธ์ง๊ฐ ์ปค์ก๋๋ฐ๋ ๋ถ๊ตฌํ๊ณ ๋์ผํ ํฌ๊ธฐ์ ํํฐ๋ฅผ ์ฌ์ฉํ๋, ์๋์ ์ผ๋ก ๋ ๋์ ์์ญ์ ํ ๋ฒ์ ๋ฐ๋ผ๋ณด๊ฒ ๋์ด
์ด์ ์๋ ‘๊ธ๊ฒฉํ ๋ณํ’์๋ ํจํด์ด ์ด์ ๋ ์๋งํ ๋ณํ๋ก ๋๊ปด์ง๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์ฝ๋๋ก ๊ฒ์ถ๋๋ ๋ถ๋ถ์ด ์ค์ผ์ผ ์ ํ์๋ ์ฝ๋๋ก ๊ฒ์ถ๋๋๋ก ํ๊ธฐ ์ํด์๋ ์ปค๋์ ์ฌ์ด์ฆ ๋ํ ๊ทธ์ ๋ง์ถ์ด ์ปค์ ธ์ผ ํ ๊ฒ์ด๋ค.
Scale Controllable Kernel
์ค์ผ์ผ ๋ถ๋ณ์ ๊ฒ์ถ๊ธฐ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋, ์ปค๋์ด ์ด๋ฏธ์ง ๊ตฌ์กฐ์ ํฌ๊ธฐ์ ๋ง๊ฒ ์ ์ ํ ์กฐ์ ๋์ด์ผ ํ๋ค.
์ด๋ ๊ฒ ์ค์ผ์ผ์ ๋ฐ๋ผ์ ์ปค๋์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๊ฒ ํ๋ ๊ตฌ์กฐ๋ฅผ Scale-Controllable Kernel์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ผ ๋ ๋ค๋ฅธ ๋ฌธ์ ... O<-<
์ด๋ป๊ฒ Scale์ ๋ณ๊ฒฝํ ๊น? ์ด๋ฏธ์ง์ ์ค์ผ์ผ ๋ณํ๋ฅผ ์์ธกํด์ ๋ณ๊ฒฝํด์ผ ํ๋ค.

์ด ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก Blob Detection ๊ธฐ๋ฒ์ด๋ค.
1. ๋ธ๋กญ ๊ฒ์ถ: Laplacian of Gaussian


Edge Detection ํํธ์์ ๋ณธ ์ ์ด ์๋ LoG์ ๋ํด์ ๋ค์ ์ดํด๋ณด์.
LoG์ฐ์ฐ์ Gaussian filtering๊ณผ Laplacian Filtering์ ์์ฐจ๋ก ์ํํ ๊ฒ๊ณผ ๊ฐ๋ค.

Signal์ ํตํด์ LoG๊ฐ ์ ์ฉ๋๋ฉด ์ด๋ป๊ฒ ์๊ทธ๋์ด ๋ณํ๋์ง ์ดํด๋ณด์.
LoG๋ฅผ ์ฃ์ง์ ์ ์ฉํ๋ฉด ์๊ทน์ฑ์ด ์๋ Ripple ํํ์ ์๋ต์ด ๋ง๋ค์ด์ง๋ค. (์ผ์ชฝ plot๋ค)
์ฝ๋์ ์ ์ฉํ๊ฒ ๋๋ฉด Ripple์ด ํฉ์ณ์ ธ Blob ํํ์ extremum์ด ์๊ธด๋ค.
์ฆ, ์๊ทธ๋ง๊ฐ pulse์ width์ ๋งค์น๋๋ ์๊ฐ blob์ด ํ์ฑ๋๋ค.
์ด ํน์ฑ ๋๋ฌธ์ Blob์ด ํ์ฑ๋ ๋์ ์๊ทธ๋ง ๊ฐ์ ๊ด์ฐฐํ๋ฉด ์ด๋ฏธ์ง์ ์ค์ผ์ผ ์ ๋ณด๋ฅผ ์ถ์ ํ ์ ์๊ฒ ๋๋ค.
Scale Normalized Laplacian

๋ค๋ง LoG์ ์๊ทธ๋ง ๊ฐ์ด ์ปค์ง๋ฉด ์๋ต์ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ด๋ ค์์ง๋ฏ๋ก ์ ๊ทํ๋ฅผ ์ํํ์ฌ ์ฌ์ฉํ๋๋ก ํ๋ค.
Difference of Gaussian
LoG๋ฅผ ์ฌ์ฉํ๊ธฐ์๋ ์ฐ์ฐ๋์ด ๋ง์ผ๋ฏ๋ก DoG์ ๊ทผ์ฌ๋ฅผ ์ด์ฉํด ๊ณ์ฐํ๋ค.
๊ณ์ฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๋ค.
์๋ ์์์ฒ๋ผ ๊ธฐ์ค์ด ๋๋ ๊ฐ์ฐ์์์ ์๊ทธ๋ง ๊ฐ์ k๋ฐฐ ํ์ฌ ๋ ๋ค๋ฅธ ๊ฐ์ฐ์์์ ๊ตฌํ๊ณ , ๊ทธ ๋์ subsetํ๋ฉด ๋๋ค.
๊ฐ์ฐ์์์ ๋ฏธ๋ถํ ํ์ ์์ด ๋๊ฐ์ ๊ฐ์ฐ์์ ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค๋ (์์ฒญ๋)์ฅ์ ์ด ์๋ค


2. SIFT (Scale-Invariant Feature Transform)


SIFT์๊ณ ๋ฆฌ์ฆ์ ์์์ ์์๋ณธ Scale Space extrema ๋ฅผ ์ฐพ์ ์ด๋ฏธ์ง์ scale์ ๋ง๋ ํคํฌ์ธํธ๋ฅผ ์ฐพ์๋ด๊ณ ์ด๋ฅผ ๋ฐํ์ผ๋ก Dscriptor๋ฅผ ๋ง๋ ๋ค.
STEP 1) Scale - Space Extrema Detection
Interst point๋ค์ ํ๋ณด๋ค์ ์ฐพ์๋ด๋ ๋จ๊ณ์ด๋ค.
์ฒซ ๋ฒ์งธ ๋จ๊ณ์์๋ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ค์ํ ํด์๋๋ก ๋ค์ด์ํ๋งํ์ฌ ๋ค์ํ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ป๊ณ ,
๊ฐ ์ด๋ฏธ์ง์์ Blob์ด ํ์ฑ๋๋ ๋ถ๋ถ์ ์ฐพ์ Interest Point์ ํ๋ณด๋ก ํ๋ค.
๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ก ์งํ๋๋ค.
1. ์
๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฌ ํด์๋๋ก ๋ค์ด์ํ๋งํ์ฌ, ํฌ๊ธฐ ์ฐจ์ด๊ฐ ํฐ ๊ฐ์ฒด๋ ํ์ง ๊ฐ๋ฅํ๋๋ก ํ๋ค.
์ด๋ ๊ฒ ๋ค์ค ํด์๋๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ฅํ๋ธ๋ผ๊ณ ๋ถ๋ฅด๋ฉฐ, ๊ฐ ์ฅํ๋ธ๋ ํน์ ํด์๋๋ฅผ ๋ํํ๋ค.
์๋ฅผ ๋ค์ด, ์ฒซ ์ฅํ๋ธ๋ ์๋ณธ ์ด๋ฏธ์ง, ๋ ๋ฒ์งธ ์ฅํ๋ธ๋ 1/2 ํฌ๊ธฐ๋ก ์ถ์๋ ์ด๋ฏธ์ง, ์ธ ๋ฒ์งธ ์ฅํ๋ธ๋ 1/4 ํฌ๊ธฐ ์ด๋ฏธ์ง๊ฐ ๋๋ค.

2. ๊ฐ ์ฅํ๋ธ ์ด๋ฏธ์ง์ ๋ํด์๋ ๋ค์ ๋ค์ํ ์์ค์ ๊ฐ์ฐ์์ ์ปค๋์ ์ ์ฉํ๋ค.
์ด๋ Gaussian ์ปค๋์ ์ฌ๋ฌ ์ค์ผ์ผ์ ์๊ทธ๋ง๋ก ๋ณํ์ํค๋ฉฐ ํํฐ๋งํ๋ ์์ ์ผ๋ก, ์ด๋ ๊ฒ ์์ฑ๋ ์ผ๋ จ์ ์ด๋ฏธ์ง๋ค์ ๊ฐ์ฐ์์ ํผ๋ผ๋ฏธ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
ํ ์ฅํ๋ธ ๋ด์์๋ ์๋ณธ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ์งํ๋ฉด์ ์ ์ฐจ Gaussian ๋ธ๋ฌ ์ ๋๋ฅผ ๋์ธ ์ด๋ฏธ์ง๋ค์ด ์์ฑ๋๋ค.

3. ๊ฐ ์ฅํ๋ธ ๋ด ์ธ์ ํ Gaussian ์ด๋ฏธ์ง๋ค ๊ฐ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ๋ค.
์ฆ, DoG๋ฅผ ๊ณ์ฐํ์ฌ Blob์ ์ฐพ์ ์ ์๊ฒ ํ๋ค.
4. ์ด์ DoG ํผ๋ผ๋ฏธ๋์์ Local Extema๋ฅผ ์ฐพ์๋ธ๋ค.
์ฌ๊ธฐ์ 3์ฐจ์ Non-Maximum Suppression๋ฅผ ์ ์ฉํด, ํ์ฑ๋๋ Blob์ local extrema point๋ฅผ ์ฐพ๋๋ค.
์ด ์ง์ ๋ค์ด Interest Point์ ํ๋ณด๋ค์ด ๋๋ค.


STEP 2) KeyPoint Localization
์์ ๋จ๊ณ์์ DoG ํผ๋ผ๋ฏธ๋ ์์ ์ง์ญ ๊ทน๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํน์ง์ ํ๋ณด๋ค์ด ์ถ์ถ๋์๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ค ์ค ์ผ๋ถ๋ ๋ ธ์ด์ฆ ๊ฑฐ๋ ์ฃ์ง ์์ ์กด์ฌํ ์ ์๊ณ , ์ผ๋ถ๋ contrast๊ฐ ํฌ๊ธฐ ์์ ์ฝํ ํคํฌ์ธํธ์ผ ์ ์๋ค.
๋ฐ๋ผ์ ๋๋ฒ์งธ ๋จ๊ณ์์๋ ์ด๋ฌํ ๋ถํ์ํ๊ฑฐ๋ ์ ๋ขฐ๋๊ฐ ๋ฎ์ ํคํฌ์ธํธ๋ฅผ ์ ๊ฑฐํ๊ณ
๋๋จธ์ง ํคํฌ์ธํธ๋ค์ ์์น๋ฅผ ๋ณด๋ค ์ ๋ฐํ๊ฒ ์ถ์ ํ๋ ์์ ์ ์ํํ๋ค.
1. Sub pixel localization
์ฐ๋ฆฌ๋ ์์ ์คํ ์์ ํคํฌ์ธํธ์ locationd๋ฅด ์ป์ด์๋๋ฐ, ์ ํํ ์์น์ ๋ณด๋ก ์ ํ๋์ง ์์๋ค.
์ด์ ๋ ๋ ์ ํํ ์์น๋ฅผ ์์๋ผ ์ฐจ๋ก๋ค.
D๋ฅผ ์๊ณ ์์ผ๋ฏ๋ก ํ ์ผ๋ฌ ์ ๊ฐ๋ฅผ ํตํด์ X๋ฅผ ์์๋ผ ์ ์๋ค.

2. ์ด ์์น์์ Contrast ๊ฐ ๋ฎ์ ๊ฒฝ์ฐ(D๊ฐ ์๊ณ๊ฐ๋ณด๋ค ์์ ๊ฒฝ์ฐ)๋ฅผ ์ ์ธํ๋ค.

3. Edge Like Feature๋ฅผ ์ ๊ฑฐํ๋ค.
DoG๋ ์ฃ์ง ๊ตฌ์กฐ์ ๋ํด ๋์ ์๋ต์ ๋ณด์ด๋ ํน์ฑ์ด ์๋ค.
๊ทธ๋ฌ๋ ์ฃ์ง์์ ๊ฒ์ถ๋ ํคํฌ์ธํธ๋ ๋ฐฉํฅ์ฑ์ด ๋ถ์์ ํ๊ณ ๋ฐ๋ณต์ฑ์ด ๋ฎ๊ธฐ ๋๋ฌธ์ ์ ๊ฑฐ๋์ด์ผ ํ๋ค.
SIFT๋ Harris ์ฝ๋ ๊ฒ์ถ๊ธฐ์์์ ๋น์ทํ๊ฒ, ํค์์ ๊ธฐ๋ฐ์ principal curvature๋ถ์์ ์ํํ๋ค.

์ด๋ ๊ฒํด์ DoG๋ฅผ ์ด์ฉํด ํ๋ณด ํคํฌ์ธํธ๋ค์ ๋ฝ์๋ด๊ณ , edge-like&low contrast ํคํฌ์ธํธ๋ฅผ ํ๋ณด์์ ์ ์ธํ๋๊ฒ์ผ๋ก ํคํฌ์ธํธ ์ถ์ถ์ ์๋ฃํ๋ค.
STEP 3) Orientation Assignment
์ ์ ๋ ํคํฌ์ธํธ๊ฐ ์ถ์ถ๋ ํ, SIFT๋ ์ด๋ฏธ์ง์ ํ์ ๋ณํ์ ๋ํด ๋ถ๋ณ์ฑ์ ํ๋ณดํ๊ธฐ ์ํด ๊ฐ ํคํฌ์ธํธ์ ์ฃผ ๋ฐฉํฅ(primary orientation)์ ๋ถ์ฌํ๋ค.
์ด ๊ณผ์ ์ ๊ฐ ํน์ง์ ์ฃผ๋ณ์ local gradient๋ถํฌ๋ฅผ ๋ถ์ํจ์ผ๋ก์จ ์ด๋ฃจ์ด์ง๋ค.
1. ํคํฌ์ธํธ๋ฅผ ๊ธฐ์ค์ผ๋ก 16X16 ํฌ๊ธฐ์ ์๋์ฐ๋ฅผ ๊ด์ฐฐํ๋ค.
2. ์ด ์๋์ฐ ๋ด์์ ๊ฐ๊ฐ 2X2 ๋ธ๋ก์ ๋ณด๊ณ edge์ ๋ฐฉํฅ๊ณผ magnitude๋ฅผ ๊ณ์ฐํ๋ค. (edge orientation๊ณ์ฐ)

3. gradient์ magnitude๊ฐ threshold๋ณด๋ค ์์ ์ง์ ์ weak edge๋ถ๋ถ์ผ๋ก ๊ฐ์ฃผํ๊ณ throw outํ๋ค.
4. 8๊ฐ์ discrete ํ ๋ฐฉํฅ์ผ๋ก angle์ amgnitude ํ์คํ ๊ทธ๋จ์ ๋ง๋ ๋ค.
์ด๋ magnitude์ ๊ฐ์ฐ์์ ํํฐ๋ง์ ์ ์ฉํ์ฌ ๊ฑฐ๋ฆฌ์ ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ๋ค.
ํ์คํ ๊ทธ๋จ ๋ด์์ ๊ฐ์ฅ ํฐ ํผํฌ๋ฅผ ์ด๋ฃจ๋ ๋ฐฉํฅ์ ํด๋น ํคํฌ์ธํธ์ ์ฃผ ๋ฐฉํฅ์ผ๋ก ์ค์ ๋๋ค.
๊ทธ๋ฌ๋ ํ๋ ์ด์์ ๋ฐฉํฅ์ด ์ต๊ณ ํผํฌ์ 80% ์ด์์ ํด๋นํ๋ ๊ฒฝ์ฐ, ๊ฐ๊ฐ์ ๋ฐฉํฅ์ ๋ํด ๋ณ๋์ ํคํฌ์ธํธ๋ฅผ ์์ฑํ๋ค.
์ด๋ก ์ธํด ํ๋์ ์์น์์ ์์น์ ์ค์ผ์ผ์ ๋์ผํ์ง๋ง ๋ฐฉํฅ์ด ๋ค๋ฅธ ๋ณต์์ ํคํฌ์ธํธ๊ฐ ์์ฑ๋ ์ ์๋ค.
์ฌ๊ธฐ๊น์ง ํด์ ํคํฌ์ธํธ๋ ๋ค์์ฒ๋ผ ๋ํ๋ด์ด์ง๋ค.
Keypoint1 : [ X ์ขํ, Y ์ขํ, Scale factor, Octave, Orientation ] = [ 10, 20, 2.0, 3, 95 ]
Keypoint2 : [ X ์ขํ, Y ์ขํ, Scale factor, Octave, Orientation ] = [ 10, 20, 2.0, 3, 25]

STEP 4) Key Point Descriptor Construction
๊ฐ ํคํฌ์ธํธ์ ๋ํด ๋ฐฉํฅ์ด ํ ๋น๋๋ฉด, SIFT๋ ๊ทธ ์ฃผ๋ณ์ ์ง์ญ์ ์ด๋ฏธ์ง ๊ตฌ์กฐ๋ฅผ ์ ๋ํํ์ฌ Feature Descriptor๋ฅผ ์์ฑํ๋ค.
ํ๋์ ํคํฌ์ธํธ๋ 4×4×8=128 ์ฐจ์์ ๊ณ ์ ๊ธธ์ด ๋ฒกํฐ๋ก ํํ๋๋ค.
์ด๋ ๊ฒ Feature Descriptorํํ๋ก ๋ง๋ค๊ธฐ ์ํด์ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
1. ๋จผ์ ์ฐ๋ฆฌ์๊ฒ ํคํฌ์ธํธ์ ์์น, Scale, Octave ์ ๋ณด์ orientation ์ ๋ณด๊ฐ ์กด์ฌํ๋ค.
2. ์ด์ ํคํฌ์ธํธ๋ฅผ ๊ธฐ์ค์ผ๋ก 16X16 ์๋์ฐ๋ฅผ ์ค์ ํ๋ค.
3. ์ฌ๊ธฐ๋ฅผ ๋ค์ 4X4์ sub block์ผ๋ก ๋๋์ด gradient histogram์ ๋ง๋ ๋ค.
์ด๋ ์ค์ฌ์ ๊ธฐ์ค์ผ๋ก gaussian ๊ฐ์ค์น๋ฅผ ์ ์ฉํ๋ค.
์ด๋ ๊ฒ ๋๋ฉด ๊ฐ๊ฐ ์๋ธ ๋ธ๋ก๋ง๋ค 8๊ฐ์ ๋ฐฉํฅ ํ์คํ ๊ทธ๋จ ์ ๋ณด๊ฐ ์๊ธฐ๊ณ , ์ด๊ฒ์ด ์ด 4X4๊ฐ ์กด์ฌํ๋ฏ๋ก
ํ๋์ ํคํฌ์ธํธ์ ๋ํ Descriptor๋ 8X4X4 =128 ๊ฐ์ ์ ๋ณด๋ก ํํํ ์ ์๋ค.
์ฆ, 128 ์ฐจ์์ ๋ฒกํฐ๋ก ํํ์ด ๋๋ค.

ํ์ฒ๋ฆฌ๋ก,
๋ง๋ค์ด์ง ๋ฒกํฐ๋ L2 Normalize๋ฅผ ์ํํ์ฌ์ ์กฐ๋ช ์ ๋ฐ๊ธฐ์ ๋ํ ์ํฅ์ ์ค์ธ๋ค.
์ดํ์๋ keypoint orientation๊ฐ์ ๋นผ์ ํ์ ์ ์ํฅ์ ๋ฐ์ง ์๋, local ์์ญ์ ์๋์ ์ธ ๋ฒกํฐ๋ฅผ ํ์ฑํ๊ฒ ํ๋ค.


์ฐธ๊ณ :
https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
https://docs.opencv.org/4.x/da/df5/tutorial_py_sift_intro.html