Буквально считанные часы были у меня, чтобы ознакомиться с камерой Lytro. Однако впечатления были столь яркими, что я решил написать эту статью. Если рассматривать эту камеру среди других фотоаппаратов, то на данный момент это не практический инструмент, а занимательная игрушка и хорошее наглядное пособие. Идеи, лежащие в основе этой камеры, древни, как мир. Природа реализовала их сотни миллионов лет назад, создав фасеточный глаз насекомых.
Человечество технически попыталось реализовать эту идею лет сто назад. Растровая интегральная фотография связана с именем Габриэля Липмана, получившего в 1908 году Нобелевскую премию по фотографии — правда, не за интегральную растровую фотографию, а за интерференционную. Цель наглядного пособия — показать существование явления и продемонстрировать принципы, лежащие в его основе. С демонстрацией у камеры Lytro все очень хорошо, а с познавательностью и принципами — не так просто. Есть достаточно короткое описание на сайте проекта и существенно более полное в диссертации Ren Ng. Диссертация «стандартных» размеров, в 200 страниц. Автор, безусловно, руководствовался заповедями диссертанта: «Не пиши длинно: диссертация не “Война и мир”, а ты не Лев Толстой. Не пиши кратко, это свидетельствует либо о большом таланте, либо о скудости ума; ни того, ни другого ученый совет тебе не простит». В общем, диссертация очень интересная, но на пальцах изложить ее содержание я не берусь. Отмечу только, что в солидной библиографии среди работ, положенных в основу, упоминаются и труды 1930-х годов ведущего сотрудника ГОИ Андрея Александровича Гершуна, который, в том числе, является и одним из основоположников гидрооптики, которой я отдал значительную часть своей жизни.
Итак, что из себя представляет камера. Маленький параллелепипед, в одном торце которого виден объектив, другой ее торец целиком занимает сенсорный квадратный экран.
На верхней грани сенсорный ползунок, позволяющий менять фокусное расстояние объектива, и кнопка спуска затвора. На нижней грани кнопка питания и разъем Micro-USB. Если включить камеру, то у нас есть возможность касанием экрана выбрать точку фокусировки или точку, по которой будет оцениваться экспозиция, сделать снимок и потом его рассматривать. Экран довольно грубый, примерно 240×240 точек, но тем не менее, он позволяет увидеть и оценить тот эффект, ради которого была сделана камера. А именно: касанием экрана можно сфокусироваться на любой точке снимка. Т. е. фокусировка возможна не до, а после.
Камера записывает не изображение, а ход лучей. Чтобы посмотреть это более подробно и попытаться понять, как же это все работает, надо подключить камеру к компьютеру. На момент моего знакомства с камерой была только одна возможность: подсоединить ее к компьютеру фирмы Apple. (24 июля 2012 года анонсировано и программное обеспечение для Windows.)
В этом случае компьютер скачает с камеры программное обеспечение, установит его и позволит перенести снимки на компьютер. После этого, запустив программу, можно рассматривать полученные снимки уже размером 1080×1080 точек. Для того, чтобы поделиться снимками со знакомыми, предусмотрена только возможность выложить их в интернете на сайте производителя, где с помощью проигрывателя, построенного на технологии Flash, можно поиграть, меняя точку фокусировки снимка. Предусмотрена возможность вставить ссылку на проигрыватель и в тело собственного HTML-файла.
Возможность редактировать снимки или хотя бы просто записать их на внешний носитель не предусмотрена. Однако голь на выдумки хитра, и дотошные пользователи обнаружили на компьютере папочку, в которой сложены снимки двух типов: *.lfp и *-stk.lfp (ссылки позволяют скачать примеры файлов). А Nirav Patel научился разбирать эти снимки на составляющие. Для этого он написал программу lfpsplitter, которая преобразует эти файлы в несколько других, но уже привычного или достаточно легко читаемого формата. Файл *.lfp представляет собой сырую информацию с матрицы. После применения к нему программы преобразования:
получаем следующие файлы: IMG_0001_table.json, IMG_0001_imageRef0.raw, IMG_0001_metadataRef.json, IMG_0001_privateMetadataRef.json. Применив к IMG_0001_imageRef0.raw программу raw2tiff из пакета Libtiff:
raw2tiff -w 3280 -l 3280 -d short IMG_0001_imageRef0.raw output.tif
получим стандартное изображение в формате TIFF, на котором увидим группу изображений, созданных микролинзами. В результате мы получим матрицу, на которой расположено 300×300 микроизображений.
Миниатюра сырого снимка. Красным квадратом отмечено положение фрагмента, приведенного ниже.
Фрагмент при верстке увеличен в два раза. Грубо говоря, светящаяся точка представляется кружком, чей диаметр зависит от расстояния до объекта.
Файл *-stk.lfp представляет собой стопку снимков, сфокусированных в разных плоскостях, и карту глубин. После применения к нему программы преобразования:
получаем следующие файлы: IMG_0001-stk_table.json, IMG_0001-stk_depth.txt, IMG_0001-stk_0.jpg, …, IMG_0001-stk_N.jpg.
Миниатюры половинного размера двух снимков из стопки. Щелкнув по ним мышью, можно увидеть исходное изображение.
Снимки в стопке — в формате JPEG, и содержат уже 1080×1080 точек. Достаточно легко представить себе, как из сырого снимка можно получить стопку снимков с разрешением 300×300. Если представить, что мы снимаем светящуюся точку, расположенную на разных расстояниях от аппарата, то ее изображение будет представлять из себя кружки, диаметр которых будет связан с расстоянием до объекта. Таким образом, беря яркость концентрических колец, мы можем получить стопку снимков, сфокусированных в разных плоскостях. Начиная с некоторого расстояния точки до аппарата, ее изображение будет фиксироваться уже не одной линзой микрорастра, а несколькими. Но и эту систему уравнений можно попытаться достаточно просто решить. А вот достижение авторов проекта, позволившее удевятерить разрешение, является нетривиальным.
Да, на сегодняшний момент это только игрушка. 12-мегапиксельная матрица этой камеры позволяет получить изображение 1 Мп. Если снять 12-мегапиксельной обычной мыльницей с той же дистанции тот же объект, то за счет диафрагмирования и преобразовав его в изображение размером 1 Мп, мы получим снимок, на котором все объекты будут резкими независимо от дистанции до них.
Таким образом, вся самая интересная информация, которую позволяет получить камера Lytro, лежит не в стопке снимков, а в текстовом файле IMG_0001-stk_depth.txt, содержащем карту глубин. Я написал простенькую программу на Gambas3, которая создает из этого текстового файла изображение, где расстоянию до объекта соответствует плотность серого. Чем темнее, тем ближе. Исходный код можно скачать здесь.
Воспользовавшись фильтром для графического редактора GIMP:
и применив к двум вышеприведенным снимкам нашу карту глубин, получим:
Объединив всю стопку снимков, записанных камерой Lytro, мы в лучшем случае получим снимок, резкость которого во всех плоскостях будет такой же, как у снимка, снятого обычной мыльницей. А вот карта глубин, записанная камерой, позволит из этого снимка выделить объекты, находящиеся на разной дистанции. Если применить эту карту глубин к снимку, снятому мыльницей, мы можем получить, с помощью достаточно простого проигрывателя, возможность менять точку фокусировки. Таким образом, у нас появляется возможность получить изображение, довольно точно соответствующее снимку, сделанному куда более светосильным объективом с очень маленькой глубиной резкости даже при использовании маленькой по площади матрицы.
Файл IMG_0001-stk_table.json связывает файлы в стопке с информацией о расстоянии. К сожалению, в стопке файлы расположены не в порядке изменения расстояния, а идентификатор, указанный в этом файле, при разборе на составляющие программой lfpsplitter не записывается в файл JPEG. Поэтому он практически бесполезен, и, чтобы определиться, необходимо посмотреть в двоичном редакторе исходный файл IMG_0001-stk.lfp. В результате я написал программу просмотра только для конкретного снимка, вставив параметры и номера файлов прямо в текст программы. Для полноценной программы просмотра надо было писать собственную программу разбора исходного файла на составлявшие. Кроме функций просмотра, данная программа может объединять снимки, показывая для каждого из 400 квадратов, на которые разбита карта глубин, самый резкий фрагмент. Исходный код можно скачать здесь.
Для конкретного снимка несложно сделать и собственную программу демонстрации на основе технологии Flash. Нижеприведенная программа не только перефокусирует снимок, но и показывает зону одинаковой, по мнению камеры, резкости.
Камера Lytro — это первый работающий и очень добротно сделанный прототип, показывающий, куда дальше может развиваться фотография. Уже сегодня можно сделать матрицы с размером чувствительного элемента столь маленьким, что практически не найдется объективов, которым такое разрешение полезно. Группировка же чувствительных элементов за микролинзовым растром позволит получить дополнительную информацию. При таком же размере пикселя, как в камере Lytro, но используя матрицу 25×25 мм, мы могли бы получить уже не 1-мегапиксельное, а 25-мегапиксельное изображение, из которого потом можно легко выбрать нужную плоскость фокусировки. Если реализовать видеосъемку с таким разрешением, то любимый многими режиссерами прием фокусировки на сюжетно важном объекте можно сделать независимым от мастерства оператора и реализовывать его на этапе монтажа. Кроме того, микрорастр открывает возможности получения стереоизображения.
На сегодняшний момент, к сожалению, камера Lytro — это игрушка не под Linux. Похоже, что проблема программного обеспечения состоит только в драйвере USB. Если бы память камеры была видна как съемный диск, никаких проблем с работой в других операционных системах не было бы. Хотя здесь есть одна неясность: файлы, которые мы научились разбирать, скачаны с MacBook, и непонятно, был ли файл со стопкой снимков получен и обработан камерой или уже компьютером.
Источник
Камера Lytro Illum — первое знакомство
Не прошло и полгода, как я всё-таки встретился с заказанной ещё в июне камерой Lytro второго поколения (если быть честным, её прислали ещё в сентябре, но я в это время находился на другом континенте). Так что теперь разбираюсь, чего Lytro смогла добиться со времени выхода первой камеры.
Комплектация
В посылке было три коробки: одна большая и две маленькие:
Маленькие коробки в стандартный комплект не входили — они пришли в качестве компенсации за задержку в отправке (исходно, камеру обещали прислать в августе. Впрочем, мне бы это не помогло).
В коробках оказались ремешок для камеры (подписанный как Premium) и аккумулятор странной формы:
В большой коробке была сама камера, штук 6 маленьких коробочек и две книжечки — «Quick start guide» и «Product information guide». В первой книжке написано, как включать камеру, во второй — техника безопасности и, на случай, если пользователю интересны подробности работы с камерой, отсылка к сайту на страничку http://manuals.lytro.com/illum/
В маленьких коробочках оказался следующий набор:
— ещё один аккумулятор; — зарядное устройство с кабелем; — кабель USB 3.0; — нейтральный фильтр 72 мм; — большая бленда; — тряпочка для протирки экрана; — ещё один ремешок и 4 детали для крепления его к камере.
Чем ремешок отличается от «Premium», я так и не понял.
Внешний вид
Сама камера большая, но, по ощущениям, лёгкая. Сделана из твёрдой и очень чёрной пластмассы. На корпусе можно разглядеть 7 кнопок, два колёсика и две крышки. Под одной гнездо для аккумулятора, под другой — место для карточки и разъём USB. Любопытно, что ни кнопки извлечения аккумулятора, ни выталкивающей пружины нет — из гнезда его надо выдёргивать.
Кнопки, по умолчанию, имеют следующие функции:
— включение; — затвор; — фиксация выдержки и ISO; — две кнопки переключения режимов экрана; — две кнопки управления фокусировкой: автофокус и фокусировка на гиперфокальное расстояние. Такой вещи, как автофокусировка при нажатии на спуск, не предусмотрено.
Колёсики используются для управления выдержкой и ISO, их смысл разный в разных режимах.
Ещё есть два кольца на объективе — zoom и фокусировка. Zoom от 30 до 250 мм (в 35-мм эквиваленте). Фокусировка нужна, потому что, несмотря на всю технологию светового поля, достижимая глубина резкости оказывается ограниченной: при ЭФР=30 мм это примерно от 1 метра до бесконечности, а при 250 мм — примерно от 10 метров до бесконечности (при настройке на другие расстояния диапазоны будут соответствующими). Текущий диапазон резкости показывается на специальной шкале на экране.
Управление камерой происходит, в основном, с помощью тачскрина и не очень отличается от других, но есть пара особенностей.
Во-первых, значение диафрагмы у неё постоянно: f/2.0. Поэтому экспопара состоит не из выдержки и диафрагмы, а из выдержки и ISO. Соответственно, вместо привычного набора режимов PASM здесь используется аббревиатура PISM. ISO меняется от 80 до 3200, выдержка — от 1/4000 до 32.
Во-вторых, при нажатии одной из кнопок (Lytro button) рядом со шкалой расстояния появляется «живая» гистограмма дальностей, позволяющая выбрать правильную фокусировку. На экране при этом выделяются «близкие» и «далёкие» объекты, а также области, не попавшие в зону резкости.
(картинка с сайта lytro.com)
Чему равно минимальное расстояние до объекта съёмки, я пока не понял. Примерно 10-15 см при ЭФР=30 мм. Специального «макрорежима» найти не удалось.
Что внутри?
Размер матрицы — 7728*5368, это примерно 41 мегапиксель. Размер пикселя — 1.4 микрона, т.е. общий размер — 10.8*7.5 мм, что даёт кроп-фактор 3.3. Шаг микролинз — 20 микрон, всего их получается около 230000 (у камеры первого поколения было вдвое меньше). Но фотографии на выходе имеют размер 2450*1634.
Камера довольно жадная в смысле потребляемой памяти. Одна фотография на карточке занимает 52.5 МБ (это 10-битный raw-файл), плюс 1.7 ГБ уходит на файл с информацией о самой камере (это не опечатка — там действительно больше гигабайта. Файл содержит 34 калибровочных RAW-изображения, по 50 МБ каждое. К счастью, он общий для всех фотографий на карточке). Таким образом, на 8-гигабайтной карточке умещается чуть больше сотни фотографий. Ещё хуже ситуация на компьютере — комплект файлов, относящихся к одному обработанному снимку, занимает 120 МБ.
«Живой» снимок после предварительной обработки представляется в виде 7 фотографий: они приблизительно соответствуют виду из центра объектива и из 6 точек по краю. Размер фотографий — 2022*1404 (для сравнения: у камеры первого поколения хранилось 37 фотографий размером 360*360). Кроме того, есть карта дальности размером 541*376 (ровно одна точка на микролинзу), но к какой фотографии она относится, я ещё не проверял. Скорее всего, к центральной. Фотографии можно увидеть «штатными» средствами, не разбираясь в структуре файлов: они создаются в виде tiff-файлов по команде Export Living Picture в Lytro Desktop — их можно редактировать сторонним редактором, и загружать обратно в Lytro Desktop (впрочем, я не пробовал).
Что можно получить
В обработке фотографий есть несколько дополнительных возможностей.
Во-первых, помимо стандартных средств изменения яркости, контраста и т.п., есть имитатор установки диафрагмы. Её можно выбрать от 1/1 до 1/16. 1/16 — режим «всё в фокусе», в этом режиме можно слегка смещать точку зрения. 1/1 — режим с ГРИП, ещё меньшей, чем в исходных фотографиях. Здесь можно менять точку фокусировки — фокусироваться на разные расстояния. Слайдера фокусировки так и не сделали — программа выбирает положения из карты глубины.
На промежуточных значениях диафрагмы можно, в определённой степени, делать и перефокусировку, и смену точки зрения.
Ещё одна необычная возможность — реализация «перекошенного» сенсора (tilt sensor), когда в разных частях снимка фокусировка происходит на разные расстояния. При этом вычисления идут честно, а не за счёт размытия верхнего и нижнего краёв.
После выбора параметров, картинку можно экспортировать в виде jpeg. Есть возможность экспорта стереопары (двух картинок с f/16, «снятых» с разных краёв объектива). Стереопара создаётся в виде cyan/red, или в виде двух изображений для «параллельного» просмотра (когда глаза разводятся в стороны). Но, как оказалось, стереопару лучше собрать из двух tiff-файлов — у результата автоматического экспорта какие-то проблемы с резкостью.
Поскольку один снимок можно смотреть в разных режимах, есть возможность делать анимацию — с плавной сменой фокуса, глубины резкости, положения и даже кропа. Правда, управлять ей совсем не просто, у меня с трудом получаются даже простейшие вещи.