Sadržaj:

DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python: 6 koraka (sa slikama)
DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python: 6 koraka (sa slikama)

Video: DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python: 6 koraka (sa slikama)

Video: DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python: 6 koraka (sa slikama)
Video: The dawn of the age of holograms | Alex Kipman 2024, Novembar
Anonim
DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python
DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python
DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python
DIY 3D skener zasnovan na strukturiranoj svjetlosti i stereo viziji na jeziku Python

Ovaj 3D skener napravljen je korištenjem jeftinih konvencionalnih artikala poput video projektora i web kamera. 3D skener sa strukturiranom svjetlošću je uređaj za 3D skeniranje za mjerenje trodimenzionalnog oblika objekta pomoću projiciranih svjetlosnih uzoraka i sistema kamera. Softver je razvijen na osnovu strukturiranog svjetla i stereo vizije sa python jezikom.

Projiciranje uskog svjetlosnog pojasa na trodimenzionalnu oblikovanu površinu stvara liniju osvjetljenja koja izgleda iskrivljeno iz drugih perspektiva osim one projektora, i može se koristiti za egzaktnu geometrijsku rekonstrukciju oblika površine. Horizontalne i okomite svjetlosne trake projiciraju se na površinu objekta, a zatim ih snimaju dvije web kamere.

Korak 1: Uvod

Uvod
Uvod
Uvod
Uvod

Automatski uređaji za 3D snimanje (često se nazivaju 3D skeneri) omogućuju izgradnju visoko preciznih modela stvarnih 3D objekata na ekonomičan i vremenski efikasan način. Ovu smo tehnologiju eksperimentirali skeniranjem igračke kako bismo dokazali performanse. Specifične potrebe su: srednje visoka preciznost, laka upotreba, pristupačna cijena uređaja za skeniranje, samoregistrirano prikupljanje podataka o obliku i boji i na kraju operativna sigurnost i za operatera i za skenirane objekte. U skladu s tim zahtjevima, dizajnirali smo jeftin 3D skener zasnovan na strukturiranoj svjetlosti koji prihvaća svestrani pristup uzorku pruga u boji. Predstavljamo arhitekturu skenera, usvojene softverske tehnologije i prve rezultate njegove upotrebe u projektu koji se odnosi na 3D nabavku igračke.

U dizajnu našeg jeftinog skenera odlučili smo se za implementaciju jedinice emitera pomoću video projektora. Razlog je bila fleksibilnost ovog uređaja (koji omogućuje eksperimentiranje s bilo kojom vrstom svjetlosnog uzorka) i njegova široka dostupnost. Senzor može biti prilagođeni uređaj, standardni digitalni fotoaparat ili web kamera. mora podržavati visokokvalitetno snimanje boja (tj. stjecanje visokog dinamičkog raspona) i po mogućnosti s visokom rezolucijom.

Korak 2: Softver

Softver
Softver

Python jezik se koristio za programiranje iz tri razloga, jedan je jednostavan za učenje i implementaciju, dva možemo koristiti OPENCV za rutine povezane sa slikom, a tri je prenosiva među različitim operativnim sistemima tako da ovaj program možete koristiti u Windowsima, MAC -u i Linuxu. Također možete konfigurirati softver za upotrebu s bilo kojom vrstom kamere (web kamere, SLR ili industrijske kamere) ili projektorom s izvornom rezolucijom 1024X768. Bolje je koristiti kamere rezolucije više od dva puta. Osobno sam testirao performanse u tri različite konfiguracije, prva je bila s dva paralelna Microsoftova web kina i malim prijenosnim projektorom, druga je bila s dvije web kamere za kameru lifecam koje su se rotirale 15 stupnjeva jedna prema drugoj i Infocus projektorom, posljednja konfiguracija je bila s logitech web kamerama i Infocus projektor. Da bismo snimili oblak tačaka površine objekta, trebali bismo proći kroz pet koraka:

1. Projektiranje sivih uzoraka i snimanje slika s dvije kamere "SL3DS1.projcapt.py"

2. Obrada 42 slike svake kamere i hvatanje kodova tačaka "SL3DS2.procimages.py"

2. Podešavanje praga za odabir maskiranja za područja koja će se obraditi "SL3DS3.adjustthresh.py"

4. Pronađite i sačuvajte slične tačke u svakoj kameri "SL3DS4.calcpxpy.py"

5 Izračunajte X, Y i Z koordinate oblaka tačaka "SL3DS5.calcxyz.py"

Izlaz je PLY datoteka s podacima o koordinatama i boji tačaka na površini objekta. Možete otvoriti datoteke PLY pomoću CAD softvera poput Autodesk proizvoda ili softvera otvorenog koda poput Meshlaba.

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

Python 2.7, OPENCV modul i NUMPY trebaju biti instalirani za pokretanje ovih Python programa. Takođe sam razvio grafički interfejs za ovaj softver u TKINTER -u koji možete pronaći u šestom koraku sa dva uzorka skupova podataka. Dodatne informacije o ovoj temi možete pronaći na sljedećim web stranicama:

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…

Korak 3: Postavljanje hardvera

Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera
Postavljanje hardvera

Hardver se sastoji od:

1. Dvije web kamere (Logitech C920C)

2. Infocus LP330 projektor

3. Postolje za kameru i projektor (napravljeno od akrilnih ploča od 3 mm i 6 mm HDF drva rezanog laserskim rezačem)

Dvije kamere i projektor trebaju biti povezani s računarom s dva video izlaza, poput prijenosnog računara, a zaslon projektora treba konfigurirati kao proširenje za glavnu radnu površinu prozora. Ovdje možete vidjeti slike kamera, projektora i stalka. Datoteka za crtanje spremna za rezanje je priložena u SVG formatu.

Projektor je Infocus LP330 (izvorna rezolucija 1024X768) sa sljedećim specifikacijama. Svjetlina: 650 lumena Boja Izlazna svjetlost: ** Kontrast (Potpuno uključeno/isključeno): 400: 1 Automatski Iris: Bez izvorne rezolucije: 1024x768 Razmjera širine: 4: 3 (XGA) Video načini rada: ** Režimi podataka: MAX 1024x768 Maksimalna snaga: 200 W Napon: 100V - 240V Veličina (cm) (VxŠxD): 6 x 22 x 25 Težina: 2,2 kg Trajanje lampe (puna snaga): 1.000 sati Tip lampe: UHPLLampa Snaga: 120 W Količina lampe: 1 Vrsta ekrana: 2 cm DLP (1) Standardni zum objektiv: 1,25: 1 Fokus: Ručna udaljenost bacanja (m): 1,5 - 30,5 Veličina slike (cm): 76 - 1971

Ovaj video projektor se koristi za projiciranje strukturiranih svjetlosnih uzoraka na objekt za skeniranje. Strukturirani uzorak sastoji se od okomitih i vodoravnih bijelih svjetlosnih traka koje se spremaju u datoteku s podacima, a web kamere snimaju te iskrivljene trake.

Po mogućnosti koristite one kamere koje se softverski upravljaju jer morate prilagoditi fokus, svjetlinu, rezoluciju i kvalitetu slike. Moguće je koristiti DSLR fotoaparate sa SDK -ovima koje isporučuje svaka marka.

Sastavljanje i testiranja provedena su u Kopenhagenu Fablabu uz njegovu podršku.

Korak 4: Eksperimentirajte sa skenerom

Eksperimentirajte sa skenerom
Eksperimentirajte sa skenerom
Eksperimentirajte sa skenerom
Eksperimentirajte sa skenerom
Eksperimentirajte sa skenerom
Eksperimentirajte sa skenerom

Za testiranje sistema korištena je igračka s ribom i možete vidjeti snimljenu sliku. Sva snimljena datoteka, kao i oblak izlaznih tačaka, uključeni su u priloženu datoteku, možete otvoriti datoteku oblaka PLY točaka pomoću Meshlaba:

meshlab.sourceforge.net/

Korak 5: Neki drugi rezultati skeniranja

Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja
Neki drugi rezultati skeniranja

Ovdje možete vidjeti skeniranje ljudskog lica i 3D skeniranje zida. Uvijek postoje neke izvanredne točke zbog refleksije ili netočnih rezultata slike.

Korak 6: GUI 3D skenera

GUI za 3D skener
GUI za 3D skener

Za testiranje softvera za 3D skeniranje u ovom koraku dodajem dva skupa podataka, jedan je skeniranje ribe, a drugi samo ravni zid kako bih provjerio njegovu točnost. Otvorite ZIP datoteke i pokrenite SL3DGUI.py. Za instalaciju provjerite korak 2. Pošaljite poruku u moj pretinac ovdje za sve izvorne kodove.

Za korištenje dijela za 3D skeniranje morate instalirati dvije kamere i projektor, ali za ostale dijelove samo kliknite gumb. Za testiranje uzorka podataka prvo kliknite proces, zatim prag, stereo podudaranje i na kraju oblak točaka. Instalirajte Meshlab da vidite oblak točaka.

meshlab.sourceforge.net/

Preporučuje se: