CV 6. Feature Descriptors - waegari/waegari.github.io GitHub Wiki
์ฑํฐ 6: Descriptors (ํผ์ฒ ๋์คํฌ๋ฆฝํฐ)
1. ๊ฐ๋ ๋ฐ ๊ธฐ๋ณธ ์๋ฆฌ
- Descriptor๋? ์ด๋ฏธ์ง์์ ๊ฒ์ถ๋ Keypoint(Interest Point) ์ฃผ๋ณ์ ์๊ฐ์ ์ ๋ณด๋ฅผ ์์นํํ Feature Vector๋ก, ์ด๋ฏธ์ง ๋งค์นญ, ์ธ์, 3D ์ฌ๊ตฌ์ฑ ๋ฑ์์ ํต์ฌ ์ญํ ์ ํ๋ค. Feature Descriptor๋ โ์ด๋ฏธ์ง์ ์ง๋ฌธ(fingerprint)โ ์ญํ ์ ํ๋ฉฐ, ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง์์ ๊ฐ์ ํฌ์ธํธ์์ ์ ๋์ ์ผ๋ก ๋น๊ตํ ์ ์๋๋ก ํ๋ค.
2. Feature Descriptor์ ์๊ตฌ ์กฐ๊ฑด
-
Repetitiveness (๋ฐ๋ณต์ฑ)
- ์๋ก ๋ค๋ฅธ ์ด๋ฏธ์ง์์๋ ๊ฐ์ ํฌ์ธํธ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๊ฒ์ถํด์ผ ํ๋ค.
-
Invariance (๋ถ๋ณ์ฑ)
- Translation, Rotation, Scale, Affine, Noise, Blur ๋ฑ์ ๋ณํ์ ๋ํด ๊ฐ์ธํด์ผ ํ๋ค.
-
Locality (์ง์ญ์ฑ)
- ๊ฐ๋ฆผ(Occlusion), Clutter, ์กฐ๋ช ๋ณํ ๋ฑ ๊ตญ๋ถ์ ๋ณํ์ ์ ๊ฒฌ๋์ผ ํ๋ค.
-
Distinctiveness (๊ตฌ๋ณ์ฑ)
- ์ฃผ๋ณ ๊ตฌ์กฐ๊ฐ ์ถฉ๋ถํ ๋ ํนํด์ผ ํ๋ค(๋น์ทํ ๊ณณ๋ผ๋ฆฌ๋ ๊ตฌ๋ถ ๊ฐ๋ฅํด์ผ ํ๋ค).
-
Quantity (์๋์ฑ)
- ์ถฉ๋ถํ ๊ฐ์์ Keypoint๊ฐ ๊ฒ์ถ๋์ด์ผ ์ ์ฒด ์ด๋ฏธ์ง๋ฅผ ์ ๋ํํ ์ ์๋ค.
-
Efficiency (ํจ์จ์ฑ)
- ๊ณ์ฐ ๋ฐ ์ ์ฅ์ด ํจ์จ์ ์ด์ด์ผ ํ๋ค.
3. ์ฃผ์ Feature Descriptor ์ข ๋ฅ์ ์๋ ์๋ฆฌ
1) LBP (Local Binary Pattern)
-
์๋ฆฌ: 3x3 ์๋์ฐ ๋ด์์ ์ค์ฌ ํฝ์ ๊ณผ 8๊ฐ ์ด์ ํฝ์ ๊ฐ์ ๋น๊ต, ์ด์ ํฝ์ ์ด ์ค์ฌ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ผ๋ฉด 1, ์๋๋ฉด 0. โ 8์๋ฆฌ ์ด์ง์ ์์ฑ, ์ด๋ฅผ 10์ง์๋ก ๋ณํํ์ฌ ์ค์ฌ ์์น์ ์ ์ฅ.
-
์์:
$$ LBP(x_c, y_c) = \sum_{p=0}^{7} s(g_p - g_c) \cdot 2^p $$
$s(x) = 1$ if $x \geq 0$, else $0$
-
Uniform LBP: 0โ1 ์ ์ด๊ฐ 2๋ฒ ์ดํ์ธ ํจํด. ์์: 00000000, 11111111(์ ๋ํผ), 01010101(๋น์ ๋ํผ)
-
์ฅ์ : ๋น ๋ฅด๊ณ ๋จ์ํ๋ฉฐ ์กฐ๋ช ๋ณํ์ ๊ฐํจ
-
๋จ์ : ํฐ ์ค์ผ์ผ ๋ณํ๋ ํ์ ์ ์ฝํจ
2) SIFT (Scale-Invariant Feature Transform)
-
ํต์ฌ ํน์ง:
- Scale, Rotation ๋ถ๋ณ
- 128์ฐจ์ Feature Vector
-
์ฃผ์ ๊ณผ์ :
- Scale-space์์ ๊ทน๊ฐ(Extrema) ๊ฒ์ถ (Difference of Gaussian, DoG)
- Keypoint Localization
- Orientation Assignment (Gradient ๋ฐฉํฅ)
- Descriptor ์์ฑ (4x4 ์ , ๊ฐ ์ ๋ณ 8๋ฐฉํฅ Histogram โ ์ด 128์ฐจ์)
-
์์:
$$ D(x, y, \sigma) = L(x, y, k\sigma) - L(x, y, \sigma) $$
$$ m(x, y) = \sqrt{(L(x+1, y) - L(x-1, y))^2 + (L(x, y+1) - L(x, y-1))^2} $$
$$ \theta(x, y) = \arctan2(L(x, y+1) - L(x, y-1), L(x+1, y) - L(x-1, y)) $$
-
์ฅ์ : ๋ณํ์ ๊ฐํจ, ๋งค์นญ ์ฑ๋ฅ ์ฐ์
-
๋จ์ : ์ฐ์ฐ๋ ๋ง์, ํนํ ๋ฌธ์
3) SURF, GLOH, DAISY, BRISK, LATCH, LIFT ๋ฑ
-
SURF (Speeded-Up Robust Features): SIFT์ ์ ์ฌ, Box Filter ๋ฐ Integral Image๋ก ๊ณ์ฐ ํจ์จ ๊ทน๋ํ
-
GLOH, DAISY: SIFT ๊ตฌ์กฐ ํ์ฅ/๋ณํ. ๋ ๊ธธ๊ฑฐ๋ ๊ณต๊ฐ ๋ถํ ์ด ์ธ๋ถํ๋ ๋ฒกํฐ
-
BRISK, LATCH, LIFT: Binary Descriptor ๊ธฐ๋ฐ(0/1), ์๋ ๋น ๋ฆ, ๋์ฉ๋ ๋งค์นญ์์ ๊ฐ์
4. Descriptor ๋น๊ต/์ ๋ฆฌ ํ
Descriptor | ๋ํ์ ํน์ง | ์ฅ์ | ๋จ์ |
---|---|---|---|
LBP | 3x3 ์ด์งํจํด, Uniform ํจํด | ๊ณ์ฐ ๋น ๋ฆ, ์กฐ๋ช ๋ณํ์ ๊ฐํจ | ์ค์ผ์ผ/ํ์ ๋ณํ ์ฝํจ |
SIFT | Scale/Rotation ๋ถ๋ณ, 128D | ๋ณํ์ ๊ฐํจ, ๋งค์นญ ์ ํ | ๋๋ฆผ, ํนํ |
SURF | Box Filter, ๋น ๋ฅธ ์ฐ์ฐ | ์๋ ๋น ๋ฆ | ํนํ, ์ผ๋ถ ์ํฉ ์ฝํจ |
Binary๋ฅ | BRISK, LATCH ๋ฑ | ๋์ฉ๋์์ ๋น ๋ฆ | ์ ๋ณด ์์ค, ๋ฏผ๊ฐ์ฑ ์์ |
5. Descriptor Matching(๋งค์นญ) ๋ฐ ๊ฑฐ๋ฆฌ ๊ณ์ฐ
-
Euclidean Distance (์ค์ํ):
$$ d(\mathbf{f}1, \mathbf{f}2) = \sqrt{\sum{i=1}^{N} (f{1i} - f_{2i})^2} $$
-
Hamming Distance (Binary Descriptor):
- ๋ ๋ฒกํฐ ๊ฐ โ1์ ๊ฐ์โ ์ธ์ ๊ฑฐ๋ฆฌ ์ฐ์ถ
6. ์์ฃผ ๋์ค๋ ๊ณ์ฐ/์๊ธฐ ์์
(1) LBP ์ฝ๋ ๊ณ์ฐ ์์
- ์ค์ฌ ํฝ์ : 30, ์ด์ ๊ฐ: [35, 20, 28, 33, 32, 29, 40, 25]
- $s(g_p - g_c)$: [1, 0, 0, 1, 1, 0, 1, 0] โ 10011010(2์ง) โ 154(10์ง)
(2) SIFT 128์ฐจ์ ๊ตฌ์กฐ ์ ๋
- 4x4 ์ (16๊ฐ) ร ๊ฐ ์ ๋ง๋ค 8๋ฐฉํฅ = 128
7. ๊ฐ๊ด์ ์์: ํ๋ฆฐ ๊ฒ/๋ง๋ ๊ฒ ๋ชจ๋ ๊ณ ๋ฅด์์ค
-
๋ฌธ์ : ์๋ ์ค LBP(Local Binary Pattern)์ ๋ํ ์ค๋ช ์ผ๋ก ํ๋ฆฐ ๊ฒ์ ๋ชจ๋ ๊ณ ๋ฅด์์ค. โ ์ค์ฌ ํฝ์ ๊ณผ 8๊ฐ ์ด์ ํฝ์ ์ ๋น๊ตํ๋ค. โก ๊ฒฐ๊ณผ ์ด์ง์๋ 16๋นํธ๋ก ๊ตฌ์ฑ๋๋ค. โข Uniform LBP๋ 0โ1 ์ ์ด๊ฐ 2ํ ์ดํ์ธ ํจํด์ด๋ค. โฃ LBP๋ ํฐ ์ค์ผ์ผ ๋ณํ์๋ ๊ฐํ๋ค.
-
์ ๋ต: โก, โฃ (LBP๋ 8๋นํธ/์ค์ผ์ผ ๋ณํ์ ์ฝํจ)
8. ์ฃผ๊ด์ ์์: ์๋ ๋๋ก ์์ ํ์์ค
- โSIFT(Scale-Invariant Feature Transform)์ ์ฃผ์ ๋จ๊ณ์ ์ฅ๋จ์ ์ ์๋ ๋๋ก ์์ ํ์์ค.โ
- โDescriptor๊ฐ ๊ฐ์ถฐ์ผ ํ๋ ์ฃผ์ ์๊ตฌ ์กฐ๊ฑด์ ๋ํด ์ค๋ช ํ์์ค.โ
9. ํต์ฌ ์๊ธฐ/๋ฉ๋ชจ ํค์๋
- Feature Descriptor = ์ด๋ฏธ์ง์ ์ง๋ฌธ, Keypoint ์ฃผ๋ณ ์ ๋ณด โ ๋ฒกํฐ
- LBP, SIFT, SURF, BRISK, DAISY, LATCH, LIFT
- Repetitiveness, Invariance, Locality, Distinctiveness, Quantity, Efficiency
- LBP ์์, SIFT 128D, Uniform Pattern, Euclidean/Hamming Distance
- Matching = Distance ๊ณ์ฐ
โ ์ค์ ๋๋น ํ
- ๋ชจ๋ Descriptor์ ์ ์ยท์๊ตฌ์กฐ๊ฑดยท๋ํ์ ์์ยท์ฅ๋จ์ ยท์ค์ ์ฌ์ฉ ์ํฉ ์๊ธฐ
- ๊ณ์ฐ ๋ฌธ์ (LBP, Distance, SIFT ์ฐจ์ ๋ฑ) ์ฐ์ต
- โํธ๋ํฌ๋ํํธ vs ๋ฌ๋๊ธฐ๋ฐโ Descriptor ๋น๊ต ์ฃผ๊ด์๋ ์ค๋น