Rekonstrukce scény ze dvou obrazů

Laboratorní práce z předmětu Počítačové vidění pro informatiku, 33PVI

Milan Krčmář, letní semestr 1999/2000

Zadání

Rekonstruujte 3D scénu ze dvou obrazů. Nejdříve použijte zadanou kalibrační matici P, potom proveďte její výpočet a srovnání obou metod.

Postup

Fundamentální matice

Začneme tím, že vypočítáme fundamentální matici  dvou pohledů. Pro každé dva korespondující body  a  musí platit . Matice má 9 koeficientů, postupujeme stejně jako v případě spojování obrazů: pro každý bod dostaneme rovnici o 9 neznámých, z osmi bodů sestavíme matici , , pomocí SVD upravíme hodnost matice na 8 a vypočteme matici .

Epipoláry a epipóly

Z rovnice vyjádříme koeficienty epipolár. Epipolára v obraze 2 je přímka v prostoru, která se zobrazuje do jednoho bodu v obraze 1, zobrazená v obraze 2. Korespondující body by měly ležet vzájemně na svých epipolárách. Pro rovnici epipolár platí

 a ,

kde  a .

Epipoláry mají jeden průsečík, epipól, ten je obrazem spojnice středů promítání obou kamer.

Následující obrázky ukazují zelené korespondující body a modré epipoláry v obou obrázcích, epipól je vyznačen červeně.

Celkový obraz

 

Detail epipolár

Detail epipólů

   .

Rekonstrukce ze zadané matice

Vycházíme z rovnic kamery, je to rovnice přímky, která se zobrazí do jednoho obrazového bodu kamery. Pokud budou platit rovnice obou kamer, získáme dvě přímky, na jejichž průsečíku je požadovaný bod.

Obecné rovnice

,

Vektor  v rovnicích má čtyři složky. Když ho normalizujeme tak, aby poslední složka byla 1, můžeme rozepsat rovnice do tvaru ( zde má už jen tři složky)

, .

Z tohoto tvaru už vycházejí rovnice pro :

, .

Tato soustava ale nebude mít řešení, protože body jsou zadány nepřesně a přímky se neprotínají, jsou to mimoběžky (i když blízké). Sestrojíme proto příčku mimoběžek (minimalizujeme jejich vzdálenost) a bod umístíme do jejího středu.

Tuto funkci derivujeme podle obou koeficientů a vypočteme místo nulové derivace (z povahy příčky bude mít funkce jediný extrém, minimum):

,

Rovnice upravíme a vypočteme  a . Z nich vypočítáme hledané .

Následující obrázek ukazuje rekonstruované body, pro názornost byly body spojeny úsečkami tam, kde jsou v původním obrázku hrany kostek.

Projektivní rekonstrukce

Odvození projektivní rekonstrukce vychází z rovnic projekce kamer:

 a .

Když tyto rovnice dosadíme do vztahu pro zobrazení epipolár, dostáváme:

.

Jestliže zvolíme matici , můžeme postupnými úpravami této rovnice dojít k výpočtu , kde  je epipól v druhém obraze a matice  musí tvořit součin , který je antisymetrickou maticí. Z požadavku na antisymetrii sestavíme rovnice, jejichž řešení má dimenzi 4. Ze všech řešení vybereme náhodným opakovaným postupem tu s nejmenší singularitou (tuto míru zavedeme jako poměr  a  v SVD rozkladu). Z takto získaných matic už můžeme rekonstruovat body. Vypočtené body nebudou totožné s body získanými pomocí dříve zadaných (skutečných) matic, budou z nich přepočteny obecnou projektivní transformací (násobením 4,4 maticí H). Pokud bychom chtěli vypočítat tuto matici, musíme porovnat v této transformaci skutečné a dosud získané body:

.

Každé toto srovnání jsou 4 rovnice o 16+1 neznámých, 16 je koeficientů v matici H, 1 neznámá je násobek  pro každý bod. Při pěti bodech již dostáváme 20 rovnic o 21 neznámých, z nichž už matici můžeme vypočítat. Já jsem použil všech 15 zadaných bodů, matici jsem počítal z 60 rovnic o 31 neznámých, hodnost matice jsem snížil pomocí SVD.

Výsledky

Na následujících obrázcích jsou původní snímky se zpětně přetransformovanými rekonstruovanými body. Zeleně je rekonstrukce ze zadaných projekčních matic, červeně z vypočítaných projekčních matic.