Как стать автором
Обновить

Комментарии 33

Теперь можно будет делать трехмерный скан жопы.
не влезет
Мдя, с габаритами, которые аппарат принимает — даже детскую не сосканируешь.
По частям.
Ваш комментарий напомнил мне сюжет со сканером из этой флеш-игры.
Мы бы приобрели для своей компании. Сканировать детали и на их основании создавать модель. Самое основное — форматы в которые софт сможет вывести изображение.
Поправил.
Очень интересен принцип работы, так как на самом деле это далеко не тривиальная задача. На сайте у них об этом совсем немного информации.
Вариантов, по сути, два:
— лазерное сканирование (wikipedia)
— построение облака точек на основе фото-панорам (как это делает 123D Catch)
Это интерферометрия фазового сдвига судя по тому чем освещают объект
Я сам занимался этим на бакалаврской работе.

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

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

Принципиального решения для полной автоматизации цветного глянцевого объекта — нет.
Ну и естественно с помощью этого метода никогда не получится сканирование прозрачных и полупрозрачных объектов.
Они пишут про «phase-shifted structured light», при этом говорят, что триангуляции у них нет. Честно говоря, не верю.
Либо Structure Light — освещаете светом, модулированным по углу (можно со сдвигом фазы, меняя периоды и т.п.) и смотрите сбоку. Фаза освещения даёт угол с точки зрения проектора, а положение точки на кадре позволяет триангуляцией вытащить саму точку.
Либо модулированное освещение. На частоте не меньше 500 МГц (для этих размеров и точности меньше не хватит). Замодулировать так лазер или светодиод не проблема. Но чем принимать изображение, чтобы не потерять фазу на этой частоте — не понимаю.
Думаю, что это просто структурный свет. За последние 15 лет таких много было. И для небольших объектов приемлемый результат получить можно, чем дальше — тем проще (с учётом роста вычислительной мощности).
Это и есть простое структурное освещение, фаза — здесь это фаза той самой структурированной волны.
Между проектором и камерой естественно должен быть угол, для того чтобы увидеть искажение «псевдоинтерференционной картины».
По сути тут интерферометрия фазового сдвига применяется только в области математики и позволяет вычислять довольно точное значение в каждой точке изображения.

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

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

И соответственно, восстановленная поверхность сферы превращается вот в такую штуку.
image
И на самом деле этот эффект отлично виден на модельке дракона на кикстартере.

Не знаю как они собираются обходить этот момент. Возможно усреднением точек взятых с разных ракурсов, но из моего опыта — это особо не поможет.
А можно уточнить — «фазовый сдвиг», о котором вы говорите — это на каких частотах? На световых? На временнОй модуляции освещения? Или речь идёт о какой-нибудь пространственной модуляции?

Если на пространственной, то никакого искажения быть не должно. Мы модулируем освещение как A(u,phi)=(1+sin(u*w+phi)), где u — горизонтальный угол направления луча (в градусах), а w — пространственная частота (измеряется в обратных градусах). Камера видит освещение в точке pt, попавшей на угол u, равным p(pt,phi)=A(u,phi)*C(pt), где C — коэффициент, зависящий от материала, ориентации и прочего, но не зависящий от A. Сделав 4 снимка с phi=0,pi/2,pi,3/2*pi (т.е. сдвигая синусоиду на четверть периода), получим 4 значения p0,p1,p2,p3. И по ним легко найдём u*w=atan2(p1-p3,p0-p2). Никакие свойства материала нам не помешают (за исключением зеркальности, прозрачности и изменений внешней засветки). А зная угол (т.е. направление от проектора на точку) и пиксель, в который попало её изображение, получим и расстояние.
А можно просто взять стереофотоаппарат и получить из стереофото карту глубины. Без всяких фаз света. Но тоже не идеально, да. Поэтому и был придуман Kinnect с лазерной сеткой.
Просто в теории, этим методом на матовом белом объекте можно получить реально высокую точность — порядка сотых долей милиметра.
Не очень понятно. Чтобы получить точность в сотые доли миллиметра, нужно, чтобы камера была сфокусирована так, чтобы область размытия точки (или как она называется?) была в те же сотые доли миллиметра. Какая же это глубина резкости получится? 1-2 мм? А если зажать диафрагму — начнет влиять дифракция. В общем, вылезут те же проблемы, что в макросъёмке. Даже лазер удаётся сфокусировать в 50-мкм точку на отрезке длиной 5 мм, не более. Что же говорить о камерах?
Нужно чтобы глубина резкости покрывала область сканирования и пятно размытия было меньше пикселя камеры.
Дифракция в этом методе ни на что не влияет.
Дифракция влияет на фокусировку камеры так же, как на лазер. Как у лазера есть определенное соотношение между углом расхождения (который влияет на ГРИП) и диаметром в точке фокусировки, так и у камеры работает оно же — только в обратном направлении. И на «сотых долях миллиметра» этот эффект уже становится заметен. В ИК-съёмке, например, он проявляется ещё сильнее — известно, что там фотографировать на зажатой диафрагме хуже, чем на почти открытой: дифракция на длинных волнах портит всю достигнутую закрытой диафрагмой резкость.
Я посмотрел на тени, и понял что это легко решается с помощью обратных задач, преобразованием Радона можно даже наверно ограничиться.
Поправочка, свет не проходит сквозь материал, так что преобразованием Радона не ограничиться (разве что если рентгеновкими лучами исследовать объект). Поэтому получается всё равно обратная задача.
Это не первый любительский проект сканера. Рекомендую вот с этим ознакомиться: www.david-laserscanner.com/forum/viewtopic.php?t=3167 и вообще, по сайту. Саму технику для сканера + софт можно купить у автора (технику можно и самому собрать).
Точность можете видеть по фотографиям.

Теперь надо это добро с 3D принтером соединить)
дак пробовали. на практике получается, что быстрее смоделить объект, чем отсканировать и расчистить его поверхность
3d МФУ круть :-)
Ждём пост про вариант за 20 баксов.
Не поленитесь, введите в поиск habra сверху крана строку '3d сканер', там будет полно вариантов, от самодельного рентгеновского сканера до сканера за 30$
На основе кинекта какого-нибудь.
Так себе поделка.
Был же пост на хабре о русской конторе которая сделала ручные 3д сканеры. (вроде как они же сделали сканер для СКД (которые сейчас в офисе крока стоят)).
Так эти сканеры сканят объект за секунды. Просто берёшь прибор и водишь вокруг снимаемого объекта.
А они дают точность 0.2 мм?
Действительно. И недорого — всего 9700 евро.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории