3d сканер своими руками высокого разрешения. Принцип работы съемки в объемном режиме

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

Первый прототип

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

Камеру видно сразу, а лазер - это тот латунный цилиндрик над ней. Для вращения платформы мы применили два шаговых двигателя, которые в свою очередь были подключены к плате управления на микроконтроллере Atmega32. К ней же подключался лазер. Сама плата соединялась с компьютером посредством USB->UART переходника. Программа на компьютере делала снимки, обрабатывала их, заносила координаты полученных точек в файл и отсылала команды плате управления.

Результат был интересный. Да, мы находили расстояние. Да, мы могли «нацелиться» на любую точку в полусфере над сканером. И радости нашей не было предела. Но когда мы провели оценку времени сканирования этой полусферы, то оно оказалось равным 48 часам. И дело не в камере. И даже не в Java. А в том, что установка была настолько хлипкой, что колебалась после каждого поворота в течение пяти секунд. Приходилось делать измерение, поворачиваться и ждать пять секунд, пока она не перестанет качаться. А вдобавок библиотека для камеры перед каждым снимком включала ее, а затем выключала. На это уходило 1-2 секунды. Но летняя школа заканчивалась, и переделывать было некогда: это была уже ночь перед сдачей проекта. Вернее утро. На следующий день мы представляли наш проект на конкурсе перед научным жюри и неожиданно выиграли. Наверное, именно из-за этой победы мы решили продолжить нашу работу над этим проектом.

Версия два

На самом деле лето закончилось, а учебный год начался. Желание работать пропало. Установку планировали закончить к следующему конкурсу, до которого был целый месяц. Месяц. А потом внезапно три дня. Но за месяц мы решили изменить установку. Собрать ее крепкой, установить на лазерную указку линзу, которая будет создавать лазерную линию. Это позволило бы сканировать сразу 720 точек (в сканере стояла HD камера). Вот только три дня внесли свои коррективы:

Собран второй сканер из визирных пластиковых линеек, клея, малярного скотча и держится только благодаря синей изоленте. Вместо линзы стоит пробирка. На эту пробирку светит зеленый лазер. Отразившийся луч создает на экране более-менее равномерную лазерную полоску. Дальномер закреплен лишь на одном моторе, который вращает его в горизонтальной плоскости. Плату управления заменили на STM32VLDiscovery. Просто STM32 я знаю лучше, да еще и Atmega сгорела, а программатор был давно утерян. Выглядит не очень, зато работает! Колебания уменьшились, а скорость соответственно увеличилась. Но не сильно. Тут был обнаружен очень интересный подвох - китайская лазерная указка включалась не сразу, а плавно увеличивала свою мощность в течение секунды. Таким образом, секунда на колебания, секунда на прогрев лазера, секунда на снимок, а их два. Вот и получаем 4 секунды. Но за одно измерение мы находим расстояние до 720 точек! Выглядел процесс сканирования приблизительно так:

А результат так:

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

А что собственно конкурс? А вот ничего! Мы закончили сканировать все подряд в 4 часа ночи, а в 9 утра на стенде обнаружили, что лазер сгорел. Как оказалось, пока мы несли его из гостиницы к стенду, в него попал дождь, и при включении он сгорел. А выглядит она в нерабочем состоянии так, что поверить в слова «оно работало 5 часов назад» сложно. Мы расстроились. Желание продолжать улетучилось с дымком из лазера. Но все же была собрана…

Третья версия

И собрана она была опять же к конкурсу. Причем к нему мы готовились долго и основательно. Больше недели. И вот результат:

