Microsoft превращает камеру в датчик глубины

На проходящей в Ванкувере конференции по компьютерной графике SIGGRAPH группа исследователей из Microsoft Research представила оригинальный способ превратить простую веб-камеру или камеру смартфона в датчик глубины, аналогичный по функциональности сенсору Kinect.

Схожий проект Google Tango поднял функциональность гаджетов на новый уровень и сильно укрепил позиции компании на мобильном рынке. С помощью смартфона буквально за одну-две минуты стала возможна трёхмерная оцифровка любых объектов и даже сканирование помещений. Теперь и в Microsoft нашли способ научить обычные камеры работать в 3D.

Модифицированная Microsoft LifeCam работает как датчик глубины (фото:  Sean Fanello).
Модифицированная Microsoft LifeCam работает как датчик глубины (фото: Sean Fanello).

В современных камерах используются CMOS-матрицы пяти разных типов, но при этом все они чувствительны к ближнему инфракрасному свету. Поэтому в них обычно установлен ИК-фильтр, уменьшающий засветку.

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

Для демонстрации концепции группа во главе с Шоном Райаном Фанелло (Sean Ryan Fanello) внесла изменения в конструкцию Microsoft LifeCam. Вокруг объектива было установлено внешнее кольцо с ИК-светодиодами, встроенный инфракрасный фильтр удалён, а вместо него установлен другой – блокирующий свет в видимой части спектра.

Превращение камеры смартфона в 3D-сканер (фото: research.microsoft.com).
Превращение камеры смартфона в 3D-сканер (фото: research.microsoft.com).

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

Бета-версия мобильного приложения интерпретирует данные от модифицированной камеры на лету, отрисовывая трёхмерную модель объекта перед ней и фиксируя все его движения.

Разработчики поясняют, что для определения расстояния используется изменение интенсивности отражённого света и других физических величин. Сама отражающая способность поверхностей остаётся неизменной, но эффективность подсветки падает с увеличением дистанции. Поэтому по мере движения объекта меняется не только его угловой размер но и общая яркость.

Распознавание движений со скоростью 220 FPS (фото: Microsoft).
Распознавание движений со скоростью 220 FPS (фото: Microsoft).

Упрощённо говоря, объекты выглядят более яркими когда находятся ближе к массиву ИК-светодиодов и тускнеют по мере удаления от них. Помимо веб-камеры для тестов использовался смартфон Samsung Galaxy Nexus. Технологии машинного обучения задействовали для того, чтобы научить программу отличать маленькую руку вблизи от большой руки на удалении.

Пока демонстрационный экземпляр не может похвастаться «всеядностью» из-за узкого спектра и единственного сенсора. Он хорошо оцифровывает поднесённую руку, распознаёт лица и реагирует на мимику, но программа сбивается при анализе разных предметов. Происходит это из-за их разной отражающей способности (альбедо) и температуры.

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

Жестовое управление на примере игры Fruit Ninja (фото: Microsoft).
Жестовое управление на примере игры Fruit Ninja (фото: Microsoft).

Ключевая идея группы Райана состоит в том, чтобы обеспечить всем заинтересованным людям более простой способ оцифровки в объёме и разработки 3D-приложений. Вместо установки пары дорогостоящих специализированных сенсоров такая простая конструкция снизит затраты на изготовление бюджетных версий смартфонов и других гаджетов с поддержкой трёхмерной оцифровки.

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

Что будем искать? Например,ChatGPT

Мы в социальных сетях