Почти два века существования фотоаппарата, не должны, казалось бы, оставить инженерам шанса добавить «что-то еще». Современные камеры снимают высококачественное видео, выгружают фотографии в облако и привязывают гео-метки. Мы можем снимать панорамы и 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

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

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

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), алгоритмы обработки и интеграция с графическими редакторами. Об этом я расскажу в следующий раз.

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

Комментарии (35)


  1. igruh
    22.06.2018 11:39

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


    1. RusikR2D2
      22.06.2018 12:27
      +2

      В случае с этим «зеркальным» объективом имеет место аналогичный недостаток. Итоговое разрешение — 1\9 (или даже меньше, если используется какой-то технологический резерв) от разрешения матрицы. Что как-то годится для видео в FullHD — нужна матрица в 18Mpix. а для 4К нужно уже 72MPix (примерно), что пока сложно. Опять же, больше мегапикселей — меньше их размер. Страдает светочувствительность. Ну и для фото результат в картинке чуть больше FullHD уже не приемлем (большинство фотоаппаратов как раз 24-32 Mpix).


      1. sinotix Автор
        22.06.2018 14:02

        Все верно. Разрешение теряется в 9+ раз. "+" — потому зеркальный канал и оптические системы неизбежно съедают часть изображения по краям. Это раз.

        Во-вторых, нужно понимать, что некоторые алгоритмы восстановления depth-map (если таковые используются) тоже немного съедают от каждого элемента, так как для некоторых частей эелементов отсутствует соответстие на других элементах и в таких областях мы имеем «unknown» depth-map.

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

        Вторая проблема решается экстраполяцией или пост-фильтром с использованием исходного изображения + полученной depth-map. Так некоторые алгоритмы «понимают» карту глубин у краев и «продлевают» ее к краям, основываясь на контенте исходного изображения


    1. er1
      22.06.2018 12:39
      +1

      Я бы ещё добавил низкую светочувствительность, ведь света попадает на конкретный пиксель намного меньше.


      1. igruh
        22.06.2018 13:25

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


  1. thelongrunsmoke
    22.06.2018 13:17

    Lytro использует этот же принцип?


    1. Tortortor
      22.06.2018 13:39
      +1

      да, это камера светового поля с массивом микролинз



    1. sinotix Автор
      22.06.2018 14:09

      Почти. У них действительно массив линз вместо зеркального мультипликатора, а изображения, формируемые на сенсоре — это не N уменьшенных полных фреймов, как в данном случае, а такая мозаика, каждый элемент которой содержит кусочек оригинального изображения. Соседние элементы мозаики — немного сдвинуты и т. д.

      image

      С точки зрения обработки всего этого добра — должно быть сложнее, наверно


      1. SADKO
        22.06.2018 17:59
        +3

        Не буду палить контору, но обработка изображений полученных линзовым растром, как раз проще в силу возможности некоторых остроумных математических трюков, при этом какая-то специальная калибровка и не нужна вовсе…
        А вот с зеркалами сложней и без калибровки никак, по этому и пайплайн у них другой, но недостатки…

        … короче, что в растровой, что в зеркальной системе, «стерео базис» повязан на физический размер матрицы со всеми вытекающими последствиями :-) Основатель LYTRO дипломный проект свой делал используя камеру с сенсором >70мм! А более древние экспериментаторы использовали фотопластинки, для записи и воспроизведения светового поля, получалось некоторое подобие голограммы, но всё упиралось в светочувствительность, так-что зафоткать получалось разве что нить накала лампочки.
        Какя-то японская группа делала массив камер и проекторов, и вроде даже получилось но не взлетело…
        Объёмное изображение оказалось не нужным потребителям, дискретная перефокусировка в ограниченном объёме тоже, особенно если платить за неё приходится качеством изображения, Lytro доказало это…
        … а ещё то, что математику нужно знать и любить, ведь все проблемы возникающие у устройств такого рода, расчётные и весьма ожидаемые…


        1. Goodkat
          22.06.2018 23:44
          +1

          Дискретную перефокусировку можно сделать очень дёшево без всех этих хитрых объективов: делать несколько кадров с разным фокусным расстоянием. Не понимаю, почему это до сих пор не реализовано.


          1. Mogwaika
            23.06.2018 00:05

            +, брекетинг диафрагмы и выдержки реализуется ни чем не проще…


      1. MrShoor
        23.06.2018 01:00
        +1

        Что-то это мне напоминает...
        image


  1. selenite
    22.06.2018 15:47

    Погуглил. Походу, компания называется R… и насколько могу понять, продукт у них не рассчитан на индивидуальных фотографов, amirite?
    * посмотрел цену конкурентов с заявленными 16 виртуальными камерами, заорал, нашел на ebay старый Lytro, наверняка же железка получится бессмысленно дорогой, если учесть такой разброс цен на конкурирующие продукты и экспериментальность


    1. excentrisitet
      22.06.2018 17:01

      Походу, компания называется R

      Команда R (Опять в пролёте)?


      1. SADKO
        22.06.2018 17:59

        Да, символичненько :-)


    1. sinotix Автор
      22.06.2018 18:13

      =) Нет, компания называется по-другому, и хабр не разрешит сказать, как именно.
      Продукт рассчитан как раз для индивидуальных фотографов.
      Существуют камеры с интегрированными в опитку/сенсор фичами с похожим функционалом, но это другая история, конечно.
      Lytro — глубоко интегрированное решение. Объектив не сменить, ничего не разобрать… В данном же случае, в сумке фотографа будет просто еще один объектив, совместимый с его любимой камерой


      1. Frankenstine
        25.06.2018 11:30

        В данном же случае, в сумке фотографа будет просто еще один объектив, совместимый с его любимой камерой

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


  1. Gryphon88
    22.06.2018 17:06
    +2

    Просветите, пожалуйста, немного по теории (давайте пока рассмотрим упрощённый случай, т.е. монохроматический свет без рассеяния и переотражений)
    1. Можно ли заменить массив линз за объективом дифракционной решеткой? Кстати, линзы можно лить в форму, будут очень средненькие, но дешевые
    2. Я не понимаю, что получается с разрешением. Что на ВЧ проседает — понятно, а вот вид сименсовской снежинки (правый верхний угол тест-объекта) меня сильно смущает: общая картина характерна для дефокуса, но линию хорошего совпадения примерно под 5 градусов я объяснить не могу
    3. Про проблемы: разве нельзя сделать обратную трассировку лучей со с субпиксельным сдвигом камеры (если снимать не со штатива, она есть по умолчанию при съёмке серий с минимальным интервалом), чтобы посмотреть, куда какой луч приходит?
    4. Как мы восстанавливаем итоговое изображение из калейдоскопических? Это открытый или закрытый софт?


    1. sinotix Автор
      22.06.2018 17:49

      1) Насчет дифракционной решетки не подскажу, извиняйте. Была какая-то причина, почему Lytro не сделали этого, а может быть это просто дороже — гадать не буду

      2) По снежинке: если вы имеете в виду совпадение на картинке с absdiff — то это всего-навсего неидеальное выравнивание двух элементов. Достаточно небольших смещений влево-вправо, чтобы «вращать» это совпадение на любой угол =) Другими словами, совпадение может означать в том числе и попадание различных лучей снежинки друг на друга.

      3) и 4) Насколько я понимаю, оба вопроса о разрешении. Одна из проблем — у вас нет доступа к софту камера, то есть включение этого режима будет на совести пользователя. Если камера поддерживает сверх-разрешение нативно — прекрасно. А если нет, то пользователь, скорее всего, будет ожидать хотя бы оригинального «полного» разрешения. Простора для творчества тут предостаточно, от «в лоб» интерполяции между элементами, до всяких там machine learning алгоритмов. Возможно, существует открытый софт. Но статей и ислледований на тему super-resolution — множество. Основная идея — мы можем использовать избыточность 9 элементов.


      1. Gryphon88
        22.06.2018 18:21

        2-3) сдвиг линз — это фу таким быть :) да, в оптоэлектронике и прототипы стоят ненормальных денег, но это не повод делать демонстрационный образец с багами. В крайнем случае в софте могли бы учесть, промерить расстояние между линзами всяко проще, чем изготовить.
        Ещё есть такая неприятная штука как развисимость разрешения от угла между чертой объекта и сеткой пикселой. 9 элементов (число элементов, как я понимаю, не зависит от числа микролинз?) позволяют снизить потери под 45 градусов (на глазок — получается примерно как при шестигранном пикселе), но больше-лучше для симметричности PSF. Базовое утверждение проверить легко: печатаем сименсовскую снежинку или хотя бы ASAF test target и делаем серию снимков, после каждого немного меняя поворот мишени относительно камеры.

        3-4) Да, про разрешение. К софту всегда есть ограниченный доступ: можно получить максимально тупое изображение, единственная неотключаемая опция обычно — автоматическая подстройка чувствительности отдельных пикселей. А так получили условную равку по usb3 или camera link и вдумчиво её пережёвываем. Обсуждаем всё-таки профессиональный инструмент (непрофессионалам и на смартфонах камер хватает), так что можно ожидать, что пользователь сможет прочесть инструкцию и пропустить фото (или серию, снятую с определенными правилами) через программу-две. Основной вопрос не то, как можно, а как было сделано при подготовке материала данной конкретной статьи.

        Мне особенно интересно, как такая камера будет работать в гетерогенной среде, например при подводной или астрономической съёмке. Можно ли из такого подхода выдавить давно желанный phase imaging, или «стереобаза» недостаточна? Есть классический подход: если Вы делаете «не имеющую аналогов» камеру, то за деньгами на разработку надо идти или к астрономам, или к военным, из пользователей камер они наименее аккуратно считают деньги.


        1. sinotix Автор
          22.06.2018 18:34

          Небольшое замечание — линз нет ) Для того чтобы выровнять картинки здесь нужно двигать зеркала, а искажения все, к тому же, нелинейные, так что калибровка — не самая простая задача. Тем более, если это не сильно влияет на конечный результат.

          Для астрономии, виртуальная базовая линия очень мала, конечно. Disparity будет практически ноль.

          Насчет военных — отличная идея! Учитывая, что компания немецкая ;)


    1. SADKO
      22.06.2018 18:11

      Кстати, линзы можно лить в форму, будут очень средненькие, но дешевые

      Так всегда и делали, можно ещё фотопластинку через массив пинхолов засветить…


      1. Gryphon88
        22.06.2018 18:24
        +1

        Некоторые до сих пор из шара/пластины вышлифовывают. А с пинхолами и фотопластинкой получится редкая содомия: непостоянный диаметр, форма и расстояние. Но спасибо огромное, мне тут одну идею дешево вчерне проверить надо, про такой способ моделирования матрицы я подзабыл.


  1. Rusli
    22.06.2018 17:25

    Схема нового объектива непонятна. Где на ней показано многократное отражение?


    1. sinotix Автор
      22.06.2018 18:06
      +1

      Действительно, не показано. Дело в том, что нарисовать это сложно, так как нужно чертить в 3D. Например, угловые элементы результата формируются с помощью двух зеркал — верхнего и бокового. Когда в моем распоряжении окажется 3D трассировка — буду рад поделиться.
      В качестве простого эксперимента можно заглянуть в зеркальную «трубу» с прямоугольным сечением. Картинка будет вроде такой:
      image
      Надеюсь, это создаст какое-то общее впечатление…


      1. SADKO
        22.06.2018 18:31

        О, блин, это существенно отличается от Литро, тут прямая аналогия с зеркальными стерео насадками и съёмкой на перекрёстных осях, но здесь искажается пространство, и в этом может-быть фича, если придумать как это обработать…
        … правда возникает вопрос, возможно-ли оно в принципе, у меня есть подозрения что нет, доказывать в лом, но смысл такой, что если мы исправим геометрию крайних ракурсов в ней уже не будет той избыточности что могла-бы быть потенциально использована. Снимая на параллельных осях, мы легко можем ассоциировать воксели, хотя пространственное разрешение и зависит от базиса, массив изображений с разными базисами нам это может компенсировать. Но на перекрёстных осях этого не случится.


      1. Frankenstine
        25.06.2018 11:58

        В качестве простого эксперимента можно заглянуть в зеркальную «трубу» с прямоугольным сечением. Картинка будет вроде такой

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


  1. ebragim
    22.06.2018 18:31

    Не понимаю, как предполагается использование массивов фильтров? Объектив проецирует картинку в виде матрицы картинок, то есть фильтр надо ставить строго между фотосенсором и объективом. Допустим, поляризацию ещё можно так поставить. А HDR как получать? Там должна быть разница в экспозиции, то есть надо что, 9 матриц и затворов ставить, чтобы каждая могла работать в своём режиме?


    1. sinotix Автор
      22.06.2018 18:47

      Тема HDR не очень хорошо проработана пока что. Но можно побрэйнштормить.
      Я вас спрошу скорее: если принять экспозицию как способ ограничения количества света, падающего на сенсор, можно ли создать это ограничение не длительностью захвата, а, скажем, затемняющим фильтром напротив одного из 9 элементов? Или необходимо что-то еще?


      1. lonelymyp
        22.06.2018 19:15

        Даже если изобрести такой 9 секторный затемнящийся фильтр (помоему были опыты с ND светофильтрами на жидких кристаллах, чтоб плавно регулировать степень затемнения, то всё равно HDR проблемный будет, каждая картинка со своего угла зрения.
        В результате будет эффект мультиэкспозиции с трясущимися руками, на гранях объектов будут артефакты.


      1. SADKO
        22.06.2018 19:40

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


  1. evseev
    23.06.2018 08:28

    Я просто не могу понять для кого делают такие камеры? Когда снимаешь ты же знаешь что именно ты хочешь снять? Ну вот и наводишься туда, куда нужно. Или это для тех, кто не знает что именно он сейчас снимает?


    1. Paskin
      23.06.2018 09:23

      Это нужно в первую очередь для камер слежения — когда снимают двор/улицу/какое-то еще большое пространство а потом, при просмотре, можно сфокусироваться на каких-то обьектах и рассмотреть их в подробностях.


    1. sinotix Автор
      23.06.2018 11:33

      Вариантов применения несколько. Когда ты снимаешь сцену таким объективом, вся сцена в фокусе. И потом можно добавить размытие на тех глубинах, где тебе хочется и с той силой, которая отражает твою творческую задумку. Например, ты можешь искусственно сузить DoF. Также если ты часто промахиваешься мимо фокуса, ты можешь исправить это позже.
      Но перефокусировка это лишь одно из приложений. Имея карту глубин, пользователь может в фотошопе применять различные фильтры для фона и объектов с минимальными затратами времени.
      Ещё можно сегментировать картинку таким образом, чтобы заменять или выделять объекты на заданном диапазоне расстояний