Josef Průša

Fotogrammetrie 2 – 3D skenování jednodušší než kdy dřív!

07. 12. 2018 | by Mikolas Zuza

Je možné vytvořit 3D model jen tím, že si reálný objekt vyfotíte ze všech stran? Jasně! Fotogrammetrie je zpět a je jednodušší než kdy dřív, zcela zdarma a dosahuje ještě lepších výsledků.

Četli jste náš první článek o fotogrammetriiPojďme si ho krátce připomenout – objekt stačí vyfotit ze všech možných úhlů a fotografie nahrát do speciálního softwaru. Ten odhadne pozice kamer a vytvoří tzv. mračno bodů, tedy spoustu 3D bodů připomínajících původní objekt. Chcete-li získat tisknutelný soubor, musíte převést tyto body na trojúhelníkovou síť. Nakonec je dobré model opravit, utěsnit všechny otvory, naslicovat a jsme připraveni tisknout!

Zní to docela jednoduše, ve skutečnosti byl ale náš původní návod poměrně složitý. Naštěstí pro nás se věci změnily a nový software všechno výrazně zjednodušil. Seznamte se s Meshroomem!

Meshroom/AliceVision

Meshroom je zcela nový fotogrammetrický software. Je zdarma, open-source a má krásné uživatelské rozhraní. Pomocí uživatelského rozhraní se de facto ovládá framework AliceVision, který je výsledkem spolupráce mezi několika univerzitami, laboratořemi a francouzskou postprodukční společností.

Uživatelské rozhraní Meshroomu

Základní interakce je tak jednoduchá, jak jen to jde. Přetáhnete obrázky do okna aplikace, stisknete tlačítko START a počkáte na vytvoření rekonstruovaného modelu. S Meshroomem ale můžete také vylepšovat již rozpracované rekonstrukce. To znamená, že můžete přidat další fotky k již částečně hotovému modelu – například když si v náhledu všimnete, že některá část modelu by si zasloužila více detailů.

V Meshroomu můžete dokonce zkusit i tzv. živou rekonstrukci! V tomto režimu opakovaně pořizujete sady fotografií, nahrajete je do složky a program je automaticky zpracuje. Zobrazí se náhled a vy se můžete rozhodnout, která část modelu potřebuje více detailů. Pak můžete udělat ještě více fotek a celý proces zopakovat, dokud nejste spokojení s kvalitou modelu.

Nejnovější verzi Meshroomu můžete stáhnout zde. Aplikace je dostupná jak pro Windows, tak i OSX/Linux. Instalační instrukce naleznete v Meshroom wiki či v textovém manuálu, oba materiály jsou ale pouze anglicky. Aplikace vyžaduje podporu knihovny CUDA, bez grafické karty nVidia se tak bohužel neobejdete 🙁

Ale než si začneme hrát s Meshroomem, pojďme si projít důležité kroky, které byste měli dodržovat při pořizování fotek na fotogrammetrii.

Jak správně fotit modely pro fotogrammetrii

Nastavení fotoaparátu

Vaše kamera v telefonu bude bohatě stačit, ale pokud máte zrcadlovku, budou výsledky mnohem lepší. Na zrcadlovce nastavte clonu na hodnotu alespoň 5-6, aby byl celý model, který se snažíte zachytit, ostrý.

Pokud to váš fotoaparát podporuje, zvažte pořizování fotografií do formátu RAW. Není to nutné, ale pokud se jas jednotlivých fotografií hodně liší, pomůže vyvolání z RAW s automatickým nastavením. Při vyvolávání či úpravě obrázků ale určitě nezapínejte korekci objektivu nebo podobné filtry. Ve většině případů by vám ale měl stačit i JPEG.

Pořizování fotografií

Doporučujeme udělat alespoň 30 fotografiíBěhem testování jsme často pořídili 50, 100 nebo i více snímků, abychom zachytili každý detail. Nezabere to zdaleka tak dlouho, jak byste čekali. Mějte na paměti, že některé snímky totiž může software vyřadit. To se nejčastěji stane, když je fotka rozmazaná nebo se v ní nepovede nalézt dostatečný počet společných prvků s ostatními fotografiemi.

  1. Ideální je pohybovat se v kruzích okolo snímaného objektu
  2. Je opravdu důležité, abyste nehýbali objektem mezi jednotlivými snímky
  3. Každý detail by měl být zachycen alespoň dvěma snímky. V ideálním případě by se po sobě jdoucí snímky měly překrývat z 60-80 %
  4. Snažte se vyhnout ostrým stínům. Focení venku při polojasném počasí je ideální způsob, jak dosáhnout rovnoměrného osvětlení ze všech stran
  5. Objekt by měl zabírat významnou část každého snímku
  6. Vyhněte se lesklým nebo průhledným povrchům

Můžete použít zoom nebo dokonce kombinovat obrázky z úplně jiného fotoaparátu. Meshroom je v tomto ohledu opravdu skvělý. Nicméně to neznamená, že je dobrý nápad zoom měnit po každém snímku. Čím více fotek pořídíte se stejným nastavením, tím lépe. Meshroom si tak dokáže kameru lépe zkalibrovat.

Můžete místo fotek natočit video? Ano… ale není to dobrý nápad. I když lze, technicky vzato, použít video vykreslené do jednotlivých snímků jako zdroj, kvalita obrazu je mnohem nižší ve srovnání se standardní fotkou. Ve videu navíc chybí metadata a do Meshroomu budete vkládat stovky snímků. Standardní fotografie jsou zkrátka lepší.

A kdybyste pořídili fotky objektu před dokonale bílým pozadím a otáčeli modelem mezi snímky? To víceméně funguje, ale opět takový postup nedoporučujeme. Výsledky jsou v porovnání s obcházením statického modelu znatelně horší.

Ideální cíle pro fotogrammetrii mají texturovaný nebo hrubý povrch. Zachytávání lesklých ploch je složité, ale v některých případech je můžete alespoň zakrýt nějaký práškem (třeba moukou), abyste se zbavili odrazů, které jsou pro fotogrammetrii nežádoucí.

Standardní rekonstrukce

Standardní rekonstrukci nejpravděpodobněji použijete při processingu objektů, které jste nafotili venku na výletě nebo zkrátka někde daleko od počítače, tudíž pořízení dalších fotografií je komplikované. Předpokládáme, že jste již pořídili všechny potřebné fotky, přišli domů a nyní chcete rekonstruovat 3D model. Pracovní postup je velmi jednoduchý:

  1. Zkopírujte všechny obrázky do složky na disku počítače
  2. Přetáhněte složku nebo vybrané obrázky do okna Meshroomu
  3. Pomocí nabídky File – Save si uložte projekt do složky, která vám vyhovuje (jinak by se rekonstrukce uložila do dočasných souborů)
  4. Stiskněte Start nebo klikněte pravým tlačítkem v grafu na StructureFromMotion (SFM) a zvolte Compute
    • Je lepší ručně zvolit výpočet jen po uzel SFM, zpravidla trvá jen pár minut a uvidíte náhled rekonstrukce
  5. Rekonstrukce zabere přinejmenším několik desítek minut
    • Jednotlivé uzly se budou postupně zbarvovat do zelena
    • Rekonstrukci můžete kdykoliv přerušit stiskem Stop a pokračovat v ní později

Jakmile se dokončí uzel Structure from motion, zobrazí se náhled rekonstrukce (případně můžete náhled vyvolat dvojklikem levého tlačítka myši). Všechny obrázky, které se úspěšně spárovaly, budou mít vedle sebe zelené „zaškrtávátko“.

Vyřazené snímky jsou označeny červenou ikonou

Jestliže byla většina fotografií vyřazena a v náhledu je jen několik málo kamer, nemá moc smysl v rekonstrukci pokračovat. Budete muset rekonstrukci rozšířit o další fotografie nebo změnit některá z nastavení.

Po dokončení kompletní rekonstrukce můžete dvakrát kliknout na uzel Texturing pro zobrazení výsledného modelu. Případně lze kliknout pravým tlačítkem na některý z dokončených uzlů a vybrat Open folder.

Ve složkách Texturing a MeshFiltering naleznete model v často používaném formátu Wavefront .obj.

Socha Sfingy před vstupem do Rudolfina a výtisk rekonstruovanho modelu.

I když výstupní soubor lze importovat přímo do Slic3ru PE, pravděpodobně budete muset udělat alespoň nějaké velmi základní opravy modelu před tiskem.

Hledáte vzorovou sadu fotografií, abyste mohli fotogrammetrii snadno vyzkoušet? Autoři programu 3DF Zephyr, což je další software určený k fotogrammetrii, zveřejnili velmi kvalitní fotky na svém webu, stáhnout je můžete zde.

Rozšíření rekonstrukce

Řekněme, že skenujete něco doma. Udělali jste asi 60 snímků a rekonstrukce běží zatím dobře. Tedy kromě jedné oblasti, kterou jste nezachytili dostatečně detailně. Některé obrázky byly vyřazeny a tato část modelu tím pádem postrádá detaily.

Když pracujete s Meshroomem, není problém pořídit dodatečné fotografie a přidat je k existující rekonstrukci.

Je nesmírně důležité, abyste během pořizování jednotlivých sérií obrázků objektem nepohnuli. Pokud se jeho poloha změní, rekonstrukce bude pravděpodobně velmi obtížná nebo přímo nereálná. Při fotografování špatně nasnímané oblasti doporučujeme vytvořit asi 5 až 10 fotek. A můžete se pokusit zachytit více oblastí najednou.

Nové fotografie se totiž porovnávají s kompletní sadu fotografií. To znamená, že přidání nových fotografií může dokonce způsobit spárování dříve vyřazených fotografií. Kdykoli přidáte sérii obrázků do stávající rekonstrukce, v editoru grafu se objeví nová větev. Opět stačí spočítat pouze vše do uzlu StructureFromMotion, což je obvykle relativně rychlé. Jakmile se změní označení uzlu na zelenou, klikněte na něj, abyste aktualizovali náhled.

Když si myslíte, že máte dostatek fotek pro plnou rekonstrukci, klepněte pravým tlačítkem na nejnižší uzel Texturing a zvolte Compute. Plná rekonstrukce může zabrat opravdu hodně času (hodiny), takže se vyplatí ji spustit až na finální větev grafu, která obsahuje všechny snímky.

Původní postavička a její vytištěná kopie

 

Živá rekonstrukce

Živá rekonstrukce je snad nejzábavnější způsob jak dělat fotogrammetrii! Meshroom bude sledovat vámi zvolenou složku, a jakmile do ní vložíte nové snímky, přidají se do rekonstrukce.

Nastavení

  1. Klikněte na View – Live reconstruction pro otevření nastavení
  2. Vyberte složku, kam budete nahrávat nové obrázky, a minimální počet snímků pro zpracování v každém kroku
  3. Nyní klikněte na Start v panelu Live Reconstruction
  4. Začněte do složky kopírovat první sadu fotografií

První série obrázků by měla obsahovat nejméně 10-20 obrázků a měla by se zaměřit na obecný tvar objektu. Nezačínejte tím, že budete fotit detaily.

Ještě bude potřeba opravit jednu drobnost. V grafu je totiž nutné ručně propojit poslední uzel StructureFromMotion a uzel PrepareDenseScene.

  1. Klikněte pravým tlačítkem myši na propojení uzlů StructureFromMotion PrepareDenseScene
  2. Zvolte Remove
  3. Potom tažením myši vytvořte nové propojení mezi posledním StructureFromMotion a PrepareDenseScene
  4. Nyní můžete vypočítat plnohodnotnou rekonstrukci – Zvolte Compute u uzlu Texturing

Hydrant – Živá rekonstrukce

Příprava modelů pro tisk

Téměř všechny modely vytvořené 3D skenováním nebo fotogrammetrií mají ve spodní části otvor. Naštěstí pro nás stejně potřebujeme rovnou plochu kvůli umístění objektu na tiskovou podložku. Jednoduchý řez rovinou v Meshmixeru, Blenderu nebo 3D Builderu to rychle vyřeší.

Počítejte s tím, že velikost modelu bude náhodná. Nenechte se tedy překvapit, když bude model po importu velmi malý – jednoduše ho zvětšete.

Rádi bychom upozornili i na techniku, která se s fotogrammetrií skvěle doplňuje – jedná se o „Sculpting“, neboli digitální sochání. V budoucnu se mu budeme věnovat v rámci samostatného videa, ale mezitím se můžete podívat na již existující návody.

Doporučujeme také navštívit wikipedii Meshroomu. Najdete tam spoustu informací o tom, jak vyřešit různé chyby, nebo jaké parametry byste měli zkusit ladit a upravovat. A pokud byste náhodou chtěli přispět k dalšímu vývoji, nebude to problém! Pošlete Pull request na GitHubu nebo kontaktujte vývojáře e-mailem.

Galerie výtisků 

Je to snadné!

Díky Meshroomu je fotogrammetrie jednodušší než kdy dřív. Výstupní modely nejsou sice tisknutelné přímo po exportu, ale s velmi drobnými úpravami můžete dosáhnout opravdu neuvěřitelných výsledků. Výsledné modely budou vhodné nejen pro 3D tisk, ale třeba i pro animaci nebo vývoj her. A navíc je program open-source! Takže můžeme očekávat aktualizace přinášející celou řadu vylepšení. A to hlavně pokud program i vy podpoříte jakýmkoliv způsobem – nahlaste chybu, na kterou narazíte, nebo se podělte o vlastní nastavení.

Tak co, přesvědčili jsme vás, že je čas dát fotogrammetrii další šanci? My se už nemůžeme dočkat až uvidíme vaše výtisky, tak na nic nečekejte, popadněte foťák a běžte skenovat svět! 🙂


Originální 3D tiskárna Prusa i3

Podívejte se na originální Prusa i3 MK3 3D tiskárnu!
Nejlevnější je už od 19 990 Kč

Průša 3D tiskárny na faceboku