Isi kandungan:

Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python: 6 Langkah (dengan Gambar)
Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python: 6 Langkah (dengan Gambar)

Video: Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python: 6 Langkah (dengan Gambar)

Video: Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python: 6 Langkah (dengan Gambar)
Video: TOP 5: Best 3D Scanner for 3D Printing 2022 | Precise, Affordable and User-Friendly 2024, November
Anonim
Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python
Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python
Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python
Pengimbas 3D DIY Berdasarkan Cahaya Berstruktur dan Penglihatan Stereo dalam Bahasa Python

Pengimbas 3D ini dibuat dengan menggunakan barang konvensional kos rendah seperti projektor video dan kamera web. Pengimbas 3D berstruktur cahaya adalah alat pengimbas 3D untuk mengukur bentuk tiga dimensi objek menggunakan corak cahaya yang diproyeksikan dan sistem kamera. Perisian dibangunkan berdasarkan penglihatan cahaya dan stereo berstruktur dengan bahasa python.

Memproyeksikan jalur cahaya yang sempit ke permukaan berbentuk tiga dimensi menghasilkan garis pencahayaan yang kelihatan terdistorsi dari perspektif lain daripada projektor, dan dapat digunakan untuk pembinaan semula geometri bentuk permukaan yang tepat. Jalur cahaya mendatar dan menegak diproyeksikan pada permukaan objek dan kemudian ditangkap oleh dua kamera web.

Langkah 1: Pengenalan

Pengenalan
Pengenalan
Pengenalan
Pengenalan

Peranti pemerolehan 3D automatik (sering dipanggil pengimbas 3D) memungkinkan untuk membina model objek 3D yang sangat tepat dengan kos dan masa yang efektif. Kami telah mencuba teknologi ini dalam mengimbas mainan untuk membuktikan prestasi. Keperluan khusus adalah: ketepatan sederhana tinggi, mudah digunakan, kos peranti pengimbasan yang berpatutan, pemerolehan data bentuk dan warna yang didaftarkan sendiri, dan akhirnya keselamatan operasi untuk pengendali dan objek yang diimbas. Mengikut keperluan ini, kami merancang pengimbas 3D kos rendah berdasarkan cahaya berstruktur yang menggunakan pendekatan corak jalur berwarna serba boleh. Kami menyajikan seni bina pengimbas, teknologi perisian yang digunakan, dan hasil pertama penggunaannya dalam projek mengenai pemerolehan mainan 3D.

Dalam reka bentuk pengimbas kos rendah kami, kami memilih untuk melaksanakan unit pemancar dengan menggunakan projektor video. Sebabnya ialah fleksibiliti peranti ini (yang memungkinkan untuk mencuba sebarang jenis corak cahaya) dan ketersediaannya yang luas. Sensor boleh berupa peranti khusus, kamera digital biasa atau kamera web. ia mesti menyokong tangkapan warna berkualiti tinggi (iaitu pemerolehan julat dinamik tinggi) dan mungkin dengan resolusi tinggi.

Langkah 2: Perisian

Perisian
Perisian

Bahasa Python digunakan untuk pengaturcaraan untuk tiga sebab, satu mudah dipelajari dan dilaksanakan, dua kita dapat menggunakan OPENCV untuk rutin yang berkaitan dengan gambar dan tiga bahasa itu mudah alih di antara sistem operasi yang berbeza sehingga anda dapat menggunakan program ini di windows, MAC dan Linux. Anda juga boleh mengkonfigurasi perisian untuk digunakan dengan kamera jenis apa pun (kamera web, SLR atau kamera industri) atau projektor dengan resolusi 1024X768 asli. Lebih baik menggunakan kamera dengan resolusi lebih dari dua kali. Saya secara peribadi menguji prestasi dalam tiga konfigurasi yang berbeza, yang pertama adalah dengan dua pawagam webcam Microsoft selari dan projektor mudah alih kecil, yang kedua adalah dengan dua kamera web pawagam lifecam yang berputar 15 darjah satu sama lain dan projektor Infocus, konfigurasi terakhir adalah dengan kamera web logitech dan projektor Infokus. Untuk menangkap awan titik permukaan objek, kita harus melalui lima langkah:

1. Mengunjurkan corak kelabu dan menangkap gambar dari dua kamera "SL3DS1.projcapt.py"

2. Memproses 42 gambar setiap kamera dan menangkap kod titik "SL3DS2.procimages.py"

2. Melaraskan ambang untuk memilih penyamaran untuk kawasan yang akan diproses "SL3DS3.adjustthresh.py"

4. Cari dan simpan titik serupa di setiap kamera "SL3DS4.calcpxpy.py"

5 Hitung koordinat X, Y dan Z titik awan "SL3DS5.calcxyz.py"

Keluarannya adalah fail PLY dengan maklumat koordinat dan warna titik pada permukaan objek. Anda boleh membuka fail PLY dengan perisian CAD seperti produk Autodesk atau perisian sumber terbuka seperti Meshlab.

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

Python 2.7, modul OPENCV dan NUMPY harus dipasang untuk menjalankan program Python ini. Saya juga telah mengembangkan GUI untuk perisian ini di TKINTER yang dapat anda temukan pada langkah keenam dengan dua set data sampel. Anda boleh mendapatkan maklumat tambahan mengenai perkara ini di laman web berikut:

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…

Langkah 3: Persediaan Perkakasan

Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan
Persediaan Perkakasan

Perkakasan terdiri daripada:

1. Dua kamera web (Logitech C920C)

2. Projektor Infocus LP330

3. Dudukan kamera dan projektor (dibuat dari plat akrilik 3 mm dan potongan kayu HDF 6 mm dengan pemotong laser)

Dua kamera dan projektor harus disambungkan ke komputer dengan dua output video seperti komputer notebook dan skrin projektor harus dikonfigurasi sebagai pelanjutan ke desktop windows utama. Di sini anda dapat melihat gambar kamera, projektor dan pendirian. Fail lukisan yang siap dipotong dilampirkan dalam format SVG.

Projektor adalah Infocus LP330 (Resolusi asli 1024X768) dengan spesifikasi berikut. Kecerahan: Output Cahaya Warna 650 Lumens: ** Kontras (Hidup / Mati Penuh): 400: 1 Iris Auto: Tiada Resolusi Asli: 1024x768 Nisbah Aspek: 4: 3 (XGA) Mod Video: ** Mod Data: MAX 1024x768 Kuasa Maks: 200 Watt Voltan: 100V - 240V Saiz (cm) (HxWxD): 6 x 22 x 25 Berat: 2.2 kg Kehidupan Lampu (Kuasa Penuh): 1, 000 jam Jenis Lampu: UHPL Lampu Watt: 120 Watt Kuantiti Lampu: 1 Jenis Paparan: 2 cm DLP (1) Lens Zum Standard: 1.25: 1 Fokus: Dist Throw Manual (m): 1.5 - 30.5 Saiz Gambar (cm): 76 - 1971

Projektor video ini digunakan untuk memproyeksikan corak cahaya berstruktur pada objek yang akan diimbas. Corak berstruktur terdiri daripada jalur cahaya putih menegak dan mendatar yang disimpan pada fail data dan kamera web menangkap jalur yang memutarbelitkan.

Sebaiknya gunakan kamera yang dikendalikan oleh perisian kerana anda perlu menyesuaikan fokus, kecerahan, resolusi dan kualiti gambar. Anda boleh menggunakan kamera DSLR dengan SDK yang disediakan oleh setiap jenama.

Perhimpunan dan ujian dilakukan di Copenhagen Fablab dengan sokongannya.

Langkah 4: Mengeksperimen Dengan Pengimbas

Mengeksperimen Dengan Pengimbas
Mengeksperimen Dengan Pengimbas
Mengeksperimen Dengan Pengimbas
Mengeksperimen Dengan Pengimbas
Mengeksperimen Dengan Pengimbas
Mengeksperimen Dengan Pengimbas

Untuk menguji sistem, mainan ikan telah digunakan dan anda dapat melihat gambar yang diambil. Semua fail yang ditangkap dan juga awan titik output disertakan dalam fail yang dilampirkan, anda boleh membuka fail awan PLY point dengan Meshlab:

meshlab.sourceforge.net/

Langkah 5: Beberapa Hasil Imbasan Lain

Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain
Beberapa Hasil Imbasan Lain

Di sini anda dapat melihat beberapa imbasan wajah manusia dan imbasan dinding 3d. Selalu ada beberapa titik tersembunyi kerana pantulan atau hasil gambar yang tidak tepat.

Langkah 6: GUI Pengimbas 3D

GUI Pengimbas 3D
GUI Pengimbas 3D

Untuk menguji perisian imbasan 3d dalam langkah ini, saya menambah dua set data satu ialah imbasan ikan dan yang lain hanyalah dinding satah untuk melihat ketepatannya. Buka fail ZIP dan jalankan SL3DGUI.py. Untuk pemasangan, semak langkah 2. Hantar mesej ke peti masuk saya di sini untuk semua kod sumber.

Untuk menggunakan bahagian imbasan 3d, anda perlu memasang dua kamera dan projektor tetapi untuk bahagian lain klik pada butang. Untuk menguji data sampel pertama klik pada proses kemudian ambang, padanan stereo dan akhirnya titik awan. Pasang Meshlab untuk melihat awan titik.

meshlab.sourceforge.net/

Disyorkan: