3d сканер из телефона. Механическая развертка лазерного луча в сочетании с дифракционной решеткой. Стандартная механическая развертка лазер-линии на неподвижный объект сканирования

Представляю вниманию DIY сканер на базе Android смартфона.

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

Данные критерии успешно достигнуты. Успешно сканируются объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом захвата камеры смартфона и расстоянием, на котором лазерный луч сохраняет достаточную для детектирования яркость (днем в помещении). Это фигура человека в полный рост (1.8 метров) с шириной захвата в 1.2 метров.

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

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

Цель статьи – рассказать о тупиковых ветках и проблемах, собранных на пути к созданию окончательной рабочей версии.

Для сканера в окончательной версии используется:

  1. Телефон Samsung S5
  2. Красный и зеленый лазеры с линзой для линии (90 градусов линия) на 30 мВт со стеклянной оптикой (не самые дешевые).
  3. Шаговые двигатели 35BYGHM302-06LA 0.3A, 0.9°
  4. Драйверы шаговых двигателей A4988
  5. Bluetooth модуль HC-05
  6. Плата STM32F103C8t
Драйверы A4988, выставлены на half step, что с редуктором 15->120 дает 400*2*8 шагов на PI.

Выбор технологии сканирования.

Были рассмотрены следующие различные варианты.

LED Проектор.

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

Механическая развертка лазерного луча в сочетании с дифракционной решеткой.

Идея была проверена и сочтена годной. Но не для DIY исполнения, по причинам:
  1. Нужен достаточно мощный лазер, что бы после дифракции, метки были достаточно яркими (расстояние до объектива смартфона 1..2 метра). А глаза жалко. Лазер-точка уже с 30мВт не полезен.
  2. Требования к точности механической развертки в 2-х плоскостях – слишком высокие для DIY исполнения.

Стандартная механическая развертка лазер-линии на неподвижный объект сканирования.

В конечном итоге был выбран вариант с двумя лазерами разного цвета

  1. Разные цвета лазеров позволяют независимо детектировать их на одном кадре.
  2. Расположение лазеров по разные стороны камеры позволяет за один проход получить два скана.
  3. Два скана за раз позволяет объективно оценить качество юстировки сканера (сканы должны сойтись и наложиться друг на друга).
Как оказалось, последний критерий самый важный. Качество скана целиком определяется точностью измерения геометрических размеров и углов сканера. А наличие двух сканов от двух лазеров позволяет сразу оценить качество сканирования:
Облака точек сошлись. Т.е. плоскости захваченные двумя лазерами сошлись на всей поверхности.

Неудачный вариант механической части на 28BYJ-48.


Хотя с самого начала предполагал, что это тупиковый вариант, не обеспечивающий необходимой точности, я все равно его проверил c различными ухищрениями:
  1. Ось мотора зафиксирована подшипником.
  2. Добавлен элемент трения и стопор для выборки люфта редуктора.
  3. Попытка определения «точной позиции» фототранзистором, по засветке лазером
Повторяемость возврата на то же место линии лазера оказалась низка – 2-3 мм на дистанции 1.5 метра. При работе редуктора, несмотря на кажущуюся плавность, заметны рывки в 1-3 мм на расстоянии 1.5 метра.

Т.е. 28BYJ-48 полностью не подходит для более или менее точного сканера крупных объектов.

Требования к развертке, исходя из моего опыта

Обязательным элементом развертки должен быть редуктор.

Не стоит заблуждаться насчет режима 1/x шагов. Опыты показали, что в режиме 1/16 на A4988 микро шаги не равномерные. И на 1/8 эта неравномерность заметна на глаз.

Самым оптимальным решением для редуктора оказалось использование ременной зубчатой передачи. Хотя она получилась довольно громоздкой, но простой в создании и точной.
Точность позиционирования (точнее повторяемость позиционирования начальной положения лазеров для сканирования) лазеров оказалась около 0.5 mm для 5 мм ширины лазерной линии на 4 метра расстояния. Т.е. на расстоянии сканирования (1.2-1.8 метра) это вообще затруднительно измерить.

Позиционирование – оптроны (китайский noname) на прорези в диске под лазерами.

Проблемы с передачей управляющих сигналов с телефона на модуль управления лазерами и шаговыми двигателями

Узким местом, с точки зрения скорости сканирования оказался управляющий канал. Поскольку это была DIY неторопливая разработка в собственное удовольствие, то были перепробованы все способы коммуникации со смартфоном.

Передача управляющих сигналов через Audio jack (phone Audio jack=> oscilloscope)

Самый тормозной способ для передачи данных в реальном времени. Да еще с плавающим временем. До 500 ms (!) от программной активации передачи аудио данных до фактического появления сигнала в Audio jack.

Эта экзотика была проверена, поскольку, по работе приходилось иметь дело с мобильными ридерами чиповых карт.

Фотодиоды на экране смартфона (кусочек экрана телефона=>фототранзисторы+ STM32F103)

Был ради интереса опробован даже такой экзотический способ, как фототранзисторы матрицей 2x2 в виде прищепки на экран.

Хотя этот способ выдачи информации с телефона оказался самым быстрым, но не настолько принципиально быстрее (10 ms vs 50ms) чем Bluetooth, что бы мирится с его недостатками (прищепка на экран).

IR канал (phone=>TSOP1736->STM32F103)

Практически проверен и способ передачи через IR канал. Даже некую реализацию протокола передачи данных пришлось сделать.

Но IR так же оказался не очень удобен (фотодатчик крепить на телефоне неудобно), и не слишком быстрее чем Bluetooth.

WiFi модуль (phone=>ESP8266-RS232->STM32F103)

Результаты проверки этого модуля оказались совершенно обескураживающими. Время выполнения запрос-ответ (эхо) оказалась непредсказуемо плавающим в диапазоне 20-300 ms (в среднем 150 ms). Почему и что – разбираться не стал. Наткнулся только на статью где рассказывалось о неудачной попытке использовать ESP8266 для обмена данными в режиме реального времени с жесткими требованиями по времени запроса/ответа.

Т.е. ESP8266 со «стандартной» прошивкой TCP -> RS232 не годится для подобных целей.

Выбранный вариант управляющего модуля и передачи сигналов

В конечном итоге, после всех экспериментов, был выбран Bluetooth (HC-05 модуль) канал. Дает стабильное (а это самое главное) время передачи данных запрос-ответ в 40ms.

Время довольно большое и сильно влияет на время сканирования (половина от всего времени).
Но лучшего варианта добиться не удалось.

В качестве управляющего модуля широко распространенная плата c SM32F103C8T.

Методы детектирования линии на кадре.

Самый простой способ выделить линии лазере на кадре – это использовать вычитание кадра с выключенным лазером и кадра с лазером.

В принципе, работает и поиск по кадру без вычитания. Но работает значительно хуже при дневном освещении. Хотя и этот режим был оставлен в ПО ради сравнительных тестов (фото режима ниже. Все остальные фотографии с режимом вычитания кадров).


Практическая ценность варианта без вычитания кадров оказалась низка.

Возможно и можно извлечь сигнал лазера из этой зашумленной информации. Однако возится не стал.

Вариант с вычитанием кадров работает хорошо.

Всякие эксперименты с попытками аппроксимации линии и обработкой всего кадра показали, что чем сложнее алгоритм, чем чаще он «ошибается» да еще и тормозит обработку «на лету». Самым быстрым (и простым) оказался алгоритм поиска лазера (лазерной точки) на горизонтальной линии:

  • Для каждой точки линии считается сумма квадратов уровня цвета лазера (RGB) в окне, указанного в конфигурации (13 px – экспериментально оптимальная величина для окна)
  • Точка лазера – середина окна с максимальным значением сумм уровней «цвета».
Время на обработку одного кадра поиском «зеленой» и «красной линии» - 3ms.

Облака точек для красного и зеленого лазера считаются отдельно. При правильной механической юстировке сводятся с точностью < 1 мм.

Точность и юстировка

Точность оказалась в пределах 1 мм на расстоянии 1.2 метров. По большей части обусловлена разрешением камеры телефона (1920x1080) и шириной луча лазера.

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

Статически параметры, выставляются максимально точно один раз:

  1. Тангенс угла поля зрения камеры.
  2. Длинна «плеч» лазеров (от центра объектива до оси вращения).
Ну и конечно же максимальная фокусировка линз лазеров на заданное расстояние сканирования и «вертикальность» линий лазера.

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

Разумеется, оплачивать платную подписку я не стал, поэтому из интересного в бесплатной версии – это возможность выбрать то, что сканируем: карту, документы, удостоверение или QR-код.

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

Присутствует режим пакетного сканирования, а также настройка камеры: сетка, настройка камеры, выбор режима и прочее.

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

Оценка нагрузки на систему

Потребляет этот многофункциональный сканер на удивление мало – 87 Мбайт ОЗУ, 3.5% на процессоре. Аккумулятор проседает на 13% со средним энергопотреблением в 12 мВт. Неплохой показатель, согласитесь.

Приложение выборочно к версии Android, весит в системе 73 Мбайт, не содержит рекламы, но предполагает платную подписку.

Разрешений немного, и они все по делу. Вирусов старина Dr.Web не обнаружил.

А оно надо?

Как и говорилось ранее, платная версия необходима больше бизнес-среде, остальным хватит и бесплатной. В этом случае перед нами нечто среднее между Adobe Scan и Tiny Scanner. Особенно порадовали более подробные настройки, малая нагрузка на систему и предобработка скана.

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

Общая оценка: 5.0 по пятибалльной шкале.
Оценка функциональности: 5.0 по пятибалльной шкале.

Не сканером единым живы

Наконец-то у лидера прошлого обзора – Tiny Scanner – появился достойный конкурент в виде CamScanner. Это разностороннее приложение, которое позволяет делать со сканами все, что угодно, и обеспечивает своеобразный сейф для документов. Конечно, сработает он не во всех инстанциях, но поможет здорово, если вы забыли дома визитку или бланк заявления.

Сводное сравнение Adobe Scan, Tiny Scanner и CamScanner

Функциональность Adobe Scan Tiny Scanner CamScanner
Оценка автора 4.5 5.0 5.0
Интерфейс Русский, однооконный Русский, одноконный Русский, одно окно с сайдбаром слева
Возможность самостоятельной настройки Необходимый минимум Все необходимое Все необходимое
Общая эффективность Хорошо Отлично Отлично
Удобство управления Отлично Отлично Отлично
30% / 75 Мбайт 1.5% / 61 Мбайт 3.5% / 87 Мбайт
Размер после установки 65 Мбайт 70 Мбайт 73 Мбайт
Максимальный расход аккумулятора / энергопотребление 40% / 100 мВт 5% / 5 мВт 13% / 12 мВт
Использование GPS-модуля Нет Нет Нет
Трафик На облако Облако/ftp Фирменное облако
Необходимость в root Нет Нет Нет
Реклама Нет Нет Нет

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

Сводное сравнение характеристик Adobe Scan, Tiny Scanner и CamScanner

Функциональность Adobe Scan Tiny Scanner CamScanner
Оценка автора 5.0 5.0 5.0
Адаптация к низкому разрешению камеры Плохо Отлично Отлично
Возможность выбрать формат листа Нет Да Да
Постобработка изображения Хорошо Отлично Отлично
Выправление разворота Да Нет Нет
Автопоиск документа Да Нет Нет
Работа с облаком Да Да Да
Страница в Google Play

Что обычно печатают на 3D-принтерах? Конечно, трехмерные модели, которые можно получить несколькими методами. Проще всего скачать их в Сети – есть как платные, так и бесплатные варианты. Но для серьезных задач модели обычно создают с нуля: разрабатывают вручную или же делают это при помощи сканера. Оба последних варианта, разумеется, отнюдь не самые дешевые, хотя камера Intel Real Sense может .

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

KinectFusion представлял собой проект по созданию 3D-модели помещения и всех предметов, которые в нем находились, с использованием сенсора Kinect. MobileFusion - это более продвинутая система.

В демонстрационном экземпляре KinectFusion все расчеты выполнялись на компьютере, а в мобильной версии системы вычисления проводятся прямо на смартфоне. Пользователю даже не требуется подключение к Интернету.

Модель формируется на основе кадров из видеоролика с разрешением 320х240 точек, который записывает смартфон. В процессе съемки алгоритм MobileFusion сравнивает каждый последующий кадр с предыдущим, отснятым под незначительно отличающимся углом. Затем на основе полученной информации о глубине создается модель трехмерной решетки.

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

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

На видео, выпущенном корпорацией Microsoft, сравнивается лишь несколько 3D-моделей. Однако компания уверяет, что качество полученной модели будет достаточно хорошим для того, чтобы 3D-принтер превратил ее в физический объект.

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

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

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

Тем не менее, до сих пор это все были 2D-фотографии, которые теряют большую часть своего очарования, заключенные в жесткие рамки. А что, если бы у вас появилась возможность делиться с друзьями трехмерными изображениями блюд?

Если при одной только этой мысли вы начали прыгать от счастья, значит, приложение 3DAround действительно для вас. Данное приложение позволяет делать быстрые объемные фотографии при помощи смартфона. Его разработчики позаботились о том, чтобы оно было простым и удобным: достаточно лишь нажать «запись», обойти вместе с планшетом или телефоном вокруг блюда, и приложение само объединит все фотографии в трехмерное изображение. Разве не здорово?

Однако тут есть две проблемы: во-первых, 3DAround дружит только с ОС iOS 8, которая поставлена не на все продукты Apple. Во-вторых, оно еще не вышло. 3DAround появится в магазине App Store только в следующем месяце и будет доступно на всех моделях iPhone 5 и выше.

Приложение было разработано компанией Dacuda, которая недавно выпустила приложение PocketScan. Данное приложение идеально подходит для быстрого сканирования документов, если у вас под рукой нет сканера. В отличие от него 3DAround всегда находится под правильным углом, потому что для него все углы правильные.

Со слов генерального директора Dacuda Александра Илика, «сейчас самое время для приложений такого типа, ведь компания Apple только что выпустила API для камер. Теперь нам требуется приложить совсем немного усилий, чтобы управлять временем выдержки, фокусом и т.д.» И все эти функции были заложены в iOS 8, объясняя уникальность нового приложения.

А теперь, самое главное. Согласитесь, возможности этого приложения выходят далеко за пределы съемки блюд. С его помощью можно создавать трехмерные фотографии любых предметов. А потом отправлять их на 3D-принтер. Таким образом, ваш телефон превращается в... 3D-сканер. Здорово, правда?

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

Понравилось? Хотите больше? Все самое интересное в еженедельной рассылке.
Отборные новости, конкурсы и обсуждения в официальной группе

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

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

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

Тем не менее, одна компания, все же пытается это изменить. Основанная в ноябре 2013-го года, компания Replica Labs, вела закулисную деятельность по разработке своего приложения под названием Rendor, которое превратит камеру любого смартфона в полноценный 3D-сканер.


«Мы демократизируем 3D-сканирование… без дополнительного оборудования… мы снизили цену на эту технологию до 0$ для всех владельцев смартфонов с доступом к интернету», сказал Исаак Робертс из компании Replica Labs.

В этом приложении будет пять основных шагов, чтобы начать сканирование:

  1. Скачать приложение Rendor, с сайта компании и распечатать сетку для сканирования (которую также можно скачать с их сайта).
  2. Поместить сканируемый объект на сетку.
  3. Открыть приложение Rendor, нажать кнопку «сканировать» и заснять объект на видео с как можно большего количества углов.
  4. После завершения сканирования, нажать кнопку «завершить», и отправить скан на облачный сервер приложения, для дальнейшей обработки.
  5. Получить готовую 3D-модель на свою электронную почту, в течение одной минуты.

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


«Rendor станет бесплатным мобильным приложением для смартфонов, поддерживающих операционные системы Android и iOS», сказал Робертс. «Мы надеемся, что мы сможем дать каждому несколько бесплатных сканирований, 3-5 в месяц, я думаю. Как только пользователь исчерпает лимит своих сканов, ему будет предложено два варианта действий, чтобы делать сканирования еще: поделится приложением с друзьями, или заплатить за дальнейшее использование. Пока что мы не совсем уверены в том, какую цену нам стоит запрашивать, но на данный момент, мы считаем, что она будет составлять 12$-25$ в год».

Оплата приложения, скорее всего, даст возможность к неограниченному количеству сканов. Роберст рассказал, что возможно, они введут два тарифных плана, один из которых будет позволять делать сканы с более высоким разрешением. Такой тарифный план будет стоить несколько больше, чем 12$-25$ в год.

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


«Правительство вложило очень много средств в компанию Robotic Vision. И после того, как наши соучредители Винс и Брэндом, увидели работу ее продукции в их лабораториях, они поняли, что большинству их технологий найдется множество коммерческих применений, и по правде говоря, я солидарен с ними. Все, начиная от одежды и заканчивая зубными щетками, подлежит революции, и мы считаем, что технологии 3D-печати и 3D-сканирования, это то, что запустит новую волну индустриального переворота и совершит следующую индустриальную революцию».

В настоящее время Render находится на стадии закрытого альфа-тестирования, и компания собирается запустить следующий этап теста 4-го июля. В ближайшую неделю, они панируют продемонстрировать работу своей разработки, чтобы вызвать к ней общественный интерес. В добавок, в конце этого месяца, они отправятся в Силиконовую Долину, для сотрудничества с бизнес-ускорителем PlugandPlay . Для начала, они планируют запустить приложение на Android, и немного позже сделать его доступным для владельцев iOS. Также планируется запустить проект на Kickstarter к середине августа нынешнего года. Все желающие протестировать функционал этого приложения, могут зарегистрироваться на их сайте и их стать бета-тестерами.

Альтернатива. Замена воздушного сканирования современными мобильными лазерными сканерами.

Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: