Talaan ng mga Nilalaman:

DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python: 6 na Hakbang (na may Mga Larawan)
DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python: 6 na Hakbang (na may Mga Larawan)

Video: DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python: 6 na Hakbang (na may Mga Larawan)

Video: DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python: 6 na Hakbang (na may Mga Larawan)
Video: CS50 2015 - Week 9, continued 2024, Hulyo
Anonim
DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python
DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python
DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python
DIY 3D Scanner Batay sa Structured Light at Stereo Vision sa Wika ng Python

Ang 3D scanner na ito ay ginawa gamit ang mga magastos na maginoo na item tulad ng video projector at webcams. Ang isang nakabalangkas na ilaw na 3D scanner ay isang aparato sa pag-scan ng 3D para sa pagsukat ng tatlong-dimensional na hugis ng isang bagay gamit ang inaasahang mga pattern ng ilaw at isang sistema ng camera. Ang software ay binuo batay sa nakabalangkas na ilaw at stereo vision na may wikang sawa.

Ang pag-project ng isang makitid na banda ng ilaw papunta sa isang three-dimensional na hugis na ibabaw ay gumagawa ng isang linya ng pag-iilaw na lilitaw na baluktot mula sa iba pang mga pananaw kaysa sa projector, at maaaring magamit para sa isang eksaktong pagbabagong-tatag ng geometriko ng hugis sa ibabaw. Ang pahalang at patayong mga light band ay inaasahang nasa ibabaw ng bagay at pagkatapos ay nakunan ng dalawang mga webcam.

Hakbang 1: Panimula

Panimula
Panimula
Panimula
Panimula

Ang mga awtomatikong 3D acquisition device (madalas na tinatawag na 3D scanner) ay nagbibigay-daan upang makabuo ng lubos na tumpak na mga modelo ng mga totoong 3D na bagay sa isang gastos na mabisa at mabisa sa oras. Sinubukan namin ang teknolohiyang ito sa pag-scan ng isang laruan upang mapatunayan ang pagganap. Ang mga tiyak na pangangailangan ay: katumpakan ng medium-high, madaling gamitin, abot-kayang gastos ng aparato sa pag-scan, nakarehistro sa sarili na pagkuha ng hugis at kulay ng data, at sa wakas ay kaligtasan para sa pagpapatakbo para sa parehong operator at mga na-scan na bagay. Ayon sa mga kinakailangang ito, nagdisenyo kami ng isang mababang-scan na 3D scanner batay sa nakaayos na ilaw na gumagamit ng isang maraming nalalaman kulay na guhit na diskarte sa guhit. Ipinapakita namin ang arkitektura ng scanner, pinagtibay ang mga teknolohiya ng software, at ang mga unang resulta ng paggamit nito sa isang proyekto tungkol sa pagkuha ng 3D ng isang laruan.

Sa disenyo ng aming low-cost scanner, pinili namin na ipatupad ang yunit ng emitter sa pamamagitan ng paggamit ng isang video projector. Ang dahilan ay ang kakayahang umangkop ng aparatong ito (na nagbibigay-daan upang mag-eksperimento sa anumang uri ng light pattern) at ang malawak na kakayahang magamit. Ang sensor ay maaaring alinman sa isang pasadyang aparato, isang karaniwang digital still camera o isang webcam. dapat itong suportahan ang mataas na kalidad ng pagkuha ng kulay (ibig sabihin, pagkuha ng mataas na hanay ng pabagu-bago) at posibleng may mataas na resolusyon.

Hakbang 2: Software

Software
Software

Ang wika ng Python ay ginamit para sa programa sa tatlong kadahilanan, isa madali itong matutunan at ipatupad, dalawa maaari nating gamitin ang OPENCV para sa mga kaugaliang nauugnay sa imahe at tatlo na ito ay portable sa iba't ibang mga operating system upang magamit mo ang program na ito sa windows, MAC at Linux. Maaari mo ring i-configure ang software na gagamitin sa anumang uri ng camera (webcams, SLRs o pang-industriya na camera) o projector na may katutubong resolusyon na 1024X768. Mas mahusay na gumamit ng mga camera na may higit sa dalawang beses na resolusyon. Personal kong sinubukan ang pagganap sa tatlong magkakaibang pagsasaayos, ang una ay may dalawang parallel na Microsoft webcam cinema at isang maliit na portable projector, ang pangalawa ay may dalawang lifecam cinema webcameras na umiikot ng 15 degree patungo sa bawat isa at Infocus projector, ang huling pagsasaayos ay kasama ng logitech webcameras at projector ng Infocus. Upang makuha ang ulap ng punto ng ibabaw ng bagay dapat tayong pumunta sa limang mga hakbang:

1. Pag-project ng mga grey pattern at pagkuha ng mga imahe mula sa dalawang camera na "SL3DS1.projcapt.py"

2. Pagproseso ng 42 mga imahe ng bawat camera at pagkuha ng mga code ng puntos na "SL3DS2.procimages.py"

2. Ang pag-aayos ng threshold upang mapili ang masking para sa mga lugar na mapoproseso ng "SL3DS3.adjustthresh.py"

4. Hanapin at i-save ang mga katulad na puntos sa bawat camera na "SL3DS4.calcpxpy.py"

5 Kalkulahin ang mga coordinate ng X, Y at Z ng point cloud na "SL3DS5.calcxyz.py"

Ang output ay isang PLY file na may coordinate at kulay na impormasyon ng mga puntos sa ibabaw ng bagay. Maaari mong buksan ang mga PLY file na may CAD software tulad ng mga produkto ng Autodesk o isang open source sofware tulad ng Meshlab.

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

Ang Python 2.7, OPENCV module at NUMPY ay dapat na mai-install upang patakbuhin ang mga programang Python na ito. Bumuo din ako ng isang GUI para sa software na ito sa TKINTER na maaari mong makita sa hakbang anim na may dalawang sample na hanay ng data. Maaari kang makahanap ng karagdagang impormasyon sa paksang ito sa mga sumusunod na website:

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…

Hakbang 3: Pag-setup ng Hardware

Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware
Pag-setup ng Hardware

Ang hardware ay binubuo ng:

1. Dalawang webcamera (Logitech C920C)

2. Infocus projector ng LP330

3. Camera at projector stand (gawa sa 3 mm Acrylic plate at 6 mm HDF wood cut na may laser cutter)

Ang dalawang camera at projector ay dapat na konektado sa isang computer na may dalawang output ng video tulad ng isang notebook computer at dapat i-configure ang screen ng projector bilang isang extension sa pangunahing windows desktop. Makikita mo rito ang mga larawan ng camera, projector at stand. Ang file ng pagguhit na handa na para sa hiwa ay naka-attach sa format na SVG.

Ang projector ay isang Infocus LP330 (Katutubong resolusyon 1024X768) na may mga sumusunod na detalye. Karapatan: 650 Lumens Kulay ng Kulay na Output: ** Contrast (Buong On / Off): 400: 1 Auto Iris: Walang Katutubong Resolution: 1024x768 Aspect Ratio: 4: 3 (XGA) Mga Mode ng Video: ** Mga Mode ng Data: MAX 1024x768 Max Power: 200 Watts Boltahe: 100V - 240V Laki (cm) (HxWxD): 6 x 22 x 25 Timbang: 2.2 kg Buhay ng Lampara (Buong Kapangyarihan): 1, 000 mga oras Uri ng Lampara: UHPLamp Wattage: 120 Watts Lamp Dami: 1 Uri ng Display: 2 cm DLP (1) Standard Zoom Lens: 1.25: 1 Focus: Manu-manong Throw Dist (m): 1.5 - 30.5 Laki ng Larawan (cm): 76 - 1971

Ginagamit ang projector ng video na ito upang mag-proyekto ng mga nakaayos na mga pattern ng ilaw sa bagay na mai-scan. Ang nakaayos na pattern ay binubuo ng patayo at pahalang na mga puting light strip na nai-save sa isang file ng data at nakuha ng mga webcam ang mga baluktot na piraso.

Mas gusto mong gamitin ang mga camera na makokontrol ng software dahil kailangan mong ayusin ang pokus, liwanag, resolusyon at kalidad ng imahe. Posibleng gumamit ng mga DSLR camera na may mga SDK na ibinibigay ng bawat tatak.

Ang pagpupulong at mga pagsubok ay isinasagawa sa Copenhagen Fablab kasama ang suporta nito.

Hakbang 4: Pag-eksperimento Sa Scanner

Eksperimento Sa Scanner
Eksperimento Sa Scanner
Eksperimento Sa Scanner
Eksperimento Sa Scanner
Eksperimento Sa Scanner
Eksperimento Sa Scanner

Para sa pagsubok sa system ginamit ang isang laruang isda at makikita mo ang nakunan ng imahe. Ang lahat ng nakunan ng file at ang output point cloud ay kasama sa nakalakip na file, maaari mong buksan ang file ng cloud point na PLY sa Meshlab:

meshlab.sourceforge.net/

Hakbang 5: Ilang Ibang Mga Resulta sa Pag-scan

Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan
Ilang Ibang Mga Resulta sa Pag-scan

Makikita mo rito ang ilang mga pag-scan ng mukha ng tao at pag-scan ng 3d ng isang pader. Mayroong palaging ilang mga puntos na outlier dahil sa mga pagsasalamin o hindi tumpak na mga resulta ng imahe.

Hakbang 6: 3D Scanner GUI

3D Scanner GUI
3D Scanner GUI

Para sa pagsubok ng 3d scan software sa hakbang na ito nagdaragdag ako ng dalawang mga hanay ng data ang isa ay ang pag-scan ng isang isda at ang isa pa ay isang pader na eroplano upang makita ang kawastuhan nito. Buksan ang mga ZIP file at patakbuhin ang SL3DGUI.py. Para sa pag-install suriin ang hakbang 2. Magpadala ng mensahe sa aking inbox dito para sa lahat ng mga source code.

Para sa paggamit ng bahagi ng pag-scan ng 3d kailangan mong mag-install ng dalawang camera at projector ngunit para sa iba pang mga bahagi mag-click lamang sa pindutan. Para sa pagsubok ng sample na data unang mag-click sa proseso pagkatapos ng threshold, stereo match at sa wakas ituro ang cloud. I-install ang Meshlab upang makita ang point cloud.

meshlab.sourceforge.net/

Inirerekumendang: