3D Transformations(๋ณํ):: Geometry of Image Formation
https://darkpgmr.tistory.com/81
3D ๋ณํ (3D Transformations)
์ปดํจํฐ ๋น์ ์์ ๊ด์ฌ์๋ 3D ๋ณํ์ ํ์ ๊ณผ ํํ์ด๋ ๋ฟ์
๋๋ค (์ฆ, rigid ๋ณํ).
ํ๋์ ๋ ์๋ ๋นํ๊ธฐ๊ฐ ๊ฐ์๊ธฐ ์ปค์ง๊ฑฐ๋ ๋ก๋ณดํธ๋ก ๋ณ์ ํ๋ ๊ฒ ๋ฑ์ ๊ด์ฌ์ฌํญ์ด ์๋๋๋ค.
4.1 ๋ณํ ํ๋ ฌ
3์ฐจ์ ๊ณต๊ฐ์ ์ (X, Y, Z)๋ฅผ X์ถ, Y์ถ, Z์ถ์ ์ค์ฌ์ผ๋ก ฮธ ๋ผ๋์(radian) ํ์ ์ํค๋ ํ๋ ฌ์
๊ฐ๊ฐ Rx(ฮธ), Ry(ฮธ), Rz(ฮธ)๋ผ ํ๋ฉด ์ด๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
์ด ๋, ํ์ ๋ฐฉํฅ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๊ฐ ์ถ์ ๋ํด ๋ฐ์๊ณ ๋ฐฉํฅ์ด๋ค
(์ค๋ฅธ์ ์ฃผ๋จน์ ๋ง์์ฅ๊ณ ์์ง๋ฅผ ๋ค์์ ๋ ์์ง ๋ฐฉํฅ์ด ํ์ ์ถ ๋ฐฉํฅ, ๋ง์์ฅ ์๊ฐ๋ฝ ๋ฐฉํฅ์ด ํ์ ๋ฐฉํฅ).
— (1)
— (2)
— (3)
์ด์ ์ 3๊ฐ์ ๊ธฐ๋ณธ ํ์ ๋ณํ์ ์กฐํฉํ๋ฉด ์์์ 3D ํ์ ์ ํํํ ์ ์๋ค.
— (4)
์ขํ์ถ์ด ์๋ ์์์ ๋จ์๋ฒกํฐ u = (ux, uy, uz)์ ํ์ ์ถ์ผ๋ก ํ ํ์ ๋ณํ ํ๋ ฌ์ ๋ค์๊ณผ ๊ฐ๋ค
(๋จ, ux2 + uy2 + uz2 = 1)
— (5)
ํ์ ๋ณํ R, ํํ์ด๋ t = [tx, ty, tz]T๋ฅผ ์ด์ฉํ ์ผ๋ฐ์ ์ธ 3D ๋ณํ์(rigid ๋ณํ)์ ๋ค์๊ณผ ๊ฐ๋ค.
— (6)
2D ๋ณํ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, 3D ๋ณํ์์๋ homogeneous ์ขํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํ์ ๋ณํ๊ณผ ํํ์ด๋์ ํ๋์ ๋ณํํ๋ ฌ๋ก ์ฆ, ์ ํ๋ณํ ํํ๋ก ํํํ ์ ์๋ค.
— (7)
์ฐธ๊ณ ๋ก, ์ํคํผ๋์์ ๋ณด๋ฉด ์ด๋ค ํ๋ ฌ R์ด ํ์ ๋ณํ์ด ๋๊ธฐ ์ํ ํ์์ถฉ๋ถ ์กฐ๊ฑด์ RT = R-1, det(R) = 1 ์ด๋ผ ํ๋ค.
4.2 ๋ณํ๊ด๊ณ ๊ตฌํ๊ธฐ
์๋ฅผ ๋ค์ด 3D ๊ณต๊ฐ์์ ๋นํ๊ธฐ ํ๋๊ฐ ๋ง์๋๋ก ์ด๋ํ๋ค๊ณ ํ์ ๋, ๋นํ๊ธฐ ๋์ ์ ์์์ ๋ ์ง์ ์ฌ์ด์ ๋ณํ๊ด๊ณ๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค. ๋ฌผ๋ก ์ด ๋ณํ๊ด๊ณ๋ ํ์ ๋ณํ๊ณผ ํํ์ด๋๋ง์ผ๋ก ํํ์ด ๊ฐ๋ฅํฉ๋๋ค. ๋จผ์ ๋ ๋ฒกํฐ ์ฌ์ด์ ํ์ ๋ณํ์ ๊ตฌํ๋ ๋ฌธ์ ๋ถํฐ ์์ํด์ ํํ์ด๋์ ํฌํจํ ๋ณํ๊น์ง ๊ตฌํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
4.2.1 ํ์ ๋ณํ ๊ตฌํ๊ธฐ
ํฌ๊ธฐ๊ฐ ๊ฐ์ ์์์ ๋ ๋ฒกํฐ u = [x, y, z]T, u‘ = [x’, y’, z’]T๊ฐ ์์ ๋, u์ u‘๋ก ์ด๋์ํค๋ ํ์ ๋ณํ์ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ ์ ์์ต๋๋ค.
— (8)
— (9)
— (10)
— (11)
ฮธ๋ ๋ ๋ฒกํฐ u, u‘ ์ฌ์ด์ ์ฌ์๊ฐ์ด๋ฉฐ ๋ฒกํฐ์ ๋ด์ ์ ์ด์ฉํ๋ฉด ์์ฝ๊ฒ ๊ตฌํ ์ ์์ต๋๋ค. ํ์ ์ถ์ด ๋ฌธ์ ์ธ๋ฐ, ํ์ ์ถ์ ๋ ๋ฒกํฐ u, u‘์ ์ํด ๊ฒฐ์ ๋๋ ํ๋ฉด์ ์์ง์ธ ๋ฒกํฐ ์ฆ, ๋ฒกํฐ์ ์ธ์ ์ ์ด์ฉํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ๊ฒ ๊ตฌํ ํ์ ๊ฐ ฮธ์ ํ์ ์ถ ๋จ์๋ฒกํฐ v๋ฅผ ์์ ์ (5)์ ๋์ ํ๋ฉด ์ํ๋ ํ์ ๋ณํ ํ๋ ฌ์ ๊ตฌํ ์ ์์ต๋๋ค.
โ ๋ฒกํฐ์ ๊ฐ๋ ๋ฐ ๋ฐฑํฐ์ ๋ด์ , ์ธ์ ์ ์์๋๋ฉด ์ฌ๋ฌ๋ชจ๋ก ์ ์ฉํฉ๋๋ค. ์ฐธ๊ณ ๋ก, ๋ฒกํฐ์ ์ธ์ ์ http://blog.naver.com/mindo1103/90103361104 ๊ธ์ ์ฐธ์กฐํ๋ฉด ์ ์ค๋ช ๋์ด ์์ต๋๋ค. ์ ๊ธ์์๋ ์ค๋ช ํ์ง๋ง ๋ฒกํฐ์ ์ธ์ u1 ร u2 ๋ ๋ ๋ฒกํฐ u1, u2์ ์ํด ๊ฒฐ์ ๋๋ ํ๋ฉด์ ์์ง์ด๋ฉด์(์ค๋ฅธ์ ๋ฐฉํฅ) ๊ทธ ํฌ๊ธฐ๊ฐ u1, u2๋ฅผ ๋ ๋ณ์ผ๋ก ํ๋ ํํ์ฌ๋ณํ์ ๋ฉด์ ๊ณผ ๊ฐ์ ๋ฒกํฐ๋ฅผ ๋งํฉ๋๋ค
4.2.2 Rigid ๋ณํ ๊ตฌํ๊ธฐ
์ด์ ํ์ ๋ฟ๋ง ์๋๋ผ ํํ์ด๋๊น์ง ํฌํจํ ๋ฌธ์ ๋ก ํ๋ํด ๋ณด๊ฒ ์ต๋๋ค.
3์ฐจ์ ๊ณต๊ฐ์์ ์ด๋ค ๋ฌผ์ฒด์ ์์น ๋ฐ ๋ฐฉํฅ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ๊ธฐ ์ํด์๋ ์ต์ ๋ช ๊ฐ์ ์ ์ด ํ์ํ ๊น์?
๋ฌผ์ฒด ์์ 3๊ฐ์ ์ ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค. ๋ํ ๋ง์ฐฌ๊ฐ์ง๋ก 3์ฐจ์ ๊ณต๊ฐ์์ ์์ง์ด๋ ๋ฌผ์ฒด์ ์์น๊ด๊ณ๋ฅผ ํํํ๊ธฐ ์ํด์๋ 3๊ฐ์ ๋งค์นญ์๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์ฆ, 3D์์ rigid ๋ณํ์ ๊ฒฐ์ ํ๊ธฐ ์ํด ํ์ํ ๋งค์นญ์์ ๊ฐ์๋ 3๊ฐ์ ๋๋ค.
์ ๋นํ๊ธฐ ๊ทธ๋ฆผ์ ์๋ก ๋ค์ด rigid ๋ณํ์ ๊ตฌํ๋ ๊ณผ์ ์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์น A์์์ ๋นํ๊ธฐ ์์ ์์์ ์ ์ (x, y, z), ์์น A’์์์ ๋์๋๋ ์ ์ (x’, y’, z’)๋ผ ํ ๋, ์ฃผ์ด์ง 3๊ฐ์ ๋งค์นญ์ p1-p1′, p2-p2′, p3-p3’๋ฅผ ์ด์ฉํ์ฌ (x, y, z)์์ (x’, y’, z’)๋ก์ rigid ๋ณํ๊ด๊ณ๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ๋ชฉ์ ์ ๋๋ค (pi = (xi,yi,zi), pj’=(xj’,yj’,zj’)).
๊ณผ์ ์ ๊ฐ๋ตํ ๋ง๋ก ์ค๋ช ํ๋ฉด 1) p1์ด ์์ ์ด ๋๋๋ก A๋ฅผ ํํ์ด๋ ์ํจ ํ, 2) A’์ ๋ฐฉํฅ๊ณผ ์ผ์น๋๋๋ก ํ์ ์์ผ์, 3) p1’๊น์ง ํํ์ด๋์ํจ๋ค ์ ๋๋ค.
๊ฒฐ๊ตญ ๊ด๊ฑด์ ํ์ ๋ณํ์ธ๋ฐ, ๋ ๋ฌผ์ฒด๋ฅผ ์ผ์น์ํค๊ธฐ ์ํด์๋ ์ด 2๋ฒ์ ํ์ ์ด ํ์ํฉ๋๋ค. ๋จผ์ ๋ฒกํฐ p1p2๊ฐ ๋ฒกํฐ p1’p2’๊ฐ ๋๋๋ก ํ์ ์ํจ ํ (R1), p3์ p3’์ด ์ผ์น๋๋๋ก ํ๋ฒ ๋ ํ์ ์ ์ํต๋๋ค (R2).
— (12)
R1์ 4.2.1 ํ์ ๋ณํ ๊ตฌํ๊ธฐ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๊ตฌํ ์ ์์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ฌธ์ ๋ R2๋ฅผ ๊ตฌํ๋ ๊ฒ์ธ๋ฐ, ์ด๊ฑธ ๊ตฌํ๋ ๊ฒ ์ฝ์ง๊ฐ ์๋ค์.. ์ด๋ฆฌ ์ ๋ฆฌ ๊ถ๋ฆฌ๋ฅผ ํด ๋ดค์ง๋ง ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ฐ๊ฒฌํ์ง ๋ชปํ์ต๋๋ค. ์ ๊ฐ ํผ ๋ฐฉ๋ฒ์ ๊ฐ๋ตํ ์ค๋ช ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋จผ์ R1๊น์ง ์ ์ฉํ๋ฉด ๋ฒกํฐ R1*p1p2์ ๋ฒกํฐ p1’p2’๊ฐ ์ผ์น๋ฉ๋๋ค. ๋ค์์ผ๋ก ๋ฒกํฐ R1*p1p3๋ฅผ ํ์ ์์ผ์ p1’p3’์ด ๋๋๋ก ๋ง๋ค์ด์ผ ํฉ๋๋ค. ํ์ ์ถ์ R1*p1p2์ธ๋ฐ ํ์ ๊ฐ์ด ๋ฌธ์ ์ ๋๋ค. ๋ฒกํฐ R1*p1p3์ ๋ฒกํฐ p1’p3′ ์ฌ์๊ฐ์ ๊ตฌํ๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์์ต๋๋ค. ๋ ๋ฒกํฐ๋ฅผ R1*p1p2์ ์์ง์ธ ํ๋ฉด์ projection ์ํจ ํ ์ฌ์๊ฐ์ ๊ตฌํด์ผ ํฉ๋๋ค. projection์ ์ง์ ๊ตฌํ๋ ๊ฒ์ ์ด๋ ต๊ธฐ ๋๋ฌธ์ R1*p1p2 & R1*p1p3์ ์ํด ๊ฒฐ์ ๋๋ ํ๋ฉด์ ์์ง์ธ ๋ฒกํฐ(๋ฒ์ ๋ฒกํฐ)์ R1*p1p2 & p1’p3’์ ์ํด ๊ฒฐ์ ๋๋ ํ๋ฉด์ ์์ง์ธ ๋ฒ์ ๋ฒกํฐ๋ฅผ ๊ตฌํด์ ๋ ๋ฒ์ ๋ฒกํฐ๊ฐ ์ผ์น๋๋๋ก ํ์ ์ ์ํค๋ฉด ๋ฉ๋๋ค. ์ฆ, R2๋ (R1*p1p2)ร(R1*p1p3)๋ฅผ (R1*p1p2)รp1’p3’๋ก ํ์ ์ํค๋ ํ๋ ฌ์ ๋๋ค.
โ ์ด์์ผ๋ก 3D ๊ณต๊ฐ์์ ๋ฌผ์ฒด์ ์์์ ๋ณํ๊ด๊ณ๋ฅผ 3๊ฐ์ ๋งค์นญ์์ ์ด์ฉํ์ฌ ๊ณ์ฐํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ์ค๋ช ํ ๋ฐฉ๋ฒ์ ๋๋ฆ ๊ตฌํด๋ณธ ๋ฐฉ๋ฒ์ด๊ธฐ ๋๋ฌธ์ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ ๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค (์ง๊ธ์ ๋ชจ๋ฅด์ง๋ง). ํนํ ์ฌ๊ธฐ์ ์ค๋ช ํ ๋ฐฉ๋ฒ์ ๋งค์นญ์์ด 3๊ฐ์ธ ๊ฒฝ์ฐ์๋ง ์ ์ฉ๊ฐ๋ฅํ๋ฉฐ ๋งค์นญ์์ด 3๊ฐ ์ด์์ธ ๊ฒฝ์ฐ๊น์ง๋ ํ์ฅ์ด ์๋ฉ๋๋ค. ์ฆ, ๋ค์์ (3๊ฐ ์ด์) ๋งค์นญ์์ ๋ํด ์ด๋ค์ ๊ฐ์ฅ ์ ๊ทผ์ฌํ๋ ๋ณํ์ ๊ตฌํ ๋์๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ํ์ํ ๊ฒ์ ๋๋ค.
4.3 ์ขํ์ถ ๋ณํ
๋ง์ง๋ง์ผ๋ก 3D ๊ณต๊ฐ์์ ์ขํ์ถ ๋ณํ ํ๋ ฌ์ ์ดํด๋ณด๊ณ ๊ธ์ ๋ง๋ฌด๋ฆฌํ๊ฒ ์ต๋๋ค.
[์์์ฒ๋ฆฌ] – [์ปดํจํฐ ๋น์ ์์์ Geometry #1] ์ขํ๊ณ ์์ ์ค๋ช ํ๋ ์๋ ์ขํ๊ณ์ ์นด๋ฉ๋ผ ์ขํ๊ณ ์ฌ์ด์ ๋ณํ์ด ์ขํ์ถ ๋ณํ์ ํด๋นํฉ๋๋ค.
์๋์ขํ๊ณ ์์์ ์นด๋ฉ๋ผ ์ด์ (์นด๋ฉ๋ผ ์ขํ๊ณ์ ์์ )์ ์ขํ๋ฅผ (Fx, Fy, Fz), ์๋์ขํ๊ณ์ ์ขํ์ถ์ ์นด๋ฉ๋ผ ์ขํ๊ณ ์ขํ์ถ์ผ๋ก ํ์ ์ํค๋ ํ๋ ฌ์ R์ด๋ผ ํ๊ฒ ์ต๋๋ค.
์ด ๋, ์๋ ์ขํ๊ณ์ ์ (X, Y, Z)์ ์นด๋ฉ๋ผ ์ขํ๊ณ๋ก ๋ดค์ ๋์ ์ขํ (Xc, Yc, Zc)๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํด์ง๋๋ค.
— (13)
ํ์ ๋ณํ ํ๋ ฌ์ ๊ฒฝ์ฐ RTR = I ์ฆ, R-1 = RT๊ฐ ์ฑ๋ฆฝํ๋ฏ๋ก ์ ์์ ์๋์ ๊ฐ์ด ์ธ ์ ์์ต๋๋ค.
— (14)
์นด๋ฉ๋ผ ์ขํ๊ณ ์์ ์ ์ ์๋ ์ขํ๊ณ๋ก ๋ฐ๊ฟ ๋์๋ ์ ์์ ์ญ์ผ๋ก ์ด์ฉํ๋ฉด ๋ฉ๋๋ค.
์ค์ ๋ก R์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ [์์์ฒ๋ฆฌ] – 3D ์ขํ๊ณ ๋ณํ ๋ฐฉ๋ฒ (์: ์๋์ขํ๊ณ – ์นด๋ฉ๋ผ ์ขํ๊ณ) ๊ธ์ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
by ๋คํฌ ํ๋ก๊ทธ๋๋จธ
(3D ๋น์ geometry ๋ง์ง๋ง 6๋ฒ์งธ ํํธ epipolar geometry์ ๋๋ค)
6์ฅ epipolar geometry๋ฅผ ๋ง์ง๋ง์ผ๋ก ‘์์ geometry’ ๊ธ์ ๋ง๋ฌด๋ฆฌํ๊ณ ์ ํฉ๋๋ค.
6. Epipolar Geometry
Epipolar geometry๋ ์คํ ๋ ์ค ๋น์ (stereo vision) ์ฆ, 2-view ๋น์ ์์์ ๊ธฐํ๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฉ๋๋ค.
์ฆ, Epipolar geometry๋ ๋์ผํ ์ฌ๋ฌผ ๋๋ ์ฅ๋ฉด์ ๋ํ ์์์ ์๋ก ๋ค๋ฅธ ๋ ์ง์ ์์ ํ๋ํ์ ๋, ์์ A์ ์์ B์ ๋งค์นญ์๋ค ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ๋ค๋ฃจ๋ ๊ฒ์ ๋๋ค.
<๊ทธ๋ฆผ 1>
6.1 ์ฉ์ด ๋ฐ ๊ธฐ๋ณธ ๊ฐ๋
<๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด 3์ฐจ์ ๊ณต๊ฐ์์ ํ ์ P๊ฐ ์์ A์์๋ p์ ํฌ์๋๊ณ , ์์ B์์๋ p’์ ํฌ์๋๋ค๊ณ ํ๊ฒ ์ต๋๋ค. ์ด ๋, ๋ ์นด๋ฉ๋ผ ์์ ์ ์๋ ์ ๊ณผ ์ด๋ฏธ์ง ํ๋ฉด์ด ๋ง๋๋ ์ e, e’์ epipole์ด๋ผ ๋ถ๋ฅด๊ณ ํฌ์์ ๊ณผ epipole์ ์๋ ์ง์ l, l‘์ epiline (๋๋ epipolar line)์ด๋ผ ๋ถ๋ฆ ๋๋ค. Epiline์ 3์ฐจ์์ ์ P์ ๋ ์นด๋ฉ๋ผ ์์ ์ ์๋ ํ๋ฉด(epipolar plane)๊ณผ ์ด๋ฏธ์ง ํ๋ฉด๊ณผ์ ๊ต์ ์ผ๋ก๋ ๋ณผ ์ ์์ต๋๋ค.
๋ ์นด๋ฉ๋ผ ์์น ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ [R|t]๋ฅผ ์๊ณ ์๊ณ ์์ A์์์ ์์์ขํ p๋ฅผ ์๊ณ ์์ ๋, ์์ B์์ ๋์๋๋ ์ p’์ ์ขํ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ์๊ฐํด ๋ณด๊ฒ ์ต๋๋ค. ์ด ๋, ์ P๊น์ง์ ๊ฑฐ๋ฆฌ(depth) ์ ๋ณด๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด ์์์ขํ p๋ก๋ถํฐ ํฌ์๋๊ธฐ ์ ์ 3์ฐจ์ ์ขํ P๋ฅผ ๋ณต์ํ ์๋ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ P๊ฐ ์์ B์ ํฌ์๋ ์ขํ p’ ๋ํ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ P๋ A ์นด๋ฉ๋ผ์ ์์ ๊ณผ p๋ฅผ ์๋ ์ง์ (ray) ์์ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ด ์ง์ ์ ์์ B์ ํฌ์์ํค๋ฉด ์ p’์ด ์ด ํฌ์๋ ์ง์ ์์ ์์์ ์ ์ ์์ต๋๋ค. ์ด ํฌ์๋ ์ง์ ์ด ๋ฐ๋ก epiline l’ ์ ๋๋ค.
์ ๋ฆฌํ๋ฉด, ‘A์ ์์์ขํ p๋ก๋ถํฐ ๋์๋๋ B์ ์์์ขํ p’์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ ์๋ ์์ง๋ง p’์ด ์ง๋๋ ์ง์ ์ธ epiline l’์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ ์ ์๋ค’ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์์์ขํ๋ก๋ถํฐ ๋ค๋ฅธ ์์์์์ ๋์๋๋ epiline์ ๊ณ์ฐํด์ฃผ๋ ๋ณํํ๋ ฌ์ด Fundamental Matrix, Essential Matrix ์ ๋๋ค. ์ฆ, ์๋ก ๋ค๋ฅธ ๋ ์์ ์์ ์ฐ์ ์์์ขํ๋ค ์ฌ์ด์๋ Fundamental Matrix, Essential Matrix๋ฅผ ๋งค๊ฐ๋ก ํ๋ ์ด๋ค ๋ณํ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํ๋๋ฐ, Epipolar Geometry์์๋ ์ด ๋ณํ๊ด๊ณ๋ฅผ ๋ฐํ์ผ๋ก ์ฌ๋ฌ ๊ธฐํํ์ ๋ฌธ์ ๋ฅผ ํ๊ฒ ๋ฉ๋๋ค.
6.2 Essential Matrix
์ <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ์ด 3D ๊ณต๊ฐ์์ ํ ์ P๊ฐ ์์ A์์๋ p์ ํฌ์๋๊ณ , ์์ B์์๋ p’์ ํฌ์๋๋ค๊ณ ํ๋ฉด ๋ ์์ ์ขํ p์ p’ ์ฌ์ด์๋ ๋ค์ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ํ๋ ฌ์ด ํญ์ ์กด์ฌํ๋ค๋ ๊ฒ์ด epipolar geometry์ ํต์ฌ์ ๋๋ค (๋จ, p, p’์ normalized ์ด๋ฏธ์ง ํ๋ฉด์์์ homogeneous ์ขํ์).
— (1)
— (2)
์ฆ, ์์์ ๋ ์ง์ ์์ ์ฐ์ ์์์ ๋งค์นญ์ ๋ค์ ํญ์ ์ (1)์ ํตํด ๊ด๊ณ์ง์ ์ ์์ผ๋ฉฐ, ์ด ๋ ์ (1)์ epipolar constraint (๋๋ essential constraint), ์ด 3ร3 ํ๋ ฌ E๋ฅผ Essential Matrix๋ผ ๋ถ๋ฆ ๋๋ค.
Essential Matrix E๊ฐ ํญ์ ์กด์ฌํ๋ ์ด์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์์ ๋ ์นด๋ฉ๋ผ ์ขํ์ถ ์ฌ์ด์ ๊ด๊ณ๋ ํ์ , ํํ์ด๋์ ์ํด ๊ด๊ณ์ง์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ์นด๋ฉ๋ผ ์ขํ์ถ ์ฌ์ด์ 3 ร 3 ํ์ ํ๋ ฌ์ R, 3 ร 1 ํํ์ด๋ ๋ฒกํฐ๋ฅผ t๋ผ ํ์ ๋, ์ธ๋ถ ๊ณต๊ฐ์์ ํ ์ ์ ๋ ์นด๋ฉ๋ผ ์ขํ๊ณ์์ ๋ดค์ ๋์ ๊ด๊ณ๋ฅผ
— (3)
์ ๊ฐ์ด ์ก์ ์ ์์ต๋๋ค (๋จ, P๋ ์ธ๋ถ ๊ณต๊ฐ ์์ ์ ์ A ์นด๋ฉ๋ผ ์ขํ๊ณ์์ ๋ดค์ ๋์ 3์ฐจ์ ์ขํ, P’์ B ์นด๋ฉ๋ผ ์ขํ๊ณ์์ ๋ดค์ ๋์ 3์ฐจ์ ์ขํ).
์ด ๋, essential matrix E๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ก์ผ๋ฉด
— (4)
์๋์ ์ (5)๊ฐ ๋ง์กฑ๋จ์ ์ ์ ์์ต๋๋ค. ๋จ, ์ (4)์์ [t]x๋ ๋ฒกํฐ t์์ ๋ฒกํฐ ์ธ์ (outer product)์ ์๋ฏธํฉ๋๋ค. ๋ํ, [t]xR์ t์ R๊ณผ์ ์ธ์ ์ ์๋ฏธํ๋๊ฒ ์๋๋ผ ๋จผ์ R๋ก ํ์ ์ ์ํจ ํ ๋ค์์ t์ ์ธ์ ์ ์ํค๋ ์ผ๋ จ์ ๋ณํ์ ์๋ฏธํฉ๋๋ค. ์ฆ, Ep = [t]xRp = t ร (Rp) ์ ๋๋ค.
— (5)
— (6)
์ (5)์ ์ข๋ณ์ E = [t]xR์ ๋์ ํด ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ํญ์ 0์ด ๋์ด์ ์ ์ ์์ต๋๋ค.
— (7)
์ด์ ์ (5)์ ์นด๋ฉ๋ผ ์ขํ๋ฅผ ์ ๊ท ์ด๋ฏธ์ง ์ขํ๋ก ๋ฐ๊พธ๋ฉด ์ (1)์ด ์ฑ๋ฆฝํจ์ ์ ์ ์์ต๋๋ค.
— (8)
6.3 Fundamental Matrix
์์ ์ค๋ช ํ Essential Matrix๋ ์ ๊ทํ๋ ์ด๋ฏธ์ง ํ๋ฉด์์์ ๋งค์นญ ์๋ค ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๋ ํ๋ ฌ์ ๋๋ค. ์ฆ, ์นด๋ฉ๋ผ ๋ด๋ถ ํ๋ผ๋ฏธํฐ ํ๋ ฌ์ธ K๊ฐ ์ ๊ฑฐ๋ ์ขํ๊ณ์์์ ๋ณํ๊ด๊ณ์ ๋๋ค.
๋ฐ๋ฉด fundamental matrix๋ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ๊น์ง ํฌํจํ ๋ ์ด๋ฏธ์ง์ ์ค์ ํฝ์ (pixel) ์ขํ ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ํํํ๋ ํ๋ ฌ์ ๋๋ค.
์์์ ๋ ์ด๋ฏธ์ง A, B์ ๋ํ์ฌ, ๋งค์นญ๋๋ ํฝ์ ์ขํ pimg, pimg‘ ์ฌ์ด์๋ ํญ์ ๋ค์๊ณผ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ํ๋ ฌ F๊ฐ ์กด์ฌํ๊ณ , ์ด๋ฌํ ํ๋ ฌ F๋ฅผ fundamental matrix๋ผ ๋ถ๋ฆ ๋๋ค.
— (9)
— (10)
์ด ๋, ์ด๋ฏธ์ง A์ ๋ํ ์นด๋ฉ๋ผ ๋ด๋ถ ํ๋ผ๋ฏธํฐ ํ๋ ฌ์ K, ์ด๋ฏธ์ง B์ ๋ํ ์นด๋ฉ๋ผ ํ๋ ฌ์ K’, ์ด๋ฏธ์ง A, B ์ฌ์ด์ essential matrix๋ฅผ E๋ผ ํ๋ฉด fundamental matrix F๋ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง๋๋ค.
— (11)
— (12)
๋ง์ผ ์ด๋ฏธ์ง A, B๋ฅผ ๋์ผํ ์นด๋ฉ๋ผ๋ก ์ดฌ์ํ๋ค๋ฉด ์นด๋ฉ๋ผ ํ๋ ฌ(K)์ด ๋์ผํ๊ธฐ ๋๋ฌธ์ ์ (11), ์ (12)๋ ๋ค์๊ณผ ๊ฐ์ด ์ข๋ ๋จ์ํ๋ฉ๋๋ค.
— (13)
— (14)
[๋ถ์ฐ์ค๋ช ]์์ [์ปดํจํฐ ๋น์ ์์์ Geometry #1] ์ขํ๊ณ์์ ์ค๋ช ํ ๋ฐ์ ๊ฐ์ด ์ด๋ฏธ์ง ํฝ์ ์ขํ pimg์ normalized ์ขํ p ์ฌ์ด์๋ camera matrix K์ ๋ํด ๋ค์๊ณผ ๊ฐ์ ๋ณํ๊ด๊ณ๋ฅผ ๊ฐ์ง๋๋ค.
— (15)
— (16)
๋ฐ๋ผ์ ์ด๋ฏธ์ง A์ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ ํ๋ ฌ์ K, ์ด๋ฏธ์ง B์ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ ํ๋ ฌ์ K’๋ผ ๋์ผ๋ฉด ๋ค์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝํฉ๋๋ค.
— (17)
์ด์ ์ (17)๋ฅผ ์ (1)์ ๋์ ํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด fundamental matrix๊ฐ ๊ตฌํด์ง์(์กด์ฌํจ์) ์ ์ ์์ต๋๋ค.
— (18)
6.4 Epipolar Geometry
epipolar geometry์์ ๋ค๋ฃจ๋ ๊ฒ์ ํฌ๊ฒ ๋๊ฐ์ง์ธ๋ฐ ํ๋๋ epipolar constraint์ด๊ณ ๋ค๋ฅธ ํ๋๋ triangulation์ ๋๋ค.
6.4.1 epipolar constraint
epipolar constraint๋ ๋ ์ด๋ฏธ์ง ํ๋ฉด ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ์ ๋ฐ๋ฅธ constrain(์ ์ฝ)์ธ๋ฐ ๋ฐ๋ก ์ (1)์ด epipolar constraint๋ฅผ ๋ํ๋ ๋๋ค.
๋ ์ด๋ฏธ์ง๊ฐ ์ฃผ์ด์ง๊ณ ๋์๋๋ ๋งค์นญ ์๋ค์ ์๊ณ ์์ ๋, ๋ง์ผ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ๋ฅผ ๋ชจ๋ฅธ๋ค๋ฉด fundametal matrix F๋ฅผ ์ง์ ๊ตฌํด์ผ ํ๋๋ฐ F๋ฅผ ๊ตฌํ๊ธฐ ์ํด์๋ ์ต์ 7์์ ๋งค์นญ์ ๋ค์ ํ์๋ก ํฉ๋๋ค.
๋จ, ์ฌ๊ธฐ์ ์ฃผ์ํด์ผ ํ ์ ์ F์ ์ค์ผ์ผ(scale)๊น์ง๋ ๊ฒฐ์ ํ ์ ์๋ค๋ ์ ์ ๋๋ค (E๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค). ์ค์ผ์ผ์ ๊ฒฐ์ ํ ์ ์๋ค ํจ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ๋ฌผ์ฒด์ ์นด๋ฉ๋ผ๊ฐ ์กด์ฌํ๋ ๊ณต๊ฐ ์ ์ฒด๋ฅผ ํ๋ํ๊ฑฐ๋ ์ถ์ํด๋ ๋์ผํ ์ด๋ฏธ์ง๋ฅผ ์ป๊ธฐ ๋๋ฌธ์ ์ด๋ฏธ์ง๋ง ๊ฐ์ง๊ณ ๋ ์ค์ผ์ผ์ ์ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค (๊ฐ๊น์ด์ ์๋ ์์ ๋ฌผ์ฒด๋ฅผ ์ฐ๊ฑฐ๋ ๋ฉ๋ฆฌ ์๋ ํฐ ๋ฌผ์ฒด๋ฅผ ์ฐ์ด๋ ๊ฐ์ ์์์ ์ป์ ์ ์์์ ์๊ธฐํ๊ธฐ ๋ฐ๋๋๋ค).
<๊ทธ๋ฆผ 2> ์ค์ผ์ผ ๋ฌธ์
๋ง์ผ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ๋ฅผ ์๊ณ ์๋ค๋ฉด Essential matrix E๋ง ๊ตฌํ๋ฉด ๋ฉ๋๋ค. Essential matrix E๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด์๋ ๋ณดํต 5์์ ๋งค์นญ์ ์ ํ์๋ก ํฉ๋๋ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ์๋ 8 ์์ ๋งค์นญ์ ์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ๋ ์๊ณ , ์ด๋ค ๊ฒฝ์ฐ์๋ 3์, 2์, ์ฌ์ง์ด๋ 1์์ ๋งค์นญ์ ๋ง์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
โ E๋ R, t๋ก ๊ตฌ์ฑ๋๋๋ฐ ํ์ ๋ณํ R์ด 3 ์์ ๋, ์ค์ผ์ผ์ ๋ฌด์ํ ํํ์ด๋ t๊ฐ 2 ์์ ๋, ๋ํฉ 5 ์์ ๋์ด๋ฏ๋ก 5์์ ๋งค์นญ์ ์ ํ์๋ก ํจ.
Essential ํ๋ ฌ์ ๊ตฌํ ๋ ๋ช ์์ ๋งค์นญ์ ๋ค์ ํ์๋ก ํ๋๋์ ๋ฐ๋ผ์ ์๊ณ ๋ฆฌ์ฆ์ 8-point ์๊ณ ๋ฆฌ์ฆ, 5-point ์๊ณ ๋ฆฌ์ฆ, …, 1-point ์๊ณ ๋ฆฌ์ฆ ๋ฑ๊ณผ ๊ฐ์ด ๋ถ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด, 3-point ์๊ณ ๋ฆฌ์ฆ์ E๋ฅผ ๊ตฌํ ๋ 3์์ ๋งค์นญ์ ์ ์ด์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ง์นญํฉ๋๋ค.
3-point ์๊ณ ๋ฆฌ์ฆ, 2-point ์๊ณ ๋ฆฌ์ฆ ๋ฑ๊ณผ ๊ฐ์ด ์๋ ์๊ตฌ๋๋ ๋งค์นญ์(5์)๋ณด๋ค ์ ์ ์์ ๋งค์นญ์์ ์ด์ฉํ์ฌ E๋ฅผ ๊ตฌํ ์ ์๋ ์ด์ ๋ E์ ์ถ๊ฐ์ ์ธ constraint๋ฅผ ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฌ๋ฆฌ๋ ์๋์ฐจ์ ์ฅ์ฐฉ๋ ์นด๋ฉ๋ผ๋ก ์ดฌ์ํ ์์๋ค ์ฌ์ด์๋ ์ฐ๋ฆฌ๊ฐ ์์ผ๋ก ์นด๋ฉ๋ผ๋ฅผ ๋ค๊ณ ๋ง๋๋ก ์ฐ์ ์์๊ณผ๋ ๋ถ๋ช ํ ๋ค๋ฅธ ์ด๋ค ์ถ๊ฐ์ ์ธ constraint๊ฐ ์กด์ฌํฉ๋๋ค (์ง๋ฉด๊ณผ์ ๋์ด๊ฐ ๊ณ ์ ๋ ์ , ์๋์ฐจ์ pitch์ roll์ ๋ณํ๊ฐ ๊ฑฐ์ ์๋ ์ ๋ฑ). ์ฌ๊ธฐ์ ์ถ๊ฐ์ ์ผ๋ก ์๋์ฐจ์ ๋ชจ์ ์ ์์ด๋ ๋๋ ์ง์ ์ด๋์ผ๋ก ๋ชจ๋ธ๋งํ๊ฒ ๋๋ฉด ํจ์ฌ ์ ์ ์์ ๋งค์นญ์๋ง์ผ๋ก E๋ฅผ ๊ฒฐ์ ํ ์ ์๊ฒ ๋ฉ๋๋ค.
Epipolar geometry์์ essential ํ๋ ฌ์ด ์ค์ํ ์ด์ ๋ E๋ฅผ ์๋ฉด ์ด๋ก๋ถํฐ ๋ ์นด๋ฉ๋ผ A, B ์ฌ์ด์ ๋๋ ๋ ์์ ์ฌ์ด์ ํ์ , ํํ์ด๋ ๊ด๊ณ๋ฅผ ํ์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค์ ๊ณ์ฐ ๊ณผ์ ์ ๋ํด์๋ ์ํคํผ๋์๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋ผ๋ฉฐ opencv ํจ์๋ฅผ ์ด์ฉํด๋ [R|t] ๋ฅผ ๊ตฌํ ์ ์์ต๋๋ค.
6.4.2 triangulation
๋ง์ง๋ง์ผ๋ก triangulation (์ผ๊ฐ์ธก๋๋ฒ)์ ๋ ์ด๋ฏธ์ง ํ๋ฉด ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๊ฐ ์ฃผ์ด์ง๊ณ (์ฆ, E ๋๋ F๊ฐ ์ฃผ์ด์ง๊ณ ), ๋ ์ด๋ฏธ์ง ํ๋ฉด์์ ๋งค์นญ์ p, p’์ด ์ฃผ์ด์ง๋ฉด ์ด๋ก๋ถํฐ ์๋์ 3D ๊ณต๊ฐ์ขํ P๋ฅผ ๊ฒฐ์ ํ ์ ์๋ค๋ ๊ฒ์ ๋งํฉ๋๋ค. ๋ฐ๋ก ์คํ ๋ ์ค ๋น์ ์์ ๊ฑฐ๋ฆฌ(depth)๋ฅผ ๊ตฌํ ๋ ํ๋ ์ผ์ ๋๋ค. ๊ณ์ฐ๊ณผ์ ๋ฐ ์์ ๋ฑ์ ์ํคํผ๋์๋ฅผ ์ฐธ์กฐํ๊ธฐ ๋ฐ๋๋๋ค.
6.5 OpenCV ๊ด๋ จ ํจ์
์๋ ๋ชฉ๋ก์ ํจ์์ค ํ์์ผ๋ก ์์์ฒ๋ฆฌํ ํจ์๋ค์ opencv ๋ฒ์ 3.0๋ถํฐ ํฌํจ๋ ์์ ์ด๋ผ ํฉ๋๋ค.
- findFundamentalMat(): ๋ ์ด๋ฏธ์ง ์ฌ์ด์ fundamental matrix๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํ. ์ ๋ ฅ์ผ๋ก๋ 8์ ์ด์์ ๋งค์นญ ์ด๋ฏธ์ง ์ขํ์์ ์ ๋ ฅ
- findEssentialMat(): ๋ ์ด๋ฏธ์ง ์ฌ์ด์ essential matrix๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํ. ์ ๋ ฅํ ๋ด์ฉ์ 5์ ์ด์์ ๋งค์นญ ์ด๋ฏธ์ง ์ขํ์๊ณผ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ(์ด์ ๊ฑฐ๋ฆฌ, ์ฃผ์ ). ๋ด๋ถ์ ์ผ๋ก 5-point ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ. ์ด๋ฏธ์ง ์ขํ๋ก๋ normalized ์ขํ๊ฐ ์๋ ํฝ์ ์ขํ๋ฅผ ์ ๋ ฅ (ํ์ฌ ๋ฏธ๊ตฌํ)
- decomposeEssentialMat(): ์ ๋ ฅ essential matrix๋ก๋ถํฐ ํ์ ๋ณํ R, ํํ์ด๋ t๋ฅผ ์ถ์ถํด ์ค. ๊ฐ๋ฅํ 4๊ฐ์ง ์กฐํฉ์ [R|t]๋ฅผ ๋ฐํ (ํ์ฌ ๋ฏธ๊ตฌํ)
- recoverPose(): ์ ๋ ฅ๋ essential matrix์ ๋ ์ด๋ฏธ์ง์์์ ๋งค์นญ์์ผ๋ก๋ถํฐ ๋ ์ด๋ฏธ์ง์ ์๋์ ์ธ [R|t] ๊ด๊ณ๋ฅผ ์ถ์ถํด ์ค. decomposeEssentialMat()์ด [R|t]๋ฅผ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ์ง ๋ชปํ๊ณ ํด๋ฅผ ์ฌ๋ฌ๊ฐ ๋ฐํํ๋ ๋ฐ๋ฉด, recoverPose()๋ ๋ถ๊ฐ์ ์ธ ๊ธฐํํ์ ์กฐ๊ฑด ๊ฒ์ฌ๋ฅผ ํตํด [R|t]๋ฅผ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ์ฌ ๋ฐํํด ์ค (ํ์ฌ ๋ฏธ๊ตฌํ)
6.6 ์ฐธ๊ณ ์๋ฃ
์ํคํผ๋์ epipolar geometry
์ํคํผ๋์ essential matrix
์ํคํผ๋์ fundamental matrix
โ ์ด์์ผ๋ก ์ปดํจํฐ ๋น์ ์์์ geometry ์๋ฆฌ์ฆ๋ฅผ ๋ง๋ฌด๋ฆฌํฉ๋๋ค. ์๊ฐ๋ณด๋ค ๊ธ์ด ๊ธธ์ด์ก๊ณ ์๊ฐ๋ ๋ง์ด ๊ฑธ๋ ธ๋ค์. ์คํ ๋ ์ค ๋น์ ์ชฝ์ด ์์ง๋ ์์ ์ด๊ธด ํ์ง๋ง ์ด๋ฒ ๊ธ๋ค์ ์ ๋ฆฌํ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก imaging geometry์ ๋ํ ๊ฐ๋ ์ด ๋ง์ด ์ ๋ฆฌ๊ฐ ๋์์ต๋๋ค. ์ด ๊ธ์ ์ฝ๋ ๋ถ๋ค์๊ฒ๋ ๋์์ด ๋์์ผ๋ฉด ์ข๊ฒ ๋ค์.
โ ์ต๊ทผ ์์๊ธฐํํ์ ๋ํ ์ ๋ฐ์ ์ธ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ์ฌ๋ ธ๋๋ฐ ์ด๊ฒ๋ ๊ฐ์ด ์ฐธ์กฐํ๋ฉด ์ข์๋ฏ ์ถ์ต๋๋ค -> [์์์ฒ๋ฆฌ] – Extrinsic Camera Calibration – ์นด๋ฉ๋ผ์ ์์น ๋ฐ ์์ธ ํ์
(2014.5.7์ผ์๋ก ์ต์ข ์์ ๋จ)
by ๋คํฌ ํ๋ก๊ทธ๋๋จธ