Mundarija:
- 1 -qadam: kirish
- 2 -qadam: dasturiy ta'minot
- 3 -qadam: Uskuna sozlamalari
- 4 -qadam: Skaner yordamida tajriba o'tkazish
- 5 -qadam: Boshqa skanerlash natijalari
- 6 -qadam: 3D skaner GUI
Video: Python tilida tuzilgan yorug'lik va stereo ko'rinishga asoslangan DIY 3D skaneri: 6 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
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
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
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
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
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
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 -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:
O'zgaruvchan yorug'lik sezuvchi tungi yorug'lik: 8 qadam (rasmlar bilan)
O'zgaruvchan yorug'lik sezgichli tungi yorug'lik: Bu ko'rsatma qo'lda o'chirish uchun tungi yorug'lik sensori qanday buzilganligini ko'rsatadi. Diqqat bilan o'qing, har qanday ochiq sxemalarni yodda tuting va agar kerak bo'lsa, birlikni sinovdan o'tkazishdan oldin o'z hududingizni o'chiring
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: 5 qadam
Yorug'lik sensori bilan harakatni faollashtiradigan yorug'lik tugmasi: Harakatlanuvchi yorug'lik tugmasi uyda ham, ofisda ham juda ko'p qo'llanmalarga ega. Biroq, bu yorug'lik sensori bilan jihozlanishning qo'shimcha afzalliklari bo'lib, bu yorug'lik faqat tunda yoqilishi mumkin
Yorug'lik va tovush effektlari bilan Arduino asosidagi yorug'lik chiroqlari: 14 qadam (rasmlar bilan)
Yorug'lik va tovush effektlari bilan Arduino asosidagi Lightsaber: Salom jedi! Bu ko'rsatma kinofilmda bo'lgani kabi ko'rinadigan, ovoz chiqaradigan va bajaradigan chiroqni yasash haqida. Yagona farq - bu metallni kesolmaydi: (Bu qurilma Arduino platformasiga asoslangan va men unga juda ko'p funktsiyalar va funktsiyalarni beraman, u
Sovuq katodli yorug'lik yordamida makro fotografiya yorug'lik manbai: 9 qadam (rasmlar bilan)
Sovuq katodli chiroqlar yordamida makro fotografiya yorug'lik manbai: Yengil chodir yordamida tortishish paytida past zichlikdagi yorug'lik manbai juda foydali. LCD ekranlarda topilgan CCFL (sovuq katodli lyuminestsent nur) bu maqsad uchun juda mos keladi. CCFL va unga tegishli yorug'lik tarqatuvchi panellarni singan lapto ichida topish mumkin
A $ 20 / 20min tijorat sifatli katlanadigan yorug'lik qutisi / yorug'lik chodir: 7 qadam (rasmlar bilan)
20 /20 daqiqalik tijorat sifatli katlanadigan yorug'lik qutisi / yorug'lik chodirlari: Agar siz mahsulot uchun DIY yorug'lik qutisini qidirayotgan bo'lsangiz yoki fotosuratlarni yopib qo'ysangiz, sizda ko'p tanlov bor. Karton qutilardan kir yuvish to'siqlariga qadar, siz loyiha o'limga qadar amalga oshirildi deb o'ylashingiz mumkin. Lekin kuting! 20 dollarga