- PVSM.RU - https://www.pvsm.ru -

Time of flight

Знаете, меня порой удивляет причудливая структура общественного мнения. Взять к примеру технологию 3D-визуализации. Огромный общественный резонанс вызывают в последнее время технологии очков виртуальной реальности: Oculus Rift [1], Google Glass [2]. Но ведь ничего нового тут нет, первые шлемы виртуальной реальности появились ещё в конце 90-х. Да, они были сложны, они опередили своё время, но почему тогда это не вызывало такого WOW-эффекта? Или 3D-принтеры. Статьи о том как они круты или как быстро они захватят мир появляются в информационном поле два раза в неделю последние года три. Я не спорю, это круто и мир они таки захватят. Но ведь эта технология была создана ещё в 1980х и с тех пор вяло прогрессирует. 3D-телевидение? 1915 [3] год…

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

Что, если я скажу, что в последние 10 лет была изобретена, разработана и внедрена в массовое производство технология 3D съёмки, очень сильно отличающаяся от любой другой? При этом технология уже повсеместно используемая. Отлаженная и доступная простым людям в магазинах. Вы слышали про неё? (наверное только специалисты по робототехнике и сопутствующим областям науки уже догадались, что я говорю про ToF-камеры).
Time of flight
Что такое ToF камера? В русской Википедии (англ [4]) вы не найдёте даже коротенького упоминания о том, что это такое. «Time of flight camera» переводится как «Времяпролётная камера». Камера определяет дальность через скорость света, измеряя время пролёта светового сигнала, испускаемого камерой, и отражённого каждой точкой получаемого изображения. Сегодняшним стандартом является матрица 320*240 пикселей (следующее поколение будет 640*480). Камера обеспечивает точность измерения глубины порядка 1 сантиметра. Да-да. Матрица из 76800 сенсоров, обеспечивающих точность измерения времени порядка 1/10,000,000,000 (10^-10) секунды. В продаже. За 150 баксов. А может вы ею даже пользуетесь.
А теперь чуть подробнее про физику, принцип работы, и где вы встречали эту прелесть.

Существуют три основных типа ToF-камер. Для каждого из типов используется своя технология измерения дальности положения точки. Самая простая и понятная — «Pulsed Modulation» она же «Direct Time-of-Flight imagers ». Даётся импульс и в каждой точке матрицы измеряется точное время его возвращения:
Time of flight
По сути матрица состоит из триггеров, срабатывающих по фронту волны. Такой же способ используется в оптических синхронах для вспышек. Только тут на порядки точнее. В этом-то и основная сложность этого метода. Требуется очень точное детектирование времени срабатывания, что требует специфических технических решений (каких — я не смог найти). Сейчас такие сенсоры тестирует NASA для посадочных модулей своих кораблей [5].
Time of flight
А вот картинки которые она выдаёт:
Time of flight
Подсветки на них хватает, чтобы триггеры срабатывали на оптический поток отражённый с расстояния порядка 1 километра. На графике приведено число сработавших в матрице пикселя в зависимости от расстояния 90% работают на расстоянии в 1км:
Time of flight
Второй способ — постоянная модуляция сигнала. Излучатель посылает некоторую модулированную волну. Приёмник находит максимум корреляции того, что он видит с этой волной. Это определяет время, которое сигнал потратил на то, чтобы отразиться и прийти на приёмник.
Time of flight
Пусть излучается сигнал:
Time of flight
где w — модулирующая частота. Тогда принятый сигнал будет выглядеть как:
Time of flight
где b-некий сдвиг, a-амплитуда. Корреляция входящего и исходящего сигнала:
Time of flight
Time of flight
Но полную корреляцию со всеми возможными сдвигами по времени произвести достаточно сложно за реальное время в каждом пикселе. Поэтому используется хитрый финт ушами. Полученный сигнал принимается в 4 соседних пикселя со сдвигом в 90⁰ по фазе и коррелируется сам с собой:
Time of flight
Тогда сдвиг по фазе определяется как:
Time of flight
Зная полученный сдвиг по фазе и скорость света получаем дальность до объекта:
Time of flight
Эти камеры чуть попроще, чем те, что построены по первой технологии, но всё равно сложны и дороги. Делает их вот эта компания [6]. И стоят они порядка 4килобаксов [7]. Зато симпатишные и футуристичные:
Time of flight
Третья технология — " Range gated imagers ". По сути затворная камера. Идея тут до ужаса проста и не требует ни высокоточных приёмников, ни сложной корреляции. Перед матрицей стоит затвор. Предположим, что он у нас идеальный и работает моментально. В момент времени 0 включается освещение сцены. Затвор закрывается в момент времени t. Тогда объекты, расположенные дальше, чем t/(2∙c), где с — скорость света видны не будут. Свет просто не успеет долететь до них и вернуться назад. Точка, расположенная вплотную к камере будет освещаться всё время экспозиции t и иметь яркость I. Значит любая точка экспозиции будет иметь яркость от 0 до I, и эта яркость будет репрезентацией расстояния до точки. Чем ярче — тем ближе.
Осталось сделать всего пару мелочей: ввести в модель время закрытия затвора и поведение матрицы при этом событии, неидеальность источника освещения (для точечного источника света зависимость дальности и яркости не будет линейной), разную отражающую способность материалов. Это очень большие и сложные задачи, которые авторы устройств решили.
Такие камеры самые неточные, но зато самые простые и дешёвые: всю сложность в них составляет алгоритм. Хотите пример того как выглядит такая камера? Вот он:
Time of flight
Да-да, во втором Kinect стоит именно такая камера. Только не стоит путать второй Kinect с первым (на хабре когда-то давно была хорошая и подробная статья [8] где всё же перепутали). В первом Kinect используется структурированная подсветка [9]. Это куда более старая, менее надёжная и более медленная технология:
Time of flight Time of flight
Там используется обычная инфракрасная камера, которая смотрит на проектируемый паттерн. Его искажения определяют дальность (сравнение методов можно посмотреть вот тут [10]).
Но Kinect далеко не единственный представитель на рынке. Например Intel выпускает камеру [11] за 150 долларов, которая выдаёт 3д карту изображения. Она ориентирована на более ближнюю зону, но у них есть SDK для анализа жестов в кадре. Вот ещё один вариант [12] от SoftKinetic (у них тоже есть SDK, плюс они как-то завязаны на texas instruments).
Time of flight Time of flight
Time of flight
Сам я, правда до сих пор не сталкивался ни с одной из этих камер, что жалко и досадно. Но, думаю и надеюсь, что через пяток лет они войдут в обиход и моя очередь настанет. Насколько я знаю, их активно используют при ориентации роботов, внедряют в системы распознавания по лицам. Круг задач и применений очень широк.

Автор: ZlodeiBaal

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/news/61022

Ссылки в тексте:

[1] Oculus Rift: http://ru.wikipedia.org/wiki/Oculus_Rift

[2] Google Glass: http://ru.wikipedia.org/wiki/Google_Glass

[3] 1915: http://en.wikipedia.org/wiki/3D_film

[4] англ: http://en.wikipedia.org/wiki/Time_of_flight_camera

[5] кораблей: http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20130013472.pdf

[6] компания: http://www.mesa-imaging.ch/home/

[7] 4килобаксов: http://www.robotshop.com/en/catalogsearch/result/?q=MESA&order=stats_sales_order_count&dir=desc

[8] статья: http://habrahabr.ru/post/109337/

[9] структурированная подсветка: http://en.wikipedia.org/wiki/Structured-light_3D_scanner

[10] тут: http://www.ti.com/ww/en/analog/3dtof/index.shtml?DCMP=hpa_contributed_article&HQS=3dtof-ca

[11] камеру: http://click.intel.com/intelsdk/Default.aspx

[12] вариант : http://www.softkinetic.com/Store/tabid/579/ProductID/6/language/en-US/Default.aspx

[13] Источник: http://habrahabr.ru/post/224605/