3 minute read

[Blog]

๋ณธ ํฌ์ŠคํŠธ๋Š” ์œ„ ๋ธ”๋กœ๊ทธ ๋‚ด์šฉ์„ ์ฐธ์กฐํ•˜์—ฌ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค.

RANSAC์˜ ์žฅ๋‹จ์ 

โ‘  RANSAC์˜ ๊ฐ€์žฅ ํฐ ์žฅ์ ์€ outlier์— ๊ฐ•๊ฑดํ•œ ๋ชจ๋ธ์ด๋ผ๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์ด ์žฅ์ ์ด RANSAC์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ outlier๊ฐ€ ์–ด๋Š ์ •๋„ ์„ž์—ฌ์žˆ์–ด๋„ ๊ทธ๊ฒƒ๋“ค์„ ๋ฌด์‹œํ•˜๊ณ  ๋ชจ๋ธ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ‘ก RANSAC์€ outlier์— ๊ฐ•๊ฑดํ•œ ๋ชจ๋ธ์„ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. inlier์˜ ๊ฐฏ์ˆ˜๋งŒ ์„ธ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„๋„ ์‰ฝ๊ณ  ์–ด๋– ํ•œ ๋ชจ๋ธ์ด๋ผ๋„ ์ ์šฉํ•˜๊ธฐ๋„ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด โ‘  RANSAC์€ ๋žœ๋ค ์ƒ˜ํ”Œ์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜๋ฏ€๋กœ Non-deterministicํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์…‹์„ ์ด์šฉํ•˜์—ฌ ๋ชจ๋ธ๋งํ•˜๋”๋ผ๋„ ๋งค๋ฒˆ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ ์€ ๊ด€์ ์— ๋”ฐ๋ผ์„œ RANSAC์˜ ์žฅ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๊ณ  ๋‹จ์ ์ด ๋  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ชจ๋ธ์˜ ์žฌํ˜„์„ฑ ๊ด€์ ์—์„œ๋Š” ๋‹จ์ ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘๋ฒˆ์งธ ๋‹จ์ ์€ RANSAC์˜ ๊ฐ€์žฅ ์น˜๋ช…์ ์ธ ๋‹จ์ ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ outlier๊ฐ€ ๋…ธ์ด์ฆˆ ์ฒ˜๋Ÿผ ์ƒ๊ธฐ์ง€ ์•Š๊ณ  ํŠน์ • ๋ถ„ํฌ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉด ๋ชจ๋ธ์ด outlier๋ฅผ fitting ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์…‹์„ ๋ฏธ๋ฆฌ ํ™•์ธํ•˜๊ณ  outlier๊ฐ€ ์–ผ๋งŒํผ ์žˆ๋Š” ์ง€์™€ outlier๊ฐ€ ํŠน์ • ํŒจํ„ด ๋ฐ ๋ถ„ํฌ๋ฅผ ๊ฐ€์ง€๋Š” ์ง€ ์‚ฌ์ „์— ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ํŠน์ • ๋ถ„ํฌ๋ฅผ ๊ฐ€์ง„๋‹ค๋ฉด ์˜คํžˆ๋ ค ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ outlier๋ฅผ ์‚ฌ์ „์— ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ๋„ ์ข‹์€ ์ ‘๊ทผ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ RANSAC์€ threshold ํŒŒ๋ผ๋ฏธํ„ฐ์— ํฐ ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. threshold๋ฅผ ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋ธ์ด ์•ˆ์ •์ ์œผ๋กœ fitting์ด ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”์— ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด threshold๋ฅผ ํฌ๊ฒŒ ์žก์œผ๋ฉด outlier๊นŒ์ง€ inlier๋กœ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ชจ๋ธ์ด ์ •์ƒ์ ์œผ๋กœ fittingํ•  ์ˆ˜ ์—†๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ inlier์˜ ๋ถ„ํฌ๊ฐ€ ๊ณ„์† ๋ณ€ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด threshold ๊ธฐ์ค€ ๋˜ํ•œ adaptiveํ•˜๊ฒŒ ๋ณ€ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๊ฒƒ๋“ค์„ ๋ฐ˜์˜ํ•˜์—ฌ threshold๋ฅผ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด RANSAC์˜ ์ฃผ์š” ๋‹จ์  ์ค‘์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ RANSAC์€ Loss๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” L1, L2 Loss์™€๋Š” ๋‹ค๋ฅด๊ฒŒ Loss๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ fitting์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋™์ž‘ ๋ฐฉ์‹์ด ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์—ฐ๊ณ„๋˜์–ด ํ•œ๋ฒˆ์— Loss๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” pipeline์— ์—ฐ๊ฒฐ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค๋Š” ์ ์ด ๋‹จ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋จธ์‹ ๋Ÿฌ๋‹, ๋”ฅ๋Ÿฌ๋‹ ๋ฐฉ์‹์˜ ํ•™์Šต ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ pipeline์œผ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ํ•œ๋ฒˆ์— ์ „์ฒด pipeline์„ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์–ด์„œ ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Computer Vision์—์„œ์˜ RANSAC ํ™œ์šฉ

์ปดํ“จํ„ฐ ๋น„์ „์—์„œ RANSAC์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋Š” ์œ ์‚ฌํ•œ 2๊ฐœ์˜ ์ด๋ฏธ์ง€์—์„œ ๊ฐ™์€ ์œ„์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ ๋“ค์„ ์ด์šฉํ•˜์—ฌ homography H ํ–‰๋ ฌ์„ ๊ตฌํ•˜๊ฑฐ๋‚˜ fundamental matrix ๋“ฑ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์— ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ฐ๊ฐ์˜ ์ด๋ฏธ์ง€์—์„œ ๊ฐ™์€ ์œ„์น˜์˜ ์ ์ธ Feature point๋ฅผ ์ฐพ๊ณ  ์–ด๋–ค ์ ์ด ๊ฐ™์€ ์ ์ธ ์ง€ ๋งค์นญ์„ ํ•ด์ฃผ๋Š” Feature matching ๋‹จ๊ณ„๊นŒ์ง€ outlier๋“ค์ด ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ outlier์— ๊ฐ•๊ฑดํ•œ RANSAC์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ 2๊ฐ€์ง€ ์˜ˆ์ œ๋ฅผ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. image

์œ„ ์˜ˆ์ œ์—์„œ๋Š” 2๊ฐœ์˜ ์ด๋ฏธ์ง€๋ฅผ ์ด์–ด๋ถ™์ด๋Š” ์ด๋ฏธ์ง€ ์Šคํ‹ฐ์นญ์„ ์œ„ํ•˜์—ฌ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์ง€์ ์„ ์ฐพ์€ ํ›„ ์˜ค๋ฅธ์ชฝ ์ด๋ฏธ์ง€๋ฅผ ์™ผ์ชฝ ์ด๋ฏธ์ง€์— ์ด์–ด ๋ถ™์ผ ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” homography๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2๋ฒˆ์งธ ๊ณผ์ •์—์„œ์˜ feature matning ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ž˜ ์—ฐ๊ฒฐ์ด ๋œ ์ ๋“ค๋„ ์žˆ์ง€๋งŒ ์—ฐ๊ฒฐ์ด ์ž˜๋ชป๋œ outlier๋“ค๋„ ์ƒ๊ธด๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ๋“ค์„ ์ œ๊ฑฐํ•œ ํ›„ homography๋ฅผ ๊ตฌํ•˜๊ณ ์ž RANSAC์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

image

์ด๋ฒˆ ์˜ˆ์ œ๋„ ์•ž์˜ ์˜ˆ์‹œ์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ดฌ์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅธ 2๊ฐœ์˜ ์ด๋ฏธ์ง€์—์„œ ๊ฐ™์€ ์ด๋ฏธ์ง€ ์ง€์ ์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ feature point๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ด๋ฏธ์ง€ ์ƒ์˜ ์–ด๋–ค ์ง€์ ์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ™์€ ์ด๋ฏธ์ง€ ์ง€์ ์„ ๋น„๊ตํ•  ์ง€ ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‹ค์Œ feature matching์„ ์ด์šฉํ•˜์—ฌ feature๋“ค์„ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์ด ๋‘๋ฒˆ์งธ ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์˜ˆ์‹œ์—์„œ๋„ ์ž˜ ์—ฐ๊ฒฐ๋œ feature๋“ค์ด ์žˆ์ง€๋งŒ ์ž˜๋ชป ์—ฐ๊ฒฐ๋œ ์ ๋“ค๋„ ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ ๋“ค์„ inlier, outlier๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•„์š”ํ•œ inlier๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด RANSAC์˜ ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Homography is a subset of Projective Transformation

