Первая попытка 3д-сканирования
- Внутри корпуса 2 rgb камеры и проектор ИК-паттерна.
- SDK с открытым кодом, драйвер в user-mode, тоже открытый, можно подключать и к ARM-системам (Android), и к интелловским. Но андройд приходится рутовать, чтобы нативный код с доступом к USB работал. Вот бы написать драйвер полностью на Java. Хотя это должна быть посильная задача.
- Firmware закрытый, обещают что его будут дорабатывать. Есть MIPI-разём для синхронизации нескольких камер и ещё бог знает чего, про него не говорят. Как я понял, сейчас нет синхронизации между потоками модуля глубины и rgb, во всяком случае firmware не сообщает внутренний таймстамп к кадрам, приходится пользоваться таймстампом хоста.
- Обе rgb-камеры стримают raw с разрешением 1920 x 1080 30фпс (или меньше, при этом можно иметь до 60 фпс).
- Модуль глубины тоже стримает свой поток с разрешением до 1280 x 720 до 90 fps.
- Стримить можно либо всё, либо по-отдельности. Всё вместе на максималке может не вместиться в полосу USB3, создал тему https://communities.intel.com/thread/126389 - но мне там говорят, что это из-за процессора, хотя я в это не верю до конца. Сам тестировал на разных системах, чем система новее - тем работает лучше (стримы не виснут, доступно большее разрешение и т.д.).
- Камера эффективна на расстояниях 0.2 - 10м. Очевидно, чем дальше - тем точность хуже.
На выходе с камеры мы получаем облако точек, которое вычисляется внутренним процессором. Как мне кажется, это делается весьма достойно, пробовал сканировать достаточно мелкие объекты (клавиатуру). По наивной прикидке, при расстоянии в 30 см, при 16-битах глубины, можно будет различать 0,004 мм, но на деле будет 1мм, а если постараться, то можно получить 0.3 мм, https://github.com/IntelRealSense/librealsense/issues/999 Впрочем я не смог отсканировать монетку, границы монетки определяются, а то что на ней нарисовано - уже нет, это было ожидаемо. Делаю вывод, что разрешение по глубине хуже разрешения моего 3д-принтера, но не намного.
Мне интересно сделать свой 3д-сканер ручного типа. Затея больше упирается в программирование. От алгоритмических проблем 3д-сканирования я сейчас достаточно далёк.
Как мне кажется, основная проблема - это совмещение полученных облаков из точек в одно целое. Ведь невозможно захватить все точки со всех сторон сразу только одной камерой. Это должно быть похоже на задачу определения гомографий - https://en.wikipedia.org/wiki/Homography_(computer_vision) - т.е. когда в серии кадров находятся особые точки, зафиксированные относительно друга. Как частный случай - глаза, нос, рот. Если отслеживать эти точки в системе отсчёта координат, свзяанной с камерой, то можно вычислить преобразование координат, соответствующее перемещению камеры между соседними кадрами. Сейчас я пользуюсь Meshlab, там особые точки задаются вручную, и совмещение происходит более-менее автоматически. Чтобы помочь процессу поиска гомографии, хочу применить инерциальные датчики. Пока я делал только виброметр (если кому интересно - может поможет для оценки вибрации принтеров, см. https://bitbucket.org/Bangybug/vibrometer/src/master/).
В 3д-сканировании есть задача удаления лишних точек (фон). Сейчас я её тоже выполняю вручную, выделяя в Meshlab только то что нужно, а остальное удаляю. В SDK к камере есть пример удаления фона с фотографий (удобно для съёмки ведущей прогноза погоды), и это должно подойти при задачу автоматизации удаления лишних точек.
Когда пытался отсканировать себя, то сразу же столкнулся с проблемой освещения. Когда камера стоит стационарно, а сам ты поворачиваешься около неё, то при совмещении снимков получается вот такое:
Еще больше интересных статей
Доработка кувшина для пакетов.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Для улучшения загрузки пакета, добавил легк...
Тантра
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Вот что получается. Вро...
Придумал, экструдер.....
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.


Комментарии и вопросы
Хорошо. А зачем именно 3д печа...
Нет, все из детства....))
Она на fab365 есть бесплатная,...
Принтер новый, прошит zmod, вс...
Прошу прощения за вопрос не по...
Всем привет. Кто знает, как с...
Всем привет!Подскажите советом...