Дополнительное программное обеспечение

Системные

Внимание! Соблюдайте меры безопасности при работе с лазерным излучением. Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

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

Мы приобрели для эксперимента лазерный модуль с длиной волны 650 нм (красного цвета) мощностью 5 мВт. Более мощные лазеры стоят заметно дороже, и при этом они куда опаснее. Лучше, конечно, купить модуль с автономным питанием, так как он гораздо удобнее. В противном случае надо обязательно узнать параметры питания и озаботиться созданием небольшой «обвески» с батареями или аккумуляторами и выключателем. На всякий случай напомним, что красный провод — это +, а чёрный -. Соблюдайте полярность подключения и параметры питания, а иначе лазер может выйти из строя. Обязательно ознакомьтесь с нижеследующим предупреждением!

Внимание!!! Лазерное излучение очень опасно! Никогда не направляйте лазерный луч в глаза людям (в том числе себе) и животным — это может нанести непоправимый вред зрению (например, вызвать ожог сетчатки глаза)! Запрещается смотреть на лазерный луч через любые оптические приборы! Не направляйте лазерный луч на любые транспортные средства (в том числе самолёты)! Никогда не давайте лазер детям или неадекватным людям, а также позаботьтесь о том, чтобы они не смогли получить доступ к лазеру! Не используйте лазерные модули мощностью более 5 мВт, так как в этом случае опасность может представлять даже отражённый луч! В любом случае настоятельно рекомендуется приобрести для работы специальные защитные очки, рассчитанные на ту длину волны, которую излучает лазерный модуль! Не держите лазерный модуль на уровне головы! Всегда соблюдайте меры безопасности! Если вам непонятен смысл вышесказанного, не используйте лазер! Редакция 3DNews и автор не несут никакой ответственности за любые возможные последствия, в том числе за травмы, причиненные лазерным излучением!

Ещё раз прочитайте предыдущий абзац и запомните вышесказанное. Неплохо бы ознакомиться с популярным FAQ по лазерной безопасности. Кстати, отличной заменой модулю может стать лазерный уровень. Стоит он тоже в районе 1 000 рублей. При этом он заведомо менее опасен из-за небольшой мощности излучения, да и не придётся заморачиваться с организацией питания и выключателя: вставил батарейку — и работай.

Дальше по списку идёт веб-камера. Необходимо, чтобы она поддерживала WDM или DirectShow (кажется, все современные модели имеют подходящие драйверы) и выдавала хотя бы 30 FPS при разрешении 640x480. Можно взять камеру похуже, но и результат будет соответствующий. Чем выше поддерживаемое разрешение и частота кадров, тем лучше, но и нагрузка на ПК в этом случае будет заметнее. Разработчики используемого нами софта, к которому мы сейчас перейдём, рекомендуют отдать предпочтение Logitech Pro 9000. Мы же воспользовались веб-камерой Logitech HDPro Webcam 910. Идеальный вариант — использование хорошей чёрно-белой камеры с CCD-матрицей.

Наконец, о самом главном — о программе, которая будет заниматься переводом плоского изображения с веб-камеры в трёхмерную модель. Это давно известная утилита DAVID-Laserscanner , которая уже попадала в новостные заметки нашего ресурса. Совсем недавно вышел «мажорный», третий по счёту релиз. Для корректной работы на ПК должен быть установлен Microsoft .NET Framework версии 2.0 или старше. Сразу надо оговориться, что полноценная версия программы стоит 329 евро. Демоверсия практически полноценна, но не позволяет сохранять готовую 3D-модель. Кажется, нашим читателям не надо объяснять, где приобрести правильную версию. Если же вы кристально чисты душой и у вас есть свободные 400 евро, то купите готовый фирменный комплект из веб-камеры с подставкой, ПО, калибровочных панелей с креплениями и красным лазером с питанием. Если нет, то начать надо с изготовления калибровочного угла.

В принципе, процесс настройки и работы с утилитой хорошо расписан в wiki проекта. Так что мы лишь вкратце опишем основные этапы работы. Скачайте и установите DAVID-Laserscanner. В папке с программой в каталоге Printout вы найдёте файлы с шаблонами калибровочных поверхностей под форматы A3 и A4. Надо выбрать подходящий формат исходя из размеров сканируемого объекта. Примерно прикинуть можно, опираясь на то, что высота сканируемого объекта должна быть в 1,5-2 раза меньше высоты калибровочного угла. Распечатайте шаблоны, разрежьте или согните их по линиям сгиба и закрепите на двух плоских поверхностях — листах фанеры или картона, на стенах в углу комнаты, внутри коробки и так далее. В общем, включите фантазию.

Главное условие — угол между двумя плоскостями должен составлять 90 градусов и не меняться. Также надо следить за тем, чтобы распечатанные листы оставались гладкими и ровными, а на их поверхности не было ничего глянцевого. Разработчики, в частности, рекомендуют крепить распечатанные листы с помощью пластыря. Также важно не перепутать ориентацию листов. На распечатке надо измерить и запомнить длину (в мм) линии, подписанной Scale. В качестве примера мы будем сканировать небольшую фигурку совы. В этом случае подошёл шаблон формата А4, который был прикреплён к куску картонной папки с помощью степлера.

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

Как только камера и угол будут установлены, можно приступать к калибровке. Запустите DAVID-Laserscanner, выберите в качестве источника видеосигнала вашу веб-камеру, а также установите режим её работы (разрешение и частоту кадров). Теперь перейдите к разделу Camera Calibration. Введите заранее измеренную ширину Scale и нажмите Calibrate. Если программа сразу выдала, что калибровка прошла успешно, то это очень здорово. В противном случае придётся играться с настройками камеры. Отключите различные «улучшалки» изображения, уберите автоматическую подстройку яркости и контраста, а также следящий автофокус. Если есть ручная фокусировка, то сделайте изображение круглых меток более чётким. Также придётся подобрать расстояние от угла до объектива и наклон камеры. Процесс калибровки может надолго затянуться, но, как только он завершится, сразу же аккуратно закрепите камеру и калибровочный угол и больше не трогайте их.

Перед каждым новым сканированием процесс калибровки придётся повторять. Теперь можно поместить сканируемый объект в угол (можно на подставку) и перейти в раздел 3D Laser Scanning. Объект должен находиться в центре изображения с камеры, а слева и справа обязательно должны быть видны части калибровочного угла. Чтобы убедиться в этом, включите лазер и наведите его на образец — на изображении должна быть видна линия как слева и справа, так и на самом объекте. Обратите внимание, что просканировать полупрозрачный или прозрачный образец не получится — его надо покрыть чем-нибудь вроде талька или матовой краской. Вообще, матовые объекты гораздо лучше подходят для сканирования.

Теперь надо затенить помещение (выключить источники света, зашторить окна). Ещё раз наведите лазер на образец. В это время на экране в идеальном случае вы должны увидеть только красную линию на чёрном фоне. Если это не так, то придётся ещё раз открыть настройки веб-камеры и поменять их. Но для начала стоит подвигать ползунок значения экспозиции (Exposure) влево-вправо. Ах да, не забудьте выбрать цвет лазерного излучения вашего модуля. Как только всё будет готово, можно приступать к пробному сканированию.

Переключите режим отображения на карту глубины (Camera Shows -> Depth Map). Аккуратно переместите лазерный луч в поле зрения веб-камеры. Луч должен быть по возможности горизонтальным, как можно более тонким, а сам модуль надо держать выше камеры. Поводите лучом вверх-вниз вдоль сканируемого объекта — и вы увидите, как программа с небольшой задержкой отрисовывает на экране его контуры в пространстве. Нельзя водить лучом слишком быстро, но и от слишком медленного перемещения толку не будет. Старайтесь «закрасить» образец как можно более плотной сеткой линий. Также надо добиться того, чтобы не было «грязи» — лишних линий вокруг объекта. Лучше всего держать лазерный модуль в руке и при этом двигать его только кистью. В конце надо будет аккуратно вывести линию луча за пределы калибровочного угла.

Скорее всего, вам удастся добиться чистого сканирования далеко не с первого раза. Поэкспериментируйте с настройками камеры и самого сканирования, положением камеры и лазера, освещением, фильтрацией (Result filtering, но эти значения лучше не менять) и так далее. В общем, надо как следует набить руку. Зато потом всё будет гораздо проще. Как только вы освоитесь и подберёте оптимальные значения для всех параметров, приступайте к финальному сканированию. Нажмите Stop и Erase, а затем снова Start и сделайте первый скан объекта. Как только он покажется вам достаточно качественным, нажимайте Stop, а затем Add to list. На всякий случай сохраните отдельно копию скана, нажав Save As.

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

Процесс текстурирования оставим для самостоятельного изучения и перейдём к сшиванию, за которое отвечает модуль Shape Fusion. Можно сделать это и вручную почти в любом трёхмерном редакторе. DAVID-Laserscanner сохраняет сканы в открытом формате Alias Wavefront (*.obj), но в демоверсии специально занижает качество. У вас уже должен быть готовый список с отсканированными элементами. Нам надо выровнять их между собой. Выбираем тип выравнивания в списке. Если вы «крутили» объект вокруг одной оси, то выберите её. Ну а если ещё и поворачивали на строго определённый угол, укажите и его. Затем нажмите Align Scans и выберите в списке два соседних скана. Программа ненадолго «задумается» и постарается выровнять их между собой в паре-тройке вариантов. Выберите наиболее точный кнопками с закруглёнными стрелочками в верхней части окна.

Повторяйте процедуру выравнивания попарно между элементами списка — 1-2, 2-3, 3-4 и так далее. В результате вы получите грубую трёхмерную модель. Не исключено, что некоторые сканы никак не будут выравниваться — их можно выкинуть или начать совмещение с конца списка, постепенно подбираясь к проблемному месту. Можно попробовать выбрать для них другой тип выравнивания. Не обращайте внимания на «грязь» вокруг объекта и недостатки на его поверхности — программа их в итоге сгладит. В общем-то, чем больше сканов, тем качественнее может получиться модель. Но тогда возрастает и вероятность случайной ошибки. Здесь, как и c самим сканированием, приходится идти трудным путём проб и ошибок.

Как только вы посчитаете, что добились нужной степени совмещения сканов, нажимайте кнопку Fuse и ждите, пока программа подготовит трёхмерную модель. Как и выравнивание, этот процесс довольно ресурсоёмкий. Очень скоро вы сможете насладиться (или, наоборот, разочароваться) результатом своих действий. Кстати говоря, у DAVID-Laserscanner есть альтернативный режим работы, где используется проектор . Если он у вас есть, то можете поэкспериментировать именно с ним, а не с лазером.

Готовую модель можно экспортировать в тот же obj-формат и открыть в 3D-редакторе для окончательной доводки до ума и подготовки к печати. Естественно, точную копию сканируемого объекта получить не удастся. Во-первых, DAVID-Laserscanner особенно трудно даются различные хитрые выемки или полости. Во-вторых, для воспроизведения очень мелких узоров на поверхности (например, частой насечки) требуется высокое разрешение камеры и как можно более тонкая линия лазера. В-третьих, при сканировании в любом случае получаются пропуски, которые программа пытается заполнить, основываясь на положении близлежащих точек. В общем, идеал, как всегда, недостижим.

Готовая, максимально сглаженная модель

Помимо этого, есть очевидные ограничения на размер сканируемых объектов. Слишком мелкие не будут получаться из-за относительного малого разрешения сканирования, а для очень крупных надо изыскивать соответствующих размеров место для установки калибровочного угла. Кроме DAVID-Laserscanner есть и другие программные комплексы со схожим принципом работы. Правда, зачастую они требуют наличия дополнительных приспособлений для вращения объекта или перемещения лазера. Тем не менее даже описанная выше самодельная конструкция может сэкономить массу времени неопытным 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 раз меньше полигонов, чем результат сканирования.

Самый первый вопрос будет к администрации, почему нет рубрики "3d-Сканирование"?

Второй вопрос будет к сообществу и продавцам: почему информации об устройствах, которые стоят как пол машины (а в некоторых случаях и дороже) настолько мало в интернете? Если она и существует, то в основном на англоязычных форумах, далеко не каждый человек способен адекватно воспринимать разговорный/сленговый английский. Поэтому я столкнулся прежде всего практически с полным отсутствием информации на этот счет. Частично меня спасла данная и я даже спсиался с автором по скайпу и он мне разъяснил достаточно много вещей, но потом он уехал в длительный отпуск и я остался один на один со своим колхозом, который выглядел в первом исполнении вот так:

За основу был взят проектор ACER p1500 имеющий разрешение FullHD, насколько мне известно, то этот проектор используется в некоторых дорогущих сканерах (не будем упоминать названия), штатив для фото/видео аппаратуры, уголок 10*40, вэбка (о ней будет подробнее чуть ниже). Самый доступный софт для всего этого дела это конечно же DAVID, благо есть бесплатная версия с некоторым ограниченным функционалом.

К выбору камеры надо подходить осторожно, прежде всего надо обратить внимание на наличие автофокуса, его не должны быть, либо он должен быть отключаем, либо он должен настраиваться в ручном режиме, именно по последнему пункту я выбрал Defender G-lense hd 720, но, как уже позже выяснилось это был единственный плюс в ней, программная начинка и софт не выдержали даже первого испытания:

Конечно я был ошарашен таким сканом:) Пытаться настраивать что-то на этой вэбке вообще бессмысленно и я очень расстроился выкинутым на ветер 2000 рублей, потом вспомнил, что у меня где-то валялся Logitech c270 от совершенно бесполезной сборки сканера BQ, с ней дело пошло веселее и первый вменяемый скан собранный в кучу получился вот таким:

Результат уже значительно лучше, а все дело в софте, который идет с камерой, у Logitech присутствует достаточно настроек, одна экспозиция чего стоит, которая решает проблему с мерцанием. Но у нее был один минус, фокус был настроен на заводе от 40 см и до бесконечности, что явно мне не подходило. В инете нашел информацию, чтобы его можно сделать регулируемым, надо лишь разобрать и сорвать резьбу с клея, на который приклеена линза. Полный энтузиазма превратить камеру с регулировкой фокусного расстояния я ее стал разбирать, легко дошел до места, где линза была подклеена и стал ее пытаться сдернуть с приклеенного места...................сердце екнуло от того, что линза лопнула от такого нахальства и стала не пригодной для дальнейшего использования. Вот тут я взгрустнул по полной, потому как остался вообще без нормально работающей вэбки:cry: Пошел с горя пить чай. Вернувшись на рабочее место меня посетила просто гениальная мысль: а что если сделать франкештейна? Разобрал нафиг Defender, посадочные места оказались несколько разными, но меня это не остановило и я таки срастил чужеродные элементы. О, чудо, у меня появилась новая вэбка с нормальным софтом и регулируемым фокусом (кстати линзы у Defendera больше по размерам). Первый приемлемый результат не заставил себя долго ждать:

Был успешно сделан скан ящика с инструментами, справа наблюдается небольшая ряб, но это моя вина, не докрутил настройки. Но согласитесь, это уже приемлемый результат:)

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

Можете заметить, насколько не родной объектив не гармонирует с корпусом:)

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

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

Также я пока не до конца осознал еще одну вещь - можно ли менять в процессе сканирование расстояние до объекта, то есть можно ли проектор ставить к объекту ближе или дальше, или же поднимать над объектом или опускать ниже, чтобы достать до нужных мест при сканировании, вообщем этот вопрос остается открытым...

Вот что получатся с модернизированной вэбкой:

Надо еще конечно играться с настройками, так как они порой сильно влияют на результат.

Ради интереса зашел посмотреть, сколько стоит родная камера David, почти 700 баксов, даже не знаю, есть ли смысл покупать такую камеру, с нынешним курсом это совсем не бюджетно.

Всем мозгочинам , большой привет! Если в течение последних нескольких лет вы не жили где-нибудь в глуши, то наверняка слышали о такой отличнейшей вещи, как 3D-печать. С помощью неё мы может распечатать почти что угодно, если конечно имеется соответствующая 3D-модель. А сегодня мы узнаем о том, как получать такие модели с помощью обычного фотоаппарата!

Итак, для получения 3D-моделей нужных объектов есть много мозгоспособов , но лучшим конечно является 3D-сканирование, которое в сочетание с хорошим принтером позволяет воспроизвести любой объект, начиная от целого дома и заканчивая обычной сережки. К тому же полученный скан можно использовать как основу ваших будущих самоделок . Вы только задумайтесь о том, что можно сделать с обычной цифровой фотографией, а сейчас она еще поможет создать реальные трехмерные объекты!

Еще одним приятным моментом 3D-сканирования является то, что у вас наверняка уже есть для это нужное оборудование, и возможно оно лежит у вас где-то в кармане, или вы смотрите на него (думаю, я пишу эти строки, а вы уже догадались что это:)). Да, это оборудование, позволяющие запечатлеть окружающий мир в 3D, простой фотоаппарат. И он, в купе с небольшим количеством мозготехники и недорогого, или даже свободного софта, превращается в самый универсальный 3D-принтер в целом мире. Знакомьтесь с этой мозгостатьей и вы узнаете, как именно это осуществить!

Шаг 1: Как же это работает?

Суть проста - необходимо получить достаточно много фотографий нужного вам объекта, при этом
каждая деталь этого объекта должна быть как минимум на 3-х фото. Далее они загружаются в специальную программу, которая распознает отдельные места объекта, и используя тригонометрию и «темную магию», выдает их положение в трех плоскостях. Распознав достаточное количество таких мест (иногда до нескольких миллионов) программа может создать цифровую модель самого мозгообъекта , которой можно, например, удивить своих друзей, или встроить ее в видеоигру, или послать на 3D-печать.

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

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

Шаг 2: Подойдет ли моя камера?

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

FabScan — это опенсорсный, сделанный своими руками лазерный 3d сканер. Я собрал свой из листов МДФ и различных подручных средств и в качестве примера решил выложить для вас процесс создания.

Шаг 1: Что вам понадобится




Для официального сканера FabScan необходимы:

  • Ардуино УНО
  • Шаговый двигатель A4988
  • Модуль лазерного 3д сканера FabScan-Shield для Ардуино
  • Модуль красного лазера 5mW
  • Блок питания 12V — 1A
  • Веб-камера Logitech C270

Для создания коробки вам понадобится 4 листа МДФ размером 600*300*5 мм.

В своём проекте я использовал:

  • Ардуино УНО
  • Биполярный шаговый двигатель — NEMA 17 (200 шагов)
  • Шаговый двигатель A4988
  • Модуль красного лазера 5mW
  • Блок питания 12V — 2A
  • Веб-камера Logitech C270

Так как мы будем использовать ПО FabScan, то я рекомендую держаться их списка деталей, всю документацию по эталонному 3 д сканеру FabScan вы легко найдёте в интернете.

Шаг 2: Собираем коробку-галерею для 3D-сканера




Показать еще 4 изображения





Для сборки короба для сканера я использовал Дремель и своё воображение. Это не так-то просто, ведь для того, чтобы получить корректное 3Д-изображение камера, лазер и шаговый двигатель должны находиться на правильных позициях. Если вы не хотите заморачиваться, то можно просто купить готовые части, но это обойдётся недешево .

Шаг 3: Соединяем модули


Сборка железа довольно проста:
Соедините модуль FabScan с Ардуино, а двигатель A4988 установите на своё первое положение шага. Соедините двигатель с выходными пинами, а модуль лазера с аналоговым пином A4. Наконец, подключите блок питания и кабель USB.

Если вы решили собирать сканер по моему списку деталей:
Тогда вам нужно подключить двигатель A4988 к пинам 10, 11, 9, 8 на Ардуино (при желании пины можно поменять), а модуль лазера подключить к пину A4. В конце также подключите блок питания и кабель USB.

Шаг 4: Код для Ардуино

Мы будем использовать официальный код от FabScan. Загрузите его на Ардуино и всё готово.

Если у вас установлен плагин Codebender, то можно залить код на Ардуино, перейдя по этой ссылке .

Если вы собираете сканер по моему списку деталей, то нажмите кнопку Edit и сделайте следующее:

  • Добавить строки #include const int stepsPerRevolution = 200;//поменяйте на кол-во шагов вашего двигателя Stepper myStepper(stepsPerRevolution, 10, 11,8,9);
  • Замените функцию step() следующей: void step() { myStepper.setSpeed(1); myStepper.step(1); }

Шаг 5: Софт для компьютера






Мы будем использовать образ «FabScan Ubuntu Live DVD». Вы можете скачать его . В этом образе софт FabScan уже предустановлен. Образ можно записать на флэшку, как это сделать можно найти в интернете.

Важная заметка: Если вы выбрали опцию «Try Ubuntu», то сохраните ваши файлы перед выключением компьютера!

Смотрите на приложенные фото и следуйте пунктам:

  • Выберите порт в SerialPort
  • Выбериет камеру в Camera
  • File — Control Panel
  • Кликнете на detect laser (не кладите ничего в сканер на данном этапе) и выберите ‘enable’
  • Кликните на «Fetch Frame» и убедитесь, что синяя горизонтальная линия касается верхушки вращающегося стола, а желтая горизонтальная линия касается его нижней части. Вертикальная желтая линия должна проходить через центр вращающегося стола. Незакреплённая камера может стать причиной искаженных сканов!

После настройки закройте окно панели управления, поместите объект в сканер, и нажмите на кнопку начала сканирования (start scan).

Сохранение 3D изображения:
Когда процесс сканирования завершится, можно сохранить 3Д объект в файл в форматах.pcd или.ply. Можно сохранить его также в формате stl, но он поддерживается не всеми платформами. Также можно открыть ранее отсканированный объект, выбрав File — OpenPointCloud.

Что делать с 3Д файлами?
Можно открыть их в MeshLab и напечатать на 3Д-принтере.
Для печати объектов в MeshLab:

  • Сохраните объект в формате.ply
  • Откройте файл в MeshLab
  • В MeshLab рассчитайте нормали (Filters/Point Set/Compute normals for point sets)
  • Реконструируйте поверхность при помощи реконструкции пуассонов (Filters/Point Set/Surface Reconstruction: Poisson)
  • Готово