Innehållsförteckning:

DIY 3D -skanner baserad på strukturerat ljus och stereosyn på pythonspråk: 6 steg (med bilder)
DIY 3D -skanner baserad på strukturerat ljus och stereosyn på pythonspråk: 6 steg (med bilder)

Video: DIY 3D -skanner baserad på strukturerat ljus och stereosyn på pythonspråk: 6 steg (med bilder)

Video: DIY 3D -skanner baserad på strukturerat ljus och stereosyn på pythonspråk: 6 steg (med bilder)
Video: 3D vision och binpicking ENG Webinar av KUKA Nordic 2024, Juli
Anonim
DIY 3D -skanner baserad på strukturerat ljus och stereovision på Python -språk
DIY 3D -skanner baserad på strukturerat ljus och stereovision på Python -språk
DIY 3D -skanner baserad på strukturerat ljus och stereovision på Python -språk
DIY 3D -skanner baserad på strukturerat ljus och stereovision på Python -språk

Denna 3D -skanner gjordes med hjälp av lågkostnadskonventionella objekt som videoprojektor och webbkameror. En 3D-skanner med strukturerat ljus är en 3D-skanningsenhet för att mäta ett tredimensionellt form av ett objekt med hjälp av projicerade ljusmönster och ett kamerasystem. Programvara utvecklades baserat på strukturerat ljus och stereosyn med pythonspråk.

Att projicera ett smalt ljusband på en tredimensionell yta ger en belysningslinje som verkar förvrängd ur andra perspektiv än projektorns och kan användas för en exakt geometrisk rekonstruktion av ytformen. Horisontella och vertikala ljusband projiceras på objektytan och fångas sedan upp av två webbkameror.

Steg 1: Introduktion

Introduktion
Introduktion
Introduktion
Introduktion

Automatiska 3D-förvärvsenheter (ofta kallade 3D-skannrar) gör det möjligt att bygga mycket exakta modeller av riktiga 3D-objekt på ett kostnadseffektivt och tidseffektivt sätt. Vi har experimenterat med denna teknik för att skanna en leksak för att bevisa prestanda. Specifika behov är: medelhög noggrannhet, enkel att använda, överkomliga kostnader för skanningsenheten, självregistrerad förvärv av form- och färgdata och slutligen driftsäkerhet för både operatören och de skannade föremålen. Enligt dessa krav har vi designat en billig 3D-skanner baserad på strukturerat ljus som använder ett mångsidigt färgmönster med randmönster. Vi presenterar skannerarkitekturen, den programvaruteknik som antagits och de första resultaten av dess användning i ett projekt om 3D -förvärv av en leksak.

I utformningen av vår lågkostnadsskanner valde vi att implementera sändarenheten med hjälp av en videoprojektor. Anledningen var flexibiliteten hos denna enhet (som gör det möjligt att experimentera med alla typer av ljusmönster) och dess breda tillgänglighet. Sensorn kan antingen vara en anpassad enhet, en vanlig digital stillbildskamera eller en webbkamera. den måste stödja högkvalitativ färgfångst (dvs. förvärv av högt dynamiskt område) och möjligen med hög upplösning.

Steg 2: Programvara

programvara
programvara

Pythonspråk användes för programmering av tre skäl, en är enkel att lära sig och implementera, två kan vi använda OPENCV för bildrelaterade rutiner och tre är bärbara bland olika operativsystem så att du kan använda detta program i Windows, MAC och Linux. Du kan också konfigurera programvaran för att använda med alla typer av kamera (webbkameror, SLR eller industrikameror) eller projektor med upplösning 1024X768. Det är bättre att använda kameror med mer än två gånger upplösning. Jag testade personligen prestandan i tre olika konfigurationer, den första var med två parallella Microsoft -webbkamerabio och en liten bärbar projektor, den andra var med två livkamerabiowebbkameror som roterade 15 grader mot varandra och Infocus -projektor, sista konfigurationen var med logitech -webbkameror och Infocus -projektor. För att fånga punktmoln av objektytan bör vi gå igenom fem steg:

1. Projicera grå mönster och ta bilder från två kameror "SL3DS1.projcapt.py"

2. Bearbetar de 42 bilderna på varje kamera och fångar punktkoder "SL3DS2.procimages.py"

2. Justera tröskeln för att välja maskering för områden som ska bearbetas "SL3DS3.adjustthresh.py"

4. Hitta och spara liknande punkter i varje kamera "SL3DS4.calcpxpy.py"

5 Beräkna X-, Y- och Z -koordinaterna för punktmolnet "SL3DS5.calcxyz.py"

Utdata är en PLY -fil med koordinat- och färginformation för punkter på objektytan. Du kan öppna PLY -filer med CAD -programvara som Autodesk -produkter eller en öppen källkodsprogramvara som Meshlab.

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

Python 2.7, OPENCV -modul och NUMPY bör installeras för att köra dessa Python -program. Jag har också utvecklat ett GUI för denna programvara i TKINTER som du kan hitta i steg sex med två exempeldatauppsättningar. Du kan hitta ytterligare information om detta ämne på följande webbplatser:

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…

Steg 3: Hårdvaruinstallation

Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup
Hardware Setup

Hårdvaran består av:

1. Två webbkameror (Logitech C920C)

2. Infocus LP330 projektor

3. Kamera- och projektorstativ (tillverkat av 3 mm akrylplattor och 6 mm HDF -träsnitt med laserskärare)

Två kameror och projektor ska anslutas till en dator med två videoutgångar som en bärbar dator och projektorskärmen ska konfigureras som ett tillägg till huvudfönsterns skrivbord. Här kan du se bilder på kameror, projektor och stativ. Ritfilen klar för klippning bifogas i SVG -format.

Projektorn är en Infocus LP330 (inbyggd upplösning 1024X768) med följande specifikationer Ljusstyrka: 650 Lumen Färg Ljusstyrka: ** Kontrast (Full On/Off): 400: 1 Auto Iris: Ingen ursprunglig upplösning: 1024x768 Bildförhållande: 4: 3 (XGA) Videolägen: ** Datalägen: MAX 1024x768 Max effekt: 200 Watt Spänning: 100V - 240V Storlek (cm) (HxBxD): 6 x 22 x 25 Vikt: 2,2 kg Lampans livslängd (full effekt): 1000 timmar Lamptyp: UHPLampawatt: 120 Watt Lampmängd: 1 Displaytyp: 2 cm DLP (1) Standardzoomobjektiv: 1,25: 1 Fokus: Manuell distans (m): 1,5 - 30,5 Bildstorlek (cm): 76 - 1971

Denna videoprojektor används för att projicera strukturerade ljusmönster på objektet som ska skannas. Det strukturerade mönstret består av vertikala och horisontella vita ljusremsor som sparas i en datafil och webbkameror fångar de förvrängda remsorna.

Använd helst kameror som kan styras av programvara eftersom du behöver justera fokus, ljusstyrka, upplösning och bildkvalitet. Det är möjligt att använda DSLR -kameror med SDK: er som tillhandahålls av varje märke.

Montering och tester utfördes i Köpenhamn Fablab med dess stöd.

Steg 4: Experimentera med skanner

Experimentera med skanner
Experimentera med skanner
Experimentera med skanner
Experimentera med skanner
Experimentera med skanner
Experimentera med skanner

För att testa systemet användes en fiskleksak och du kan se den tagna bilden. Alla fångade filer och även utgångspunktmolnet ingår i den bifogade filen, du kan öppna PLY -punktmolnfilen med Meshlab:

meshlab.sourceforge.net/

Steg 5: Några andra skanningsresultat

Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat
Några andra skanningsresultat

Här kan du se några mänskliga ansiktsskanningar och 3d -skanning av en vägg. Det finns alltid några extra punkter på grund av reflektioner eller felaktiga bildresultat.

Steg 6: 3D -skanner GUI

3D -skanner GUI
3D -skanner GUI

För att testa 3D -skanningsprogrammet i detta steg lägger jag till två datamängder, en är skanning av en fisk och en annan är bara en plan vägg för att se noggrannheten i den. Öppna ZIP -filer och kör SL3DGUI.py. För installation, kontrollera steg 2. Skicka meddelande till min inkorg här för alla källkoder.

För att använda 3D -skanningsdel måste du installera två kameror och projektor men för andra delar klickar du bara på knappen. För att testa provdata klickar du först på processen sedan tröskeln, stereomatchning och slutligen punktmoln. Installera Meshlab för att se punktmolnet.

meshlab.sourceforge.net/

Rekommenderad: