Turinys:

„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: 6 žingsniai (su paveikslėliais)
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: 6 žingsniai (su paveikslėliais)

Video: „Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: 6 žingsniai (su paveikslėliais)

Video: „Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba: 6 žingsniai (su paveikslėliais)
Video: 2024 m. sausio 25 d. 11.00 val. – Kontrolės komiteto posėdis 2024, Liepa
Anonim
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba
„Pasidaryk pats“3D skaitytuvas, pagrįstas struktūrizuota šviesa ir „Stereo Vision“„Python“kalba

Šis 3D skaitytuvas buvo pagamintas naudojant pigius įprastus elementus, tokius kaip vaizdo projektorius ir internetinės kameros. Struktūrinės šviesos 3D skaitytuvas yra 3D nuskaitymo įrenginys, skirtas išmatuoti trimatę objekto formą, naudojant projektuojamus šviesos modelius ir fotoaparato sistemą. Programinė įranga buvo sukurta remiantis struktūrizuota šviesa ir stereo vizija su python kalba.

Projektuojant siaurą šviesos juostą į trimatį formos paviršių, atsiranda apšvietimo linija, kuri atrodo iškraipyta iš kitų perspektyvų nei projektorius, ir gali būti naudojama tiksliajai geometrinei paviršiaus formos rekonstrukcijai. Horizontalios ir vertikalios šviesos juostos projektuojamos ant objekto paviršiaus ir užfiksuojamos dviem kameromis.

1 žingsnis: Įvadas

Įvadas
Įvadas
Įvadas
Įvadas

Automatiniai 3D gavimo įrenginiai (dažnai vadinami 3D skaitytuvais) leidžia ekonomiškai ir laiku sukurti labai tikslius tikrų 3D objektų modelius. Mes išbandėme šią technologiją nuskaitydami žaislą, kad įrodytume jo veikimą. Konkretūs poreikiai: vidutinio aukščio tikslumas, paprastas naudojimas, prieinama kaina nuskaitymo įrenginiui, savarankiškai registruotas formos ir spalvų duomenų gavimas ir galiausiai operatoriaus ir nuskaitytų objektų saugumas. Atsižvelgdami į šiuos reikalavimus, mes sukūrėme nebrangų 3D skaitytuvą, pagrįstą struktūrizuota šviesa, kuri naudoja universalų spalvotų juostų modelį. Pateikiame skaitytuvo architektūrą, pritaikytas programinės įrangos technologijas ir pirmuosius jo naudojimo rezultatus projekte, susijusiame su 3D žaislo įsigijimu.

Kurdami mūsų nebrangų skaitytuvą, mes nusprendėme įdiegti spinduliuotės įrenginį naudodami vaizdo projektorių. Priežastis buvo šio prietaiso lankstumas (leidžiantis eksperimentuoti su bet kokio tipo šviesos modeliais) ir platus prieinamumas. Jutiklis gali būti pasirinktinis įrenginys, standartinė skaitmeninė fotoaparatas arba internetinė kamera. jis turi palaikyti aukštos kokybės spalvų fiksavimą (t. y. didelio dinaminio diapazono įgijimą) ir galbūt su didele skiriamąja geba.

2 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

„Python“kalba buvo naudojama programuojant dėl trijų priežasčių, viena iš jų yra lengva išmokti ir įdiegti, antra, mes galime naudoti OPENCV su įvaizdžiu susijusioms procedūroms, o trečia - ji yra nešiojama tarp skirtingų operacinių sistemų, kad galėtumėte naudoti šią programą „Windows“, MAC ir „Linux“. Taip pat galite sukonfigūruoti programinę įrangą naudoti su bet kokio tipo fotoaparatais (internetinėmis kameromis, SLR ar pramoninėmis kameromis) arba projektoriumi, kurio skiriamoji geba yra 1024X768. Geriau naudoti fotoaparatus, kurių skiriamoji geba yra daugiau nei du kartus. Aš asmeniškai išbandžiau trijų skirtingų konfigūracijų našumą, pirmasis buvo su dviem lygiagrečiais „Microsoft“internetinių kamerų kinu ir mažu nešiojamuoju projektoriumi, antrasis - su dviem „lifecam“kino kameromis, kurios pasisuko 15 laipsnių viena kitos link, ir „Infocus“projektoriumi, paskutinė konfigūracija buvo su „Logitech“vaizdo kameromis ir „Infocus“projektorius. Norėdami užfiksuoti taškinį objekto paviršiaus debesį, turėtume eiti penkiais žingsniais:

1. Pilkų raštų projektavimas ir vaizdų fiksavimas iš dviejų kamerų "SL3DS1.projcapt.py"

2. Apdoroti 42 kiekvienos kameros vaizdus ir fiksuoti taškų kodus „SL3DS2.procimages.py“

2. Slenksčio koregavimas, kad būtų pasirinktas apdorojimo sričių maskavimas "SL3DS3.adjustthresh.py"

4. Raskite ir išsaugokite panašius taškus kiekvienoje kameroje „SL3DS4.calcpxpy.py“

5 Apskaičiuokite taško debesies „SL3DS5.calcxyz.py“X, Y ir Z koordinates

Išvestis yra PLY failas su objektų paviršiaus taškų koordinačių ir spalvų informacija. Galite atidaryti PLY failus naudodami CAD programinę įrangą, pvz., „Autodesk“produktus, arba atvirojo kodo programinę įrangą, pvz., „Meshlab“.

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

Norint paleisti šias „Python“programas, reikia įdiegti „Python 2.7“, „OPENCV“modulį ir „NUMPY“. Aš taip pat sukūriau šios programinės įrangos GUI TKINTER, kurią galite rasti šeštajame žingsnyje su dviem duomenų rinkiniais. Papildomos informacijos šia tema galite rasti šiose svetainėse:

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 žingsnis: Aparatūros sąranka

Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka
Techninės įrangos sąranka

Techninę įrangą sudaro:

1. Dvi internetinės kameros („Logitech C920C“)

2. „Infocus LP330“projektorius

3. Fotoaparato ir projektoriaus stovas (pagamintas iš 3 mm akrilo plokščių ir 6 mm HDF medžio pjūvio lazeriniu pjaustytuvu)

Dvi kameros ir projektorius turi būti prijungti prie kompiuterio su dviem vaizdo išvestimis, pavyzdžiui, nešiojamasis kompiuteris, o projektoriaus ekranas turėtų būti sukonfigūruotas kaip pagrindinio „Windows“darbalaukio plėtinys. Čia galite pamatyti fotoaparatų, projektoriaus ir stovo vaizdus. Piešimui paruoštas brėžinio failas pridedamas SVG formatu.

Projektorius yra „Infocus LP330“(gimtoji skiriamoji geba 1024X768) su šiomis specifikacijomis. Ryškumas: 650 liumenų spalvų šviesos išvestis: ** kontrastas (visiškai įjungtas/išjungtas): 400: 1 automatinė rainelė: nėra vietinės skiriamosios gebos: 1024x768 formato santykis: 4: 3 (XGA) vaizdo režimai: ** Duomenų režimai: MAX 1024x768 Maksimali galia: 200 vatų Įtampa: 100V - 240V Dydis (cm) (A x P x G): 6 x 22 x 25 Svoris: 2,2 kg Lempos tarnavimo laikas (visa galia): 1 000 valandos Lempos tipas: UHPL Lempos galia: 120 vatų Lempos kiekis: 1 Ekrano tipas: 2 cm DLP (1) Standartinio priartinimo objektyvas: 1,25: 1 Fokusavimas: Rankinis metimo atstumas (m): 1,5 - 30,5 Vaizdo dydis (cm): 76 - 1971

Šis vaizdo projektorius naudojamas projektuojant struktūrizuotus šviesos modelius ant nuskaitomo objekto. Struktūrinį modelį sudaro vertikalios ir horizontalios baltos šviesos juostos, išsaugotos duomenų faile, o internetinės kameros fiksuoja tas iškraipytas juostas.

Pageidautina naudoti tas kameras, kurias galima valdyti programine įranga, nes reikia koreguoti fokusavimą, ryškumą, skiriamąją gebą ir vaizdo kokybę. Galima naudoti DSLR fotoaparatus su SDK, kuriuos teikia kiekvienas prekės ženklas.

Surinkimas ir bandymai buvo atlikti Kopenhagos „Fablab“padedant.

4 žingsnis: eksperimentuokite su skaitytuvu

Eksperimentuokite su skaitytuvu
Eksperimentuokite su skaitytuvu
Eksperimentuokite su skaitytuvu
Eksperimentuokite su skaitytuvu
Eksperimentuokite su skaitytuvu
Eksperimentuokite su skaitytuvu

Sistemos testavimui buvo naudojamas žuvies žaislas ir galite pamatyti užfiksuotą vaizdą. Visas užfiksuotas failas ir išvesties taškas yra įtrauktas į pridedamą failą, galite atidaryti PLY taško debesies failą naudodami „Meshlab“:

meshlab.sourceforge.net/

5 veiksmas: kai kurie kiti nuskaitymo rezultatai

Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai
Kai kurie kiti nuskaitymo rezultatai

Čia galite pamatyti žmogaus veidą ir 3D sienos nuskaitymą. Dėl atspindžių ar netikslių vaizdo rezultatų visada yra tam tikrų nepageidaujamų taškų.

6 veiksmas: 3D skaitytuvo GUI

3D skaitytuvo GUI
3D skaitytuvo GUI

Norėdami išbandyti 3D nuskaitymo programinę įrangą šiame žingsnyje, pridedu du duomenų rinkinius: vienas yra žuvies nuskaitymas, o kitas yra tik plokštuminė siena, kad būtų galima pamatyti jos tikslumą. Atidarykite ZIP failus ir paleiskite SL3DGUI.py. Norėdami įdiegti, patikrinkite 2 veiksmą. Siųskite pranešimą į mano pašto dėžutę, kad gautumėte visus šaltinio kodus.

Norėdami naudoti 3D nuskaitymo dalį, turite įdiegti dvi kameras ir projektorių, tačiau kitoms dalims tiesiog spustelėkite mygtuką. Norėdami patikrinti pavyzdinius duomenis, pirmiausia spustelėkite procesą, tada slenkstį, stereo atitikimą ir galiausiai taško debesį. Įdiekite „Meshlab“, kad pamatytumėte taškinį debesį.

meshlab.sourceforge.net/

Rekomenduojamas: