Daftar Isi:

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

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

Video: Pemindai 3D DIY Berdasarkan Cahaya Terstruktur dan Penglihatan Stereo dalam Bahasa Python: 6 Langkah (dengan Gambar)
Video: CVFX Lecture 24: Structured light scanning 2024, November
Anonim
Pemindai 3D DIY Berdasarkan Cahaya Terstruktur dan Penglihatan Stereo dalam Bahasa Python
Pemindai 3D DIY Berdasarkan Cahaya Terstruktur dan Penglihatan Stereo dalam Bahasa Python
Pemindai 3D DIY Berdasarkan Cahaya Terstruktur dan Penglihatan Stereo dalam Bahasa Python
Pemindai 3D DIY Berdasarkan Cahaya Terstruktur dan Penglihatan Stereo dalam Bahasa Python

Pemindai 3D ini dibuat menggunakan barang-barang konvensional berbiaya rendah seperti proyektor video dan webcam. Pemindai 3D cahaya terstruktur adalah perangkat pemindaian 3D untuk mengukur bentuk tiga dimensi suatu objek menggunakan pola cahaya yang diproyeksikan dan sistem kamera. Perangkat lunak dikembangkan berdasarkan cahaya terstruktur dan penglihatan stereo dengan bahasa python.

Memproyeksikan pita cahaya sempit ke permukaan berbentuk tiga dimensi menghasilkan garis iluminasi yang tampak terdistorsi dari perspektif lain selain proyektor, dan dapat digunakan untuk rekonstruksi geometris bentuk permukaan yang tepat. Pita cahaya horizontal dan vertikal diproyeksikan pada permukaan objek dan kemudian ditangkap oleh dua webcam.

Langkah 1: Pendahuluan

pengantar
pengantar
pengantar
pengantar

Perangkat akuisisi 3D otomatis (sering disebut pemindai 3D) memungkinkan pembuatan model objek 3D nyata yang sangat akurat dengan cara yang hemat biaya dan waktu. Kami telah bereksperimen dengan teknologi ini dalam memindai mainan untuk membuktikan kinerjanya. Kebutuhan khusus adalah: akurasi sedang-tinggi, mudah digunakan, biaya perangkat pemindaian yang terjangkau, perolehan data bentuk dan warna yang didaftarkan sendiri, dan terakhir keselamatan operasional untuk operator dan objek yang dipindai. Menurut persyaratan ini, kami merancang pemindai 3D berbiaya rendah berdasarkan cahaya terstruktur yang mengadopsi pendekatan pola garis berwarna serbaguna. Kami menyajikan arsitektur pemindai, teknologi perangkat lunak yang diadopsi, dan hasil pertama penggunaannya dalam sebuah proyek mengenai akuisisi mainan 3D.

Dalam desain pemindai murah kami, kami memilih untuk menerapkan unit emitor dengan menggunakan proyektor video. Alasannya adalah fleksibilitas perangkat ini (yang memungkinkan untuk bereksperimen dengan semua jenis pola cahaya) dan ketersediaannya yang luas. Sensor dapat berupa perangkat khusus, kamera diam digital standar, atau webcam. itu harus mendukung pengambilan warna berkualitas tinggi (yaitu perolehan rentang dinamis tinggi) dan mungkin dengan resolusi tinggi.

Langkah 2: Perangkat Lunak

Perangkat lunak
Perangkat lunak

Bahasa Python digunakan untuk pemrograman karena tiga alasan, satu mudah dipelajari dan diterapkan, dua kita dapat menggunakan OPENCV untuk rutinitas terkait gambar dan tiga portabel di antara sistem operasi yang berbeda sehingga Anda dapat menggunakan program ini di windows, MAC dan Linux. Anda juga dapat mengonfigurasi perangkat lunak untuk digunakan dengan segala jenis kamera (webcam, SLR, atau kamera industri) atau proyektor dengan resolusi asli 1024X768. Sebaiknya gunakan kamera dengan resolusi lebih dari dua kali lipat. Saya pribadi menguji kinerja dalam tiga konfigurasi yang berbeda, yang pertama adalah dengan dua bioskop paralel Microsoft webcam dan proyektor portabel kecil, yang kedua dengan dua kamera webcam bioskop lifecam yang diputar 15 derajat ke arah satu sama lain dan proyektor Infocus, konfigurasi terakhir adalah dengan webcameras logitech dan proyektor Infocus. Untuk menangkap titik awan permukaan objek kita harus melalui lima langkah:

1. Memproyeksikan pola abu-abu dan menangkap gambar dari dua kamera "SL3DS1.projcapt.py"

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

2. Menyesuaikan ambang batas untuk memilih masking untuk area yang akan diproses "SL3DS3.adjustthresh.py"

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

5 Hitung koordinat X, Y dan Z dari point cloud "SL3DS5.calcxyz.py"

Outputnya adalah file PLY dengan informasi koordinat dan warna titik pada permukaan objek. Anda dapat membuka file PLY dengan perangkat lunak CAD seperti produk Autodesk atau perangkat lunak sumber terbuka seperti Meshlab.

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

Python 2.7, modul OPENCV dan NUMPY harus diinstal untuk menjalankan program Python ini. Saya juga telah mengembangkan GUI untuk perangkat lunak ini di TKINTER yang dapat Anda temukan di langkah enam dengan dua kumpulan data sampel. Anda dapat menemukan informasi tambahan tentang hal ini di situs 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: Pengaturan Perangkat Keras

Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras
Pengaturan Perangkat Keras

Perangkat keras terdiri dari:

1. Dua kamera web (Logitech C920C)

2. Proyektor Infocus LP330

3. Dudukan kamera dan proyektor (terbuat dari pelat Akrilik 3 mm dan potongan kayu HDF 6 mm dengan pemotong laser)

Dua kamera dan proyektor harus dihubungkan ke komputer dengan dua output video seperti komputer notebook dan layar proyektor harus dikonfigurasi sebagai ekstensi ke desktop windows utama. Di sini Anda dapat melihat gambar kamera, proyektor, dan dudukan. File gambar yang siap dipotong dilampirkan dalam format SVG.

Proyektor ini adalah Infocus LP330 (Resolusi asli 1024X768) dengan spesifikasi berikut. Kecerahan:650 Lumens Color Light Output:**Kontras (Full On/Off):400:1 Auto Iris:No Native Resolution:1024x768 Rasio Aspek:4:3 (XGA) Mode Video:**Mode Data:MAX 1024x768 Daya Maks:200 Watt Tegangan:100V - 240V Ukuran(cm) (HxWxD):6 x 22 x 25 Berat:2,2 kg Umur Lampu (Daya Penuh)::1, 000 jam Jenis Lampu:UHPLWatt lampu:120 Watt Jumlah Lampu:1 Jenis Tampilan:2 cm DLP (1) Lensa Zoom Standar:1,25:1 Fokus: Jarak Lempar Manual (m): 1,5 - 30,5 Ukuran Gambar (cm):76 - 1971

Proyektor video ini digunakan untuk memproyeksikan pola cahaya terstruktur pada objek yang akan dipindai. Pola terstruktur terdiri dari strip cahaya putih vertikal dan horizontal yang disimpan pada file data dan webcam menangkap strip terdistorsi tersebut.

Sebaiknya gunakan kamera yang dapat dikontrol perangkat lunak karena Anda perlu menyesuaikan fokus, kecerahan, resolusi, dan kualitas gambar. Dimungkinkan untuk menggunakan kamera DSLR dengan SDK yang disediakan oleh masing-masing merek.

Perakitan dan pengujian dilakukan di Fablab Kopenhagen dengan dukungannya.

Langkah 4: Bereksperimen Dengan Pemindai

Bereksperimen Dengan Pemindai
Bereksperimen Dengan Pemindai
Bereksperimen Dengan Pemindai
Bereksperimen Dengan Pemindai
Bereksperimen Dengan Pemindai
Bereksperimen Dengan Pemindai

Untuk menguji sistem, mainan ikan digunakan dan Anda dapat melihat gambar yang diambil. Semua file yang diambil dan juga cloud titik keluaran disertakan dalam file terlampir, Anda dapat membuka file cloud titik PLY dengan Meshlab:

meshlab.sourceforge.net/

Langkah 5: Beberapa Hasil Pemindaian Lainnya

Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya
Beberapa Hasil Pemindaian Lainnya

Di sini Anda dapat melihat beberapa pemindaian wajah manusia dan pemindaian 3d dinding. Selalu ada beberapa titik outlier karena pantulan atau hasil gambar yang tidak akurat.

Langkah 6: GUI Pemindai 3D

GUI Pemindai 3D
GUI Pemindai 3D

Untuk menguji perangkat lunak pemindaian 3d pada langkah ini saya menambahkan dua set data satu adalah pemindaian ikan dan yang lainnya hanyalah dinding bidang untuk melihat keakuratannya. Buka file ZIP dan jalankan SL3DGUI.py. Untuk instalasi, periksa langkah 2. Kirim pesan ke kotak masuk saya di sini untuk semua kode sumber.

Untuk menggunakan bagian pemindaian 3d Anda perlu memasang dua kamera dan proyektor tetapi untuk bagian lain cukup klik tombol. Untuk menguji data sampel pertama klik pada proses kemudian ambang batas, kecocokan stereo dan akhirnya titik cloud. Instal Meshlab untuk melihat point cloud.

meshlab.sourceforge.net/

Direkomendasikan: