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์˜ ์š”๊ตฌ ์กฐ๊ฑด

  1. Repetitiveness (๋ฐ˜๋ณต์„ฑ)

    • ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์—์„œ๋„ ๊ฐ™์€ ํฌ์ธํŠธ๋ฅผ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฒ€์ถœํ•ด์•ผ ํ•œ๋‹ค.
  2. Invariance (๋ถˆ๋ณ€์„ฑ)

    • Translation, Rotation, Scale, Affine, Noise, Blur ๋“ฑ์˜ ๋ณ€ํ™”์— ๋Œ€ํ•ด ๊ฐ•์ธํ•ด์•ผ ํ•œ๋‹ค.
  3. Locality (์ง€์—ญ์„ฑ)

    • ๊ฐ€๋ฆผ(Occlusion), Clutter, ์กฐ๋ช… ๋ณ€ํ™” ๋“ฑ ๊ตญ๋ถ€์  ๋ณ€ํ™”์— ์ž˜ ๊ฒฌ๋ŽŒ์•ผ ํ•œ๋‹ค.
  4. Distinctiveness (๊ตฌ๋ณ„์„ฑ)

    • ์ฃผ๋ณ€ ๊ตฌ์กฐ๊ฐ€ ์ถฉ๋ถ„ํžˆ ๋…ํŠนํ•ด์•ผ ํ•œ๋‹ค(๋น„์Šทํ•œ ๊ณณ๋ผ๋ฆฌ๋Š” ๊ตฌ๋ถ„ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค).
  5. Quantity (์ˆ˜๋Ÿ‰์„ฑ)

    • ์ถฉ๋ถ„ํ•œ ๊ฐœ์ˆ˜์˜ Keypoint๊ฐ€ ๊ฒ€์ถœ๋˜์–ด์•ผ ์ „์ฒด ์ด๋ฏธ์ง€๋ฅผ ์ž˜ ๋Œ€ํ‘œํ•  ์ˆ˜ ์žˆ๋‹ค.
  6. 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
  • ์ฃผ์š” ๊ณผ์ •:

    1. Scale-space์—์„œ ๊ทน๊ฐ’(Extrema) ๊ฒ€์ถœ (Difference of Gaussian, DoG)
    2. Keypoint Localization
    3. Orientation Assignment (Gradient ๋ฐฉํ–ฅ)
    4. 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 ๋น„๊ต ์ฃผ๊ด€์‹๋„ ์ค€๋น„