Skenování
3D skenování je proces digitalizace fyzického objektu do počítačového 3D modelu.
Motivace
3D skenování již dávno není novou technologií. Využívání 3D skenování zasahuje do čím dál širšího okruhu odvětví jako např. architektura, archeologie, filmové efekty, počítačové hry, strojírenství, lékařství. Ve spojení s 3D skenerem dávají tyto technologie nečekané možnosti využití jako jsou například různé čelistní, pánevní nebo nebo lebeční náhrady přímo na míru pacienta. Je možné také archivovat ohrožené památky pro budoucí generace, nebo naopak pomocí 3D skenování je možné rekonstruovat různá historická obydlí podle vykopávek. Nedílnou součástí jsou 3D skenery v oblasti geodetického měření, digitalizace budov, kontrole kvality nebo zabezpečovacích systémů.
Rozdělení 3D skenerů
Rozdělení 3D skenerů je možné mnohými způsoby. Vybrané rozdělení bere jako hlavní kritérium dotykové a bezdotykové metody skenování. Nejpoužívanější skenery jsou ve větvi reflexivních. Laserové metody mohou spadat i do metod aktivních optických využívající triangulaci nebo metodu měření doby letu. V taxonomii na obrázku jsou laserové metody vyčleněny zvlášť.
Kontaktní
Dochází ke kontaktu skeneru a skenovaného modelu.
Destruktivní
Tento typ skenerů je poněkud atypický, protože jde v podstatě o frézku s kamerou. Na začátku je potřeba měřený objekt zalít do bloku tak, aby pomocný materiál dokonale zatekl do všech dutin. Barva tohoto materiálu musí být kontrastní oproti barvě skenovaného objektu. Takto nachystaný díl se upne na desku frézky a postupně se odfrézovávají tenké vrstvičky konstantní tloušťky. Každá nově odkrytá vrstva je vždy vyfocena a snímek uložen pro pozdější zpracování. Výsledkem je tedy sada 2D fotek s uloženou informací, v jaké výšce Z byla fotka pořízena. Software na každé fotce na přechodu barev zalitého objektu a pomocného materiálu vyextrahuje okrajovou křivku. Tato křivka je reprezentována jako body v rovině. Pokud se spojí křivky ze všech odfrézovaných hladin, pak dostaneme 3D mrak bodů.
Nedestruktivní
Nedestruktivní kontaktní skenery zahrnují všechny narozdíl od destruktivních metod objekt není při digitalizaci nijak poškozen. Kontaktní 3D skenery zkoumají povrch objektu pomocí fyzického hmotného dotyku. Zatímco objekt zůstává v klidu připevněný k podložce, polohovací rameno, na kterém je upevněna bodová nebo kuličková sonda umožňuje uživateli bodově snímat 3D data z fyzického objektu.
Bezkontaktní
Magnetické skenery
Můžeme je rozdělit na skenery s magnetickou sondou nebo skenery využívající magnetickou rezonanci. Použitím druhého zmíněného typu zařízení můžeme získávat informace o vnitřní geometrii součástí. Jedná se o nedestruktivní skenery pracující na stejném principu jako klasické magnetické rezonance požívané ve zdravotnictví. Zařízení jsou většinou mobilní a používají se např. ke kontrole potrubí, kotlů nebo jiných uzavřených nádob.
Transmisivní skenery
Zástupcem transmisivních skenerů jsou skenery využívající technologii počítačové tomografie (CT). Stejně jako u skenerů využívajících magnetickou rezonanci je možné tímto typem skeneru získávat údaje o vnitřní stavbě zkoumaného objektu. Pro přenos informace se využívá rentgenové záření. Na rozdíl od zdravotnických verzí CT se při tomto použití používá vyšší intenzita záření. Tyto zařízení jsou stále poměrně vzácné, to dokazuje i fakt, že se v České republice vyskytuje pouze jeden exemplář.
Reflexivní skenery
Do této kategorie spadají skenery akustické (např. sonar), laserové, ale především optické. Optické skenery jsou nejrozšířenější a nejpoužívanější větev 3D skenerů. Z toho vyplývá i největší množství různých technologických řešení a tím i dalšího dělení.
Optické – aktivní 3D skenery
Aktivní optické metody se dále dělí podle toho, jaká fyzikální vlastnost daného záření se použije pro výpočet prostorové souřadnice bodu
Time of flight
Nejjednodušší metoda se nazývá „time of flight“. Tato metoda je založená na měření času, za jakou dobu se vyslaný paprsek vrátí zpět na snímač po odrazu od objektu.
Triangulace
Další možností je metoda „triangulation“, která na základě známého úhlu mezi projektorem a snímačem, známé vzdálenosti projektoru od snímače a známé polohy měřeného bodu na snímači, dokáže dopočítat skutečný prostorový bod na povrchu objektu.
Triangulace může být:
- aktivní
- pasivní
Structured light
Další aktivní optickou metodou je „structured light“. Ta používá projekci pravidelného vzoru na objekt a na základě deformace tohoto vzoru pak počítá prostorové souřadnice bodů. Výhodou této metody je obrovská rychlost, s jakou se nasnímá daný povrch objektu. Řádově jde o miliony bodů za několik sekund.
V praxi je možné se s touto technologií setkat například u
- Microsoft Kinect
- Assus Xtion
- Intel RealSense
- Predevsim Time of flight
- používané v průmyslu
- Stereo aktivní a pasivní
- aktivní například Ciclop/Horus
- Structured light
- Kinect
- RealSense
CloudCompare
CloudCompare je open-source program pro editaci a úpravu mračna bodů a 3D modelů. Zároveň program umožňuje počítat zajímavé údaje o podobnostech nebo měřit různé vzdálenosti a statistky.
V oblasti 3D skenování jej použijeme především k převodu mračna bodů na triangulární mesh.
Ukázky práce s programem
Rekonstrukce modelu nohy
Potřebné modely jsou foot_scan.bin a foot_reference.stl. Model nohy je z portálu Thingiverse, CC BY-NC 3.0 Voodoo Manufacturing.
V souboru foot_scan.bin je mračno bodů vzniklé naskenováním modelu nohy. Otevřete jej v aplikaci CloudCompare.
Pro práci s modelem je potřeba jej vybrat v levé horní části programu (DB Tree). Zaškrtávací políčko slouží k zobrazení (respektive skrytí) modelu. Vybraný model je zvýrazněn.
Pro rekonstrukci nejprve použijeme celé mračno. Pro slabší počítače se toto nedoporučuje, mračno má cca milion bodů a mohlo by to trvat dlouho. Dále si ukážeme, jak zrekonstruovat model z menšího poštu bodů.
Nejprve je potřeba spočítat normály pomocí Edit → Normals → Compute. Pro naše potřeby postačí použít výchozí hodnoty.
Někdy se normály spočítají obráceně (jsou zobrazeny černě). V takovém případě je třeba je invertovat. Pokud bychom to neudělali, zrekonstruovaný model bude převrácen naruby. Normály se invertují pomocí Edit → Normals → Invert.
Když máme normály, můžeme použít Plugins → Poisson Surface Reconstruction.
Pokud je mračno příliš velké, můžeme ho před rekonstrukcí samplovat: tedy získat jen část bodů. Pro naši nohu stačí cca sto tisíc bodů.
Někdy se stane, že výsledná mesh je příliš zrnitá. Je možné ji „podle chuti“ zjemnit pomocí Edit → Mesh → Smooth (Laplacian).
Do programu je možné načíst i hotovou mesh ze souboru foot_reference.stl (stačí soubor otevřít).
Pro zpřehlednění zobrazení meshe můžete použít Plugins → P. C. V. (Ambient Occlusion).
Když zrekonstruovanou a referenční mesh napozicujeme na stejné místo, můžeme je porovnat. Na cvičení si to ukážeme, pokud materiály čtete z domova, více se dozvíte v další ukázce.
Model zahrady: Registrace dvou skenů
Potřebné modely jsou garden1.bin a garden2.bin, stažené přímo z projektu CloudCompare, GPL 2+.
Stručný sled kroků (předpokládá shlédnutí videa nebo účast na cvičení):
- Otevřít oba soubory.
- V Properties zvolit u obou Colors → RGB.
- Pomocí Translate/rotate nástroje v horní liště se pokusit skeny napozicovat blíže na sebe.
- (volitleně) Prohlédnout Edit → Apply transformation.
- Zvolit oba soubory kliknutím s klávesou Crtl v DB Tree.
- Z nástrojové lišty vybrat tlačítko Register enitites (v novější verzi Finely register already (roughly) aligned entities (cloud or meshes)).
- Error difference či EMS difference nastavit na
1e-20
. - Random sampling limit nastavit na
60000
. - OK.
- V Properties opět zvolit u obou Colors → RGB.
- Z nástrojové lišty vybrat tlačítko Compute cloud/cloud distance.
- Jako referenci nastavit model 1, Compute, OK.
- Zobrazit a vybrat pouze druhý model.
- V Properties zkontrolovat Colors → Scalar field, obsahuje napočítané vzdálenosti.
- Properties → Color Scale → Visible.
- SF display params: hýbat táhly, dokud výsledek nebude „nejlepší“.
Model zahrady: Segmentace, vyrovnání podle referenčních bodů
Potřebné modely jsou stejné jako výše: garden1.bin a garden2.bin.
Nejprve potřebujeme dva skeny, které si nejsou tak moc podobné jsou výše. Abychom to předvedli, vyřízneme pouze část s hlínou pomocí nástroje Segment.
Nástroj se ovládá levým tlačítkem myši, pro potvrzení se použije pravé tlačítko. Poté vyberte symbol vyříznutého polygonu a potvrďte fajfkou. Operace vytvoří dvě nová mračna ve stromu.
Poté je třeba pomocí nástroje Align two clouds by picking (at least 4) equivalents point pairs.
Dále se dá pokračovat jako u minulé ukázky.
Užitečné odkazy
Návod na rekonstrukci modelu pomocí MeshLabu nebo CloudComparu: Horus_Guide_to_post-processing_of_the_point_cloud.pdf