Сканер david своими руками

Сканер david своими руками

Для начала
Калибровка камеры
Трехмерное Лазерное Сканирование
Сшивание Форм
Часто Задаваемые Вопросы
Общие подсказки

DAVID — свободно распространяемое программное обеспечение, которое позволяет вам сканировать/оцифровывать трёхмерные объекты.
http://www.david-laserscanner.com

Простите, но наше программное обеспечение не может автоматически адаптироваться к вашей среде; для этого программа нуждается в вашей помощи. Именно поэтому вы должны прочитать руководство или, по крайней мере, следующие 5 подсказок:

Это были основные причины, почему успехи наших «нетерпеливых” испытателей бета — версии не были успешными. Но есть больше вещей, о которых вы должны знать, из-за этого вы должны продолжить чтение руководства. Особенно, если Ваши результаты сканирования не столь красивы, как наши скриншоты и результаты, представленные в нашей wiki и на форуме. Руководство не такое большое …

Было предложено много подходов для бесконтактных методов измерения поверхностей объектов и подходов для восстановления трехмерных объектов; но часто они требуют сложного и дорогого оборудования. Не в последнюю очередь из-за быстро увеличивающего числа эффективных трехмерных аппаратных и программных системных компонентов, альтернативные недорогие решения всегда в спросе. DAVID — такая недорогая система для трехмерного сбора данных. Единственные требования к оборудованию — простой продаваемый ручной лазер и веб-камера или стандартная черно-белая камера.

….с Windows 2000/XP/Vista/7 (32/64 bit) и Microsoft .NET Framework 2.0 или новее

Любой источник освещения, который создает линию очень тонкого, но яркого света. В большинстве случаев лазерного уровеня за 10 евро из хозяйственного магазина будет достаточно.

Хотя сканер работает и с дешевыми веб-камерами, вы получите лучше результаты с высококачественными камерами. Цвет необходим только, если вы хотите получить цветную текстуру. С чёрно-белой камерой вы можете получить лучше результаты, чем с цветной. Камера ДОЛЖНА работать с WDM драйверами.

Вам нужен «Калибровочный Угол” для калибровки камеры и как фоновая структура во время сканирования. «Угол” должен состоять из двух плоских стенок / досок, которые образуют угол в 90°. Для калибровки камеры вы можете найти шаблон калибровки в каталоге DAVID, который надо распечатать и приклеить на стены / доски.

Следующие этапы показывают, как вы можете построить собственный «Калибровочный Угол”. В этом примере используются две белые плоские пластмассовые доски, немного изоляционной ленты, и распечатка шаблона калибровки (выберите из Calibpoints ….pdf файлов, которые идут с программой DAVID). Теоретически, вы можете распечатать шаблон, масштабируя его, т.е. делая размер больше или меньше.

Вы должны измерить и запомнить длину «Масштаб” на распечатке т.к. она вам понадобится при калибровке камеры.

Очень точно разрежьте распечатку по тонкой линии, которая отмечена символом ножницы. Очень важно, чтобы края разрезанных двух частей точно касались друг друга.

Приклейте распечатки к доскам так, чтобы, когда доски будут установлены под углом в 90°, края разрезанных частей точно косались друг друга. Вы можете использовать изоляционную ленту (предпочтительно матовую, а не глянцевую), но тогда листок бумаги после нескольких дней становится волнистым. Поэтому, лучше использовать пластырь или немного самоклеющейся бумаги.

Используйте любой прямоугольный объект, чтобы установить две доски точно под углом в 90°. Части серой координатной системы в низу угла должны соответствовать друг другу! Двойной маркер должен быть в нижнем правом углу шаблона (с точки зрения камеры)!
. Эти требования должны соблюдаться во время калибровки камеры и сканирования.

Вы должны склеить доски вместе используя изоляционную ленту, или лучше, соединить их петлями используя шурупы.

Как альтернативу, вы можете использовать угол комнаты, стены плоские, имеют угол в 90°, и позволяют вам прикрепить распечатанный калибровочный шаблон так, чтобы края разрезов состыковывались вместе. Помните, что двойной маркер в шаблоне калибровки должен быть в правом нижнем углу (для изображения камеры).

Источник

Почти DIY 3d сканер для дома

Пару лет назад попалась мне на глаза статья на хабре о 3D-сканере за 30$, и очень меня эта тема заинтересовала, хотя быстро пришло понимание того, что ни о каких 30$ для качественного сканирования не может быть и речи.

