Time of flight

    Знаєте, мене часом дивує химерна структура громадської думки. Взяти наприклад технологію 3D-візуалізації. Величезний суспільний резонанс викликають останнім часом технології очок віртуальної реальності: Oculus Rift , Google Glass . Але ж нічого нового тут немає, перші шоломи віртуальної реальності з'явилися ще наприкінці 90-х. Так, вони були складні, вони випередили свій час, але чому тоді це не викликало такого WOW-ефекту? Або 3D-принтери. Статті про те як вони круті або як швидко вони захоплять світ з'являються в інформаційному полі два рази на тиждень останні роки три. Я не сперечаюся, це круто і світ вони таки захоплять. Але ж ця технологія була створена ще в 1980х і відтоді мляво прогресує. 3D-телебачення? 1915 рік…
 
Технології всі ці гарні і цікаві, але звідки стільки галасу через кожного чиха?
 
Що, якщо я скажу, що в останні 10 років була винайдена, розроблена і впроваджена в масове виробництво технологія 3D зйомки, дуже сильно відрізняється від будь-якої іншої? При цьому технологія вже повсюдно використовувана. Налагоджена і доступна простим людям в магазинах. Ви чули про неї? (Напевно тільки фахівці з робототехніки і супутнім областям науки вже здогадалися, що я говорю про ToF-камери).
 
Що таке ToF камера? У російській Вікіпедії (англ ) ви не знайдете навіть коротенького згадки про те, що це таке. «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». Дається імпульс і в кожній точці матриці вимірюється точний час його повернення:
 
По суті матриця складається з тригерів, що спрацьовують по фронту хвилі. Такий же спосіб використовується в оптичних синхронах для спалахів. Тільки тут на порядки точніше. У цьому-то і основна складність цього методу. Потрібно дуже точне детектування часу спрацьовування, що вимагає специфічних технічних рішень (яких — я не зміг знайти). Зараз такі сенсори тестує NASA для посадочних модулів своїх кораблів .
 
А ось картинки які вона видає:
 
Підсвічування на них вистачає, щоб тригери спрацьовували на оптичний потік відбитий з відстані порядку 1 кілометра. На графіку наведено число спрацювали в матриці пікселя в залежності від відстані 90% працюють на відстані в 1км:
 
Другий спосіб — постійна модуляція сигналу. Випромінювач посилає деяку модульовану хвилю. Приймач знаходить максимум кореляції того, що він бачить з цією хвилею. Це визначає час, який сигнал витратив на те, щоб відбитися і прийти на приймач.
 
Нехай випромінюється сигнал:
 
де w — модулюючий частота. Тоді прийнятий сигнал буде виглядати як:
 
де b-певний зсув, a-амплітуда. Кореляція вхідного і вихідного сигналу:
 
 
Але повну кореляцію з усіма можливими зрушеннями за часом призвести досить складно за реальний час в кожному пікселі. Тому використовується хитрий фінт вухами. Отриманий сигнал приймається в 4 сусідніх пікселя зі зрушенням в 90 ⁰ по фазі і корелюється сам з собою:
 
Тоді зсув по фазі визначається як:
 
Знаючи отриманий зсув по фазі і швидкість світла отримуємо дальність до об'єкта:
 
Ці камери трохи простіше, ніж ті, що побудовані за перші технології, але все одно складні і дороги. Робить їх ось ця компанія . І коштують вони порядку 4кілобаксов . Зате сімпатішние і футуристичні:
 
Третя технологія — " Range gated imagers ". По суті затворна камера. Ідея тут на диво проста і не вимагає ні високоточних приймачів, ні складної кореляції. Перед матрицею варто затвор. Припустимо, що він у нас ідеальний і працює моментально. У момент часу 0 включається освітлення сцени. Затвор закривається в момент часу t. Тоді об'єкти, розташовані далі, ніж t / (2 ∙ c), де с — швидкість світла видно не будуть. Світло просто не встигне долетіти до них і повернутися назад. Точка, розташована впритул до камери висвітлюватиметься весь час експозиції t і мати яскравість I. Значить будь-яка точка експозиції буде мати яскравість від 0 до I, і ця яскравість буде репрезентацією відстані до точки. Чим яскравіше — тим ближче.
Залишилося зробити всього пару дрібниць: ввести в модель час закриття затвора і поведінку матриці при цій події, неідеальність джерела освітлення (для точкового джерела світла залежність дальності і яскравості НЕ БУДЕ лінійної), різну відображає здатність матеріалів. Це дуже великі і складні завдання, які автори пристроїв вирішили.
Такі камери самі неточні, але зате самі прості і дешеві: всю складність в них становить алгоритм. Хочете приклад того як виглядає така камера? Ось він:
 
Так-так, у другому Kinect стоїть саме така камера. Тільки не варто плутати друге Kinect з першим (на Хабре колись давно була хороша і детальна стаття де все ж переплутали). У першому Kinect використовується структурована підсвічування . Це куди більш стара, менш надійна і більш повільна технологія:
 
Там використовується звичайна інфрачервона камера, яка дивиться на проектований патерн. Його спотворення визначають дальність (порівняння методів можна подивитися ось тут ).
Але Kinect далеко не єдиний представник на ринку. Наприклад Intel випускає камеру за 150 доларів, яка видає 3д карту зображення. Вона орієнтована на більш ближню зону, але у них є SDK для аналізу жестів в кадрі. Ось ще один варіант від SoftKinetic (у них теж є SDK, плюс вони якось зав'язані на texas instruments).
 
 
Сам я, правда досі не стикався ні з однією з цих камер, що шкода і прикро. Але, думаю і сподіваюся, що через п'ят років вони увійдуть в ужиток і моя черга настане. Наскільки я знаю, їх активно використовують при орієнтації роботів, впроваджують в системи розпізнавання по особам. Коло завдань і застосувань дуже широкий.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.