[3D CV] RANSAC
[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๊ฐ์ง ์์ ๋ฅผ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
์ ์์ ์์๋ 2๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ด์ด๋ถ์ด๋ ์ด๋ฏธ์ง ์คํฐ์นญ์ ์ํ์ฌ ์ฐ๊ฒฐํด์ผ ํ๋ ์ง์ ์ ์ฐพ์ ํ ์ค๋ฅธ์ชฝ ์ด๋ฏธ์ง๋ฅผ ์ผ์ชฝ ์ด๋ฏธ์ง์ ์ด์ด ๋ถ์ผ ์ ์๋๋ก ๋ณํํ๋ homography๋ฅผ ์ฐพ๋ ๊ณผ์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. 2๋ฒ์งธ ๊ณผ์ ์์์ feature matning ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ ์ฐ๊ฒฐ์ด ๋ ์ ๋ค๋ ์์ง๋ง ์ฐ๊ฒฐ์ด ์๋ชป๋ outlier๋ค๋ ์๊ธด๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ฌํ ์ ๋ค์ ์ ๊ฑฐํ ํ homography๋ฅผ ๊ตฌํ๊ณ ์ RANSAC์ ์ฌ์ฉํฉ๋๋ค.
์ด๋ฒ ์์ ๋ ์์ ์์์ ์ ์ฌํฉ๋๋ค. ์ดฌ์ ์์น๊ฐ ๋ค๋ฅธ 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