Sadržaj:

DIY 3D skener na temelju strukturiranog svjetla i stereo vida na jeziku Python: 6 koraka (sa slikama)
DIY 3D skener na temelju strukturiranog svjetla i stereo vida na jeziku Python: 6 koraka (sa slikama)

Video: DIY 3D skener na temelju strukturiranog svjetla i stereo vida na jeziku Python: 6 koraka (sa slikama)

Video: DIY 3D skener na temelju strukturiranog svjetla i stereo vida na jeziku Python: 6 koraka (sa slikama)
Video: CS50 2015 - Week 9, continued 2024, Srpanj
Anonim
DIY 3D skener na temelju strukturirane svjetlosti i stereo vida na jeziku Python
DIY 3D skener na temelju strukturirane svjetlosti i stereo vida na jeziku Python
DIY 3D skener na temelju strukturirane svjetlosti i stereo vida na jeziku Python
DIY 3D skener na temelju strukturirane svjetlosti i stereo vida na jeziku Python

Ovaj 3D skener izrađen je od jeftinih konvencionalnih artikala poput video projektora i web kamera. 3D skener sa strukturiranom svjetlošću uređaj je za 3D skeniranje za mjerenje trodimenzionalnog oblika objekta pomoću projiciranih svjetlosnih uzoraka i sustava kamera. Softver je razvijen na temelju strukturiranog svjetla i stereo vida s jezikom python.

Projiciranje uskog svjetlosnog pojasa na trodimenzionalnu oblikovanu površinu stvara liniju osvjetljenja koja izgleda iskrivljeno iz drugih perspektiva osim perspektive projektora i može se koristiti za točnu 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 nazvani 3D skeneri) omogućuju izradu visoko točnih modela stvarnih 3D objekata na ekonomičan i vremenski učinkovit način. Ovu smo tehnologiju eksperimentirali skeniranjem igračke kako bismo dokazali performanse. Specifične potrebe su: srednje visoka točnost, jednostavna uporaba, pristupačna cijena uređaja za skeniranje, samoregistrirano stjecanje 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 temeljen na strukturiranom svjetlu koji prihvaća svestrani pristup uzorku pruga u boji. Predstavljamo arhitekturu skenera, usvojene softverske tehnologije i prve rezultate njegove uporabe u projektu koji se odnosi na 3D nabavku igračke.

U dizajnu našeg jeftinog skenera odlučili smo implementirati jedinicu odašiljača 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 razlučivošću.

Korak 2: Softver

Softver
Softver

Jezik Python korišten je 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 sustavima pa ovaj program možete koristiti u sustavima Windows, MAC i Linux. 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 kina s web kamerom i malim prijenosnim projektorom, druga je bila s dvije web kamere za kameru lifecam kino koje su se rotirale 15 stupnjeva jedna prema drugoj i projektorom Infocus, posljednja konfiguracija bila je s logitech web kamerama i Infocus projektor. Da bismo snimili oblak točaka površine objekta, trebali bismo proći kroz pet koraka:

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

2. Obrada 42 slike svake kamere i kodovi točaka snimanja "SL3DS2.procimages.py"

2. Podešavanje praga za odabir maskiranja za područja koja se obrađuju "SL3DS3.adjustthresh.py"

4. Pronađite i spremite slične točke u svakoj kameri "SL3DS4.calcpxpy.py"

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

Izlaz je PLY datoteka s podacima o koordinatama i boji točaka na površini objekta. Možete otvoriti datoteke PLY pomoću CAD softvera poput Autodeskovih 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đer sam razvio GUI za ovaj softver u TKINTER -u koji možete pronaći u šestom koraku s 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 (izrađeno od 3 mm akrilnih ploča i 6 mm HDF drva rezano laserskim rezačem)

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

Projektor je Infocus LP330 (izvorna rezolucija 1024X768) sa sljedećim specifikacijama. Svjetlina: 650 lumena Izlazna svjetlost u boji: ** Kontrast (Potpuno uključeno/isključeno): 400: 1 Automatska blenda: nema izvorne rezolucije: 1024x768 Omjer slike: 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 žarulje (puna snaga): 1.000 sati Vrsta svjetiljke: UHPLLampa Snaga: 120 W Količina lampe: 1 Vrsta zaslona: 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 koristi se za projiciranje strukturiranih svjetlosnih uzoraka na objekt za skeniranje. Strukturirani uzorak sastoji se od okomitih i vodoravnih bijelih svjetlosnih traka koje se spremaju u podatkovnu datoteku, a web kamere snimaju te iskrivljene trake.

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

Sastavljanje i ispitivanja provedeni su u Copenhagen 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 sustava korištena je igračka s ribom i možete vidjeti snimljenu sliku. Sva snimljena datoteka, kao i oblak izlaznih točaka, uključeni su u priloženu datoteku, možete otvoriti datoteku oblaka PLY 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 neke snimke 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 ravnu stijenku 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čeni: