Keypoint ?
Keypoint(ํน์ง์ )๋ ๋ฌผ์ฒด์ ๋ชจ์, ํฌ๊ธฐ, ์์น๊ฐ ๋ณํด๋ ์ฝ๊ฒ ์๋ณ์ด ๊ฐ๋ฅํ ์์น์ด๊ณ ์นด๋ฉ๋ผ์ ์์ , ์กฐ๋ช ์ด ์ด ๋ณํด๋ ์ด๋ฏธ์ง์์ ์ฝ๊ฒ ์ฐพ์ ์ ์๋ ์์น๋ฅผ ๋ปํ๋ค. ์ด๋ฌํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์น๋ ๋๋ถ๋ถ corner point์ด๊ณ ๋๋ถ๋ถ์ keypoint ์ถ์ถ ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์ด๋ฌํ ์ฝ๋๊ฒ์ถ์ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์๋ค.
* ์ฝ๋๊ฐ ์๋ ๋ฌผ์ฒด์ ๋ด๋ถ ๋๋ ๋ฐฐ๊ฒฝ์ด๋ฉด ๊ทธ ์ฃผ๋ณ๊ณผ ํน์ง์ด ๋น์ทํ๊ธฐ ๋๋ฌธ์ keypoint์ ์กฐ๊ฑด์ ๋ง์กฑํ ์ ์๋ค.
๋๋ฌธ์ ์์์์ keypoint๋ฅผ ์ถ์ถํ๋ฉด ์๋ก ๋ค๋ฅธ ์์ ์ ์์์ ๋งค์นญํ๊ฑฐ๋ ํน์ ๋ฌผ์ฒด๋ฅผ ์ถ์ ํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ค.
Descriptor ?
Keypoint๋ ์ด๋ฏธ์ง์์์ ํน์ง์ด ๋๋ ์ขํ๋ฅผ ์๋ฏธํ๊ณ descriptor๋ ํด๋น keypoint์์ ์ถ์ถํ local ์ด๋ฏธ์ง ํน์ง ์ ๋ณด์ด๋ค. ๋ํ์ ์ธ local invariant descriptor๋ก๋ SIFT, SURF, ORB ๋ฑ์ด ์๊ณ descriptor ๊ณ์ฐ์ ์ํด์๋ ์ฐ์ keypoint๋ฅผ ์ถ์ถํด์ผ ํ๋ค.
Harris Corner
Harris Corner๋ ์ฝ๋ ๋ถ๋ถ์ ์ฐพ๋ descriptor๋ก ํํ์ด๋, ํ์ ์ invariant ํ๊ณ affine ๋ณํ, ์กฐ๋ช ๋ณํ์๋ ์ด๋์ ๋ robust ํ์ง๋ง ์์์ scale ๋ณํ์ ์ํฅ์ ๋ฐ๋๋ค๋ ๋จ์ ์ด ์๋ค.
Scale Invariant Feature Transform (SIFT)
SIFT๋ Harris corner์ scale ๋ณํ์ ๋ฏผ๊ฐํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Difference of Gaussian(DoG)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก scale ์ถ์ผ๋ก๋ ์ฝ๋์ฑ์ด extrema์ธ ์ ์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ฆ SIFT๋ ์์์ scale์๋ invariant ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
SIFT feature ์ถ์ถ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
- Scale space ์์ฑ
- Difference of Gaussian (DoG) ์ฐ์ฐ
- Keypoint ์ถ์ถ
- Optimal keypoint ์ ํ
- Keypoint ๋ฐฉํฅ ํ ๋น
- SIFT ํน์ง ์ถ์ถ
1. Scale-space ์์ฑ
- ์ฐ์ , ๋ค์ํ scale์ ํน์ง์ ์ถ์ถํ๊ธฐ์ํด ์ ๋ ฅ ์ด๋ฏธ์ง๋ก image pyramid๋ฅผ ์์ฑ
- ๊ฐ ์์ฑ๋ ์ด๋ฏธ์ง๋ค์ Octave1~4 ๋ก ํ๊ธฐ
2. Difference of Gaussian (DoG) ์ฐ์ฐ
- Harris ์๋ ๋ฌ๋ฆฌ Laplacian ํจ์๋ฅผ ์ด์ฉํ๋๋ฐ, ์ด๋ ์ด๋ฏธ์ง ํฝ์ ๊ฐ์ 2์ฐจ ๋ฏธ๋ถ๊ฐ์ด๋ค.
- ๋๋ฌธ์ ์์์ ๋ฐ๊ธฐ ๋ณํ๊ฐ ์ผ์ ํ ๊ณณ์์๋ 0์ ๊ฐ๊น์ด ๊ฐ์ด ๋์ค๊ณ ์ฝ๋ ๋ถ๋ถ๊ณผ ๊ฐ์ด ๋ฐ๊ธฐ ๋ณํ๊ฐ ๊ธ๊ฒฉํ ๊ณณ์์๋ ๋์ ๊ฐ์ด ์ถ๋ ฅ๋จ
- ์ค์ implementation์์๋ ์๋ ๋ฌธ์ ๋๋ฌธ์ laplacian์ ์ง์ ๊ณ์ฐํ์ง ์๊ณ DoG๋ฅผ ์ด์ฉํ์ฌ scale๋ณ laplacian์ ๊ทผ์ฌํ์ฌ ์ฌ์ฉ
- DoG๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๊ฐ์ฐ์์ ํํฐ๋ฅผ ์ ์ง์ ์ผ๋ก(์๊ทธ๋ง๊ฐ์ด ์ ์ ์ปค์ง๋) ์ ์ฉํ์ฌ blur์ํจ ์ด๋ฏธ์ง ๋ค์์ ์ฐ์์ ์ธ ์ด๋ฏธ์ง๋ค๊ฐ์ ์ฐจ(subtraction)์ด๋ค.
3. Keypoint ์ถ์ถ
- DoG ์ด๋ฏธ์ง๋ค์์ keypoint ๋ค์ ์ฐพ๊ธฐ ์ํด DoG ์ด๋ฏธ์ง๋ค์์ ๊ทน๋๊ฐ, ๊ทน์๊ฐ์ ๋๋ต์ ์ธ ์์น๋ฅผ ์ฐพ๋๋ค
- ํ ํฝ์ ์์ ๊ทน๋/์๊ฐ์ ๊ฒฐ์ ํ๊ธฐ ์ํด์๋ ๋์ผํ octave ๋ด์ ์ธ์ฅ์ DoG ์ด๋ฏธ์ง์์ ์ฃผ๋ณ 26๊ฐ์ ํฝ์ ๊ฐ์ ๊ฒ์ฌํ์ฌ ์ฒดํฌํ๋ ํฝ์ (์ค๊ฐ)์ด ์ฃผ๋ณ ํฝ์ ๊ฐ ์ค์ ๊ฐ์ฅ ์๊ฑฐ๋ ํด ๊ฒฝ์ฐ์ keypoint๋ก ์ ํ
- ๋ชจ๋ octave์์ ๋์ผํ ๊ณผ์ ์ด ์ํ๋๊ณ ๊ฐ octave ๋ณ ์ด๋ฏธ์ง ์ฌ์ด์ฆ๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ขํ๊ณ์๋ ์ฐจ์ด๊ฐ ๋ฐ์
4. Optimal keypoint ์ ํ
- keypoint๋ค์ ์ ํํ ์์น๋ฅผ ํ ์ผ๋ฌ ์ ๊ฐ๋ฅผ ์ด์ฉํ์ฌ ์ฐพ์
- ํ์ฉ๊ฐ์น๊ฐ ๋จ์ด์ง๋ (์ฝํธ๋ผ์คํธ๊ฐ ๋ฎ๊ฑฐ๋, ์ฃ์ง ์์ ์กด์ฌํ๋) keypoint ๋ค์ ์ ๊ฑฐํ๋ ํ์ฒ๋ฆฌ ๊ณผ์ ์คํ
5. Keypoint ๋ฐฉํฅ ํ ๋น
- ์ ๋จ๊ณ๊น์ง ์งํ๋ keypoint ๋ค์ scale invariance๋ฅผ ๊ฐ์ง๋ค
- keypoint ๋ค์ orientation(๋ฐฉํฅ)์ ํ ๋นํ์ฌ rotation invariance๋ฅผ ๋ง์กฑ์ํด
- ๊ฐ keypoint ์ฃผ๋ณ์ ๊ทธ๋ ๋์ธํธ ๋ฐฉํฅ๊ณผ ํฌ๊ธฐ๋ฅผ ๋ชจ์ ๊ฐ์ฅ ๋๋๋ฌ์ง๋ ๋ฐฉํฅ์ ์ฐพ์์ keypoint์ ๋ฐฉํฅ์ผ๋ก ํ ๋น
- Keypoint ์ฃผ๋ณ์ ์๋์ฐ๋ฅผ ๋ง๋ค์ด keypoint์ scale๊ฐ์ผ๋ก ๊ฐ์ฐ์์ ๋ธ๋ฌ๋ง
- ์ ์์ผ๋ก magnitude์ orientation์ ๊ณ์ฐ
- ๊ทธ๋ ๋์ธํธ์ magnitude์๋ ๊ฐ์ฐ์์ ํจ์๋ก ๊ฐ์ค์น๋ฅผ ๋ถ์ฌํ์ฌ keypoint์ ๊ฐ๊น์ธ์๋ก ์ข ๋ ํฐ ๊ฐ์ ๊ฐ์ง๋๋ก
- Keypoint์ ๋ฐฉํฅ์ ํ ๋นํ๊ธฐ ์ํด 360๋์ ๋ฐฉํฅ์ 10๋์ฉ ์๋ผ 36๊ฐ์ bin์ ๊ฐ์ง๋ ํ์คํ ๊ทธ๋จ์ ์์ฑ
- ์๋์ฐ ๋ด์ ๋ชจ๋ ํฝ์ ์์ ๊ทธ๋ ๋์ธํธ ๋ฐฉํฅ ๊ฐ์ bin์ ์ฑ์์ ํ์คํ ๊ทธ๋จ์ ์์ฑํ๊ณ ๊ฐ์ฅ ๋์ bin์ ๋ฐฉํฅ์ด keypoint์ ๋ฐฉํฅ์ผ๋ก ํ ๋น
- ๊ฐ์ฅ ๋์ bin์ 80% ์ด์์ ์์น๋ฅผ ๊ฐ๋ bin์ด ์์ผ๋ฉด ๊ทธ ๋ฐฉํฅ๋ keypoint์ ๋ฐฉํฅ์ผ๋ก ์ ํ
6. SIFT ํน์ง ์ถ์ถ
- ์ด์ keypoint ๋ค์ ์์น, ์ค์ผ์ผ, ๋ฐฉํฅ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ค์ผ์ผ๊ณผ ํ์ ์ invariant
- ์ด๋ฌํ keypoint๋ค์ ์๋ณํ๊ธฐ ์ํด keypoint ํน์ง์ 128๊ฐ์ ์ซ์๋ก(128 dimension) ํํ
- ์ด๋ฅผ ์ํด keypoint ์ฃผ๋ณ 16x16 ์ฌ์ด์ฆ์ ์๋์ฐ๋ฅผ ์ ์ฉํ๊ณ ์ด ์๋์ฐ๋ 4x4์ sub-window๋ก ๊ตฌ์ฑ
- 16๊ฐ์ sub-window์ ๊ทธ๋ ๋์ธํธ ํฌ๊ธฐ์ ๋ฐฉํฅ์ ๊ณ์ฐํ๊ณ ์์ ๋ฐฉ๋ฒ๊ณผ ์ ์ฌํ๊ฒ ํ์คํธ๊ทธ๋จํํ๋๋ฐ bin์ 8๊ฐ๋ง ์ธํ
- 16๊ฐ sub-window๋ ๊ฐ๊ฐ ํ์คํ ๊ทธ๋จ์ ๊ฐ์ง๊ฒ ๋๊ณ 16*8 =128 ๊ฐ์ feature vector๋ฅผ ์ป๋๋ฐ ์ด feature vector๋ ๋ฌผ์ฒด๊ฐ ํ์ ํ๋ฉด ๋ชจ๋ ๊ทธ๋ ๋์ธํธ ๋ฐฉํฅ์ด ๋ฐ๋๊ฒ ๋๋ฏ๋ก, keypoint์ ๋ฐฉํฅ์ 16๊ฐ์ ์๋์ฐ ๋ฐฉํฅ์์ ๋บ๋ค
- ์ด๋ฌํ ๋ฐฉ๋ฒ์ 16๊ฐ์ ์๋์ฐ ๋ฐฉํฅ์ keypoint ๋ฐฉํฅ์ ์๋์ ์ด๋๋ก ๋ง๋ค์ด ํ์ ์์กด์ฑ์ ํด๊ฒฐํด ์ค
- ๋ง์ง๋ง์ผ๋ก ๋ฐ๊ธฐ ์์กด์ฑ์ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ทํ๋ฅผ ํด์ฃผ๋ฉด SIFT feature(descriptor)๊ฐ ๋ง๋ค์ด์ง๋ค.
- SIFT๋ก ์ด๋ฏธ์ง ๋งค์นญ์ ํ๊ธฐ ์ํด์๋ ๋ ์ด๋ฏธ์ง์์ keypoint ๋ค์ ์ฐพ๊ณ feature์ ์ฐจ์ด๊ฐ ๊ฐ์ฅ ์ ์ ๊ณณ์ ๋งค์นญํ๋ฉด ๋๋ค