Speaker Rabbit

abbra


CIFS: curious information funneled sometimes


Previous Entry Share Next Entry
Франкенкамера 2.0
Speaker Rabbit
abbra
Иногда в работе на большие корпорации бывают свои прелести -- например, возможность пообщаться с университетскими исследователями, до которых добраться в реальной жизни получится еще нескоро. К нам приезжал циркпрофессор стенфордского университета Марк Левой, группа аспирантов которого работает над созданием полностью программируемой камеры. Текущая версия собрана из отобранных у бедныхчастей других устройств -- кнопка спуска от PowerShot G6, сенсор Aptina MT9P031 взят от N95, закреплен на подложку Elphel 10338, байонет Canon EF в исполнении Birger Engineering. По поводу последнего, Марк Левой отметил, что обратная инженерия байонета от Canon легальна, тут нет никаких проблем (байонет от Birger был разработан для Red One Cinema, производителя ведущей цифровой видеокамеры для киноиндустрии). Так что камера получает всю информацию, которую сообщают о своей работе объективы.

Внутренности Франкенкамеры представлены OMAP3530, упрощенной версией чипа, который стоит в Nokia N900. На этом OMAP3 запушен GNU/Linux, собранный Eino-Ville Talvala. Эдди (как он предпочитает себя называть на американский манер) также улучшил и поддерживает драйвера для работы с сигнальным процессором ISP внутри OMAP3 (внутри OMAP3 на самом деле четыре процессора -- ARMv7, Neon, DSP и ISP). Качество драйверов от TI довольно посредственное, так что любые улучшения в этой области только приветствуются, тем более, что версия от Эдди работает на 2.6.31, самом распоследнем ядре.

Сама по себе камера напоминает Лейку где-нибудь так 50-60 лет назад. Качество получаемой картинки приблизительно соответствует Nokia N95. С этой стороны весь проект можно было бы и закрыть, особенно для обывателя (подумаешь, изобрели велосипед). На самом деле, все только тут и начинается.

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

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

Вот тут-то и поджидает самый большой "обломинго". Производители массовых камер не заинтересованы в проникновении в их "святая святых" обыкновенных фотографов. Получить доступ ко всем параметрам, которые выдает объектив через байонет, или к данным прямо с сенсора, без предварительной обработки, практически невозможно. Не говоря уже о том, что у всех производителей более-менее серьезных камер свое ПО запустить внутри камеры невозможно. Для Canon есть CHDK, хак, который позволяет переписать определенные действия после съемки кадра. Добраться же до начальных этапов (измерение и фокусировка) или до обработки данных (демозаика, устранение шума, баланс белого), увы нельзя.

Марк Левой провел несколько лет, пытаясь убедить азиатских производителей фотоаппаратов открыть доступ для исследователей. Бесполезно. В 2007 году Nokia поддержала его работу по вычислительной фотографии и в рамках этого проекта (Camera 1.0) было выполнено довольно много интересных работ. Некоторые из них даже попали в устройства -- N86 8MP в новой прошивке содержит алгоритм получения панорамы во время работы видоискателя, разработанный одним из талантливейших аспирантов из команды Левоя -- Эндрю Адамсом -- вместе с сотрудниками Nokia Research Center в Пало-Альто. По утверждению Левоя, мощности современных телефонов достаточно для выполнения многих задач вычислительной фотографии.

Впрочем, и этого мало. Франкенкамера -- это попытка создать действительно полностью адаптируемую к задачам пользователя камеру как на уровне программного обеспечения, так и на уровне аппаратной платформы. Нужно заменить сенсор? Поставить другую оптику? Изменить логику обработки данных из сенсора? Использовать другой механизм синхронизации затвора и вспышки? Все это должно быть возможно в Camera 2.0, прототипом которой и служит Франкенкамера.

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

Результатом должна стать свободная платформа управления фотографическим оборудованием и результатами съемки, которая будет опубликована на www.opensourcecamera.org. Ключевое слово здесь "будет", потому что сейчас на этом сайте блог, несвязанный с проектом, но о передаче домена договорились. Впрочем, было бы все так хорошо...

Пока что имеющийся объем кода позволяет делать некоторые обнадеживающие эксперименты. Например, видоискатель с широким динамическим диапазоном. На имеющейся франкенкамере с 5Мп камерой удается сделать видоискатель с частотой 15 кадров в секунду с автоматическим выравниванием динамического диапазона. Замечу -- не перетонировка после съемки, а прямо в живом видоискателе. Работает неплохо, хотя код совсем неоптимизирован под платформу -- голый C, никаких оптимизаций под использование возможностей Neon или DSP.

Следующий шаг, обещанный Марком Левоем -- поддержка N900 в качестве платформы для начинки Camera 2.0, чтобы можно было расширить круг исследователей и разработчиков хотя бы в трех из пяти областей вычислительной фотографии, которые профессор обозначает в качестве целевых. Две оставшиеся требуют модификации оптического или регистрирующего трактов. Надеюсь, к началу 2010 у нас будет о чем говорить.

И еще интересный момент. В Стенфорде 96 франкенкамер были объединены в многокамерный массив и использовались для съемки с последующей программной перефокусировкой получившегося многомегапиксельного изображения. Две главные проблемы, возникшие в рамках этого проекта -- как гарантировано быстро передавать данные между камерами для обработки, а также как добиться стабильности оптической системы. Даже объективы из одной партии обладали такой разбежкой в качестве сборки и оптики, что потребовалось разработать новые алгоритмы борьбы с бликами и прочими подобными артефактами. В результате, докторская диссертация Эдди Талвалы получилась вовсе не о Франкенкамере, а о борьбе с засветками.

На вопросы публики, что же реально влияет на качество картинки, профессор ответил просто: "Влияет всё. Но если у вас плохая оптика, то ничего не спасет." Так что первый вопрос, который был направлен профессором нам, звучал так: "Можно ли в N900 заменить оптику на внешнюю?" Конечно, какой-либо стандартный байонет из мира DSLR в N900 отсутствует, но умельцы профессора явно не остановятся перед препарированием пациента. Впрочем, у нашего пациента и штатный объектив не такой уж плохой -- он лучше N95. Весь вопрос в последующей обработке.

  • 1
Круто, спасибо.
Надеюсь все задуманное воплотиться в повседневную реальность :)

Прикоснуться к закулисным делам - а чем можно еще мечтать! :)
Хороший слог с хорошей детализацией, приятно читать!
Спасибо.

C демозаиком и балансом белого как раз никаких проблем -- снимаем в raw и демозаим потом как хотим...

Внутри камеры, в момент вычитывания данных с сенсора это сделать невозможно. То же, что ты получаешь в RAW, уже обработано.

То же, что ты получаешь в RAW, уже обработано.
И как обработано? У приличных камер даже чёрный не вычтен.

Кстати, может быть я скажу банальность и вы это знаете и читаете, но советую вам обратить внимание на blog.lexa.ru и pavel_burov где много обсуждается проблема “проявки” RAW. Именно с разбором физики процесса съёмки и тем, “как надо” обрабатывать этот результат измерений (увы, конвертеров которые бы всё делали как надо сейчас почти не существует — к этом приближается MacOS-only Конвертер RPP, но и всё)…

или до обработки данных (демозаика, устранение шума, баланс белого), увы нельзя.
Надо в RAW снимать. Вообще, хочется скриптов для матричного экспозамера больше всего.

Всякие демозаики делать прямо в камере — идиотизм, IMHO :)

Вообще, проблема основная в том, что сенсоры как в этих всех телефонах никому не нужны. Нужен APS-C или лучше FF. А собрать с ним франкенкамеру, боюсь, ОЧЕНЬ дорого. Не нужна OpenSource камера, всё равно там дофига точной механики и оптики которые себя оправдывают при массовом а не любительском изготовлении.
Нужен производитель нормальныйх DSLR или дальномерок (хи-хи) который просто даст спекц на прошивку людям в руки. Само железо всё же должно быть промышленным.

В плане Франкенкамеры как раз использование DSLR сенсоров. Качественные стоят около 1500 долларов за штуку в розницу. А с производителями как раз проблема, об этом Марк и говорил -- у них культура разработки такова, что они не готовы работать в открытом поле и давать возможность менять внутренности прошивок. Если бы такое было, не было бы Франкенкамеры.

Что касается демозаики и прочего прямо в камере, это не идиотизм, это вполне конкретные алгоритмы, которые сейчас востребованы на рынке. Для ряда задач вообще нужно неразрушительное вычитывание произвольных блоков данных с сенсора (non-damaging ROI readout), которое мало кем поддерживается.

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

>На имеющейся франкенкамере с 5Мп камерой удается сделать видоискатель с частотой 15 кадров в секунду с автоматическим выравниванием динамического диапазона
На имеющейся у меня камере, динамический диапазон как у моего глаза, а частота кадров.. ну, можно считать её бесконечной (длину волны исходного света считать не будем :-)

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

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

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

Обработку сигнала с сенсора, как уже было сказано, не обязательно делать прямо в камере. Более того, есть очень много аргументов в пользу того, чтоб делать её на машине общего назначения.

Все это интересно. Но интересней всего посмотреть живые фотки с этого чуда.

  • 1
?

Log in

No account? Create an account