Почти два века существования фотоаппарата, не должны, казалось бы, оставить инженерам шанса добавить «что-то еще». Современные камеры снимают высококачественное видео, выгружают фотографии в облако и привязывают гео-метки. Мы можем снимать панорамы и 360°, следить за звездами и замедлять время. Но прогресс не стоит на месте, а мчится в будущее, подогреваемый пытливыми умами.

image test

Технология, о которой пойдет речь сегодня, не является новой по своей сути. Но способ, которым она реализована, определенно заслуживает внимания. Речь пойдет об интересном light-field объективе, который можно будет использовать с любой DSLR камерой.

Что такое Ligh-field и с чем его едят?


Сам термин light-field (Световое поле) был предложен советским ученым-физиком Гершуном еще в 1936 году в его работе по радиометрическим свойствам света.

Световое поле — это векторная функция описывающая свет, проходящий в любом направлении через точку пространства. image Луч света (а точнее его направление) для данной точки пространства может быть описан пятью параметрами (так называемая 5D-пленоптическая функция): координатами x, y, z и двумя углами θ и ϕ. Путем интегрирования векторов поля, полученных с различных точек зрения, мы получаем величину полной освещенности. А имея полное описание световых лучей в пространстве, мы можем точно определить, например, как выглядит объект с любой точки зрения.

Каково же практическое применение теории светового поля? Одно из наиболее интересных направлений — фотокамеры светового поля (light-field camera). В отличие от классических камер, фиксирующих интенсивность света в точках объекта, камера светового поля также учитывает направление лучей, исходящих и этих точек. Другими словами, мы захватываем «отдельные» лучи света, исходящие от объекта. А это, в свою очередь, позволяет получать физические координаты объектов в пространстве и карту глубин (depth map).

Как устроены камеры светового поля?


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

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

image

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

Однако, данная схема имеет ряд недостатков, таких как дороговизна изготовления, сложность калибровки, управления апертурой и другими параметрами системы. Один из самых известных примеров таких камер — продукт компании Lytro — камера Lytro Illum (проект, кажется, заморожен)

А можно сделать проще?


Можно. Объектив, о котором я хочу рассказать в данной статье, не содержит массива микро-линз. Вместо этого используется система, представляющая собой зеркальный «канал» c прямоугольным сечением (mirror box), где, благодаря многократному отражению, происходит формирование так называемого калейдоскопического изображения, которое фиксируется сенсором камеры обычным способом.

image

Разработкой занимается небольшая немецкая компания. Объектив находится в стадии вполне себе работающего прототипа, а принцип его действия достаточно прост.

Примерно так выглядят изображения, полученные системой:

image

Элементы здесь зеркально отражены. Такая необычная калейдоскопическая картинка — следствие отражения лучей в «зеркальном канале».

А так выглядит абсолютная разность пары восстановленных элементов (яркие пиксели означают бóльшую разность значений):

image

Другими словами, мы имеем не что иное, как стерео-пару. А точнее, стерео-девятку (3х3 элементов). Изменяя геометрические параметры канала, мы можем получить 5х5 и даже большие размерности, что, однако, в реальной жизни смысла не имеет и даже вредит.

Итак, мы имеем набор картинок, формирующих калейдоскопическое изображение. Что же дальше?

Здесь заканчивается теплое аналоговое оптическое hardware, и начинается холодный цифровой soft.

Калибровка


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

Карта глубин


Получив «ровные» картинки, мы можем строить карту глубин (depth map).
Это, пожалуй, самая важная и сложная часть в пайплайне. Качество конечного приложения зависит от качества карты глубин. А качество карты глубин, в свою очередь, зависит от качества калибровки, выбранного алгоритма и «сложности» сцены.

Но вне зависимости от алгоритма, задача всегда одна — найти соответствующие точки изображений Левого и Правого (а в нашем случае + еще 7 изображений) и посчитать расстояние (несоответствие, disparity) между ними. Величина расстояния и будет являться обратной значения глубины для данного пикселя.

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

Среди классических проблем таких алгоритмов:

  • Монотонные, одноцветные поверхности без текстуры — алгоритму просто не за что «зацепиться» в процессе поиска соответствий
  • Перекрывающиеся объекты (видимые с одного угла и невидимые с другого)
  • Тени и отражения на зеркальных или глянцевых поверхностях
  • Регулярные структуры, такие как клетки и полоски создают проблемы, так как не всегда понятно, какая именно клетка изображения А соответствует клетке изоб��ажения B.
  • Границы изображений — проблема схожая с проблемой перекрывающихся объектов. На границах изображений неизбежно теряется информация с какого-нибудь угла зрения.

Существует множество качественных и не очень алгоритмов для построения карты глубин. Наиболее перспективные разработки идут сейчас в области гибридных подходов с использованием классических методов и различных техник машинного обучения (CNN, DNN). Как всегда, выбор алгоритма — это компромисс между скоростью и качеством. К счастью, в фотографии мы можем позволить себе отступить от real-time и получить более качественную карту глубин.

Для нашего же примера карта глубин выглядит как-то так:

image


Пост-фокусировка


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

Попадание мимо фокуса — одна из проблем фотографов. Вы заметили, что на оригинальном изображении вся сцена была в фокусе? Так выглядит пост-фокусировка, основанная на карте глубин:

image

Следует отметить, что с данным подходом мы фактически отвязываемся от физических свойств оптической системы. Это позволяет, к примеру, алгоритмически создавать изображение с несколькими фокусами. Или программно менять глубину резко изображаемого пространства (Depth of Field).

Другие приложения


Пост-фокусировка является хоть и основным, но вс�� же не единственным приложением. Вообще данный объектив можно рассматривать как массив виртуальных камер (9 шт). Соответственно, он применим ко всем тем приложениям, которые вы можете представить для массива камер, например:

  • Поляризационные фильтры – каждый из 9 элементов изображения имеет свой собственный фильтр поляризации с заданным направлением. Это позволяет одним снимком получить 9 изображений с различной поляризаций и даже создавать видео-ряд плавной смены направления поляризации
  • HDR (High-Dynamic-Range) – тот же принцип: 9 различных светофильтров + алгоритм для оптимального «сочетания» яркостей
  • Изменение угла зрения (perspective change)
  • Depth-based editing – позволяет применять различные фильтры к различным глубинам. Например, сделать фон черно-белым, выделив передний план.
  • Сегментация – выделение объектов находящихся на определенном расстоянии
  • Измерение расстояния – линейка для картинок. Особенно хорошо работает для «неглубоких» сцен, для которых disparity вычисляется проще.
  • Приложения для промышленности — различные способы оценки качества производства и мониторинга

Заключение


Вопрос о конечной стоимости этого объектива пока остается открытым, но некоторые физические параметры уже определены. Известно, что длина не должна превышать 20 см, а масса – 800 гр. Заявлено, что данное устройство будет в первую очередь совместимо с камерами Sony, Canon и Nikon.

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

Благодарю за внимание!