3D rekonstrukce z fotografií
| 5. 11. 20153D rekonstrukce se snaží převést objekty reálného světa do trojrozměrné digitální reprezentace. Metoda pomáhá například architektům, archeologům nebo pracovníkům muzeí snažícím se zachovat kulturní dědictví příštím generacím a zároveň je zpřístupnit laické veřejnosti. Významnou událostí v této oblasti byla 3D digitalizace papírového Langweilova modelu staré Prahy.
Představme si, že vyfotíme několik snímků stejného místa z různých pozic. Například obejdeme dům a na každých pár metrech zmáčkneme spoušť. Máme tedy množinu fotografií, o nichž můžeme říci, že každá část objektu je vidět minimálně na dvou z nich. Pokud vezmeme tyto dvě fotografie a v každé vytvoříme přímku spojující ohnisko fotoaparátu s nějakým bodem na fotografii (roh komínu), získáme v průsečíku těchto dvou a více přímek 3D bod reprezentující reálný bod v trojrozměrném prostoru. Vytvoříme- li takto více bodů a spojíme je hranami do ploch, získáme 3D geometrii reprezentující vyfotografovaný objekt.
Pokud chceme mít objekt barevný, je potřeba ještě získat texturu, tj. obrázek reprezentující barvu objektu. Tento proces si můžeme přiblížit jako promítnutí fotografií na získaný 3D model a uložení barevné informace pro každý pixel. Barevnou texturu je většinou potřeba složit z více než jedné fotografie pro každou stěnu 3D modelu (obr. 1, 2).
Tento jednoduše popsaný proces má mnohá úskalí a staví na mnoha letech výzkumu z oblasti počítačové grafiky, počítačového vidění a optimalizace. Pro věrohodnou rekonstrukci je potřeba pořídit velké množství dobře zacílených fotografií. Pro každou z nich se musí zpětně spočítat pozice a orientace v prostoru (GPS informace a údaje z gyroskopu a akcelerometru se používají pouze pro hrubý odhad základní pozice), což při větším množství (tisíce) fotografií začíná činit problémy. Dále je potřeba pro každou fotografii odhadnout vlastnosti objektivu, tj. ohniskovou vzdálenost a případně parametry soudkového zkreslení (barel distortion). Proces hledání těchto parametrů se nazývá kalibrace, a pokud vše dopadne dobře, na konci získáme zkalibrovanou scénu, v níž můžeme měřit vzdálenosti mezi body a rekonstruovat geometrii.
Ručně, nebo automaticky?
Takto zkalibrovanou scénu poté využijeme pro rekonstrukci 3D geometrie objektu. Existují tři základní přístupy. Prvním je ruční přístup popsaný na začátku článku: uživatel ve fotografiích hledá významné body (rohy) a označuje tentýž bod na minimálně dvou, ale lépe třech fotografiích. Druhý přístup je plně automatický. Algoritmy detekují významné body na fotografiích pořízených z podobných pozic a generují tzv. mračno 3D bodů. Toto mračno se později použije jako základ pro generování geometrie.