Obsah:

DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python: 6 krokov (s obrázkami)
DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python: 6 krokov (s obrázkami)

Video: DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python: 6 krokov (s obrázkami)

Video: DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python: 6 krokov (s obrázkami)
Video: Zeno: A wrapper's guide to the software 2024, December
Anonim
DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python
DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python
DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python
DIY 3D skener založený na štruktúrovanom svetle a stereo videní v jazyku Python

Tento 3D skener bol vyrobený za použitia lacných konvenčných položiek, ako sú videoprojektor a webové kamery. 3D skener so štruktúrovaným svetlom je 3D skenovacie zariadenie na meranie trojrozmerného tvaru objektu pomocou premietaných svetelných obrazcov a kamerového systému. Software bol vyvinutý na základe štruktúrovaného svetla a stereo videnia v jazyku python.

Premietanie úzkeho pásma svetla na trojrozmerný tvarovaný povrch vytvára líniu osvetlenia, ktorá sa zdá byť skreslená z iných perspektív než z pohľadu projektora a môže byť použitá na presnú geometrickú rekonštrukciu tvaru povrchu. Horizontálne a vertikálne svetelné pásy sú premietané na povrch objektu a potom zachytené dvoma webkamerami.

Krok 1: Úvod

Úvod
Úvod
Úvod
Úvod

Automatické zariadenia na získavanie 3D (často nazývané 3D skenery) umožňujú vytvárať nákladovo a časovo efektívne vysoko presné modely skutočných 3D objektov. Túto technológiu sme vyskúšali pri skenovaní hračky, aby sme dokázali výkonnosť. Špecifickými potrebami sú: stredne vysoká presnosť, jednoduché použitie, dostupné náklady na skenovacie zariadenie, získavanie tvarových a farebných údajov vlastnými silami a nakoniec prevádzková bezpečnosť pre operátora aj skenované objekty. Podľa týchto požiadaviek sme navrhli nízkonákladový 3D skener založený na štruktúrovanom svetle, ktorý využíva všestranný prístup so vzorom farebných prúžkov. Predstavujeme architektúru skenera, prijaté softvérové technológie a prvé výsledky jeho použitia v projekte týkajúcom sa 3D akvizície hračky.

Pri návrhu nášho lacného skenera sme sa rozhodli implementovať emitorovú jednotku pomocou videoprojektora. Dôvodom bola flexibilita tohto zariadenia (ktorá umožňuje experimentovať s akýmkoľvek typom svetelného obrazca) a jeho široká dostupnosť. Senzorom môže byť buď vlastné zariadenie, štandardný digitálny fotoaparát alebo webová kamera. musí podporovať zachytávanie farieb vo vysokej kvalite (t. j. získanie vysokého dynamického rozsahu) a prípadne s vysokým rozlíšením.

Krok 2: Softvér

Softvér
Softvér

Jazyk Python bol použitý na programovanie z troch dôvodov, z ktorých jeden sa dá ľahko naučiť a implementovať, dva môžeme použiť OPENCV na rutiny súvisiace s obrazom a tri sú prenosné medzi rôznymi operačnými systémami, takže tento program môžete používať vo Windows, MAC a Linux. Softvér môžete tiež nakonfigurovať na použitie s akýmkoľvek typom fotoaparátu (webové kamery, zrkadlovky alebo priemyselné fotoaparáty) alebo projektorom s natívnym rozlíšením 1024 x 768. Je lepšie používať fotoaparáty s viac ako dvojnásobným rozlíšením. Osobne som testoval výkon v troch rôznych konfiguráciách, prvá bola s dvoma paralelnými webkamerami Microsoft a malým prenosným projektorom, druhá s dvoma webkamerami lifecam cinema, ktoré sa otáčali o 15 stupňov k sebe, a projektorom Infocus, posledná konfigurácia bola s webovými kamerami logitech a projektor Infocus. Na zachytenie mračna bodov povrchu objektu by sme mali prejsť piatimi krokmi:

1. Premietanie sivých vzorov a snímanie obrázkov z dvoch kamier „SL3DS1.projcapt.py“

2. Spracovanie 42 snímok z každej kamery a zachytenie kódov bodov „SL3DS2.procimages.py“

2. Úprava prahu na výber maskovania pre oblasti, ktoré sa majú spracovať „SL3DS3.adjustthresh.py“

4. Nájdite a uložte podobné body v každom fotoaparáte „SL3DS4.calcpxpy.py“

5 Vypočítajte súradnice X, Y a Z mračna bodov „SL3DS5.calcxyz.py“

Výstupom je súbor PLY so súradnicovými a farebnými informáciami bodov na povrchu objektu. Súbory PLY môžete otvárať pomocou softvéru CAD, ako sú produkty Autodesk, alebo softvéru s otvoreným zdrojovým kódom, ako je Meshlab.

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

Na spustenie týchto programov Python by mal byť nainštalovaný Python 2.7, modul OPENCV a NUMPY. Tiež som vyvinul GUI pre tento softvér v TKINTER, ktoré nájdete v šiestom kroku s dvoma súbormi vzorových údajov. Ďalšie informácie o tejto téme nájdete na nasledujúcich webových stránkach:

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: Nastavenie hardvéru

Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru
Nastavenie hardvéru

Hardvér pozostáva z:

1. Dve webové kamery (Logitech C920C)

2. Projektor Infocus LP330

3. Stojan na fotoaparát a projektor (vyrobený z 3 mm akrylových platní a 6 mm dreva HDF rezaného laserovou rezačkou)

Dve kamery a projektor by mali byť pripojené k počítaču s dvoma video výstupmi, ako je prenosný počítač, a obrazovka projektora by mala byť nakonfigurovaná ako rozšírenie pracovnej plochy hlavného okna. Tu si môžete prezrieť obrázky kamier, projektora a stojana. Výkresový súbor pripravený na vystrihnutie je pripojený vo formáte SVG.

Projektor je Infocus LP330 (natívne rozlíšenie 1024 x 768) s nasledujúcimi špecifikáciami. Jas: 650 lúmenov Farebný svetelný výkon: ** Kontrast (úplné zapnutie/vypnutie): 400: 1 Automatická clona: Bez pôvodného rozlíšenia: 1024 x 768 Pomer strán: 4: 3 (XGA) Režimy videa: ** Dátové režimy: MAX. 1024 x 768 Max. Výkon: 200 W Napätie: 100 V - 240 V Veľkosť (cm) (VxŠxH): 6 x 22 x 25 Hmotnosť: 2,2 kg Životnosť žiarovky (plný výkon): 1 000 hodiny Typ žiarovky: UHPL Príkon žiarovky: 120 W Množstvo žiarovky: 1 Typ displeja: 2 cm DLP (1) Štandardný zoomový objektív: 1,25: 1 Zaostrenie: Ručná vzdialenosť vrhania (m): 1,5 - 30,5 Veľkosť obrazu (cm): 76 - 1971

Tento videoprojektor slúži na premietanie štruktúrovaných svetelných vzorov na skenovaný objekt. Štruktúrovaný vzor pozostáva zo zvislých a vodorovných pásov bieleho svetla, ktoré sú uložené v dátovom súbore a webové kamery zachytávajú tieto skreslené pásy.

Prednostne používajte fotoaparáty, ktoré je možné ovládať softvérom, pretože musíte upraviť zaostrenie, jas, rozlíšenie a kvalitu obrazu. Je možné používať fotoaparáty DSLR so súpravami SDK, ktoré poskytuje každá značka.

Montáž a testy boli vykonané v Kodani Fablab s jeho podporou.

Krok 4: Experimentovanie so skenerom

Experimentovanie so skenerom
Experimentovanie so skenerom
Experimentovanie so skenerom
Experimentovanie so skenerom
Experimentovanie so skenerom
Experimentovanie so skenerom

Na testovanie systému bola použitá rybia hračka a môžete vidieť nasnímaný obrázok. Všetky zachytené súbory a tiež oblak výstupných bodov sú zahrnuté v priloženom súbore, súbor mračna bodov PLY môžete otvoriť pomocou Meshlab:

meshlab.sourceforge.net/

Krok 5: Niektoré ďalšie výsledky skenovania

Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania
Niektoré ďalšie výsledky skenovania

Tu môžete vidieť niekoľko skenov ľudskej tváre a 3D skenovanie steny. Vždy existujú určité okrajové body v dôsledku odrazov alebo nepresných výsledkov obrázka.

Krok 6: GUI 3D skenera

GUI 3D skenera
GUI 3D skenera

Na testovanie softvéru na 3D skenovanie v tomto kroku pridávam dva súbory údajov, jeden je skenovanie ryby a druhý je iba rovina, aby som zistil jeho presnosť. Otvorte súbory ZIP a spustite SL3DGUI.py. Pri inštalácii skontrolujte krok 2. Odoslať správu do mojej doručenej pošty tu pre všetky zdrojové kódy.

Ak chcete použiť časť 3D skenovania, musíte nainštalovať dve kamery a projektor, ale pre ostatné časti stačí kliknúť na tlačidlo. Na testovanie vzorových údajov najskôr kliknite na proces, potom na prahovú hodnotu, stereo zhodu a nakoniec mračno bodov. Nainštalujte si Meshlab, aby ste videli mračno bodov.

meshlab.sourceforge.net/

Odporúča: