Meshroom - jednoduchý 3D scan objektu pomocí fotogrammetrie

Meshroom - jednoduchý 3D scan objektu pomocí fotogrammetrie Tagy: Software, 3D Scan
| Publikováno dne

Potřebujete převést reálné těleso do 3D digitálního modelu a nevíte si s tím rady? Možností je vícero. Můžete si nainstalovat některý z 3D designerských programů a začít modelovat. Línější (a chytřejší) napadne použít 3d skener, avšak brzy zjistí, že cena takovýchto skenů není zrovna levnou záležitostí a především, že jejich těleso může být pro takovýto sken příliš rozměrné / těžko přepravitelné. Naštěstí existuje snadná a levná cesta tvorby 3D digitálních modelů skutečných těles - fotogrammetrie.

Co je fotogrammetrie?

Fotogrammetrie je vědní obor zabývající se rekonstrukcí tvarů, měřením rozměrů a určováním polohy předmětů z fotografických snímků. V rámci 3D scanu těles se využívá vícesnímkové fotogrammetrie. Její podstatou je modelace digitálního tělesa na základě série fotografií zachycujících dané reálné těleso.

Fotogrammetrii lze provádět s použitím celé řady softwarů, a to placených i bezplatných. Zvolený software je přitom rozhodujícím pro časovou náročnost a kvalitu výsledného 3d modelu získaného fotogrammetrii. Dříve se pro běžné použití nejčastěji využívaly bezplatné programy jako Colmap, 3DF Zephyr (limit na 50 zdrojových fotek v bezplatné verzi) nebo Visual SFM. Dnes je naším favoritem software MeshRoom.

Socha lva získaná s využitím fotogrammetrie a softwaru MeshRoom

Proč dělat fotogrammetrii v MeshRoom?

Meshroom je bezplatný open-source software (zdrojový kód si můžete projít zde) s velmi snadnou ovladatelností a intuitivním prostředím. Zpracování fotografií probíhá s využitím fotogrammetrického frameworku pro počítačové vidění AliceVision. Tento framework je produktem spolupráce několika univerzit, laboratoří a postprodukční francouzské společnosti Mikros Images. Mezi partnery pomáhající s AliceVision patří i České vysoké učení technické v Praze.

Generování modelů fotogrammetrií v Meshroom je velice snadné, doslova spočívá pouze v označení zdrojových fotografií, jejich přetažení do okna softwaru, kliknutí na volbu start / compute a několikahodinovém čekání na přepočet a převod předmětu zachyceného na fotografiích do kvalitního 3D digitálního modelu. Mimo tento jednoduchý mód generování, Meshroom umožňuje i volby rozšířeného a živého generování - oba módy umožňují do již částečně vygenerovaného modelu přidávat další zdroje dat za účelem dosažení vyšší kvality výsledního modelu.

Software Meshroom je dostupný pro operační systém Windows i OSX/Linux a pro svůj běh vyžaduje podporu knihovny CUDA (dostupná v rámci grafických karet nVidia, uživatelé AMD mají smůlu, případně si musí modifikovat kód související s potřebami CUDA). Instrukce k instalaci, stejně jako istalační soubory, jsou k dispozici na stránce programu.

Ukázka fotogrammetrie v MeshRoom. První pokus s nedostatečným počtem zdrojových fotografií, následován donahráním dodatečných fotografií pro zkvalitnění prvotního modelu. Výsledný model poté nahrán do softwaru AutoDesk Maya. Dále ukázka renderováním s využitím výpočetního výkonu v cloudu. Video je zakončeno ořezem nechtěných polygonů modelu s pomocí softwaru Autocad Maya a následným převzorkováním a přestrukturováním výsledného modelu.

Softwarovou část máme. Nyní se zaměřme na metodiku získávání zdrojových fotografií pro výslednou modelaci 3D scanu objektu.

Jaký fotoaparát pro fotogrammetrii použít a s jakým nastavením?

Pořízení fotografií pro fotogrammetrii lze provést s využitím jakéhokoliv fotoaparátu, včetně videokamery s následovným vytažením jednotlivých framů z video záznamu. Od kvality fotografií je posléze odvislá ostrost digitálního modelu tělesa z fotografií.

Fotoaparát mobilního telefonu bývá pro většinu aplikací dostatečný. Používání kamery s následným využitím jednotlivých framů nedoporučujeme, výsledná ostrost je oproti způsobu s použitím fotografií značně snížená. Optimální je použít zrcadlovku a to s clonou na hodnotě alespoň 5-6. Ideálně navíc s nastaveným fotografováním do formátu RAW.

Jaké předměty, kdy a jakým způsobem fotit?

Fotogrammetrií lze tvořit digitální dvojče jakéhokoli fyzického 3D tělesa. Problém bývá s lesklými a průhlednými povrchy. Takový povrch je potřeba před fotografováním ošetřit - buď aplikací barvy nebo alespoň lepící pásky zabraňující odleskům. Pro začátek doporučujeme začít s něčím jednodušším - například sochou - ty disponují hrubým a texturovaným povrchem který je pro fotogrammetrii ideální.

Fotografování těles venku je vhodné provádět za stálého počasí a světla, bez ostrých stínů. Ideálně když je pod mrakem.

Při běžném fotografování mimo laboratoř nikdy nehýbejte "skenovaným" tělesem, namísto toho se s fotoaparátem pohybujte kolem daného tělesa vy. Počet fotografií volte alespoň ve středních desítkách - minimální počet si odvoďte z následujících pravidel:

  • Je nutné nafotit všechny části, které mají být digitalizované
  • Každá další fotografie musí obsahovat alespoň 60-80% překryv fotografie předcházející
  • Skenovaný objekt musí zabírat podstatnou část každého snímku
  • Software pro fotogrammetrii nemusí akceptovat všechny nahrané fotografie (např. pokud nenajde dostatek společných bodů s body na dalších snímcích). Berte to na vědomí.
  • Meshroomu nevadí snímky s různým zoomem ani snímky s pořízené s odlišným nastavením, včetně snímků z různých kamer. Nicméně aplikování tohoto není přínosem.

Máme fotografie pro použití ve formě zdrojových dat i nainstalovaný Meshroom software. Konečně se můžeme pustit do modelování...

Standardní, rozšířená nebo živá rekonstrukce - kdy kterou volit?

  • Standardní rekonstrukce - Možnost standardní rekonstrukce je vhodná v případech, kdy máte sadu fotografií bez možnosti pořízení a přidání dalších (např. se skenovaným tělesem jste od doby fotografování pohnuli, fotografování bylo provedeno na vzdáleném místě (dovolená, výlet) atd.)
  • Augmented reconstruction (Rozšířená rekonstrukce) - Máte kompletně nafoceno a stále možnost v případě potřeby další fotografie nafotit a přidat (skenované těleso stále stojí na původním místě, s obdobným okolním prostředím). Možnosti přidávat další snímky se využije v případě, kdy určitá část vygenerovaného modelu nebude dosahovat dostatečné kvality - ať už vlivem opomenutých fotografií daného místa, případně vyřazením fotografií z důvodu nízkého počtu detekovaných shod s dalšími (okolními) snímky. Přidané fotografie se synchronizují se všemi již nahranými fotografiemi, nejde tedy jen o doplnění chybějících částí, namísto toho i o doplnění dalších zdrojů umožňující propojení doposud vzájemně nepropojených fotografií.
  • Live reconstruction (Živá rekonstrukce) - Živá rekonstrukce je řízena fotografiemi vloženými do zdrojové složky určené pro modelaci 3D digitálního tělesa - těleso je modelováno průběžně s tím, jak do dané složky jednotlivé sady fotografií průběžně vkládáte. Využít tuto možnost je optimální, pokud nevíte, kolik fotografií tělesa bude celkově potřeba (začnete s 10 a postupně přidáváte), případně, pokud máte dostatek času a chcete si užít trochu fotogrammetrické zábavy.

Jak jednotlivé volby rekonstrukce nastavit a na co si dát pozor?

  1. Standardní rekonstrukce
    1. Zajistěte, aby všechny fotografie určené pro fotogrammetrii tělesa byly v 1 složce na disku počítače
    2. Označte všechny fotografie a přesuňte do okna Meshroom
    3. Uložte rozpracovaný projekt (File → Save) do cílové složky, ve které mají být data finálního 3d modelu vložena.
    4. Ve spodní liště najeďte na box "StructureFromMotion", a po kliku na něj pravým tlačítkem myši vyberte možnost "compute". Výpočet zabere pár hodin. Přerušit jej můžete kdykoli stisknutím tlačítka stop. Po dokončení výpočtu uvidíte finální model i informaci o tom, které fotografie byly spárovány (použity pro model) a které ne. Samotné soubory 3D modelu jsou ve složkách počítače Texturing a MeshFiltering.
    5. Pokud se stane, že výsledný 3d model vznikl s použitím pouze mála fotografií (většina byla vyloučena), je nutné další fotografie přidat, popřípadě zkusit upravit nastavení rekonstrukce.
  2. Augmented reconstruction (Rozšířená rekonstrukce)

    Při rozšířené rekonstrukci doporučujeme využívat částečných (časově optimálnějších) výpočtů a kompletní výpočet (z kliku na nejnižší texturing level) provést až pro finální výpočet.

  3. Live reconstruction (Živá rekonstrukce)

    Volba živé rekonstrukce vyžaduje prvotní nastavení, to se provede následujícím způsobem:

    1. V záložce View zvolte možnost "Live reconstruction"
    2. Zvolte zdrojovou složku (kam plánujete nahrávat fotografie) a minimální počet pro zpracování v každém kroku (např. 5)
    3. V Panelu Live reconstruction klikněte na tlačítko "Start".
    4. Nakopírujte do zdrojové složky první sadu fotografií (ideálně 10-20 fotografií zaměřených na obecný tvar tělesa)
    5. Zmodifikujte propojenost uzlů - je nutné zaměnit propojenost uzlu "PrepareDenseScene" s uzlem "StructureFromMotion", který se v dané liště nachází 2x (uprostřed a na konci). V live rekonstrukci je nutné propojení uzlu "PrepareDenseScene" právě s posledním uzlem "StructureFromMotion" namísto prostředním. To se provede odstraněním vazby existující a následným vytvořením vazby nové.
    6. Vypočet generování modelu spusťte volbou "compute" z uzlu "Texturing".