Первое что бросается в глаза - это то, что теперь мы сканируем не область вокруг сканера, а объект, который вращается на платформе. А так же мы достали нужную линзу, собрали все нормально, переписали программу, а еще заменили отладочную плату на самодельную. И еще теперь мы делаем только один снимок на измерение. Лазер достаточно мощный, а линза достаточно хороша для того, чтобы однозначно находить лазер на фотографии. Благодаря этому мы не дожидаемся прогрева лазера - он всегда включен. А еще камеру теперь включаем только один раз. То есть время тратится по большей части на поворот платформы и обработку изображения. В программе добавили меню выбора точности. Время сканирования - от двух до десяти минут. В зависимости от выбранной точности. При максимальной точности получается, что платформа за шаг поворачивается на 0,5 градуса, а расстояние определяется с точностью 0,33 мм. Платформа приводится в движение шаговым мотором через редуктор. Собственно платформа - большой диск, а резиновый валик на валу мотора - маленький. Мотором и лазером управлял микроконтроллер STM32F050F4 через полевые транзисторы. В самом начале статьи как раз скан игрушки, полученный с помощью этого сканера. Так как сканер выдает облако точек в формате.obj, то после триангуляции мы можем напечатать отсканированный объект на 3D принтере, что и видно на той же фотографии. На экране мы можем видеть модель после триангуляции. Никакой ручной работы над моделью не проводилось.

На конкурсе мы победили. А он давал проход на международный конкурс Intel ISEF. А потому мы начали работать над следующим сканером.

Четвертая версия

На данный момент это последняя версия сканера, которую мы собрали. Для сравнения на платформе стоит вторая версия. К разработке четвертого сканера мы постарались подойти со всей основательностью, с какой только могли. Установка была начерчена в САПРе, детали вырезаны лазером, все покрашено, ничего лишнего снаружи не торчит. Изменения: теперь платформа действительно является шестерней. Она вырезана из оргстекла и по краям у нее 652 зубчика. Это решает проблему, которая сильно портила сканы в предыдущем сканере: резиновый валик немного проскальзывал, из-за чего платформа часто поворачивалась не на 360 градусов. Сканы были либо с «вырезанным кусочком», либо с перекрытием. Здесь же мы всегда точно знали насколько повернута платформа. Мощность лазера сделали регулируемой программно. Благодаря этому можно было на ходу менять мощность лазера, избегая засветки ненужных частей при малой освещенности помещения. Для управления всей электронникой решили не разводить новую плату, а просто применить отладочную F401RE-Nucleo. На ней установлен ST-LinkV2.1, который работает отладчиком и USB->UART адаптером.

Точность получилась потрясающая: Угловое разрешение 0.14 градуса. По расстоянию 0,125 мм. Область сканирования представляет собой цилиндр высотой 20 см и диаметром 30 см. Цена всех деталей и резки лазером на момент его создания (май 2014) составляла менее 4000 рублей.

В процессе использования мы всего один раз ставили максимальную точность. Сканирование длилось 15-20 минут. Получили почти 2 миллиона точек. Ноутбук отказался рассчитывать модель из облака точек. Эксперимент больше не повторяли.

Заключение

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

Спасибо всем, кто дочитал до конца!

UPD:
Коллега нашел видео о работе сканера, которое мы снимали на ISEF:

Да, большая часть видео не интересная, но в конце моделька на ноутбуке.

А еще вот примеры отсканированных объектов. Но все они относятся к третьей версии сканера.
Dropbox
В файле model.obj хорошо видно, что получается при проскальзывании этого резинового валика на моторе - у собаки три глаза. Сканирование остановили, из-за чего получился вырез. Все файлы - это облака точек. Открывать можно при помощи MeshLab. Модели не обрабатывались руками. Полностью сырые данные. Сверху видно «белые пятна» - участки без точек. Их не видит камера. Так же белые пятна можно заметить и в других местах. Они появляются либо на слишком темных участках, либо при перекрытии поверхностей. Например в файле stn_10.obj рога козла перекрывают друг друга, из-за чего внутренняя поверхность рогов не отсканировалась.

Доброго дня, мозгочины ! Самоделка о которой пойдет речь в этой статье, это лазерный 3D-сканер с открытым кодом под названием «FabScan», разработанный, кстати, как диссертация бакалавра.

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

Итак, поехали!

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

Что рекомендует «FabScan»:
— Arduino Uno
— драйвер A4988 для шагового двигателя
— щилд для 3D-сканера «FabScan»
— 5мВт лазерный модуль
— биполярный шаговый двигатель NEMA 17 (200 шагов)
— блок питания 12В, 1А
веб-камера Logitech C270
— материал для корпуса (4 листа МДФ 60х30х0.5см, более подробно здесь)

То, что использовал я:
— Arduino Uno
— шаговый двигатель NEMA 17 (200 шагов)
— драйвер L298N для шагового двигателя
— 5мВт лазерный модуль (красный луч)
— блок питания 12В, 2А
— веб-камера Logiteck C270

Шаг 2: Создание корпуса

Из МДФ вырезаем детали корпуса, я для этих целей использовал дремель, и собираем его. Процедура эта не простая, так как для верного сканирования мозгокамера , двигатель и лазерный модуль должны правильно располагаться.

Шаг 3: Подключение электроники

Это довольно просто: монтируем шилд FabScan на Arduino, а уже на шилд устанавливаем драйвер в первый разъем для двигателя. К выходным контактам подключаем шаговый двигатель, а лазерный модуль к аналоговому контакту A4, и, наконец, подсоединяем питание и USB-кабель. Более подробно об этом .

Если же вы используете компоненты из моего списка, то необходимо подключить драйвер L298 к контактам 10, 11, 9, 8 на Arduino (по желанию их можно поменять), а лазерный модуль также на контакт A4. Затем подключить питание и USB-кабель.

Шаг 4: Код

Перед вами код для поделки от команды-разработчика, и который можно загрузить на Arduino прямо из браузера с помощью плагина Codebender. Для этого необходимо установить этот плагин и нажать кнопку «Run on Arduino», тем самым запустив «заливку» прямо из окна с кодом.

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

Ориентируясь на вышепредставленные фото выполните следующие действия:

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

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

Совет: Можно изменить файл конфигурации от команды-разработчика configuration.xml следуя представленным .

Сохранение полученного 3D-изображения:

Когда мозгосканирование завершено полученный 3D-образ можно сохранить в формате 3D pointcloud .pcd или.ply файлов. Можно сохранить и в формате 3D stl файла, но он работает не на всех платформах. Открыть файл с отсканированным объектом можно выбрав «File» — «OpenPointCloud».

— убедитесь, что файл со сканом имеет расширение.ply
— открываем файл в MeshLab и вычисляем нормали (Filters/Point Set/Compute normals for point sets)
— воссоздаем поверхности используя реконструкцию Пуассон (Filters/Point Set/Surface Reconstruction: Poisson).
На этом все! И всем мозгоудачи !

Пару лет назад попалась мне на глаза статья на хабре о 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 раз меньше полигонов, чем результат сканирования.

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)
  • Готово

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

Принцип работы съемки в объемном режиме

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

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

  • Ограничивающим фактором при фотограмметрии является качество фотографий и, следовательно, мастерство фотографа.
  • Фотографии должны быть хорошо видны и четко сфокусированы.
  • Они также должны располагаться вокруг объекта, чтобы каждая их часть была охвачена.

Без 3D-сканера вы сможете сделать трехмерное изображение лишь больших объектов. Маленькие предметы отсканировать не получится. Чтобы подробнее это понять, разберем понятие фотограмметрии.

Что такое фотограмметрия и как она влияет на отображение предметов?

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

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

Фотограмметрия существует уже некоторое время, но только когда Autodesk включился в свою бета-программу Memento, все стало работать стабильно. Memento был переименован в ReMake, когда он покинул бета-фазу. Звучит как волшебство, верно? Ну, это не волшебство, это реальность. Теперь любой желающий может заняться трехмерным сканированием, не тратя сотни на сканер. Даже доступные 3D-сканеры с открытым исходным кодом требуют довольно много знаний, чтобы заставить их работать должным образом. С помощью фотограмметрии любой может получить то, чего он хочет.

Поворотный круг - второй этап создания сканера

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

Просто! Перенесите фотографии на компьютер, а затем используйте Autodesk ReMake, чтобы творить чудеса. Это удивительно, но он не только хорошо создает сетку, но и предоставляет инструменты для настройки сетки, ремонта отверстий, выравнивания, подготовки к 3D-печати или служит системной формой в качестве 3D-ресурса для игр или визуализации!

Что ж, учитывая, что Apple удалила разъем для наушников для iPhone 7 и выше, будет использоваться обновленная версия создания сканера. В основе лежит принцип работы по триггеру для камеры Bluetooth. Это заменит необходимость в разъеме для наушников.

  • Высококачественное фотограмметрическое сканирование требует высококачественных фотографий объекта со всех сторон.
  • Самый простой подход для сканирования мелких вещей - это вращать объект во время фотографирования.
  • Для этого сканер использует шаговый двигатель, управляемый платой Arduino.
  • Степпер поворачивает объект на фиксированную величину, а затем инфракрасный светодиод гаснет чертовски хитроумными сериями миганий, которые имитируют беспроводной пульт дистанционного управления камеры.

С набором кнопок позволяет пользователю управлять Arduino. Используя кнопки, пользователь может выбрать количество снимков, которые будут сделаны за оборот. Изготовленный своими руками 3Д-сканер высокого качества может работать в автоматическом режиме, где он делает снимок, продвигает шаговый двигатель и повторяет его, пока не завершит полный оборот.

Существует также ручной режим, при котором каждое нажатие кнопки делает снимок, перемещает шаговый регулятор и ждет. Это полезно для сканирования деталей. 3Д-сканер фокусируется на рамке, обрамляющей изображение.

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

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

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

Есть два решения:

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

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

  • "Ардуино". У него есть контакты, которые не закрыты ЖК-экраном, что облегчает подключение.
  • SainSmart 1602 LCD Shield, который имеет дисплей и несколько кнопок для управления сканером.
  • Драйвер шагового двигателя (Easy Driver).

Шаговый двигатель NEMA 17 будет поворачивать объект сканирования. С большим шаговым двигателем (с соответствующим драйвером и источником питания) этот изготовленный своими руками 3Д-сканер высокого качества мог бы увеличить масштаб сканирования. ИК-светодиод 950 nm запускает камеру. На этом принципе основаны некоторые популярные модели ручных 3Д-сканеров. Своими руками можно повторить процесс строения. Мы предлагаем несколько вариантов на выбор.

Spinscan от Тони Бьюзера: основа всех сканеров

В 2011 году гений 3D-печати, Тони Бьюзер, выпустил Spinscan. Это самодельный 3Д-сканер с открытым исходным кодом на основе лазера и цифровой камеры. Позже MakerBot использовал идеи из Spinscan для создания сканера Digitizer с закрытым исходным кодом.

FabScan

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

VirtuCube

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

Уже выпущены два новых интересных лазерных сканера с открытым исходным кодом: The BQ Cyclop и Murobo Atlas.

BQ - лазерная система сканирования

Испанская компания по производству бытовой электроники BQ анонсировала 3D-сканер Cyclop на выставке CES. Cyclop использует два лазерных линейных уровня, стандартную веб-камеру USB и пользовательский контроллер Arduino от BQ. BQ написал свое собственное приложение для сканирования под названием Horus. В то время как в сообщениях говорится, что Cyclop еще не доступен, BQ заявляет, что это будет позже в этом году.

"Атлас" - разработанный проект, требующий доработок

3Д-сканер с описанием принципов работы от Murobo в настоящее время ищет средства на Kickstarter. Как и Spinscan, Digitizer и Cyclop, Atlas использует лазерные линейные модули и веб-камеру для сканирования объекта на вращающейся платформе. Атлас заменяет Arduino Raspberry Pi, чтобы объединить управление и захват в устройство. Как и Cyclop, создатель Atlas обещает, что это будет проект с открытым исходным кодом. Наборы за 129 долларов распроданы, но некоторые остались по цене 149 и 209 долларов.

В 2019 году компания стремится выпустить созданный из смартфона 3Д-сканер, который будет не только отображать фоновую видимость, но и конструировать фокус при захвате изображения. В Америке DIY-новинки поражают. Если вы не знаете, как сделать 3Д-сканер, используйте незавершенную версию "Атласа". Там достаточно понятный функционал, а разработчикам нужно лишь прошить устройство и обеспечить работу тех функций, которые хочется видеть в результате.

CowTech Ciclop: новая модель многофункционального устройства

Цена достигает 160 долларов (в зависимости от того, печатаете ли вы 3D-детали или нет). Компания основана в США. Разрешение готовых изображений достигает 0,5 мм. Максимальный объем сканирования: 200 × 200 × 205 мм. BQ лег в основу комплекта DIY 3Д-сканера для 3Д-принтера. Своими руками можно доработать версию модели до создания изображений в четырехмерном пространстве.

CowTech Engineering использовала фонды, возглавляемые BQ, придавая уникальное значение обновленной модели. Появились возможности:

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

Верный движению open source, Cowtech начал кампанию Kickstarter, чтобы собрать деньги для запуска в производство версии оригинала - Ciclop CowTech. Команда поставила высокую цель - собрать 10 000 долларов, но была встречена с удивлением и восторгом, когда сообщество смогло собрать 183 000 долларов. Комплект 3Д-сканера из фотоаппарата и телефона CowTech Ciclop DIY появился на свет.

Так в чем же разница между версией CowTech и BQ DIY?

CowTech Ciclop по-прежнему использует программное обеспечение Horus 3D, так как это фантастический магазин для 3D-сканирования объектов. Различия, однако, заключаются в несколько ином дизайне, на разработку которого команда потратила нескольких дней, чтобы детали могли быть напечатаны в 3D на любом 3D-принтере FDM.

Эти же заготовки можно использовать для разработки устройств своими руками. 3Д-сканеры и принтеры этой компании имеют только небольшой объем сборки, поэтому компания CowTech разработала детали, которые можно распечатать на любом принтере с объемом сборки 115 × 110 × 65 мм, который есть почти во всех 3D-принтерах.

Ciclop от CowTech:

  • Здесь есть регулируемые держатели лазера.
  • В CowTech DIY используется лазерная резка акрила.
  • Модели используют резьбовые стержни.
  • Лазерная резка акрила отсутствует.

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

Поворотные станки и столы для создания сканеров

  1. Мобильный телефон оснащен технологией DIY 3D-сканера: фотограмметрия - присутствует технологическая особенность.
  2. Цена: бесплатная печать самостоятельно (хотя материалы будут стоить около 30 долларов США).
  3. Этот 3Д-сканер своими руками будет создать довольно просто. Дейв Кларк, британский производитель, еще до начала старта продаж позаботился о том, чтобы модели могли разбираться. Запчасти пойдут на создание других сканеров.

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

Своими руками 3Д-сканер получится сделать из подручных средств. Нужно только довериться создателям DIY 3D. Простое устройство мгновенно превращает ваш iPhone или Android в 3D-сканер, подключив его к этому проигрывателю. Затем, используя наушники и камеру телефона, делает более 50 фотографий объекта, который будет сканироваться при вращении поворотного стола.

После того как вы взяли эти изображения, вы можете загрузить их в такую ​​программу, как Autodesk ReCap, чтобы превратить фотографии в полноценный 3D-файл.

В целом это фантастический креативный проект и отличный DIY 3D-сканер для людей с ограниченным бюджетом.

Microsoft Kinect 3D сканер

Его стоимость еще ниже - всего 99 долларов (однако больше не продается, хотя Kinect V2 все еще доступен с Xbox One). Лозунг компании: "Сделай своими руками 3Д-сканер из "Кинекта" и удиви друзей.

Хотя Microsoft отреагировала на спрос, создав собственное приложение 3D Scan для сканера Kinect, существует ряд сторонних опций, которые могут быть предпочтительнее. К ним относятся:

  • Skanect, сделанный Occupital, который также продает датчик структуры.
  • ReconstructMe. Он предоставляет набор инструментов, которые позволяют выполнять 3D-сканирование менее чем за 100 долларов.

Результаты не фантастические, но за такую цену вполне приемлемые. Было доказано, что он уступает традиционным вариантам протограмметрии по качеству, особенно в мелких деталях, например на маленьких моделях, таких как зубы акулы. Тем не менее для начинающих 3D-сканеров это фантастический продукт начального уровня, тем более что у вас уже может быть один для Xbox 360.

Перед тем, как создавать сканер

Существует множество камер, которые вы можете использовать. Конечно, чтобы знать, как сделать 3Д-сканер из телефона собственноручно, нужно посчитать, что для этого понадобится. Если вы планируете использовать Pi Scan для управления камерами, то вам следует использовать Canon PowerShot ELPH 160. Но если используете какую-то другую настройку, то вот несколько общих рекомендаций по выбору камер:

  1. Сколько мегапикселей вам нужно? Измерьте предметы, которые вы собираетесь сканировать. Стремитесь к наибольшему среднему размеру (не выбирайте самые большие выбросы). Например, большинство учебников размером 22,86 × 27,94 см. Теперь умножьте этот размер на PPI (пикселей на сантиметр), который вы намереваетесь захватить. 300 - это безопасный минимум, хотя вы не ошибетесь, если захватите больше. Итак, в нашем примере - 9 × 300 = 2700. 11 × 300 = 3300. Нам нужно изображение размером не менее 2700 × 3300 = 8 910 000 пикселей, или около 9 мегапикселей.
  2. Какой контроль вам нужен? Если вы просто сканируете одну книгу или сканируете предмет только для его информационного содержания (в отличие от попыток запечатлеть фактический внешний вид), вам не нужны очень хорошие снимки. Если освещение или настройки камеры меняются от снимка к снимку, вы все равно получите качественный результат.
  3. Скорость затвора - баланс белого апертура ISO.
  4. Вспышка вкл/выкл. Любая пользовательская обработка изображений (повышение резкости, улучшение цвета и т. д.).
  5. Фокус (в идеале возможность блокировки фокуса).
  6. Компенсация воздействия.
  7. Увеличение изображения - большинство зеркальных фотоаппаратов допускают весь этот вид контроля; для компактных камер только камеры Canon Powershot, поддерживающие CHDK. Они позволяют контролировать все эти параметры.

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

  • Первая трудность, с которой сталкиваются при создании трехмерного лазерного сканера, - нахождение вращающейся платформы. При этом ею нужно управлять лишь с помощью MatLab. Вместо того чтобы тратить много денег или времени, можно купить шаговый двигатель 28BYJ-48-5V с платой модуля тестирования привода ULN2003.
  • Дальше приклейте платформу к валу шагового двигателя и поместите его в паз внутри держателя. Платформа должна быть на одном уровне с "мрамором", но имейте в виду, что чем дешевле он, тем более несовместимы диаметры, которые могут сделать вещи не ровными.
  • Если у вас есть метод получения точного вращения, которым можно управлять в Mat Lab, настройте камеру на любом расстоянии и высоте, а также лазерную линию слева или справа от камеры и от поворотного стола. Угол наклона лазера должен быть оптимальным, чтобы покрыть большую часть поворотного стола, но ничто не должно быть точным, мы будем обрабатывать разницу в масштабе модели в коде.
  • Самая важная часть для правильной работы - это калибровка камеры. Используя набор инструментов для компьютерного зрения MatLab, можно получить точное фокусное расстояние и оптический центр камеры с точностью до 0,14 пикселя.

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

Большинство дешевых компактных камер не имеют программного интерфейса. Они могут управляться только ручным или механическим запуском. Но команда добровольцев разработала программное обеспечение, которое позволяет дистанционно управлять компактными камерами Canon и настраивать их. Это программное обеспечение называется CHDK.

  • CHDK загружается на SD-карту, которая затем вставляется в камеру.
  • Когда камера запускается, CHDK запускается автоматически.
  • Поскольку CHDK никогда не вносит постоянных изменений в камеру, вы всегда можете просто извлечь специальную карту CHDK SD для нормальной работы камеры.

CHDK является важной предпосылкой для программных контроллеров, перечисленных ниже. Контроллеры работают на ПК или Raspberry Pi и взаимодействуют с программным обеспечением CHDK, работающим на камерах, через USB. При использовании других видов дешевых камер единственным вариантом управления является какой-либо механический или ручной запуск через программы-установщики, как показано выше.