Mundarija:

Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri: 6 qadam (rasmlar bilan)
Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri: 6 qadam (rasmlar bilan)

Video: Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri: 6 qadam (rasmlar bilan)

Video: Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri: 6 qadam (rasmlar bilan)
Video: Leslie Kean on David Grusch (UFO Whistleblower): Non-Human Intelligence, Recovered UFOs, UAP, & more 2024, Iyul
Anonim
Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri
Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri
Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri
Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri

Bu 3D -skaner oddiy videokamera va veb -kameralar kabi oddiy buyumlar yordamida yaratilgan. Yorug'likdagi 3D skaner-bu ob'ektning uch o'lchovli shaklini proektsion yorug'lik naqshlari va kamera tizimi yordamida o'lchaydigan 3D skaner qurilmasi. Dasturiy ta'minot piton tili bilan tuzilgan yorug'lik va stereo ko'rish asosida ishlab chiqilgan.

Uch o'lchovli shaklli sirtga tor yorug'lik chizig'ini yotqizish yorug'lik chizig'ini hosil qiladi, u proyektornikiga qaraganda boshqa nuqtai nazardan buzilgan ko'rinadi va uni sirt shaklini aniq geometrik rekonstruksiya qilish uchun ishlatish mumkin. Gorizontal va vertikal yorug'lik tasmalari ob'ekt yuzasiga proektsiyalanadi, so'ngra ikkita veb -kamera yordamida yozib olinadi.

1 -qadam: kirish

Kirish
Kirish
Kirish
Kirish

Avtomatik 3D-qurilmalar (ko'pincha 3D-skanerlar deb ataladi) real 3D-ob'ektlarning yuqori aniqlikdagi modellarini iqtisodiy va vaqtni tejaydigan tarzda qurishga imkon beradi. Biz ishlashni isbotlash uchun o'yinchoqni skanerlashda ushbu texnologiyani sinab ko'rdik. Maxsus ehtiyojlar: o'rta aniqlik, ishlatish uchun qulaylik, skanerlash moslamasining arzonligi, shakl va rang ma'lumotlarini o'z-o'zidan ro'yxatdan o'tkazish va nihoyat operator uchun ham, skaner qilingan ob'ektlar uchun ham ish xavfsizligi. Ushbu talablarga muvofiq, biz tizimli nurga asoslangan arzon rangli 3D skanerni ishlab chiqdik, u rang-barang chiziqli naqshli ko'p qirrali yondashuvni qo'llaydi. Biz skaner arxitekturasini, qabul qilingan dasturiy texnologiyalarni va o'yinchoqni 3D formatida sotib olish loyihasida ishlatilishining birinchi natijalarini taqdim etamiz.

Arzon narxlardagi skanerni ishlab chiqishda biz emitent blokini video proyektor yordamida amalga oshirishni tanladik. Buning sababi, bu qurilmaning moslashuvchanligi (har qanday turdagi yorug'lik naqshini sinab ko'rish imkonini beradi) va uning keng mavjudligi edi. Sensor maxsus qurilma, standart raqamli harakatsiz kamera yoki veb -kamera bo'lishi mumkin. u yuqori sifatli rangni (ya'ni yuqori dinamik diapazonni qo'lga kiritishni) qo'llab -quvvatlashi va ehtimol yuqori aniqlikda bo'lishi kerak.

2 -qadam: dasturiy ta'minot

Dasturiy ta'minot
Dasturiy ta'minot

Python tili uchta sababga ko'ra dasturlash uchun ishlatilgan, bittasini o'rganish va amalga oshirish oson, ikkitasi OPENCV -dan tasvir bilan bog'liq tartiblar uchun ishlatilishi mumkin, uchtasi esa har xil operatsion tizimlarda ko'chiriladi, shuning uchun siz ushbu dasturni Windows, MAC va Linuxda ishlatishingiz mumkin. Siz shuningdek dasturiy ta'minotni har qanday kamera (veb -kameralar, SLR yoki sanoat kameralari) yoki 1024X768 o'lchamli mahalliy proektor bilan ishlatishni sozlashingiz mumkin. Ikki martadan ortiq aniqlikdagi kameralardan foydalanish yaxshidir. Men shaxsan ishlashni uch xil konfiguratsiyada sinab ko'rdim, birinchisi ikkita parallel Microsoft veb -kamerali kinoteatr va kichik ko'chma proyektor bilan, ikkinchisi bir -biriga 15 gradusga burilgan ikki kamerali kinokamera va Infocus bilan, oxirgi konfiguratsiya logitech veb -kameralari bilan edi. va Infocus projektori. Ob'ekt yuzasining bulutli nuqtasini olish uchun biz besh bosqichdan o'tishimiz kerak:

1. "SL3DS1.projcapt.py" ikkita kameradan kulrang naqshlarni loyihalash va tasvirni olish.

2. Har bir kameraning 42 ta tasvirini qayta ishlash va "SL3DS2.procimages.py" nuqtali kodlarni yozib olish.

2. "SL3DS3.adjustthresh.py" ishlov beriladigan joylar uchun niqobni tanlash uchun chegarani sozlash.

4. "SL3DS4.calcpxpy.py" har bir kamerasida o'xshash nuqtalarni toping va saqlang.

5 "SL3DS5.calcxyz.py" nuqta bulutining X, Y va Z koordinatalarini hisoblang.

Chiqish - bu ob'ekt yuzasidagi nuqtalarning koordinatali va rangli ma'lumotli PLY fayli. Siz PLY fayllarini Autodesk mahsulotlari kabi SAPR dasturi yoki Meshlab kabi ochiq dasturiy ta'minot bilan ochishingiz mumkin.

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

Ushbu Python dasturlarini ishga tushirish uchun Python 2.7, OPENCV moduli va NUMPY o'rnatilgan bo'lishi kerak. Men TKINTER -da ushbu dastur uchun GUI -ni ishlab chiqdim, uni oltinchi bosqichda ikkita namunali ma'lumotlar to'plami bilan topishingiz mumkin. Siz ushbu mavzu bo'yicha qo'shimcha ma'lumotlarni quyidagi veb -saytlardan topishingiz mumkin:

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…

3 -qadam: Uskuna sozlamalari

Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash
Uskunani sozlash

Uskuna quyidagilardan iborat:

1. Ikkita veb -kamera (Logitech C920C)

2. Infocus LP330 proyektori

3. Kamera va proyektor stendi (3 mm akril plastinkalardan va 6 mm HDF yog'ochli lazerli kesgich bilan kesilgan)

Noutbuk kabi ikkita video chiqishi bo'lgan kompyuterga ikkita kamera va projektor ulangan bo'lishi kerak va proyektor ekrani ish stoli asosiy oynasining kengaytmasi sifatida sozlanishi kerak. Bu erda siz kameralar, proyektor va stend tasvirlarini ko'rishingiz mumkin. Kesishga tayyor chizilgan fayl SVG formatida biriktirilgan.

Projektor Infocus LP330 (1024X768 asl o'lchamlari) bo'lib, quyidagi xususiyatlarga ega: Yorqinligi: 650 Lumenli Rangli Chiqish: ** Kontrast (To'liq Yoqish/O'chirish): 400: 1 Avtomatik Iris: O'ziga xos o'lchamlari: 1024x768 Aspekt nisbati: 4: 3 (XGA) Video rejimlari: ** Ma'lumot rejimlari: MAX 1024x768 Maksimal quvvat: 200 Vatt kuchlanish: 100V - 240V Hajmi (sm) (HxWxD): 6 x 22 x 25 Og'irligi: 2,2 kg Chiroq muddati (To'liq quvvat): 1 000 soat Chiroq turi: UHPL Chiroq kuchi: 120 Vatt Chiroq miqdori: 1 Displey turi: 2 sm DLP (1) Standart kattalashtirish linzalari: 1,25: 1 Fokus: Qo'lda tashish (m): 1,5 - 30,5 Rasm o'lchami (sm): 76 - 1971

Bu video proyektor skaner qilinadigan ob'ektga tuzilgan yorug'lik naqshlarini loyihalash uchun ishlatiladi. Tuzilgan naqsh ma'lumotlar faylida saqlanadigan vertikal va gorizontal oq yorug'lik chiziqlaridan iborat bo'lib, veb -kameralar buzilgan chiziqlarni ushlaydi.

Dastur nazorati ostida bo'lgan kameralardan foydalangan ma'qul, chunki siz fokus, yorqinlik, piksellar sonini va tasvir sifatini sozlashingiz kerak. Har bir brend tomonidan taqdim etilgan SDKli DSLR kameralardan foydalanish mumkin.

Yig'ish va sinovlar uning yordami bilan Kopengagen Fablabda o'tkazildi.

4 -qadam: Skaner yordamida tajriba o'tkazish

Skaner yordamida tajriba o'tkazish
Skaner yordamida tajriba o'tkazish
Skaner yordamida tajriba o'tkazish
Skaner yordamida tajriba o'tkazish
Skaner yordamida tajriba o'tkazish
Skaner yordamida tajriba o'tkazish

Tizimni sinab ko'rish uchun baliq o'yinchog'i ishlatilgan va siz tasvirni ko'rishingiz mumkin. Barcha olingan fayllar, shuningdek, chiqish nuqtasi buluti biriktirilgan faylga kiritilgan.

PLY nuqta bulutli faylini Meshlab yordamida ochishingiz mumkin:

meshlab.sourceforge.net/

5 -qadam: Boshqa skanerlash natijalari

Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari
Boshqa skanerlash natijalari

Bu erda siz odamlarning yuzini skanerlashni va devorni 3D skanerlashni ko'rishingiz mumkin. Ko'zgu yoki noaniq tasvir natijalari tufayli har doim bir nechta tashqi nuqta bor.

6 -qadam: 3D skaner GUI

3D skaner GUI
3D skaner GUI

3D -skanerlash dasturini sinab ko'rish uchun men bu bosqichda ikkita ma'lumot to'plamini qo'shaman: biri - baliqni skanerlash, ikkinchisi - aniqligini ko'rish uchun tekis devor. ZIP fayllarini oching va SL3DGUI.py -ni ishga tushiring. O'rnatish uchun 2 -qadamni tekshiring. Barcha manba kodlari uchun kelgan qutimga xabar yuboring.

3D ko'rish qismini ishlatish uchun siz ikkita kamera va projektorni o'rnatishingiz kerak, lekin boshqa qismlar uchun tugmani bosing. Namuna ma'lumotlarini sinab ko'rish uchun avval jarayonni, so'ngra chegarani, stereo moslikni va nihoyat nuqta bulutini bosing. Bulutli nuqtani ko'rish uchun Meshlab -ni o'rnating.

meshlab.sourceforge.net/

Tavsiya: