Почти два века существования фотоаппарата, не должны, казалось бы, оставить инженерам шанса добавить «что-то еще». Современные камеры снимают высококачественное видео, выгружают фотографии в облако и привязывают гео-метки. Мы можем снимать панорамы и 360°, следить за звездами и замедлять время. Но прогресс не стоит на месте, а мчится в будущее, подогреваемый пытливыми умами.
Технология, о которой пойдет речь в сегодня, не является новой по своей сути. Но способ, которым она реализована, определенно заслуживает внимания. Речь пойдет об интересном light-field объективе, который можно будет использовать с любой DSLR камерой.
Что такое Ligh-field и с чем его едят?
Сам термин light-field (Световое поле) был предложен советским ученым-физиком Гершуном еще в 1936 году в его работе по радиометрическим свойствам света.
Световое поле — это векторная функция описывающая свет, проходящий в любом направлении через точку пространства. Луч света (а точнее его направление) для данной точки пространства может быть описан пятью параметрами (так называемая 5D-пленоптическая функция): координатами x, y, z и двумя углами θ и ϕ. Путем интегрирования векторов поля, полученных с различных точек зрения, мы получаем величину полной освещенности. А имея полное описание световых лучей в пространстве, мы можем точно определить, например, как выглядит объект с любой точки зрения.
Каково же практическое применение теории светового поля? Одно из наиболее интересных направлений — фотокамеры светового поля (light-field camera). В отличие от классических камер, фиксирующих интенсивность света в точках объекта, камера светового поля также учитывает направление лучей, исходящих и этих точек. Другими словами, мы захватываем «отдельные» лучи света, исходящие от объекта. А это, в свою очередь, позволяет получать физические координаты объектов в пространстве и карту глубин (depth map).
Как устроены камеры светового поля?
Мы уже знаем, что камера такого типа должна фиксировать не только интенсивность, но и направление световых лучей, исходящих от объекта. Один из способов реализации — использование массива линз перед оптическим сенсором. Эти линзы собирают лучи света от объекта, расположенного в определенной части сцены, и фокусируют их на сенсор.
Важно понимать, что в данном случае основная линза объектива больше не фокусирует изображение на сенсоре. Вместо этого лучи проецируются на плоскость массива линз (в классических камерах, сенсор находится как раз в этой плоскости), проходят массив линз, и лишь потом падают на сенсор, формируя мозаичное изображение различных частей сцены.
На рисунке показана упрощенная схема работы такого объектива. Благодаря хитрой организации оптической системы, в конечном счете мы получаем не одно, а множество изображений объекта, причем каждое такое изображение создает уникальное представление объекта со своего уникального угла зрения.
Однако, данная схема имеет ряд недостатков, таких как дороговизна изготовления, сложность калибровки, управления апертурой и другими параметрами системы. Один из самых известных примеров таких камер — продукт компании Lytro — камера Lytro Illum (проект, кажется, заморожен)
А можно сделать проще?
Можно. Объектив, о котором я хочу рассказать в данной статье, не содержит массива микро-линз. Вместо этого используется система, представляющая собой зеркальный «канал» c прямоугольным сечением (mirror box), где, благодаря многократному отражению, происходит формирование так называемого калейдоскопического изображения, которое фиксируется сенсором камеры обычным способом.
Разработкой занимается небольшая немецкая компания. Объектив находится в стадии вполне себе работающего прототипа, а принцип его действия достаточно прост.
Примерно так выглядят изображения, полученные системой:
Элементы здесь зеркально отражены. Такая необычная калейдоскопическая картинка — следствие отражения лучей в «зеркальном канале».
А так выглядит абсолютная разность пары восстановленных элементов (яркие пиксели означают бóльшую разность значений):
Другими словами, мы имеем не что иное, как стерео-пару. А точнее, стерео-девятку (3х3 элементов). Изменяя геометрические параметры канала, мы можем получить 5х5 и даже большие размерности, что, однако, в реальной жизни смысла не имеет и даже вредит.
Итак, мы имеем набор картинок, формирующих калейдоскопическое изображение. Что же дальше?
Здесь заканчивается теплое аналоговое оптическое hardware, и начинается холодный цифровой soft.
Калибровка
Вне зависимости от приложения, изображения необходимо восстановить (нужно откалибровать всю оптическую систему, а полученные данные калибровки применить к картинкам). Процесс довольно нудный, но важный, так как различные элементы калейдоскопического изображения обязательно должны быть «согласованы» друг с другом (даже незначительные /несколько пикселей/ расхождения элементов, могут сильно испортить результат и впечатление). Существует множество работ на тему калибровки, так что раскрывать детали нет смысла. Нужно лишь запомнить, что калибровка очень важна для любых стерео-приложений.
Карта глубин
Получив «ровные» картинки, мы можем строить карту глубин (depth map).
Это, пожалуй, самая важная и сложная часть в пайплайне. Качество конечного приложения зависит от качества карты глубин. А качество карты глубин, в свою очередь, зависит от качества калибровки, выбранного алгоритма и «сложности» сцены.
Но вне зависимости от алгоритма, задача всегда одна — найти соответствующие точки изображений Левого и Правого (а в нашем случае + еще 7 изображений) и посчитать расстояние (несоответствие, disparity) между ними. Величина расстояния и будет являться обратной значения глубины для данного пикселя.
Зачем использовать 9 изображений, если можно обойтись двумя? Очевидно, используя больше изображений, мы имеем больше информации о сцене и можем отчасти решить некоторые проблемы существующих алгоритмов оценки карты глубин.
Среди классических проблем таких алгоритмов:
- Монотонные, одноцветные поверхности без текстуры — алгоритму просто не за что «зацепиться» в процессе поиска соответствий
- Перекрывающиеся объекты (видимые с одного угла и невидимые с другого)
- Тени и отражения на зеркальных или глянцевых поверхностях
- Регулярные структуры, такие как клетки и полоски создают проблемы, так как не всегда понятно, какая именно клетка изображения А соответствует клетке изображения B.
- Границы изображений — проблема схожая с проблемой перекрывающихся объектов. На границах изображений неизбежно теряется информация с какого-нибудь угла зрения.
Существует множество качественных и не очень алгоритмов для построения карты глубин. Наиболее перспективные разработки идут сейчас в области гибридных подходов с использованием классических методов и различных техник машинного обучения (CNN, DNN). Как всегда, выбор алгоритма — это компромисс между скоростью и качеством. К счастью, в фотографии мы можем позволить себе отступить от real-time и получить более качественную карту глубин.
Для нашего же примера карта глубин выглядит как-то так:
Пост-фокусировка
Карту глубин мы получили, что теперь с ней делать? Информация об удаленности предметов часто бывает полезной. Одно из популярных приложений – пост-фокусировка.
Попадание мимо фокуса — одна из проблем фотографов. Вы заметили, что на оригинальном изображении вся сцена была в фокусе? Так выглядит пост-фокусировка, основанная на карте глубин:
Следует отметить, что с данным подходом мы фактически отвязываемся от физических свойств оптической системы. Это позволяет, к примеру, алгоритмически создавать изображение с несколькими фокусами. Или программно менять глубину резко изображаемого пространства (Depth of Field).
Другие приложения
Пост-фокусировка является хоть и основным, но все же не единственным приложением. Вообще данный объектив можно рассматривать как массив виртуальных камер (9 шт). Соответственно, он применим ко всем тем приложениям, которые вы можете представить для массива камер, например:
- Поляризационные фильтры – каждый из 9 элементов изображения имеет свой собственный фильтр поляризации с заданным направлением. Это позволяет одним снимком получить 9 изображений с различной поляризаций и даже создавать видео-ряд плавной смены направления поляризации
- HDR (High-Dynamic-Range) – тот же принцип: 9 различных светофильтров + алгоритм для оптимального «сочетания» яркостей
- Изменение угла зрения (perspective change)
- Depth-based editing – позволяет применять различные фильтры к различным глубинам. Например, сделать фон черно-белым, выделив передний план.
- Сегментация – выделение объектов находящихся на определенном расстоянии
- Измерение расстояния – линейка для картинок. Особенно хорошо работает для «неглубоких» сцен, для которых disparity вычисляется проще.
- Приложения для промышленности — различные способы оценки качества производства и мониторинга
Заключение
Вопрос о конечной стоимости этого объектива пока остается открытым, но некоторые физические параметры уже определены. Известно, что длина не должна превышать 20 см, а масса – 800 гр. Заявлено, что данное устройство будет в первую очередь совместимо с камерами Sony, Canon и Nikon.
За рамками статьи остались такие важные темы как практическое использование с видоискателями стандартных камер, восстановление разрешения (super-resolution), алгоритмы обработки и интеграция с графическими редакторами. Обо этом я расскажу в следующий раз.
Благодарю за внимание!
Автор: Zaur Aliev