Но основной плюс, который я вынес из статьи – программа для сканирования David-3D, к которой действительно есть хорошее руководство на русском языке и, что немаловажно, покупка лицензии — это последнее, что требуется, так как ограничение у бесплатной версии только на сохранение результата сканирования. Все остальное работает в полной мере, а значит вполне можно тестировать программу, настройки и свое железо сколько угодно. А если вам и результат не требуется с высокой точностью – то и вовсе без покупки лицензии можно обойтись.

Мне точность требовалась, так как основное, что мне хотелось сканировать это были миниатюры из настольной игры Warhammer (дабы потом их изменять, как хочется и печатать :)). В высота этих «солдатиков» всего 3 см, однако это не мешает им быть очень детализированными.


Если вам не требуется снимать настолько мелкие объекты – то требования к оборудованию у вас будут ниже, а значит и намного проще будет собрать себе подобный сканер.

Принцип работы программы, и соответственно сканирования, хорошо описан в статье, на которую была ссылка выше (дублировать это, думаю, не обязательно). Желательно прочесть ту статью первой, так как эта будет в некотором роде её логичным продолжением.

Но начнем по порядку. Что понадобится для того, чтобы опробовать 3д сканирование в домашних условиях:
1 – проектор.
2 – веб камера.

Собственно все, короткий список на удивление получился. Тем не менее, если вы хотите получать очень точные и качественные сканы, то придется кое что доработать ручками. Без дополнительных затрат тут конечно не обойтись, но в итоге это все все равно обойдется дешевле, чем покупка любого из имеющихся в продаже 3д сканеров, да и качество результата получить можно намного лучше.

Теперь по порядку и подробно.

Свои первые опыты по сканированию я, как и автор предыдущей статьи, начинал с лазерной указки, но они сразу же показали, насколько это неудобный способ. Недостатков тут сразу несколько:
– невозможность получения луча с достаточно тонкой линией. Тем более, что при повороте указки меняется расстояние от линзы до объекта, а значит сбивается фокусировка.
– если требуется регулярно сканировать, поворачивать лазерную указку с достаточной точностью и плавностью вручную очень сложно, да и утомительно просто – руки не такой уж стабильный инструмент когда речь идет о длительном времени.
– сканировать приходится в темноте, дабы была видна только линия лазера и ничего более.

И если со вторым недостатком еще можно бороться путем создания специального поворотного механизма (хотя это уже получается не такая уж и простая задача, во всяком случае, за 5 минут на коленке такое не сделать), то избавление от первого недостатка дороже.

Когда я все это осознал, то решил попробовать сканирование с помощью проектора, для чего взял на время какую-то простую модель у знакомого.

Тут следует сделать небольшое уточнение – в прошлой статье автор упоминал о возможности сканирования с помощью проектора, хотя предложение было, на мой взгляд, весьма странное —

Подойдет проектор с мощной лампой, свет которой нужно направить сквозь узкую щель на сканируемый объект

Возможно, в ранних версиях программы это был единственный вариант, но в версии 3 с которой я экспериментировал, проектор использовался намного лучше, т.к. там есть возможность называемая Structured Light Scanning (SLS). В отличие от лазерного сканирования, проектор сразу проецирует на объект сетки из вертикальных и горизонтальных линий различной толщины, что на порядок уменьшает время сканирования и позволяет в автоматическом режиме снимать цветную текстуру объекта. Ну и при хорошей фокусировке, линия в 1 пиксель шириной намного тоньше, чем возможно получить от недорогой лазерной указки.

К сожалению, фотографии с тех первых опытов я не делал, да и фотографировать особенно было нечего – проектор на столе, рядом с ним веб-камера, все это смотрит в одну сторону 🙂 Однако даже такая простейшая конструкция показала, что этот вариант намного предпочтительней как по скорости сканирования, так и по качеству. Тогда я и решил купить для этих целей себе проектор.

Критерии для выбора проектора были простые – разрешение больше, цена и размеры меньше 🙂
Выбор остановился на IconBit Tbright x100 — ультракомпактный DLP LED проектор, разрешение 1080 – на тот момент мне казалось, что лучше и не придумаешь, но как выяснилось позже – я ошибался, хотя занимаясь с ним, я получил много интересного опыта.

Первая проблема, которая возникает при сканировании маленького объекта с помощью проектора, заключается в том, что для лучшего результата, размер проецируемой сетки должен примерно соответствовать размеру сканируемого объекта. Данный проектор позволял получить наименьшую диагональ экрана при самом близком фокусе — примерно в 22 см. Согласитесь, что на таком фоне миниатюра в 3 см высотой далека от понятия «примерно равные размеры». Ответ нашелся на официальном форуме – люди в таких случаях устанавливают на проектор фотоаппаратные линзы для макросъемки. Учитывая небольшие размеры объектива проектора, я остановил свой выбор на линзах marumi с диаметром резьбы 34 мм.

Используя два таких комплекта, удалось получить экран проектора с диагональю всего около 3 см. Чего оказалось вполне достаточно, чтоб сделать свой первый микроскан –

Это единичный скан, поэтому и есть «дырки» на модели, рваные края и т.д. Поворачивая монету и сканируя с разных ракурсов, можно получить несколько таких сканов, которые впоследствии объединяются в один объект (сама программа сканирования позволяет правильно совмещать разные сканы, сшивать их и сохранять как единый объект). В процессе сшивания заодно уточняется форма объекта. Но сохранять результаты такого сшивания – возможно только после покупки лицензии.

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

На основной странице David’а и изображена подобная система – ничего сложного она собой не представляет. Да и полистав форум и посмотрев, как это организую себе разные люди, понял, что ничего сложного тут не требуется.

Для этих целей была взята стойка от сгоревшего ЖК монитора, и оргстекло от него же, вырезана и склеена вот такая конструкция, как она выглядела в первом варианте

К подставке для проектора и был приделан крепеж для установки различных линз, что позволяло менять диагональ экрана, и сканировать объекты разного размера.
Следует также упомянуть о том, что сканирование с помощью проектора не требует постоянного нахождения в поле зрения калибровочных панелей. После того как произведена калибровка их можно убрать. Это позволяет откалибровав установку спокойно её переносить, двигать и т.д.
То есть вы можете используя большой калибровочный шаблон произвести дома на стенах калибровку, а затем с этой стойкой и ноутбуком выйти на улицу и отсканировать свой автомобиль, например. Взяли меньший шаблон, поставили пару линз – и можно сканировать ювелирные изделия.

Недавно фирма выпустила усовершенствованный набор для сканирования, вот там уже стойка намного серьезней и интересней смотрится –

Как по мне, при стоимости лицензии на программу около 500$ (это они еще цену подняли недавно), отдавать за такой набор более 2000 евро – не совсем оправданно, собрать самому что-то подобное не сложно и значительно дешевле.

Вернемся к проектору. Как оказалось, у этого проектора был один существенный недостаток для использования в сканере, а именно его родное разрешение (854*480). И все бы ничего, если бы он и на выходе выдавал то же самое, но увы – картинка преобразовывалась к стандартным разрешениям (типа 1024*768), и в результате линия шириной в один пиксель была в разных частях экрана где-то ярче, где-то тусклее, где-то уже а где-то шире… Все это негативно сказывалось на качестве сканирования, выражаясь в виде ряби и полосок на получаемой модели.
К тому времени я уже задумывался о покупке проектора для стереолитографического 3Д принтера (http://geektimes.ru/post/245590/). Рассмотрев несколько вариантов, я остановился на модели Acer P1500, т.к. ей не нужны никакие доработки для использования в принтере (этот проектор без всяких линз способен дать сфокусированное изображение на экране примерно 4*7 см). А значит, и для сканера он подойдет как нельзя лучше. При этом разрешение в 1920*1080 у него реальное. Так оно и вышло, этим проектором пользуюсь до сих пор и полностью доволен результатами.

Критерии при выбора камеры у меня были те же, что и при выборе проектора. Пройдясь по магазинам, остановился на Logitech C615. Скан монеты был сделан именно с неё, без всяких модификаций. Но когда я попытался отсканировать фигурку, то столкнулся с трудностью, которая называется «глубина резкости». Когда объект настолько мал, то фактически у нас получается макросъемка, а резкость при такой съемке достигается только на небольшом отрезке, буквально всего пара миллиметров (именно поэтому монета хорошо отсканировалась – рельеф вполне укладывался в область резкости). Было решено переделать камеру под другой объектив. На Ebay было заказано несколько разных объективов для пробы, а также был вырезан новый корпус под плату камеры. План был такой

Финальный результат немного отличался

Основная идея, я думаю, понятна. А сейчас и на Thingiverse и на форуме программы можно скачать stl для печати корпусов под разные типы вебкамер.

С платы камеры пришлось убрать стандартный объектив, и как выяснилось позже – вместе с ним был убран и ИК-фильтр, так что будьте в этом вопросе аккуратней. Фильтр потом пригодится для использования с другими объективами, хотя можно и отдельно их докупить – цена копеечная.

Таким образом, у меня вот такая коллекция объективов образовалась.

Пока я ожидал доставку объективов, читались различные форумы по фотосъемке. Изучая вопрос с глубиной резкости, я выяснил, что увеличить её можно сильнее закрыв диафрагму объектива. А значит и объектив требовался такой, в котором была возможность регулировать диафрагму (увы, среди заказанных не все обладали такой возможностью, но на мое счастье и парочка таких попалась). В общем, для улучшения камеры желательно иметь варифокальный объектив с зумом и регулируемой диафрагмой. На практике все оказалось так, как и было в теории – закрывая диафрагму, сразу было видно увеличение глубины резкости, что позволило-таки сканировать объемные, но мелкие объекты.

Основной объектив, которым я пользуюсь — на фото выше установлен на камере. Второй, с регулируемой диафрагмой, самый большой, в центре. Его я использую для совсем уж маленьких объектов. Остальные без диафрагмы, так что ими не пользуюсь — оказалось что вполне достаточно и этих двух.

В планах теперь либо найти вебкамеру с большим разрешением (качество и детальность сканов напрямую зависит от разрешения камеры), либо попробовать использовать для этих целей какой-нибудь цифровой фотоаппарат с возможностью съемки видео – обычно в них намного больше разрешение можно получить, да и объективы лучше.

Собственно на этом можно было бы и закончить – вроде обо всем рассказал. Я тоже думал что на этом у меня закончилась сборка сканера, но чем дальше в лес… Изучая форум данной программы я часто натыкался на различные схемы поворотных столиков — благо софт позволяет автоматизировать процесс сканирования. После одного скана подается команда на com-порт, поворотный столик вращается, поворачивая объект на заданное количество градусов, и дает команду на следующий скан. В результате одним кликом мышки мы имеем круговые сканы объекта — казалось бы, чего еще желать? Эту систему я с интересом опробовал, но увы – мне такой подход абсолютно не понравился, и тому есть пара причин.

1 – если объект сложной формы, то просто его вращать его будет недостаточно – требуется еще и наклонять в разные стороны, чтобы камера с проектором дотянулась до всех впадин и других труднодоступных мест.
2 – даже если таких мест нет, и учитывая все сканы, которые были сделаны, на объекте не осталось частей, которые не попали в скан, остается вопрос точности скана.

Допустим, какая-то часть модели на одном из сканов вышла идеально. Но это не значит что на всех сканах, в которые эта часть попала, она выглядит также идеально, а при сшивании сканов с разных ракурсов результат будет усреднен, что не может радовать. Программа позволяет немного редактировать полученные сканы (можно вырезать ненужную часть). Если мы вращаем модель на 20 градусов, значит, после полного оборота у нас будет 18 сканов, нужная нам часть вполне может присутствовать на половине из них, следовательно, чтобы оставить наилучший результат надо будет удалить этот кусок из 8ми сканов… А таких кусков при сложной модели может быть много, в результате от каждого скана будет отрезаться чуть ли не половина, что очень трудоемко и требует много времени.

Вместо этого лучше после первого скана сразу сканировать прилегающие области, и проверять результат. Как только какой-то кусок готов – переходим к сканированию следующего, и так, пока вся модель не будет в идеальном виде. Такой подход дает лучший результат за меньшее время.

Но возникает вопрос удобства. Согласитесь, неудобно вручную пытаться крутить объект, глядя не на него, а на монитор – чтоб контролировать попадание в объектив, не поменяв расстояние до камеры и проектора при этом (дабы не сбился фокус). При очередной подобной эквилибристике я случайно задел камеру, что соответственно сбило всю калибровку, и весь процесс пришлось начать заново. Такой расклад мне категорически не понравился, и я после некоторых размышлений пришел к плану вот такой конструкции (которую, как вы понимаете, впоследствии и собрал).

Это не поворотный столик в обычном понимании этого термина. Благодаря такой конструкции я могу не только вращать модель, но и наклонять её, как мне будет нужно. При этом центр модели остается в плоскости фокуса, но даже если и нет – можно вперед-назад крепление с моделью двигать.


Все это собралось на ардуино, была написана небольшая программа для управления, и в результате мне теперь при сканировании не приходится вставать из-за компьютера – используя программу, я меняю положение сканируемого объекта, и при этом тут же, в окне камеры выбираю оптимальный для сканирования ракурс.

Внутренности

В программу я заложил возможность автоматического сканирования, а так же сканирования непросто по кругу, а с наклонами на 45 градусов в одну и другую сторону, что дает в три раза больше сканов. Тем не менее, в итоге, я все-равно никогда этой возможностью не пользуюсь – слишком неудобно потом разбираться в полученной куче сканов и чистить их от неудачных кусков.

Следует также упомянуть о некоторых нюансах сканирования.
1 – невозможно сканировать блестящие и зеркальные поверхности. Свет от них отражается, или дает такой блик, что программа не может корректно распознать линию. Если есть необходимость сканирования такого объекта, то подобные части придется чем-то замаскировать (смывающейся краской, бумажным скотчем и т.д.).
2 – удобнее сканировать монотонные объекты, так как при настройке камеры на светлый цвет выставляется не такая большая яркость проектора, малая экспозиция и т.д. А для объекта темного цвета требуется большая яркость, так что если у вас объект разноцветный, то для разных его частей требуются разные настройки для получения наилучшего результата. Здесь тоже удобней использовать сканирование объекта частями.
3 – если вы хотите сразу получить цветную текстуру то учтите, что настройки камеры и проектора для скана не влияют на настройки для снятия текстуры (скан вообще в черно-белом режиме делается), так что поиграйтесь настройками в режиме текстуры также, как вы будете это делать в режиме сканирования.

Процесс сканирования у меня сейчас выглядит таким образом:
— Фокусировка проектора и камеры

Свет проектора слишком ярок и на фото не видна проецируемая сетка, но вот вид из камеры в программе

— калибровка сканера

Калибровочный угол был сделан из металлических пластин, а калибровочные шаблоны разного размера были напечатаны на магнитной бумаге — так можно очень быстро подстраиваться под разные размеры сканируемых объектов.

Вид в программе

Рекомендуется, чтобы совокупный угол между лучом проектора и камеры был около 20 градусов. Поэтому такая стойка и используется — при сканировании больших объектов (например, человека) камеру надо гораздо дальше от проектора отставить, здесь же они у меня вплотную стоят. Расположение камеры относительно проектора может быть только вертикальным, или только горизонтальным — в зависимости от геометрии объекта. В данном случае расположение диагональное (13 градусов по вертикали и 36 по горизонтали).

Результаты сканирования с разных ракурсов. Это уже подчищенные сканы, т.е. удалены все неудачные и ненужные (подставка фигуры, попавшее в кадр крепление) части.

Совмещение сканов для последующего объединения в один объект

Благодаря тому, что каждый скан имеет свой цвет удобно контролировать правильность совмещения.

Ну и после объединения сканов с разных ракурсов получаем такие модели

Миниатюра Боромира из властелина колец.

При сканировании разноцветного объекта результат немного хуже, если сильно не заморачиваться. Но зато можно получить объект сразу с текстурой 🙂

Оригиналы моделей

В галерее работ пользователей на сайте разработчика (http://www.david-3d.com/en/news&community/usergallery) можно найти еще много интересных сканов, даже отпечатки пальцев люди сканируют. И встречаются даже сканы таких же миниатюр из вархаммера

В заключении хочется сказать о том, что какое бы железо вы не использовали, какой бы дорогой 3д сканер вы не купили, но это не панацея для печати чего угодно. Теоретически конечно можно полученный объект отправлять в слайсер и печатать, но есть несколько причин, почему не стоит так поступать, а стоит в любом случае изучать пакеты 3Д графики.

1 — Полученные сканы, при хорошем качестве сканирования (а мы ведь хотим получить наилучшее качество) имеют очень много полигонов. Нет, даже ОЧЕНЬ много. Скан Боромира после слияния содержал более 8 миллионов полигонов — не каждый слайсер сможет работать с таким объектом.
2 — Любые объекты несут на себе следы сборки и изготовления. И если в реальности для исправления этого применяют надфили и наждачку (а иногда все-равно есть недоступные места, где невозможно применить инструменты), то работая с цифровой копией объекта, мы можем изменить его как угодно — убрать дефекты, улучшить детализацию и т.д.
3 — Как я говорил в начале статьи, когда я задумался о сканере, я хотел не копии объектов печатать, а изменять их как мне будет угодно. Я не скульптор, у меня нет инструментов, материалов и навыков, чтобы вылепить такую мелкую модель. Но умея работать в 3Д, мне намного проще, отсканировав подобного Боромира, сделать из него какого-нибудь Принца датского.


Кстати, эта модель содержит уже почти в 100 раз меньше полигонов, чем результат сканирования.

Источник

Читайте также:  Станок для рыбалки своими руками
Оцените статью