Sisukord:
- Samm 1: Sissejuhatus
- Samm 2: Tarkvara
- Samm: riistvara seadistamine
- Samm: katsetage skanneriga
- Samm: mõned muud skannimistulemused
- 6. samm: 3D -skanneri kasutajaliides
Video: DIY 3D -skanner struktureeritud valguse ja stereovisiooni põhjal Pythoni keeles: 6 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
See 3D -skanner valmistati odavate tavapäraste esemete, näiteks videoprojektori ja veebikaamerate abil. Struktureeritud valgusega 3D-skanner on 3D-skaneerimisseade objekti kolmemõõtmelise kuju mõõtmiseks, kasutades projitseeritud valgusmustreid ja kaamerasüsteemi. Tarkvara töötati välja struktureeritud valguse ja stereovisiooni põhjal koos pythonikeelega.
Kitsase valgusriba projitseerimine kolmemõõtmelisele kujuga pinnale tekitab valgustusjoone, mis tundub olevat muust kui projektori vaatenurgast moonutatud ja mida saab kasutada pinna kuju täpseks geomeetriliseks rekonstrueerimiseks. Horisontaalsed ja vertikaalsed valgusribad projitseeritakse objekti pinnale ja jäädvustatakse seejärel kahe veebikaamera abil.
Samm 1: Sissejuhatus
Automaatsed 3D-hankimisseadmed (mida sageli nimetatakse 3D-skanneriteks) võimaldavad ehitada reaalsete 3D-objektide ülitäpseid mudeleid kulu- ja ajasäästlikult. Oleme seda tehnoloogiat katsetanud mänguasja skaneerimisel, et tõestada jõudlust. Erivajadused on järgmised: keskmine kõrge täpsus, lihtne kasutada, skannimisseadme taskukohane hind, kuju- ja värviandmete iseregistreeritud hankimine ning lõpuks nii operaatori kui ka skaneeritud objektide tööohutus. Nende nõuete kohaselt kavandasime struktureeritud valguse põhjal odava 3D-skanneri, mis kasutab mitmekülgset värvilist triipmustrit. Esitleme skanneri arhitektuuri, kasutusele võetud tarkvaratehnoloogiaid ja selle kasutamise esimesi tulemusi projektis, mis puudutab mänguasja 3D -omandamist.
Meie odava skanneri projekteerimisel otsustasime emitteri rakendada videoprojektori abil. Põhjuseks oli selle seadme paindlikkus (mis võimaldab katsetada mis tahes tüüpi valgusmustreid) ja selle lai kättesaadavus. Andur võib olla kas kohandatud seade, tavaline digitaalne fotokaamera või veebikaamera. see peab toetama kvaliteetset värvipüüdmist (st kõrge dünaamilise ulatuse omandamist) ja võib -olla ka kõrge eraldusvõimega.
Samm 2: Tarkvara
Programmeerimiseks kasutati Pythoni keelt kolmel põhjusel, millest ühte on lihtne õppida ja rakendada, kaks saame kasutada OPENCV -d pildiga seotud rutiinide jaoks ja kolm on kaasaskantav erinevate operatsioonisüsteemide vahel, nii et saate seda programmi kasutada akendes, MAC -is ja Linuxis. Samuti saate tarkvara konfigureerida kasutamiseks mis tahes kaameraga (veebikaamerad, peegelkaamerad või tööstuskaamerad) või 1024X768 eraldusvõimega projektoriga. Parem on kasutada kaameraid, mille eraldusvõime on üle kahe korra suurem. Ma isiklikult testisin jõudlust kolmes erinevas konfiguratsioonis, esimene oli kahe paralleelse Microsofti veebikaamera kino ja väikese kaasaskantava projektoriga, teine kahe Lifecam kino veebikaameraga, mis pöörlesid 15 kraadi üksteise ja Infocus projektori poole, viimane konfiguratsioon logitechi veebikaameratega ja Infocus projektor. Objekti pinna punktpilve jäädvustamiseks peaksime läbima viis sammu:
1. Hallide mustrite projitseerimine ja piltide jäädvustamine kahest kaamerast "SL3DS1.projcapt.py"
2. Iga kaamera 42 pildi töötlemine ja punktide koodid "SL3DS2.procimages.py"
2. Läve reguleerimine maskeerimise valimiseks töödeldavatele aladele "SL3DS3.adjustthresh.py"
4. Leidke ja salvestage igas kaameras sarnased punktid "SL3DS4.calcpxpy.py"
5 Arvutage punktpilve "SL3DS5.calcxyz.py" X, Y ja Z koordinaadid
Väljundiks on PLY -fail, mis sisaldab objekti pinnal olevate punktide koordinaatide ja värviteavet. PLY -faile saate avada CAD -tarkvaraga, nagu Autodeski tooted või avatud lähtekoodiga tarkvara, näiteks Meshlab.
www.autodesk.com/products/personal-design-a…
Nende Pythoni programmide käitamiseks tuleks installida Python 2.7, OPENCV moodul ja NUMPY. Olen selle tarkvara jaoks ka TKINTERis välja töötanud GUI, mille leiate kuuendas etapis kahe näidisandmekogumiga. Selle teema kohta leiate lisateavet järgmistelt veebisaitidelt:
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…
Samm: riistvara seadistamine
Riistvara koosneb:
1. Kaks veebikaamerat (Logitech C920C)
2. Infocus LP330 projektor
3. Kaamera ja projektori alus (valmistatud 3 mm akrüülplaatidest ja 6 mm HDF puitlõikega, lõigatud laserlõikuriga)
Kaks kaamerat ja projektorit tuleks ühendada arvutiga, millel on kaks videoväljundit, näiteks sülearvuti ja projektori ekraan peaks olema konfigureeritud põhiakna töölaua laiendusena. Siin näete kaamerate, projektori ja aluse pilte. Lõikamiseks valmis joonistusfail on lisatud SVG -vormingus.
Projektor on Infocus LP330 (algresolutsioon 1024X768), millel on järgmised tehnilised andmed. Heledus: 650 luumenit värvivalgustus: ** kontrastsus (täielik sisse/välja): 400: 1 automaatne iiris: algse eraldusvõime puudub: 1024x768 kuvasuhe: 4: 3 (XGA) videorežiimid: ** Andmerežiimid: MAX 1024x768 Maksimaalne võimsus: 200 vatti Pinge: 100V - 240V Suurus (cm) (KxLxS): 6 x 22 x 25 Kaal: 2,2 kg Lambi eluiga (täisvõimsus): 1000 tundi Lambi tüüp: UHPLambi võimsus: 120 vatti Lambi kogus: 1 Ekraani tüüp: 2 cm DLP (1) Tavaline suumobjektiiv: 1,25: 1 Fookus: käsitsi viskamise kaugus (m): 1,5 - 30,5 Pildi suurus (cm): 76 - 1971
Seda videoprojektorit kasutatakse skaneeritava objekti struktureeritud valgusmustrite projitseerimiseks. Struktureeritud muster koosneb vertikaalsetest ja horisontaalsetest valgetest valgusribadest, mis salvestatakse andmefaili ja veebikaamerad jäädvustavad need moonutatud ribad.
Kasutage eelistatavalt neid kaameraid, mida saab tarkvara abil juhtida, kuna peate reguleerima fookust, heledust, eraldusvõimet ja pildikvaliteeti. Võimalik on kasutada iga kaubamärgi pakutavate SDK -dega DSLR -kaameraid.
Kokkupanek ja katsed viidi läbi Kopenhaageni Fablabis selle toel.
Samm: katsetage skanneriga
Süsteemi testimiseks kasutati kalamänguasja ja näete jäädvustatud pilti. Kogu jäädvustatud fail ja ka väljundpunkti pilv on lisatud lisatud faili, saate PLY -punkti pilvefaili avada Meshlabi abil:
meshlab.sourceforge.net/
Samm: mõned muud skannimistulemused
Siin näete mõningaid inimese nägude skaneeringuid ja seina 3D -skannimist. Peegelduste või ebatäpsete pilditulemuste tõttu on alati mõningaid kõrvalekaldeid.
6. samm: 3D -skanneri kasutajaliides
Selles etapis 3D -skannimistarkvara testimiseks lisan kaks andmekogumit, millest üks on kala skaneerimine ja teine on lihtsalt tasane sein, et näha selle täpsust. Avage ZIP -failid ja käivitage SL3DGUI.py. Paigaldamiseks kontrollige sammu 2. Kõigi lähtekoodide saamiseks saatke sõnum minu postkasti.
3D -skannimisosa kasutamiseks peate installima kaks kaamerat ja projektori, kuid muude osade jaoks klõpsake lihtsalt nuppu. Prooviandmete testimiseks klõpsake kõigepealt protsessil, seejärel lävel, stereovaste ja lõpuks punktpilv. Punktipilve nägemiseks installige Meshlab.
meshlab.sourceforge.net/
Soovitan:
Kõrgusmõõtur (kõrgusmõõtur) atmosfäärirõhu põhjal: 7 sammu (piltidega)
Kõrgusmõõtur (kõrgusmõõtur) atmosfäärirõhu põhjal: [Muuda]; Vaadake 6. versiooni 2. versiooni käsitsi baastasandi kõrguse sisestamisega. See on Arduino Nano ja Boschi BMP180 atmosfäärirõhuanduril põhineva kõrgusemõõtja (kõrgusemõõtja) hoone kirjeldus. Disain on lihtne, kuid mõõtmised
Raspberry Pi - BH1715 digitaalse ümbritseva valguse anduri Pythoni õpetus: 4 sammu
Raspberry Pi - BH1715 Digitaalse ümbritseva valguse anduri Pythoni õpetus: BH1715 on digitaalne ümbritseva valguse andur, millel on I²C siiniliides. BH1715 kasutatakse tavaliselt ümbritseva valguse andmete saamiseks, et reguleerida mobiilseadmete LCD -ekraani ja klaviatuuri taustvalgustust. See seade pakub 16-bitist eraldusvõimet ja reguleerib
Raspberry Pi - TSL45315 ümbritseva valguse anduri Pythoni õpetus: 4 sammu
Raspberry Pi - TSL45315 ümbritseva valguse anduri Pythoni õpetus: TSL45315 on digitaalne ümbritseva valguse andur. See lähendab inimese silma reaktsiooni erinevates valgustingimustes. Seadmetel on kolm valitavat integreerimisaega ja need pakuvad otsest 16-bitist luksväljundit I2C siiniliidese kaudu. Seade koos
Valguse intensiivsuse joonistamine Arduino ja Pythoni Arduino Master Library abil: 5 sammu
Kerge intensiivsusega joonistamine Arduino ja Pythoni Arduino Master Library abil: Arduino on ökonoomne, kuid samas väga tõhus ja funktsionaalne tööriist, selle programmeerimine Embedded C -s muudab projektide tegemise tüütuks! Pythoni Arduino_Master moodul lihtsustab seda ja võimaldab meil arvutusi teha, prügiväärtusi eemaldada
Tuulejaam purjelauasõidule MQTT ja AWS -i põhjal: 3 sammu (koos piltidega)
Purjelauasõidu tuulejaam põhineb MQTT & AWS -il: Shenzhenis on palju ilusaid randu. Suvepäevadel on minu lemmik spordiala purjetamine. Purjetamisspordi jaoks olen ma alles algaja, mulle meeldib tunne, et merevesi puudutab mu nägu, ja palju muud, sain selle spordialaga palju uusi sõpru. Aga