Innholdsfortegnelse:

DIY 3D -skanner basert på strukturert lys og stereosyn i Python -språk: 6 trinn (med bilder)
DIY 3D -skanner basert på strukturert lys og stereosyn i Python -språk: 6 trinn (med bilder)

Video: DIY 3D -skanner basert på strukturert lys og stereosyn i Python -språk: 6 trinn (med bilder)

Video: DIY 3D -skanner basert på strukturert lys og stereosyn i Python -språk: 6 trinn (med bilder)
Video: Веб-семинар по 3D Vision и binpicking ENG от KUKA Nordic 2024, Juli
Anonim
DIY 3D -skanner basert på strukturert lys og stereosyn på Python -språk
DIY 3D -skanner basert på strukturert lys og stereosyn på Python -språk
DIY 3D -skanner basert på strukturert lys og stereosyn på Python -språk
DIY 3D -skanner basert på strukturert lys og stereosyn på Python -språk

Denne 3D -skanneren ble laget ved hjelp av konvensjonelle varer som lavpris, som videoprojektor og webkameraer. En strukturert lys 3D-skanner er en 3D-skanningsenhet for å måle den tredimensjonale formen til et objekt ved hjelp av projiserte lysmønstre og et kamerasystem. Programvare ble utviklet basert på strukturert lys og stereosyn med pythonspråk.

Å projisere et smalt lysbånd på en tredimensjonal overflate gir en belysningslinje som ser forvrengt ut fra andre perspektiver enn projektoren, og kan brukes til en nøyaktig geometrisk rekonstruksjon av overflateformen. Horisontale og vertikale lysbånd projiseres på objektoverflaten og deretter fanges opp av to webkameraer.

Trinn 1: Introduksjon

Introduksjon
Introduksjon
Introduksjon
Introduksjon

Automatiske 3D-anskaffelsesenheter (ofte kalt 3D-skannere) gjør det mulig å bygge svært nøyaktige modeller av ekte 3D-objekter på en kostnadseffektiv og tidseffektiv måte. Vi har eksperimentert med denne teknologien for å skanne et leketøy for å bevise ytelsen. Spesifikke behov er: middels høy nøyaktighet, enkel å bruke, rimelige kostnader for skanneenheten, egenregistrert innhenting av form- og fargedata, og til slutt driftssikkerhet for både operatøren og de skannede objektene. I henhold til disse kravene har vi designet en rimelig 3D-skanner basert på strukturert lys som bruker en allsidig tilnærming med farget stripemønster. Vi presenterer skannerarkitekturen, programvareteknologiene som er tatt i bruk og de første resultatene av bruken i et prosjekt angående 3D -anskaffelse av et leketøy.

I utformingen av vår rimelige skanner valgte vi å implementere emitterenheten ved hjelp av en videoprojektor. Årsaken var fleksibiliteten til denne enheten (som gjør det mulig å eksperimentere alle typer lysmønstre) og dens brede tilgjengelighet. Sensoren kan enten være en tilpasset enhet, et standard digitalt stillbildekamera eller et webkamera. den må støtte fargefangst av høy kvalitet (dvs. oppkjøp av høyt dynamisk område) og muligens med høy oppløsning.

Trinn 2: Programvare

Programvare
Programvare

Pythonspråk ble brukt til programmering av tre grunner, en det er lett å lære og implementere, to kan vi bruke OPENCV for bilderelaterte rutiner og tre det er bærbart blant forskjellige operativsystemer, slik at du kan bruke dette programmet i Windows, MAC og Linux. Du kan også konfigurere programvaren til å bruke med alle slags kameraer (webkameraer, speilreflekskameraer eller industrikameraer) eller projektor med opprinnelig 1024X768 oppløsning. Det er bedre å bruke kameraer med mer enn to ganger oppløsning. Jeg testet personlig ytelsen i tre forskjellige konfigurasjoner, den første var med to parallelle Microsoft webcam kinoer og en liten bærbar projektor, den andre var med to lifecam kino webkameraer som roterte 15 grader mot hverandre og Infocus projektor, siste konfigurasjon var med logitech webkameraer og Infocus -projektor. For å fange punktskyen på objektoverflaten bør vi gå gjennom fem trinn:

1. Å projisere grå mønstre og ta bilder fra to kameraer "SL3DS1.projcapt.py"

2. Behandler de 42 bildene av hvert kamera og fanger punktkoder "SL3DS2.procimages.py"

2. Justere terskelen for å velge maskering for områder som skal behandles "SL3DS3.adjustthresh.py"

4. Finn og lagre lignende poeng i hvert kamera "SL3DS4.calcpxpy.py"

5 Beregn koordinatene X, Y og Z for punktskyen "SL3DS5.calcxyz.py"

Utgangen er en PLY -fil med koordinat- og fargeinformasjon for punkter på objektoverflaten. Du kan åpne PLY -filer med CAD -programvare som Autodesk -produkter eller en åpen kildekode -programvare som Meshlab.

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

Python 2.7, OPENCV -modul og NUMPY bør installeres for å kjøre disse Python -programmene. Jeg har også utviklet en GUI for denne programvaren i TKINTER som du kan finne i trinn seks med to eksempeldatasett. Du kan finne tilleggsinformasjon om dette emnet på følgende nettsteder:

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…

Trinn 3: Maskinvareoppsett

Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett
Maskinvareoppsett

Maskinvare består av:

1. To webkameraer (Logitech C920C)

2. Infocus LP330 projektor

3. Kamera- og projektorstativ (laget av 3 mm akrylplater og 6 mm HDF -tresnitt med laserskjærer)

To kameraer og projektor skal kobles til en datamaskin med to videoutganger som en bærbar datamaskin, og projektorskjermen skal konfigureres som en utvidelse til hovedvinduet på skrivebordet. Her kan du se bilder av kameraer, projektor og stativ. Tegnefilen klar for kutt er vedlagt i SVG -format.

Projektoren er en Infocus LP330 (innfødt oppløsning 1024X768) med følgende spesifikasjoner Lysstyrke: 650 Lumen Farge Lysutbytte: ** Kontrast (Full på/av): 400: 1 Auto Iris: Ingen opprinnelig oppløsning: 1024x768 Bildeforhold: 4: 3 (XGA) Videomoduser: ** Datamoduser: MAX 1024x768 Maks effekt: 200 W Spenning: 100V - 240V Størrelse (cm) (HxBxD): 6 x 22 x 25 Vekt: 2,2 kg Lampelevetid (full effekt): 1000 timer Lampetype: UHPLampeeffekt: 120 watt Lamptall: 1 Skjermtype: 2 cm DLP (1) Standard zoomobjektiv: 1,25: 1 Fokus: Manuell kasteavstand (m): 1,5 - 30,5 bildestørrelse (cm): 76 - 1971

Denne videoprojektoren brukes til å projisere strukturerte lysmønstre på objektet som skal skannes. Det strukturerte mønsteret består av vertikale og horisontale hvite lysstrimler som er lagret på en datafil, og webkameraer fanger opp de forvrengte stripene.

Bruk helst kameraene som kan styres av programvare fordi du må justere fokus, lysstyrke, oppløsning og bildekvalitet. Det er mulig å bruke DSLR -kameraer med SDK -er som tilbys av hvert merke.

Montering og tester ble utført i Copenhagen Fablab med sin støtte.

Trinn 4: Eksperimentering med skanner

Eksperimenterer med skanner
Eksperimenterer med skanner
Eksperimenterer med skanner
Eksperimenterer med skanner
Eksperimenterer med skanner
Eksperimenterer med skanner

For å teste systemet ble det brukt en fiskeleke, og du kan se det fangede bildet. All fanget fil og også output point -skyen er inkludert i den vedlagte filen, du kan åpne PLY point cloud -filen med Meshlab:

meshlab.sourceforge.net/

Trinn 5: Noen andre skanneresultater

Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater
Noen andre skanneresultater

Her kan du se noen menneskelige ansiktsskanninger og 3d -skanning av en vegg. Det er alltid noen ekstra punkter på grunn av refleksjoner eller unøyaktige bilderesultater.

Trinn 6: 3D -skanner GUI

3D -skanner GUI
3D -skanner GUI

For å teste 3D -skanneprogramvaren i dette trinnet legger jeg til to datasett, det ene er skanning av en fisk og en annen er bare en planvegg for å se nøyaktigheten av den. Åpne ZIP -filer og kjør SL3DGUI.py. For installasjon, sjekk trinn 2. Send melding til innboksen min her for alle kildekoder.

For å bruke 3d scan del må du installere to kameraer og projektor, men for andre deler klikker du bare på knappen. For å teste eksempeldataene, klikk først på prosessen, deretter terskelen, stereomatch og til slutt punktsky. Installer Meshlab for å se punktskyen.

meshlab.sourceforge.net/

Anbefalt: