Satura rādītājs:

DIY 3D skeneris, pamatojoties uz strukturētu gaismu un stereo redzi Python valodā: 6 soļi (ar attēliem)
DIY 3D skeneris, pamatojoties uz strukturētu gaismu un stereo redzi Python valodā: 6 soļi (ar attēliem)

Video: DIY 3D skeneris, pamatojoties uz strukturētu gaismu un stereo redzi Python valodā: 6 soļi (ar attēliem)

Video: DIY 3D skeneris, pamatojoties uz strukturētu gaismu un stereo redzi Python valodā: 6 soļi (ar attēliem)
Video: Leap Motion SDK 2024, Jūlijs
Anonim
DIY 3D skeneris, kas balstīts uz strukturētu gaismu un stereo redzi Python valodā
DIY 3D skeneris, kas balstīts uz strukturētu gaismu un stereo redzi Python valodā
DIY 3D skeneris, kas balstīts uz strukturētu gaismu un stereo redzi Python valodā
DIY 3D skeneris, kas balstīts uz strukturētu gaismu un stereo redzi Python valodā

Šis 3D skeneris tika izgatavots, izmantojot zemas cenas parastos priekšmetus, piemēram, videoprojektoru un tīmekļa kameras. Strukturētas gaismas 3D skeneris ir 3D skenēšanas ierīce objekta trīsdimensiju formas mērīšanai, izmantojot projicētus gaismas modeļus un kameru sistēmu. Programmatūra tika izstrādāta, pamatojoties uz strukturētu gaismas un stereo redzējumu ar python valodu.

Šaurās gaismas joslas projicēšana uz trīsdimensiju formas virsmas rada apgaismojuma līniju, kas, šķiet, ir izkropļota no citām perspektīvām, nevis no projektora, un to var izmantot precīzai virsmas formas ģeometriskai rekonstrukcijai. Horizontālās un vertikālās gaismas joslas tiek projicētas uz objekta virsmas un pēc tam uzņemtas ar divām tīmekļa kamerām.

1. darbība. Ievads

Ievads
Ievads
Ievads
Ievads

Automātiskās 3D iegūšanas ierīces (bieži sauktas par 3D skeneriem) ļauj ekonomiski un laikietilpīgi izveidot ļoti precīzus reālu 3D objektu modeļus. Mēs esam eksperimentējuši ar šo tehnoloģiju, skenējot rotaļlietu, lai pierādītu veiktspēju. Īpašas vajadzības ir: vidēji augsta precizitāte, ērta lietošana, skenēšanas ierīces pieejamās izmaksas, pašreģistrēta formas un krāsu datu iegūšana un, visbeidzot, ekspluatācijas drošība gan operatoram, gan skenētajiem objektiem. Saskaņā ar šīm prasībām mēs izstrādājām lētu 3D skeneri, kura pamatā ir strukturēta gaisma, kas izmanto daudzpusīgu krāsu svītru raksta pieeju. Mēs iepazīstinām ar skenera arhitektūru, izmantotajām programmatūras tehnoloģijām un pirmajiem tās izmantošanas rezultātiem projektā par rotaļlietas 3D iegādi.

Izstrādājot mūsu zemo izmaksu skeneri, mēs izvēlējāmies emitētāja bloku ieviest, izmantojot videoprojektoru. Iemesls bija šīs ierīces elastība (kas ļauj eksperimentēt ar jebkura veida gaismas modeļiem) un tās plašā pieejamība. Sensors var būt pielāgota ierīce, standarta digitālā nekustīgā kamera vai tīmekļa kamera. tai jāatbalsta augstas kvalitātes krāsu uzņemšana (t.i., augsta dinamiskā diapazona iegūšana) un, iespējams, ar augstu izšķirtspēju.

2. darbība: programmatūra

Programmatūra
Programmatūra

Programmēšanai tika izmantota Python valoda trīs iemeslu dēļ: vienu to ir viegli iemācīties un ieviest, divus mēs varam izmantot OPENCV ar attēlu saistītām procedūrām, un trīs tas ir pārnēsājams starp dažādām operētājsistēmām, lai jūs varētu izmantot šo programmu logos, MAC un Linux. Varat arī konfigurēt programmatūru lietošanai ar jebkura veida kamerām (tīmekļa kamerām, spoguļkamerām vai rūpnieciskām kamerām) vai projektoru ar dabisko 1024X768 izšķirtspēju. Labāk ir izmantot kameras ar izšķirtspēju vairāk nekā divas reizes. Es personīgi pārbaudīju veiktspēju trīs dažādās konfigurācijās, pirmā bija ar diviem paralēliem Microsoft tīmekļa kameru kinoteātriem un nelielu pārnēsājamu projektoru, otrā - ar divām Lifecam kino tīmekļa kamerām, kas pagriezās par 15 grādiem viena pret otru, un Infocus projektoru, pēdējā konfigurācija bija ar logitech tīmekļa kamerām. un Infocus projektors. Lai uztvertu objekta virsmas punktu mākoni, mums jāveic pieci soļi:

1. Pelēko rakstu projicēšana un attēlu uzņemšana no divām kamerām "SL3DS1.projcapt.py"

2. Katras kameras 42 attēlu apstrāde un uztveršanas punktu kodi "SL3DS2.procimages.py"

2. Sliekšņa pielāgošana, lai atlasītu apstrādājamo apgabalu maskēšanu "SL3DS3.adjustthresh.py"

4. Atrodiet un saglabājiet līdzīgus punktus katrā kamerā "SL3DS4.calcpxpy.py"

5 Aprēķiniet punktu mākoņa "SL3DS5.calcxyz.py" X, Y un Z koordinātas

Rezultāts ir PLY fails ar koordinātu un krāsu informāciju par punktiem uz objekta virsmas. Jūs varat atvērt PLY failus, izmantojot CAD programmatūru, piemēram, Autodesk produktus, vai atvērtā pirmkoda programmatūru, piemēram, Meshlab.

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

Lai palaistu šīs Python programmas, ir jāinstalē Python 2.7, OPENCV modulis un NUMPY. Šai programmatūrai esmu izstrādājis arī GUI TKINTER, ko var atrast sestajā solī ar divām datu paraugu kopām. Papildu informāciju par šo tēmu varat atrast šādās vietnēs:

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…

3. darbība. Aparatūras iestatīšana

Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana
Aparatūras iestatīšana

Aparatūra sastāv no:

1. Divas tīmekļa kameras (Logitech C920C)

2. Infocus LP330 projektors

3. Kameras un projektora statīvs (izgatavots no 3 mm akrila plāksnēm un 6 mm HDF koka griezuma ar lāzera griezēju)

Divas kameras un projektors ir jāpievieno datoram ar divām video izejām, piemēram, piezīmjdatoram, un projektora ekrāns jākonfigurē kā galvenā darbvirsmas paplašinājums. Šeit jūs varat redzēt kameras, projektora un statīva attēlus. Griešanai gatavs rasējuma fails ir pievienots SVG formātā.

Projektors ir Infocus LP330 (sākotnējā izšķirtspēja 1024X768) ar šādām specifikācijām. Spilgtums: 650 lūmenu krāsu gaismas izvade: ** kontrasts (pilnībā ieslēgts/izslēgts): 400: 1 Automātiskais varavīksne: nav sākotnējās izšķirtspējas: 1024x768 malu attiecība: 4: 3 (XGA) video režīmi: ** Datu režīmi: MAX 1024x768 Maksimālā jauda: 200 vati Spriegums: 100V - 240V Izmērs (cm) (HxWxD): 6 x 22 x 25 Svars: 2,2 kg Lampas kalpošanas laiks (pilna jauda): 1 000 stundas Lampas tips: UHPLampas jauda: 120 vati Lampas daudzums: 1 Displeja tips: 2 cm DLP (1) Standarta tālummaiņas objektīvs: 1,25: 1 Fokuss: Manuālā metiena attālums (m): 1,5 - 30,5 Attēla izmērs (cm): 76 - 1971

Šo videoprojektoru izmanto strukturētu gaismas modeļu projicēšanai uz skenējamā objekta. Strukturētais modelis sastāv no vertikālām un horizontālām baltām gaismas joslām, kas tiek saglabātas datu failā, un tīmekļa kameras uztver šīs izkropļotās sloksnes.

Vēlams izmantot tās kameras, kuras var kontrolēt ar programmatūru, jo jums ir jāpielāgo fokuss, spilgtums, izšķirtspēja un attēla kvalitāte. Ir iespējams izmantot DSLR kameras ar SDK, ko nodrošina katrs zīmols.

Montāža un testi tika veikti Kopenhāgenas Fablab ar tās atbalstu.

4. darbība: eksperimentēšana ar skeneri

Eksperimentēšana ar skeneri
Eksperimentēšana ar skeneri
Eksperimentēšana ar skeneri
Eksperimentēšana ar skeneri
Eksperimentēšana ar skeneri
Eksperimentēšana ar skeneri

Sistēmas pārbaudei tika izmantota zivju rotaļlieta, un jūs varat redzēt uzņemto attēlu. Viss uzņemtais fails un arī izejas punktu mākonis ir iekļauts pievienotajā failā, jūs varat atvērt PLY punktu mākoņa failu, izmantojot Meshlab:

meshlab.sourceforge.net/

5. darbība. Daži citi skenēšanas rezultāti

Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti
Daži citi skenēšanas rezultāti

Šeit jūs varat redzēt dažus cilvēka sejas skenējumus un sienas 3D skenēšanu. Atspulgu vai neprecīzu attēlu rezultātu dēļ vienmēr ir daži neparasti punkti.

6. darbība: 3D skenera lietotāja saskarne

3D skenera GUI
3D skenera GUI

Lai pārbaudītu 3D skenēšanas programmatūru šajā solī, es pievienoju divas datu kopas: viena ir zivju skenēšana, bet otra ir tikai plakana siena, lai redzētu tās precizitāti. Atveriet ZIP failus un palaidiet SL3DGUI.py. Instalēšanai pārbaudiet 2. darbību. Lai saņemtu visus avota kodus, nosūtiet ziņojumu uz manu iesūtni.

Lai izmantotu 3D skenēšanas daļu, jums jāinstalē divas kameras un projektors, bet citām daļām vienkārši noklikšķiniet uz pogas. Lai pārbaudītu parauga datus, vispirms noklikšķiniet uz procesa, pēc tam sliekšņa, stereo atbilstības un visbeidzot punktu mākonis. Instalējiet Meshlab, lai redzētu punktu mākoni.

meshlab.sourceforge.net/

Ieteicams: