๋์ผํ ์ฅ๋ฉด(scene)์ ์๋ก ๋ค๋ฅธ ๋ ์ง์ ์์ ์ดฌ์ํ ์์์ ๊ธฐํํ์ ๊ด๊ณ, epipolar ๊ธฐํํ ์ ๋ฆฌ
Epipolar Geometry
Epipolar geometry๋ ๋์ผํ ์ฌ๋ฌผ ๋๋ ์ฅ๋ฉด์ ๋ํ ์์์ ์๋ก ๋ค๋ฅธ ๋ ์ง์ ์์ ํ๋ํ์ ๋, ์์ A์ ์์ B์ ๋งค์นญ์๋คย ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ๋ค๋ฃจ๋ ๊ฒ
1. Epipolar ๊ธฐ๋ณธ ๊ฐ๋
1.1. epipole & epiline
- 3์ฐจ์ ๊ณต๊ฐ์์ ํ ์ ๊ฐ ์์ ์์๋ ๊ฐ ํฌ์๋๊ณ , ์์ ์์๋ ์ ํฌ์๋ ๋, ๋ ์นด๋ฉ๋ผ ์์ ์ ์๋ ์ ๊ณผ ์ด๋ฏธ์งํ๋ฉด์ด ๋ง๋๋ ์ ์ epipole์ด๋ผ ๋ถ๋ฆ
- ๊ณผ ๊ฐ ์ด๋ฏธ์งํ๋ฉด์ ํฌ์์ ()์ ์๋ ์ง์ ์ epiline (๋๋ epipolar line) ์ด๋ผ ํจ
1.2. epipolar ์ฑ์ง
- ์ค์ ์ขํ ๋ ์ด๋ฏธ์ง ์ ๋ก ํฌ์๋๋ฉด์ ๊น์ด(Depth)์ ๋ณด๋ฅผ ์์คํ๊ฒ๋๋ฉฐ, ์ด๋ฏธ์ง B์์ ํฌ์๋ ๋ ๋ฐ๋์ epiline ์์ ์กด์ฌํ ๊ฒ ์
- ๋ชจ๋ epiline์ epipole์ ํต๊ณผํจ
- ์ ์์์ขํ ๋ก๋ถํฐ ๋์๋๋ ์ ์์์ขํ ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ ์๋ ์์ง๋ง ์ด ์ง๋๋ ์ง์ ์ธ epiline ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ ์ ์์
- epipole ๊ณผ epiline์ ๊ตฌํ๊ธฐ ์ํด์๋ Fundamental Matrix์ Essential Matrix๊ฐ ํ์ํจ
2. Essential Matrix
์์์ ๋ ์ง์ ์์ ์ฐ์ ์์์ ๋งค์นญ์ ๋ค์ ํญ์ ๊ด๊ณ์ง์ ์ ์์ผ๋ฉฐ, ์ด ๋ ๊ด๊ณ์์ epipolar constraint(๋๋ essential constraint)๋ผ ํ๊ณ , ์ด 3x3 ํ๋ ฌ E๋ฅผ Essential Matrix๋ผ ๋ถ๋ฆ camera intrinsic paramete๊ฐ ๊ณ ๋ ค๋์ง ์๋ ๊ฒฝ์ฐ(= intrinsic parameter๊ฐ ๋จ์ํ๋ ฌ)๋ฅผ ๊ฐ์
2.1. epipolar constraint
- ๋ 3x3์ Essential Matrix
2.2. Essential Matrix ์ ๋
- ์์์ ๋ ์นด๋ฉ๋ผ ์ขํ์ถ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํ์ , ํํ์ด๋์ ์ํด ๊ด๊ณ์ง์ ์ ์์ผ๋ฏ๋ก, 3x3 ํ์ ํ๋ ฌ , 3x1 ํํ์ด๋ ๋ฒกํฐ๋ฅผ ๋ผ ํ์ ๋, ์ธ๋ถ ๊ณต๊ฐ์์ ํ ์ ์ ๋ ์นด๋ฉ๋ผ ์ขํ๊ณ์์์ ๊ด๊ณ๋ฅผ ์๋์ ๊ฐ์ด ํํํจ (๋ A์นด๋ฉ๋ผ ์ขํ๊ณ, ์ B์นด๋ฉ๋ผ ์ขํ๊ณ)
- ์ด ๋, essential matrix E๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ฉด
- ๋ค์์ ๋ง์กฑํจ
3. Fundamental Matrix
Essential Matrix๊ฐ ์ ๊ทํ๋ ์ด๋ฏธ์ง ํ๋ฉด์์์ ๋งค์นญ ์๋ค ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ์ค๋ช ํ๋ ํ๋ ฌ์ด๋ผ๋ฉด, Funcamental Matrix๋ ์นด๋ฉ๋ผ ํ๋ผ๋ฏธํฐ๊น์ง ํฌํจํ ๋ ์ด๋ฏธ์ง์ ์ค์ ํฝ์ (pixel) ์ขํ ์ฌ์ด์ ๊ธฐํํ์ ๊ด๊ณ๋ฅผ ํํํ๋ ํ๋ ฌ (Essential Matrix์์ ์นด๋ฉ๋ผ intrinsic parameter(=K matrix)๋ฅผ ๋ชจ๋ ๊ฐ์ด ๊ณ ๋ คํ๋ matrix)
3.1. Fundamental Matrix ์ ๋
- ์์์ ๋ ์ด๋ฏธ์ง A, B์ ๋ํ์ฌ, ๋งค์นญ๋๋ ํฝ์ ์ขํ , ์ฌ์ด์๋ ํญ์ ๋ค์๊ณผ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ํ๋ ฌ F๊ฐ ์กด์ฌํ๊ณ , ์ด๋ฌํ ํ๋ ฌ F๋ฅผ fundamental matrix๋ผ ๋ถ๋ฆ
- ์ด ๋, ์ด๋ฏธ์ง A์ ๋ํ ์นด๋ฉ๋ผ ๋ด๋ถ ํ๋ผ๋ฏธํฐ ํ๋ ฌ์ , ์ด๋ฏธ์ง B์ ๋ํ ์นด๋ฉ๋ผ ํ๋ ฌ์ , ์ด๋ฏธ์ง A, B ์ฌ์ด์ essential matrix๋ฅผ ๋ผ ํ๋ฉด funamental matrix ๋ ๋ค์๊ณผ ๊ฐ์ด ์ฃผ์ด์ง
4. OpenCV ๊ด๋ จ ํจ์
- 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]๋ฅผ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ์ฌ ๋ฐํํด ์ค
5. ํ๋ก์ ํธ
- ํ๋ก์ ํธ ๊ฒฐ๊ณผ ์ฐธ๊ณ : (Stereo) Stereo Vision System
์ฐธ๊ณ
- ๋คํฌ ํ๋ก๊ทธ๋๋จธ :: [์์ Geometry #7] Epipolar Geometry
- [52ํธ] ์คํ ๋ ์ค๋น์ ๊ธฐ์ด1-Epipolar.. : ๋ค์ด๋ฒ๋ธ๋ก๊ทธ
- [๊ฐ๋ ์ ๋ฆฌ] Epipolar Geometry
- [๊ฐ๋ ์ ๋ฆฌ] Essential Matrix์ Fundamental Matrix