Мазмұны:

Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері: 6 қадам (суреттермен)
Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері: 6 қадам (суреттермен)

Бейне: Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері: 6 қадам (суреттермен)

Бейне: Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері: 6 қадам (суреттермен)
Бейне: Сөздік. Python бағдарламалау тілі. 2024, Шілде
Anonim
Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері
Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері
Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері
Python тіліндегі құрылымдық жарық пен стерео көрініске негізделген DIY 3D сканері

Бұл 3D сканері бейне проектор мен веб -камера сияқты қарапайым қарапайым элементтерді қолдану арқылы жасалған. Жарықтандырылған 3D сканері-бұл проекцияланған жарық үлгілері мен камералық жүйенің көмегімен объектінің үш өлшемді пішінін өлшеуге арналған 3D сканерлеу құрылғысы. Бағдарламалық жасақтама питон тіліндегі құрылымды жарық пен стерео көрініске негізделген.

Үш өлшемді бетке тар жарық диапазонын шығару проекторға қарағанда басқа жағынан бұрмаланған болып көрінетін жарық сызығын шығарады және оны беттің пішінін дәл геометриялық қалпына келтіру үшін қолдануға болады. Көлденең және тік жарық жолақтары объектінің бетіне шығарылады, содан кейін екі веб -камерамен түсіріледі.

1 -қадам: Кіріспе

Кіріспе
Кіріспе
Кіріспе
Кіріспе

Автоматты 3D алу құрылғылары (көбінесе 3D сканерлер деп аталады) нақты 3D объектілерінің жоғары дәл модельдерін үнемді және үнемді түрде құруға мүмкіндік береді. Біз өнімділікті дәлелдеу үшін ойыншықты сканерлеуде осы технологияны қолдандық. Ерекше қажеттіліктер: орташа жоғары дәлдік, пайдалану қарапайымдылығы, сканерлеу құрылғысының қолжетімді бағасы, пішін мен түс туралы мәліметтерді өздігінен тіркеу және ақырында оператор үшін де, сканерленген объектілер үшін де жұмыс қауіпсіздігі. Осы талаптарға сәйкес біз құрылымдық жарыққа негізделген арзан түсті 3D сканерін құрдық, ол түрлі-түсті жолақ үлгісін қолданады. Біз сканердің архитектурасын, қабылданған бағдарламалық қамтамасыз ету технологияларын және ойыншықты 3D -ге сатып алуға қатысты жобада қолданудың алғашқы нәтижелерін ұсынамыз.

Біздің арзан сканердің дизайнында біз эмиттер қондырғысын бейне проектордың көмегімен енгізуді таңдадық. Оның себебі - бұл құрылғының икемділігі (жарық үлгісінің кез келген түрін тәжірибе жасауға мүмкіндік береді) және оның кең қол жетімділігі. Сенсор жеке құрылғы, стандартты сандық фотокамера немесе веб -камера болуы мүмкін. ол жоғары сапалы түс түсіруге қолдау көрсетуі керек (яғни жоғары динамикалық диапазонды алу) және мүмкін жоғары ажыратымдылықпен.

2 -қадам: Бағдарламалық қамтамасыз ету

Бағдарламалық қамтамасыз ету
Бағдарламалық қамтамасыз ету

Python тілі бағдарламалау үшін үш себеп бойынша қолданылған, бірін үйрену және енгізу оңай, екеуі біз OPENCV -ді кескінге қатысты процедуралар үшін қолдана аламыз, ал үшеуі әр түрлі операциялық жүйелер арасында тасымалданады, сондықтан сіз бұл бағдарламаны Windows, MAC және Linux -те қолдана аласыз. Сондай -ақ, бағдарламалық жасақтаманы 1024X768 жергілікті ажыратымдылығы бар кез келген камерамен (веб -камерамен, SLR немесе өнеркәсіптік камералармен) немесе проектормен қолдануға конфигурациялауға болады. Ажыратымдылығы екі есе көп камераларды қолданған дұрыс. Мен өнімділікті үш түрлі конфигурацияда сынап көрдім, біріншісі екі параллель Microsoft веб -камерасы мен шағын портативті проектормен, екіншісі - 15 градусқа бұрылған екі камералы кинофильм камерасымен және Infocus проекторымен, соңғы конфигурация logitech веб -камераларымен болды. және Infocus проекторы. Нысан бетінің нүктелік бұлтын түсіру үшін біз бес қадаммен жүруіміз керек:

1. «SL3DS1.projcapt.py» сұр камераларын суретке түсіру және екі камерадан суретке түсіру

2. Әр камераның 42 суретін өңдеу және «SL3DS2.procimages.py» нүкте кодтарын түсіру.

2. «SL3DS3.adjustthresh.py» өңделетін аймақтар үшін маскировканы таңдау үшін шекті реттеу.

4. Әр камерадан «SL3DS4.calcpxpy.py» ұқсас нүктелерді тауып, сақтаңыз.

5 «SL3DS5.calcxyz.py» нүктелік бұлттың X, Y және Z координаттарын есептеңіз.

Шығу - бұл объект бетіндегі нүктелердің координаты мен түсі туралы ақпарат бар PLY файлы. Сіз PLY файлдарын Autodesk өнімдері сияқты CAD бағдарламалық жасақтамасымен немесе Meshlab сияқты ашық бастапқы бағдарламалық жасақтамамен аша аласыз.

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

Бұл Python бағдарламаларын іске қосу үшін Python 2.7, OPENCV модулі мен NUMPY орнатылуы керек. Мен сондай -ақ TKINTER -де осы бағдарламалық қамтамасыз ету үшін GUI құрдым, оны сіз екі үлгі деректер жиынтығымен алтыншы қадамда таба аласыз. Сіз бұл тақырып бойынша қосымша ақпаратты келесі веб -сайттардан таба аласыз:

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 -қадам: Жабдықты орнату

Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату
Жабдықты орнату

Аппараттық құрал мыналардан тұрады:

1. Екі веб -камера (Logitech C920C)

2. Infocus LP330 проекторы

3. Камера мен проектор тірегі (3 мм акрил пластиналардан және лазерлік кескішпен 6 мм HDF ағаштан жасалған)

Ноутбук сияқты екі бейне шығысы бар компьютерге екі камера мен проектор қосылуы керек және проектор экраны негізгі жұмыс үстелінің кеңейтімі ретінде конфигурациялануы керек. Мұнда сіз камералардың, проектор мен стендтің суреттерін көре аласыз. Кесуге дайын сурет файлы SVG форматында тіркеледі.

Проектор - бұл келесі сипаттамалары бар Infocus LP330 (түпнұсқалық ажыратымдылығы 1024X768), жарықтығы: 650 люмен түсті жарық шығаруы: ** Контраст (толық қосу/өшіру): 400: 1 авто ирис: туған ажыратымдылық: 1024x768 аспектілік қатынас: 4: 3 (XGA) Бейне режимдері: ** Деректер режимі: MAX 1024x768 Максималды қуаты: 200 Ватт кернеуі: 100В - 240В Өлшемі (см) (HxWxD): 6 x 22 x 25 Салмағы: 2,2 кг Шамның қызмет ету мерзімі (Толық қуат): 1 000 сағат Шам түрі: UHPL шам қуаты: 120 ватт шам саны: 1 Дисплей түрі: 2 см DLP (1) Стандартты масштабтау объективі: 1,25: 1 Фокус: қолмен лақтыру қашықтығы (м): 1,5 - 30,5 Кескін өлшемі (см): 76 - 1971 ж.

Бұл бейне проектор сканерленетін объектіге құрылымдық жарық үлгілерін жобалау үшін қолданылады. Құрылымдық үлгі деректер файлында сақталған тік және көлденең ақ жарық жолақтарынан тұрады және веб -камералар сол бұрмаланған жолақтарды түсіреді.

Бағдарламалық жасақтамамен басқарылатын камераларды қолданған жөн, себебі фокусты, жарықтықты, ажыратымдылықты және кескін сапасын реттеу қажет. Әр бренд ұсынатын SDK -мен DSLR камераларын қолдануға болады.

Құрастыру мен сынақтар оның қолдауымен Копенгаген Fablab -те жүргізілді.

4 -қадам: сканермен тәжірибе жасау

Сканермен тәжірибе жасау
Сканермен тәжірибе жасау
Сканермен тәжірибе жасау
Сканермен тәжірибе жасау
Сканермен тәжірибе жасау
Сканермен тәжірибе жасау

Жүйені сынау үшін балықтан жасалған ойыншық пайдаланылды және сіз түсірілген суретті көре аласыз. Барлық түсірілген файл, сонымен қатар шығыс нүктесінің бұлты қоса берілген файлға қосылады, PLY нүктелік бұлтты файлды Meshlab көмегімен аша аласыз:

meshlab.sourceforge.net/

5 -қадам: Кейбір басқа сканерлеу нәтижелері

Кейбір басқа сканерлеу нәтижелері
Кейбір басқа сканерлеу нәтижелері
Басқа сканерлеу нәтижелері
Басқа сканерлеу нәтижелері
Кейбір басқа сканерлеу нәтижелері
Кейбір басқа сканерлеу нәтижелері
Басқа сканерлеу нәтижелері
Басқа сканерлеу нәтижелері

Мұнда сіз адамның бетінің сканерлеуін және қабырғаның 3D сканерлеуін көре аласыз. Әрқашан рефлексияға немесе дәл емес сурет нәтижелеріне байланысты кейбір сыртқы нүктелер болады.

6 -қадам: 3D сканерінің GUI

3D сканері GUI
3D сканері GUI

Бұл қадамда 3D сканерлеу бағдарламалық жасақтамасын тестілеу үшін мен екі деректер жиынтығын қосамын: біреуі - балықты сканерлеу, екіншісі - оның дәлдігін көру үшін жазық қабырға. ZIP файлдарын ашып, SL3DGUI.py іске қосыңыз. Орнату үшін 2 -қадамды тексеріңіз. Барлық кіріс кодтары үшін менің кіріс жәшігіме хабарлама жіберіңіз.

3D сканерлеу бөлігін пайдалану үшін сізге екі камера мен проекторды орнату қажет, ал басқа бөліктер үшін батырманы шертіңіз. Үлгі деректерін тексеру үшін алдымен процесті, содан кейін табалдырықты, стерео сәйкестікті және нүктелік бұлтты басыңыз. Бұлтты нүктені көру үшін Meshlab орнатыңыз.

meshlab.sourceforge.net/

Ұсынылған: