23. 03. 2018 | by Mikolas Zuza
Toužili jste někdy po tom, že byste mohli jednoduše přenést reálný předmět do počítače? Technologie, která toto umožňuje, už nějakou dobu existuje. Je však stále velmi drahá a málo dostupná. Většina z nás zkrátka nemá přístup ke špičkovým 3D skenerům, které jsou schopné vytvořit trojrozměrný model naskenováním reálného předmětu. Nehledě na to, že některé objekty mohou být příliš velké na to, aby je vůbec bylo možno jednoduše naskenovat. Naštěstí existuje jiná cesta, jak vytvořit digitální model na základě skutečného, fyzického předmětu. A zvládnete to i vy.
Fotogrammetrie (někdy též SFM – Structure From Motion) je proces, který vypočítává umístění bodu v trojrozměrném prostoru použitím fotografií objektu zachyceného z více úhlů pomocí fotoaparátu či videokamery. To je alespoň velmi zjednodušené vysvětlení. V podstatě jde o to, že ze všech možných úhlů pořídíte sadu fotografií konkrétního objektu, které následně nahrajete do specializovaného programu. Program následně hledá společné prvky na všech fotografiích, a snaží se s pomocí nich vypočítat, z jakého úhlu byl na dané fotografii předmět vyfotografován. S informací o pozici a úhlu kamery pak dokáže software vytvořit bod ve 3D prostoru, který odpovídá prvku na 2D fotografii. V ideálním případě by měl být výsledkem bezchybný trojrozměrný model. Abyste však dosáhli nejlepších výsledků, bez ručního doladění se neobejdete.
Seznam použitelného fotogrammetrického softwaru je pěkně dlouhý. Problém je pochopitelně v tom, že většina programů je buď velmi drahá, nebo (co se týče schopností bezplatné verze) silně limitovaná. Pokročilejší programy dokonce nabízejí i užitečné cloudové výpočty, což se ale samozřejmě podepisuje na jejich ceně.
Pokusili jsme se najít ten nejlepší bezplatný software:
Navíc ještě budeme potřebovat software pro dodatečné zpracování výstupních dat. Tady je rozhodování jednoduché – bereme Meshlab.
Je potřeba zmínit, že výpočty jsou poměrně náročné na hardware. Pokud vlastníte jen starý notebook či levný netbook, počítejte s tím, že kalkulace bude trvat celou věčnost. Mnoho aplikací navíc využívá pokročilé GPU výpočty, například pomocí technologie NVIDIA CUDA (například Colmap), což mimo jiné znamená, že majitelé karet od AMD mají v tomto případě smůlu.
V první řadě budete samozřejmě potřebovat fotoaparát. Foťák v moderním smartphonu je dostačující, ovšem pokud máte k dispozici digitální zrcadlovku, budou výsledky mnohem lepší. Pokud se rozhodnete pro zrcadlovku, nezapomeňte vyšponovat clonu na hodnotu 7-8, abyste mohli pořídit co nejostřejší obrázky a vyvarovali se mělké hloubky ostrosti.
Bude potřeba, abyste pořídili alespoň 20 fotografií zvoleného objektu. Během našeho testování se ukázalo, že se vyplatí pořídit mezi 50 až 80 obrázky, abychom zachytili každý detail. Mějte na paměti, že některé obrázky při zpětné kontrole vymažete nebo je program odmítne zpracovat, pokud nenajde dostatek společných prvků.
Ideálními objekty pro fotogrammetrii jsou předměty s hrubším povrchem, který má jasně rozpoznatelnou strukturu (například sochy). Pokud je to možné, můžete lesklé či průhledné plochy pokrýt práškem (například moukou), abyste se zbavili odrazů. Případně lze předměty polepit malířskou páskou.
Pokročilí uživatelé mohou natočit i videozáznam zvoleného objektu a následně jej konvertovat na jednotlivé snímky. V takovém případě doporučujeme nastavit vyšší rychlost závěrky (např. 1/80), čímž by se měly eliminovat rozostřené snímky.
Doporučujeme vytvořit novou složku, která bude obsahovat všechny soubory pro daný projekt. Uvnitř této složky vytvořte podsložku nazvanou “Photos” a všechny pořízené obrázky nakopírujte do ní. Projděte pořízené fotografie a všechny rozmazané smažte. Pro rekonstrukci budeme používat program Colmap na operačním systému Windows 10.
Až Colmap dokončí kalkulaci, zobrazí se rekonstruovaný pohled na scénu s dopočítanými úhly kamery.
Nastavení programu Colmap a výsledná rekonstruovaná scéna
Po skončení kalkulace nám Colmap vygeneruje dva soubory, které nás budou zajímat. Jedná se o fused.ply a meshed.ply. Najdete je v podsložce Workspace/dense/0. Meshed.ply je, jak jméno naznačuje, polygonový objekt. Colmap není zrovna přeborníkem, co se týče vytváření 3D objektů z poskytnutých dat, ale jestli si chcete ušetřit čas, pak můžete vygenerovaný objekt v podstatě ihned použít. PLY lze jednoduše zkonvertovat do formátu STL, například v programech Meshmixer nebo Meshlab. Rozhodně ale není dobrý nápad začít 3D model okamžitě tisknout. Všechny objekty vytvořené 3D skenováním nebo fotogrammetrií totiž obsahují řadu chyb, plus jim chybí plochá základna, kterou by bylo možno umístit na tiskovou podložku. Projděte si naše návody Jak opravit poškozené 3D modely a Řezání modelů, kde vysvětlujeme, jak tyto problémy odstranit.
Mějte na paměti i to, že rozměry vygenerovaného předmětu jsou víceméně náhodné, tudíž jej pak nezapomeňte zvětšit či zmenšit.
Druhý vygenerovaný soubor je pak o dost zajímavější. Nazývá se fused.ply a obsahuje takzvané “mračno bodů” (point cloud). Jedná se o shluk bodů v prostoru, nejsou tu žádné polygony, tudíž ani žádný objekt. Právě onen objekt si budeme muset sami vytvořit. Je to práce navíc, ale výsledek stojí za to.
Sepsali jsme pro vás ještě několik dalších tipů, které by vám měly usnadnit dokončování a ladění výsledného modelu v programu Meshlab.
Sochy jsou pro fotogrammetrii perfektním objektem. Mají hrubý povrch, který nevrhá odlesky. Mají však dostatek geometrických prvků a detailů, kterých se může počítačový software chytit. Navíc jsou sochy většinou příliš velké pro tradiční 3D skenery, o celkovém nepohodlí spojeném s používáním 3D skeneru na veřejných prostranstvích nemluvě. Ale s fotogrammetrií je to výrazně jednoduší. Zkrátka jen vezmete fotoaparát a začnete pořizovat snímky ze všech úhlů. Vzhledem k tomu, že se budete pohybovat venku, často mezi lidmi, mějte na paměti několik důležitých věcí. Snažte se vyvarovat toho, aby na vašich snímcích byly zachycené pohybující se objekty. Pokud kolem procházejí lidé, počkejte, až opustí záběr. Čekání můžete vyplnit tím, že budete mezitím fotit jiné části objektu bez rušivých elementů. Ideálně počkejte, až slunce zajde za mrak, abyste se vyvarovali ostrých a kontrastních stínů.
Socha Sedící ženy od Václava Bejčka z roku 1967, rekonstruovaný 3D model (podívejte se na 3D zobrazení na webu Sketchfab), a vytištěná verze
Možná si říkáte, jaký má význam skenovat vytištěný model, když je přece původní STL model mnohem lepší. Přinejmenším se jedná o ideální způsob, jak zhodnotit kvalitu této technologie, protože můžeme snadno porovnat rozdíly mezi původním STL modelem a námi vygenerovaným 3D objektem. Další, o něco praktičtější využití je pak možnost naskenovat si vytištěný objekt, který jste ručně nabarvili, a dál jej sdílet.
Jak se můžete přesvědčit na 3D zobrazení níže, došlo ke zjevnému zhoršení kvality, co se týče geometrických dat. Na druhou stranu drtivá většina prvků byla rekonstruována úspěšně, tudíž by stačilo několik manuálních úprav a model by vypadal velmi dobře. Navíc je tu i příjemný doplněk v podobě plnobarevné textury. V domácích podmínkách a s bezplatným softwarem to vůbec není špatný výsledek.
Pro porovnání geometrie obou objektů stiskněte klávesu I a vyberte položku Matcap
Skenování pálky na stolní tenis nebylo nijak obtížné, tedy až na jednu výjimku: velké dřevěné hrací plochy pokryté gumovým potahem. Nemají žádnou výraznou strukturu ani detaily, kterých by se mohl software chytit. A co hůře – jsou lesklé. Když pak s fotoaparátem kroužíte kolem pálky, můžete se všimnout, jak se neustále mění odrazy světel. Tím pádem počítačový program nedokáže v těchto částech správně vytvořit polygonovou síť, což vede k jedinému výsledku: zcela nahodilému tvaru objektu. Abyste těmto problémům předešli, je potřeba tento typ povrchů upravit a přidat jim detaily. Toho můžete dosáhnout například jednoduchým použitím malířské lepící pásky. Pár kousků pásky nalepte na problematická místa, čímž zakryjete odrazy a vytvoříte záchytné body pro fotogrammetrický software. Ve 3D zobrazení pak můžete vidět, jak tento jednoduchý trik dokáže ovlivnit výsledek.
Průhledné či poloprůhledné objekty taktéž představují problém. S ostrými a výraznými rohy si fotogrammetrický software možná poradí, ovšem hladké průhledné plochy budou během generování zcela ignorovány a výsledek zůstane daleko za očekáváním. Stejně jako u lesklých povrchů můžete i v tomto případě použít lepící pásku, případně vodou ředitelné barvy ve spreji.
Trojrozměrné objekty vytvořené pomocí fotogrammetrie mohou být natolik kvalitní, že překonají výsledky z laciných 3D skenerů. Navíc vám fotogrammetrie umožňuje zachytit rozměrné objekty, které byste standardním skenerem neměli šanci zachytit. Vaše pokusy totiž nemusí končit jen u soch a digitálních zrcadlovek. Reálně je možné si s pomocí dronu vytvořit například 3D model vašeho domu. Fotogrammetrie je navíc velmi dostupná technologie, přičemž existuje vysoká pravděpodobnost, že veškeré vybavení již vlastníte. Stačí vám solidní fotoaparát (i v mobilu) a alespoň trochu výkonný počítač.
Je fotogrammetrie skutečně funkčním nástrojem pro 3D skenování? Určitě ano. Je rozumné ihned začít tisknout naskenované objekty bez dodatečných úprav? Raději ne.
Jako u jakékoliv jiné technologie pro 3D skenování i zde platí, že výsledný trojrozměrný objekt nebude zcela bezchybný. V některých oblastech budou chybět detaily, rovné plochy nebudou úplně rovné, polygonová síť může obsahovat díry či tvary, které v reálném světě nelze replikovat ani s pomocí 3D tiskárny. Pokud si však dokážete s 3D modelem trochu pohrát a tyto chyby odstranit, bude výsledek stát za to.
Schonberger, Johannes Lutz and Frahm, Jan-Michael, Structure-from-Motion Revisited. University of North Carolina at Chapel Hill, Eidgenossische Technische Hochschule Zurich.
All3DP – Autodesk 123D Catch Review
Podívejte se na originální Prusa i3 MK3 3D tiskárnu!
Nejlevnější je už od
10 990 Kč