Homography์™€ Projective Transformation์˜ ์ฃผ์š” ์ฐจ์ด์ ์€ ์Šค์ผ€์ผ ๋ณ€ํ™˜๊ณผ ํšŒ์ „์— ์žˆ์Šต๋‹ˆ๋‹ค.

1) Homography๋Š” ๋ณดํ†ต ๋‘ ๊ฐœ์˜ 2D ํ‰๋ฉด ์‚ฌ์ด์˜ ๋ณ€ํ™˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด ๋ณ€ํ™˜์€ ํ‰ํ–‰์„ ์„ ํฌํ•จํ•˜์—ฌ ์„ ์˜ ํ‰ํ–‰์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์Šค์ผ€์ผ ๋ณ€ํ™˜๊ณผ ํšŒ์ „์„ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2) ๋ฐ˜๋ฉด์— Projective Transformation์€ ์Šค์ผ€์ผ ๋ณ€ํ™˜๊ณผ ํšŒ์ „์„ ํฌํ•จํ•œ 3D ๊ณต๊ฐ„์˜ ํ•œ ์ ์„ ๋‹ค๋ฅธ 3D ๊ณต๊ฐ„์˜ ํ•œ ์ ์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ Projective Transformation์€ Homography๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ๋ณ€ํ™˜์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, 3D ๊ณต๊ฐ„์—์„œ์˜ ์œ„์น˜ ๋ฐ ๋ฐฉํ–ฅ์„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Homography์™€ [R|t]์˜ ์ฐจ์ด

Homography๋ฅผ ๊ตฌํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋‘ ์ด๋ฏธ์ง€ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ณ€ํ™˜ ํ–‰๋ ฌ์„ ์ฐพ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€ํ™˜ ํ–‰๋ ฌ์€ ํ•œ ์ด๋ฏธ์ง€์˜ ์ขŒํ‘œ๋ฅผ ๋‹ค๋ฅธ ์ด๋ฏธ์ง€์˜ ์ขŒํ‘œ๋กœ ๋งคํ•‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ํ‰๋ฉด์— ์žˆ๋Š” ๋ฌผ์ฒด์˜ ์ด๋ฏธ์ง€๋‚˜ ๊ฐ™์€ ํ‰๋ฉด์— ํˆฌ์˜๋˜๋Š” ๋ฌผ์ฒด์˜ ์ด๋ฏธ์ง€ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋Œ€์‘์ (์˜ˆ: ๋‘ ์ด๋ฏธ์ง€์—์„œ ์„œ๋กœ ๋Œ€์‘ํ•˜๋Š” ์ )์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‘์ ๋“ค์„ ํ†ตํ•ด ์ตœ์†Œํ•œ 4๊ฐœ์˜ ์ ์„ ์‚ฌ์šฉํ•˜์—ฌ 3x3 ํฌ๊ธฐ์˜ homography ํ–‰๋ ฌ H๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด, [R|t]๋Š” ํšŒ์ „(Rotation)๊ณผ ์ด๋™(Translation)์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์œผ๋กœ, ์ฃผ๋กœ 3D ๊ณต๊ฐ„์—์„œ์˜ ๋ณ€ํ™˜์„ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ์ฒด๋‚˜ ์นด๋ฉ”๋ผ๊ฐ€ 3D ๊ณต๊ฐ„์—์„œ ์–ด๋–ป๊ฒŒ ์›€์ง์ด๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ํŠนํžˆ ์Šคํ…Œ๋ ˆ์˜ค ๋น„์ „์ด๋‚˜ 3D ์žฌ๊ตฌ์„ฑ์—์„œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

Homography๋Š” ์ฃผ๋กœ 2D ์ด๋ฏธ์ง€ ํ‰๋ฉด์—์„œ์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•˜๊ณ , [R|t]๋Š” 3D ๊ณต๊ฐ„์˜ ๋ณ€ํ™˜์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

Homography๋Š” ํ‰๋ฉด ๋‚ด์—์„œ์˜ ๋ณ€ํ™˜์„ ํฌ๊ด„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, 3D ํšŒ์ „๊ณผ ์ด๋™์„ ์ง์ ‘์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘ ๊ฐœ๋…์€ ์„œ๋กœ ๊ด€๋ จ์€ ์žˆ์œผ๋‚˜, ๋‹ค๋ฃจ๋Š” ์ฐจ์›๊ณผ ์ ์šฉ ๋ถ„์•ผ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Leave a comment