INHOUDSOPGAWE:

DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal: 6 stappe (met foto's)
DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal: 6 stappe (met foto's)

Video: DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal: 6 stappe (met foto's)

Video: DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal: 6 stappe (met foto's)
Video: Supersection Week 1 2024, Julie
Anonim
DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal
DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal
DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal
DIY 3D -skandeerder gebaseer op gestruktureerde lig en stereo -visie in Python -taal

Hierdie 3D -skandeerder is gemaak met lae koste konvensionele items soos videoprojektor en webcams. 'N Gestruktureerde 3D-skandeerder is 'n 3D-skandeerapparaat om die driedimensionele vorm van 'n voorwerp te meet met behulp van geprojekteerde ligpatrone en 'n kamerastelsel. Sagteware is ontwikkel op grond van gestruktureerde lig en stereo -visie met pythontaal.

Deur 'n smal ligband op 'n driedimensionele oppervlak te projekteer, word 'n beligtingslyn veroorsaak wat uit ander perspektiewe as die van die projektor verdraai lyk en kan gebruik word vir 'n presiese meetkundige rekonstruksie van die oppervlakvorm. Horisontale en vertikale ligbande word op die voorwerpoppervlak geprojekteer en dan deur twee webcams vasgelê.

Stap 1: Inleiding

Inleiding
Inleiding
Inleiding
Inleiding

Met outomatiese 3D-verkrygingstoestelle (dikwels 3D-skandeerders genoem) kan u baie akkurate modelle van regte 3D-voorwerpe op 'n koste- en tyd-effektiewe manier bou. Ons het hierdie tegnologie beproef om 'n speelding te skandeer om die prestasie daarvan te bewys. Spesifieke behoeftes is: medium-hoë akkuraatheid, maklik om te gebruik, bekostigbare koste vir die skandeerapparaat, self-geregistreerde verkryging van vorm- en kleurdata, en uiteindelik operasionele veiligheid vir sowel die operateur as die geskandeerde voorwerpe. Volgens hierdie vereistes het ons 'n goedkoop 3D-skandeerder ontwerp op grond van gestruktureerde lig wat 'n veelsydige benadering met gekleurde strepe volg. Ons bied die skandeerderargitektuur, die sagtewaretegnologieë wat aangeneem is, en die eerste resultate van die gebruik daarvan aan in 'n projek rakende die 3D -aankoop van 'n speelding.

In die ontwerp van ons goedkoop skandeerder het ons gekies om die emitter-eenheid te implementeer met behulp van 'n videoprojektor. Die rede was die buigsaamheid van hierdie toestel (waarmee u enige tipe ligpatroon kan eksperimenteer) en die wye beskikbaarheid daarvan. Die sensor kan óf 'n pasgemaakte toestel, 'n standaard digitale kamera of 'n webkamera wees. dit moet kleuropname van hoë gehalte ondersteun (dit wil sê die verkryging van 'n hoë dinamiese omvang) en moontlik met 'n hoë resolusie.

Stap 2: sagteware

Sagteware
Sagteware

Pythontaal is om drie redes gebruik vir programmering, een is maklik om te leer en te implementeer, twee kan ons OPENCV gebruik vir beeldverwante roetines en drie is draagbaar onder verskillende bedryfstelsels, sodat u hierdie program in Windows, MAC en Linux kan gebruik. U kan ook die sagteware instel om saam met enige kamera (webcams, SLR's of industriële kameras) of projektor met 'n oorspronklike 1024X768 -resolusie te gebruik. Dit is beter om kameras met 'n resolusie van meer as twee keer te gebruik. Ek het die prestasie persoonlik in drie verskillende konfigurasies getoets, die eerste was met twee parallelle Microsoft -webcam -bioskope en 'n klein draagbare projektor, die tweede een met twee lifecam -bioskoopwebkameras wat 15 grade na mekaar gedraai het en Infocus -projektor, die laaste opset was met logitech -webkameras en Infocus -projektor. Om die puntwolk van die voorwerpoppervlak vas te lê, moet ons deur vyf stappe gaan:

1. Grys patrone projekteer en beelde van twee kameras "SL3DS1.projcapt.py" opneem

2. Verwerking van die 42 beelde van elke kamera en vang punte kodes "SL3DS2.procimages.py" op

2. Drempel aanpas om maskering te kies vir gebiede wat verwerk moet word "SL3DS3.adjustthresh.py"

4. Soek en stoor soortgelyke punte in elke kamera "SL3DS4.calcpxpy.py"

5 Bereken X, Y en Z koördinate van puntwolk "SL3DS5.calcxyz.py"

Die uitset is 'n PLY -lêer met koördinaat- en kleurinligting van punte op die voorwerpoppervlak. U kan PLY -lêers oopmaak met CAD -sagteware soos Autodesk -produkte of 'n open source sagteware soos Meshlab.

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

Python 2.7, OPENCV -module en NUMPY moet geïnstalleer word om hierdie Python -programme uit te voer. Ek het ook 'n GUI vir hierdie sagteware in TKINTER ontwikkel wat u in stap ses met twee voorbeelddatastelle kan vind. U kan bykomende inligting oor hierdie onderwerp op die volgende webwerwe vind:

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…

Stap 3: hardeware -opstelling

Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling
Hardeware -opstelling

Hardeware bestaan uit:

1. Twee webkameras (Logitech C920C)

2. Infocus LP330 -projektor

3. Kamera- en projektorstandaard (gemaak van 3 mm akrielplate en 6 mm HDF -houtsny met 'n lasersnyer)

Twee kameras en projektor moet aan 'n rekenaar gekoppel word met twee video -uitsette soos 'n notaboek, en die projektorskerm moet as 'n uitbreiding van die hoofvensters se lessenaar gekonfigureer word. Hier kan u beelde van kameras, projektor en staander sien. Die tekenlêer wat gereed is vir sny, word in SVG -formaat aangeheg.

Die projektor is 'n Infocus LP330 (inheemse resolusie 1024X768) met die volgende spesifikasies. Helderheid: 650 Lumen Kleuruitvoer: ** Kontras (volledig aan/af): 400: 1 Auto Iris: geen oorspronklike resolusie: 1024x768 beeldverhouding: 4: 3 (XGA) Videomodusse: ** Datamodusse: MAX 1024x768 Maksimum krag: 200 Watt Spanning: 100V - 240V Grootte (cm) (HxBxD): 6 x 22 x 25 Gewig: 2,2 kg Lampleeftyd (vol krag): 1000 ure Lampsoort: UHPLampvermogen: 120 watt Lamphoeveelheid: 1 skermtipe: 2 cm DLP (1) Standaard zoomlens: 1,25: 1 Fokus: handmatige werpafstand (m): 1,5 - 30,5 Beeldgrootte (cm): 76 - 1971

Hierdie videoprojektor word gebruik om gestruktureerde ligpatrone te projekteer op die voorwerp wat geskandeer moet word. Die gestruktureerde patroon bestaan uit vertikale en horisontale wit ligstroke wat op 'n datalêer gestoor word, en webcams vang die verwronge stroke op.

Gebruik verkieslik kameras wat deur sagteware beheer kan word, omdat u die fokus, helderheid, resolusie en beeldkwaliteit moet aanpas. Dit is moontlik om DSLR -kameras te gebruik met SDK's wat deur elke handelsmerk verskaf word.

Vergadering en toetse is uitgevoer in Kopenhagen Fablab met sy ondersteuning.

Stap 4: Eksperimenteer met skandeerder

Eksperimenteer met skandeerder
Eksperimenteer met skandeerder
Eksperimenteer met skandeerder
Eksperimenteer met skandeerder
Eksperimenteer met skandeerder
Eksperimenteer met skandeerder

'N Visspeelgoed is gebruik om die stelsel te toets, en u kan die vasgestelde beeld sien. Alle vasgelegde lêers en ook die uitvoerpuntwolk is ingesluit in die aangehegte lêer, u kan die PLY -puntwolklêer met Meshlab oopmaak:

meshlab.sourceforge.net/

Stap 5: 'n Paar ander skanderingsresultate

'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate
'N Paar ander skanderingsresultate

Hier kan u 'n paar menslike gesigskanderings en 'n 3D -skandering van 'n muur sien. Daar is altyd 'n paar uitstaande punte as gevolg van refleksies of onakkurate beeldresultate.

Stap 6: 3D -skandeerder -GUI

3D -skandeerder -GUI
3D -skandeerder -GUI

Vir die toets van die sagteware vir 3D -skandering in hierdie stap, voeg ek twee datastelle by, een is 'n skandering van 'n vis en 'n ander is slegs 'n vlak muur om die akkuraatheid daarvan te sien. Maak zip -lêers oop en voer SL3DGUI.py uit. Vir installasie, kyk na stap 2. Stuur 'n boodskap na my inkassie hier vir alle bronkodes.

Vir die gebruik van 3D -scan -gedeelte moet u twee kameras en projektor installeer, maar vir ander dele klik net op die knoppie. Om die steekproefdata te toets, klik eers op die proses, dan die drumpel, die stereo -pasmaat en uiteindelik die puntwolk. Installeer Meshlab om die puntwolk te sien.

meshlab.sourceforge.net/

Aanbeveel: