Съдържание:

DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python: 6 стъпки (със снимки)
DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python: 6 стъпки (със снимки)

Видео: DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python: 6 стъпки (със снимки)

Видео: DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python: 6 стъпки (със снимки)
Видео: CS50 2013 - Week 9, continued 2024, Юли
Anonim
DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python
DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python
DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python
DIY 3D скенер, базиран на структурирана светлина и стерео визия на език Python

Този 3D скенер е направен с евтини конвенционални артикули като видео проектор и уеб камери. 3D скенер със структурирана светлина е устройство за 3D сканиране за измерване на триизмерната форма на обект с помощта на проектирани светлинни модели и система от камери. Софтуерът е разработен въз основа на структурирана светлина и стерео визия с език на python.

Прожектирането на тясна ивица светлина върху триизмерна оформена повърхност създава линия на осветяване, която изглежда изкривена от други гледни точки, различна от тази на проектора, и може да се използва за точна геометрична реконструкция на формата на повърхността. Хоризонтални и вертикални светлинни ленти се проектират върху повърхността на обекта и след това се улавят от две уеб камери.

Стъпка 1: Въведение

Въведение
Въведение
Въведение
Въведение

Автоматичните устройства за 3D заснемане (често наричани 3D скенери) позволяват да се изграждат много точни модели на реални 3D обекти по икономичен и време ефективен начин. Ние сме експериментирали тази технология при сканиране на играчка, за да докажем производителността. Специфичните нужди са: средна висока точност, лесна за използване, достъпна цена на сканиращото устройство, саморегистрирано получаване на данни за формата и цвета и накрая експлоатационна безопасност както за оператора, така и за сканираните обекти. Съгласно тези изисквания, ние проектирахме евтин 3D скенер, базиран на структурирана светлина, който възприема универсален подход на цветни ивици. Представяме архитектурата на скенера, приетите софтуерни технологии и първите резултати от използването му в проект, свързан с 3D придобиването на играчка.

В дизайна на нашия евтин скенер, ние избрахме да внедрим излъчващия модул с помощта на видеопроектор. Причината беше гъвкавостта на това устройство (което позволява да се експериментира с всякакъв вид светлинен модел) и широката му наличност. Сензорът може да бъде или персонализирано устройство, стандартен цифров фотоапарат или уеб камера. той трябва да поддържа висококачествено улавяне на цвят (т.е. придобиване на висок динамичен диапазон) и евентуално с висока разделителна способност.

Стъпка 2: Софтуер

Софтуер
Софтуер

Езикът на Python е бил използван за програмиране по три причини, едната е лесна за усвояване и внедряване, две можем да използваме OPENCV за подпрограми, свързани с изображения, и три, той е преносим между различни операционни системи, така че можете да използвате тази програма в Windows, MAC и Linux. Можете също така да конфигурирате софтуера за използване с всякакъв вид камера (уеб камери, SLR или промишлени камери) или проектор с естествена резолюция 1024X768. По -добре е да използвате камери с повече от два пъти резолюция. Аз лично тествах производителността в три различни конфигурации, първата беше с две паралелни киносайтове за уеб камера на Microsoft и малък преносим проектор, втората беше с две уеб камери lifecam cinema, които се завъртяха 15 градуса една към друга и проектор Infocus, последната конфигурация беше с уеб камери на logitech и проектор Infocus. За да уловим облака от точки на повърхността на обекта, трябва да преминем през пет стъпки:

1. Проектиране на сиви шарки и заснемане на изображения от две камери „SL3DS1.projcapt.py“

2. Обработка на 42 -те изображения на всяка камера и кодове на точки за улавяне "SL3DS2.procimages.py"

2. Регулиране на прага за избор на маскиране за области, които ще се обработват "SL3DS3.adjustthresh.py"

4. Намерете и запишете подобни точки във всяка камера „SL3DS4.calcpxpy.py“

5 Изчислете координатите X, Y и Z на облака от точки "SL3DS5.calcxyz.py"

Изходът е PLY файл с информация за координатите и цвета на точките на повърхността на обекта. Можете да отваряте PLY файлове с CAD софтуер като продукти на Autodesk или софтуер с отворен код като Meshlab.

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

Python 2.7, модул OPENCV и NUMPY трябва да бъдат инсталирани за изпълнение на тези програми на Python. Също така разработих графичен интерфейс за този софтуер в TKINTER, който можете да намерите в стъпка шеста с два примерни набора от данни. Можете да намерите допълнителна информация по тази тема на следните уебсайтове:

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 дърво, изрязано с лазерен нож)

Две камери и проектор трябва да бъдат свързани към компютър с два видео изхода като преносим компютър и екранът на проектора трябва да бъде конфигуриран като разширение към основния работен плот на Windows. Тук можете да видите изображения на камери, проектор и стойка. Готовите за изрязване чертежни файлове са прикачени във формат SVG.

Проекторът е Infocus LP330 (първоначална разделителна способност 1024X768) със следните характеристики. Яркост: 650 лумена Цветна светлинна мощност: ** Контраст (пълно включване/изключване): 400: 1 Автоматична диафрагма: Без естествена резолюция: 1024x768 Съотношение: 4: 3 (XGA) Видео режими: ** Режими на данни: MAX 1024x768 Максимална мощност: 200 Вата Напрежение: 100V - 240V Размер (см) (ВxШxД): 6 x 22 x 25 Тегло: 2.2 кг Живот на лампата (пълна мощност): 1 000 часове Тип лампа: UHPL Лампа мощност: 120 вата Количество лампа: 1 Тип дисплей: 2 cm DLP (1) Стандартни обективи за мащабиране: 1,25: 1 Фокус: Ръчно разпределение (m): 1,5 - 30,5 Размер на изображението (cm): 76 - 1971

Този видеопрожектор се използва за проектиране на структурирани светлинни модели върху обекта, който ще се сканира. Структурираният модел се състои от вертикални и хоризонтални ленти с бяла светлина, които се записват във файл с данни, а уеб камерите улавят тези изкривени ленти.

За предпочитане използвайте тези камери, които са софтуерно управляеми, защото трябва да регулирате фокуса, яркостта, разделителната способност и качеството на изображението. Възможно е да се използват DSLR камери със SDK, които се предоставят от всяка марка.

Сглобяването и тестовете бяха проведени в Копенхаген Fablab с негова подкрепа.

Стъпка 4: Експериментирайте със скенер

Експериментирайте със скенер
Експериментирайте със скенер
Експериментирайте със скенер
Експериментирайте със скенер
Експериментирайте със скенер
Експериментирайте със скенер

За тестване на системата е използвана играчка с риба и можете да видите заснетото изображение. Всички заснети файлове, както и облакът на изходната точка са включени в прикачения файл, можете да отворите файла облачен файл PLY с Meshlab:

meshlab.sourceforge.net/

Стъпка 5: Някои други резултати от сканирането

Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането
Някои други резултати от сканирането

Тук можете да видите някои сканирания на човешко лице и 3D сканиране на стена. Винаги има някои отклонени точки поради отражения или неточни резултати от изображението.

Стъпка 6: GUI за 3D скенер

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

За тестване на софтуера за 3D сканиране в тази стъпка добавям два набора от данни, единият е сканиране на риба, а друг е просто равнинна стена, за да се види точността му. Отворете ZIP файлове и стартирайте SL3DGUI.py. За инсталация проверете стъпка 2. Изпратете съобщение до входящата ми поща тук за всички изходни кодове.

За да използвате част от 3D сканиране, трябва да инсталирате две камери и проектор, но за други части просто щракнете върху бутона. За тестване на примерните данни първо щракнете върху процеса, след това праг, стерео съвпадение и накрая облак от точки. Инсталирайте Meshlab, за да видите облака от точки.

meshlab.sourceforge.net/

Препоръчано: