Obsah:

DIY 3D skener založený na strukturovaném světle a stereofonním vidění v jazyce Python: 6 kroků (s obrázky)
DIY 3D skener založený na strukturovaném světle a stereofonním vidění v jazyce Python: 6 kroků (s obrázky)

Video: DIY 3D skener založený na strukturovaném světle a stereofonním vidění v jazyce Python: 6 kroků (s obrázky)

Video: DIY 3D skener založený na strukturovaném světle a stereofonním vidění v jazyce Python: 6 kroků (s obrázky)
Video: PartInspect: Jednoduchá automatizace se strukturovaným světlem 2024, Červenec
Anonim
DIY 3D skener založený na strukturovaném světle a stereo vidění v jazyce Python
DIY 3D skener založený na strukturovaném světle a stereo vidění v jazyce Python
DIY 3D skener založený na strukturovaném světle a stereo vidění v jazyce Python
DIY 3D skener založený na strukturovaném světle a stereo vidění v jazyce Python

Tento 3D skener byl vyroben za použití levných konvenčních položek, jako jsou videoprojektor a webové kamery. 3D skener se strukturovaným světlem je 3D skenovací zařízení pro měření trojrozměrného tvaru objektu pomocí promítaných světelných obrazců a kamerového systému. Software byl vyvinut na základě strukturovaného světla a stereo vidění s jazykem python.

Promítání úzkého pásma světla na trojrozměrný tvarovaný povrch vytváří linii osvětlení, která se jeví zkreslená z jiných perspektiv než z pohledu projektoru a lze ji použít k přesné geometrické rekonstrukci tvaru povrchu. Horizontální a vertikální světelné pásy jsou promítány na povrch objektu a poté zachyceny dvěma webovými kamerami.

Krok 1: Úvod

Úvod
Úvod
Úvod
Úvod

Automatická zařízení pro získávání 3D (často nazývaná 3D skenery) umožňují vytvářet nákladově a časově efektivní vysoce přesné modely skutečných 3D objektů. Tuto technologii jsme vyzkoušeli při skenování hračky, abychom prokázali výkon. Specifické potřeby jsou: středně vysoká přesnost, snadné použití, dostupné náklady na skenovací zařízení, vlastní registrace tvarových a barevných dat a nakonec provozní bezpečnost jak pro operátora, tak pro skenované objekty. Podle těchto požadavků jsme navrhli levný 3D skener založený na strukturovaném světle, který využívá všestranný přístup se vzorem barevných pruhů. Představujeme architekturu skeneru, přijaté softwarové technologie a první výsledky jejího použití v projektu týkající se 3D pořízení hračky.

Při návrhu našeho levného skeneru jsme se rozhodli implementovat emitorovou jednotku pomocí videoprojektoru. Důvodem byla flexibilita tohoto zařízení (která umožňuje experimentovat s jakýmkoli typem světelného obrazce) a jeho široká dostupnost. Senzorem může být buď vlastní zařízení, standardní digitální fotoaparát nebo webová kamera. musí podporovat vysoce kvalitní zachycení barev (tj. získání vysokého dynamického rozsahu) a případně s vysokým rozlišením.

Krok 2: Software

Software
Software

Jazyk Python byl použit k programování ze tří důvodů, jeden je snadné se naučit a implementovat, dva můžeme použít OPENCV pro rutiny související s obrazem a tři jsou přenosné mezi různými operačními systémy, takže tento program můžete používat ve Windows, MAC a Linuxu. Software můžete také nakonfigurovat pro použití s jakýmkoli typem fotoaparátu (webové kamery, zrcadlovky nebo průmyslové kamery) nebo projektorem s nativním rozlišením 1024 x 768. Je lepší používat kamery s více než dvojnásobným rozlišením. Osobně jsem testoval výkon ve třech různých konfiguracích, první byl se dvěma paralelními webkamerami Microsoft a malým přenosným projektorem, druhý se dvěma webkamerami lifecam cinema, které se k sobě otočily o 15 stupňů a projektorem Infocus, poslední konfigurace byla s webovými kamerami logitech a projektor Infocus. K zachycení mračna bodů povrchu objektu bychom měli projít pěti kroky:

1. Promítání šedých vzorů a pořizování snímků ze dvou kamer „SL3DS1.projcapt.py“

2. Zpracování 42 snímků z každé kamery a zachycení kódů bodů „SL3DS2.procimages.py“

2. Úprava prahu pro výběr maskování pro oblasti, které mají být zpracovány "SL3DS3.adjustthresh.py"

4. Najděte a uložte podobné body v každé kameře „SL3DS4.calcpxpy.py“

5 Vypočítejte souřadnice X, Y a Z mračna bodů „SL3DS5.calcxyz.py“

Výstupem je soubor PLY s informacemi o souřadnicích a barvách bodů na povrchu objektu. Soubory PLY můžete otevírat pomocí softwaru CAD, jako jsou produkty Autodesk, nebo softwaru typu open source jako Meshlab.

www.autodesk.com/products/personal-design-a…

Ke spuštění těchto programů Pythonu by měl být nainstalován Python 2.7, modul OPENCV a NUMPY. Také jsem vyvinul GUI pro tento software v TKINTER, které najdete v kroku šest se dvěma sadami ukázkových dat. Další informace k tomuto tématu najdete na následujících webech:

docs.opencv.org/modules/calib3d/doc/camera_…

docs.opencv.org/modules/highgui/doc/reading…

www.3dunderworld.org/software/

arxiv.org/pdf/1406.6595v1.pdf

mesh.brown.edu/byo3d/index.html

www.opticsinfobase.org/aop/fulltext.cfm?uri…

hera.inf-cv.uni-jena.de:6680/pdf/Brauer-Bur…

Krok 3: Nastavení hardwaru

Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru
Nastavení hardwaru

Hardware se skládá z:

1. Dvě webové kamery (Logitech C920C)

2. Infocus projektor LP330

3. Stojan na fotoaparát a projektor (vyroben z 3 mm akrylových desek a 6 mm dřeva HDF řezaného laserovou řezačkou)

Dvě kamery a projektor by měly být připojeny k počítači se dvěma video výstupy, jako je notebook, a promítací plátno by mělo být nakonfigurováno jako rozšíření pracovní plochy hlavního okna. Zde můžete vidět obrázky kamer, projektoru a stojanu. Výkresový soubor připravený k vyjmutí je připojen ve formátu SVG.

Projektor je Infocus LP330 (nativní rozlišení 1024 x 768) s následujícími specifikacemi. Jas: 650 lumenů Barevný světelný výstup: ** Kontrast (úplné zapnutí/vypnutí): 400: 1 Automatická clona: Bez přirozeného rozlišení: 1024 x 768 Poměr stran: 4: 3 (XGA) Režimy videa: ** Datové režimy: MAX 1024x768 Maximální výkon: 200 W Napětí: 100 V - 240 V Velikost (cm) (VxŠxH): 6 x 22 x 25 Hmotnost: 2,2 kg Životnost lampy (plný výkon): 1 000 hodin Typ lampy: UHPL Příkon lampy: 120 W Množství lampy: 1 Typ displeje: 2 cm DLP (1) Standardní zoomový objektiv: 1,25: 1 Zaostření: Ruční vzdálenost projekce (m): 1,5 - 30,5 Velikost obrazu (cm): 76 - 1971

Tento videoprojektor slouží k promítání strukturovaných světelných vzorů na skenovaný objekt. Strukturovaný vzor se skládá ze svislých a vodorovných pruhů bílého světla, které jsou uloženy v datovém souboru a webové kamery zachycují tyto zkreslené proužky.

Přednostně používejte fotoaparáty, které lze softwarově ovládat, protože potřebujete upravit zaostření, jas, rozlišení a kvalitu obrazu. Je možné používat fotoaparáty DSLR se sadami SDK, které poskytuje každá značka.

Montáž a zkoušky byly provedeny v Kodani Fablab s jeho podporou.

Krok 4: Experimentování se skenerem

Experimentování se skenerem
Experimentování se skenerem
Experimentování se skenerem
Experimentování se skenerem
Experimentování se skenerem
Experimentování se skenerem

Pro testování systému byla použita rybí hračka a vy můžete vidět zachycený obrázek. Veškerý zachycený soubor a také oblak výstupních bodů je součástí přiloženého souboru, soubor mračna bodů PLY můžete otevřít pomocí Meshlab:

meshlab.sourceforge.net/

Krok 5: Některé další výsledky skenování

Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování
Některé další výsledky skenování

Zde můžete vidět několik skenů lidské tváře a 3D sken zdi. Vždy existují nějaké odlehlé body kvůli odrazům nebo nepřesným výsledkům obrazu.

Krok 6: GUI 3D skeneru

GUI 3D skeneru
GUI 3D skeneru

Pro testování softwaru 3D skenování v tomto kroku přidávám dvě sady dat, jedna je skenování ryby a druhá je pouze rovina, abych viděl její přesnost. Otevřete soubory ZIP a spusťte SL3DGUI.py. Pro instalaci zkontrolujte krok 2. Odeslat zprávu do mé doručené pošty zde pro všechny zdrojové kódy.

Pro použití části 3D skenování musíte nainstalovat dvě kamery a projektor, ale pro ostatní části stačí kliknout na tlačítko. Pro testování ukázkových dat nejprve klikněte na proces, poté na práh, stereo shodu a nakonec mračno bodů. Nainstalujte si Meshlab, abyste viděli mračno bodů.

meshlab.sourceforge.net/

Doporučuje: