Пост обновлён и актуализирован в 2021 году
На презентациях любого смартфона сегодня отдельное место уделяют успехе его камеры. Pixel снимает в полной темноте, Huawei зумит как бинокль, в Samsung вставили восемь объективов, а на экране iPhone ваши друзья выглядят на 30% богаче.
Зеркалки, при этом, как будто трутся на месте. Sony ежегодно осыпает всех новыми матрицами, а производители лениво обновляют последнюю цифру версии и продолжают лениво нюхать кокс в сторонке. У меня на столе лежит зеркалка за $3000, но в путешествия я всё чаще беру айфон. Почему?
Как говорил классик: я вышел в интернет с этим вопросом. Там обсуждают какие-то «алгоритмы» и «нейросети», так и не объясняя как конкретно они влияют на фотографию. Журналисты хвалят мегапиксели, блогеры хором пилят анбоксинги, а эстеты обмазываются «чувственным восприятием цветовой палитры матрицы». Всё как обычно.
Пришлось сесть, потратить половину жизни и самому во всём разобраться. В этой статье я расскажу что узнал.
В написании поста мне помогал Георгий Джеджея, чью версию поста читайте у него в блоге. Там он рассматривает тему со стороны фотографа, а я здесь скорее со стороны технаря.
Начнём. Но сначала минутка капитализма.
Везде, включая википедию, дают примерно такое определение: вычислительная фотография — любые техники захвата и обработки изображений, где вместо оптических преобразований используются цифровые вычисления.
В нём всё отлично, кроме того, что оно ужасно. Под него подходит даже автофокус, но не влезает пленоптика, которая уже принесла нам много полезного. Размытость официальных определений как бы намекает, что мы понятия не имеем о чём все говорим.
Пионер вычислительной фотографии, профессор Стенфорда Marc Levoy (он же сейчас отвечает за камеру в Google Pixel) приводит другое определение — набор методов компьютерной визуализации, улучшающих или расширяющих возможности цифровой фотографии, при использовании которых получается обычная фотография, которая не могла технически быть снята на данную камеру традиционным способом. В посте я придерживаюсь именно его.
Итак, во всём были виноваты смартфоны.
У смартфонов не было выбора, кроме как дать жизнь новому виду фотографии — вычислительной
Их маленькие шумные матрицы и крохотные несветосильные объективы по всем законам физики должны были приносить боль и страдание. Они и приносили, пока их разработчики не догадались хитро использовать их сильные стороны, чтобы побороть слабые — быстрые электронные затворы, мощные процессоры и софт.
Большинство громких исследований в области вычислительной фотографии приходятся на 2005-2015 года, что в науке считается буквально вчера. Прямо сейчас на наших глазах и в наших карманах развивается новая область знаний и технологий, которой никогда не было.
Вычислительная фотография — это не только селфи-режимы и ночная съемка. Недавняя фотография черной дыры не появилась бы на свет без методов вычислительной фотографии. Чтобы снять такое фото на обычный телескоп, нам бы пришлось сделать его размером с Землю. Однако, объединив данные восьми радиотелескопов в разных точках нашего шарика и написав немного скриптов на питоне, мы получили первую в мире фотографию горизонта событий. Для селфи тоже сгодится.
📝 Computational Photography: Principles and Practice
📝 Marc Levoy: New Techniques in Computational photography
↑↑↑ по ходу рассказа я буду вставлять такие вот жирные ссылки. Они ведут редкие статьи-бриллианты 📝 или видеоролики 🎥, которые позволяют углубиться в тему и понять куда копать дальше, если вдруг вам стало невыносимо интересно. Я же физически не могу рассказать обо всём в одном посте
Представим, что мы вернули 2007-й. Наша мама — анархия, а наши фотографии — шумные 0.6 Mpx джипеги, снятые на скейтборд. Примерно тогда у нас появляется первое непреодолимое желание наложить на них пресетов, чтобы скрыть всю всратость мобильных матриц. Так мы помешались на инстаграм-фильтрах.
В большинстве более-менее новых беззеркалок (да и некоторых зеркалках) есть полностью электронный затвор, позволяющий снимать под 5-10 к/с. Софт бы только завезли.
Больше. До 30 fps. Но смартфоны могут выжать ещё больше.
*на редкие статьи-бриллианты
"Их маленькие шумные матрицы и крохотные несветосильные объективы" Как раз все объективы в смартфонах светосильные.
Если брать ширики, то да. В телерасстояниях никакой светосилы нет и не будет.
Вопрос: можно пояснить, что имеется ввиду под "Железо что осталось от Sony"?
Фильтры X-Pro II, Lo-Fi и Valencia уже стали классикой в сердцах. В своё время я даже реверс-инжинирил их в исследовательских целях, и всё еще помню, что это были простенькие шейдеры (функции) из трёх компонентов:
Современные фильтры недалеко ушли от этой тройки, лишь стали чуть сложнее по математике. С появлением аппаратных шейдеров и OpenCL на смартфонах их быстро переписали под GPU и это считалось дико круто. Для 2012 года, конечно. Сегодня любой школьник может сделать такое хоть на CSS и ему всё равно не перепадёт на выпускном.
Однако, прогресс фильтров сегодня не остановился. Ребята из Дехансера, например, отлично упарываются по нелинейным фильтрам — вместо пролетарского тон-маппинга они используют более сложные нелинейные преобразования, что по их словам открывает куда больше возможностей.
Нелинейными преобразованиями можно натворить много дел, но они невероятно сложны, а мы, человеки, невероятно тупы. Как только в науке дело доходит до нелинейных преобразований, мы предпочитаем идти в численные методы и напихивать везде нейросетей, чтобы те писали шедевры за нас. То же было и здесь.
Ne smeshno
Fuck you, Karen
MNe smeshno *я поправил, не благодари
ахаха, ретвитнуть бы этот кусочек :D
Хорошо тут у вас получается!
супер, что за картинка?
народ, кто тут из 2007го, покупайте биткойны!
Когда все привыкли к фильтрам, мы начали встраивать их прямо в камеры. Телефоны давно стали немного «дорабатывать» изображение, даже не говоря нам об этом.
История скрывает кто именно из производителей был первым, но чисто для понимания как давно это было — в iOS 5.0, которая вышла аж в 2011 году, уже был публичный API для Auto Enhancing Images. Одному только Джобсу известно сколько он ещё использовался до открытия на публику.
Простая автоматика делала примерно то же, что кнопка авто-улучшения в фоторедакторах — вытягивала провалы в свете и тенях, наваливала сатурейшена, убирала красные глаза и фиксила цвет лица. Пользователи даже не догадывались, что «драматически улучшенная камера» в новом смартфоне была лишь заслугой пары новых шейдеров.
До выхода первого Google Pixel и начала хайпа по вычислительной фотографии оставалось еще пять лет.
Сегодня же бои за кнопку «шедевр» перешли на поле машинного обучения. Наигравшись с тон-маппингом все ринулись тренировать CNN'ы и GAN'ы, чтобы машины двигали ползуночки вместо нас. Сеть обучали определять оптимальный набор параметров для этого изображения, чтобы на выходе приблизить его к некому субъективному пониманию «хорошей фотографии», заложенного разработчиком.
Нейро-улучшение давно реализовано в том же Pixelmator Pro и других современных фоторедакторах. Работает, как можно догадаться, плохо и не всегда. По ссылкам ниже можно почитать статьи, взять датасеты и потренироваться самому.
📝 Image Enhancement Papers
📝 DSLR-Quality Photos on Mobile Devices with Deep Convolutional Networks
Я сосал меня ебали
OpenCL скорее для вычислений используют, где необходима точность результатов. Для фильтров скорее используют OpenGL. Особенно актуально для смартфонов, где OpenCL ещё довольно сырая технология на 2019 год.
Настоящая вычислительная фотография началась со стекинга — наложения нескольких фотографий друг на друга. Для смартфона не было проблемой нащелкать десяток кадров за полсекунды. В их камерах ведь нет медленных механических частей — диафрагма фиксирована, а вместо шторки затвора экспозицией управляет сама матрица. Процессор просто командует матрице сколько микросекунд ей ловить фотоны и считывает результат.
Технически, телефон может снимать фото со скоростью видео, а видео с разрешением фото, что даст на выходе дикое 12К-видео, но на практике всё упирается в скорость шины и процессора. Потому всегда ставят программные лимиты, иначе получается очень дорого.
Сам по себе стекинг придумали давно. Еще деды ставили плагины на Photoshop 7.0 чтоб собрать несколько фотографий в вырвиглазный HDR или склеить панораму 18000x600 пикселей и... никто так и не придумал что с этим ужасом делать дальше. Богатые времена были, жаль дикие.
📝 dmitry_novak: Разные виды стекинга. Уменьшение шумов с помощью стекинга средствами Photoshop
Сейчас мы стали взрослые и называем это «эпсилон-фотографией» — когда изменяя один из параметров камеры (экспозицию, фокус, положение) и склеивая полученные кадры мы получаем нечто, что не могло быть снято одним кадром. Но это термин для теоретиков, на практике же прижилось другое название — стекинг. Сегодня по факту на нём строится большинство всех инноваций в мобильных камерах.
Вещь, о которой многие не задумываются, но она важна для понимания всей мобильной и вычислительной фотографии: камера в современном смартфоне начинает делать фотографии сразу как только вы открываете её приложение. Что логично, ей ведь надо как-то передавать изображение на экран. Однако, помимо экрана, она сохраняет кадры высокого разрешения в свой собственный фоновый циклический буфер, где хранит их еще пару секунд.
Когда вы нажимаете кнопку «снять фото» — оно на самом деле уже снято, камера просто берет последнее фото из этого буфера
Сегодня так работает любая мобильная камера сегодня. Буферизация позволяет реализовать не просто нулевую задержку затвора, о которой так давно мечтали фотографы, а даже отрицательную — при нажатии на кнопку, смартфон заглядывает в прошлое, смотрит на 10-15 последних фото из буфера и начинает неистово их склеивать. Больше не нужно ждать пока телефон нащелкает кадров для HDR или ночного режима — просто выгрузи всё из буфера, пользователь даже не поймёт.
Именно благодаря отрицательному лагу затвора реализована фича Live Photo в айфонах и её аналоги у других.
За ссылочку на "потренироваться самому" спасибище.
....................................
Вот блин, снимают по несколько фотографий за раз, а выбирать из них те, где у всех снимаемых открыты глаза - так и не научились.
Способны ли матрицы фотоаппаратов фиксировать весь диапазон яркости, доступный нашему глазу — старая горячая тема для срачей. Одни говорят нет, ведь глаз способен видеть до 25 f-стопов когда даже из топовой фуллфрейм-зелкалки можно вытянуть максимум 14 в редакторе. Другие называют сравнение некорректным, ведь глазу помогает мозг, автоматически подстраивая зрачок и достраивая изображение своими нейросетями, а моментальный динамический диапазон глаза на самом деле не больше 10-14 f-стопов. Оставим эти споры лучшим диванным мыслителям интернета.
Факт остаётся фактом: снимая друзей на фоне яркого неба без HDR любую мобильную камеру, вы получаете либо нормальное небо и чёрные лица друзей, либо прорисованных друзей, но выжженное к херам небо.
Решение давно придумано — расширять диапазон яркости с помощью HDR (High-dynamic-range). Нужно снять несколько кадров с разной выдержкой и склеить их вместе. Чтобы один был «нормальный», второй посветлее, третий потемнее. Берём тёмные места из светлого кадра, пересветы заполняем из тёмного — профит. Остаётся лишь решить задачу автоматического брекетинга — насколько сдвинуть экспозицию каждого кадра, чтобы не переборщить, но с определением средней яркости картинки сейчас справится второкурсник технического вуза.
На последних iPhone, Pixel и Galaxy режим HDR вообще включается автоматически, когда нехитрый алгоритм внутри камеры определяет, что вы снимаете что-то контрастное в солнечный день. Можно даже заметить как телефон переключает режим записи в буфер, чтобы сохранять сдвинутые по экспозиции кадры — в камере падает fps, а сама картинка становится как будто сочнее, чем в реальности.
Момент переключения хорошо заметен, если снимать на улице. Присмотритесь к своему смартфону в следующий раз.
Минус HDR с брекетингом по экспозиции — его непроходимая беспомощность при плохом освещении. Даже в свете комнатной лампы кадры получаются такими тёмными, что кумплюктир не может их выровнять и склеить. Для решения проблемы со светом в 2013-м Google показал иной подход к HDR в вышедшем тогда смартфоне Nexus. Он назывался HDR+ и использовал стекинг по времени.
Когда вы нажимаете кнопку «снять фото» — оно на самом деле уже снято... Я почему то получаю интеллектуальный оргазм от фактов которые мало известны и существенно не повлияют на мою жизнь,но сцука, такие любопытные))
"По крайней мере во всех флагманах не с помоек" - и даже в шаоми?
Roman, хз как там в последних флагманах шаоми, но мой Mi6 частенько тупит когда использую HDR в темноте, и фотки начинает снимать, ну не_сразу.
Хз как там в флагманах но [мой_кшьяоми_нормально_работает.webp]
Как у Вастрика получается так писать, что текст льется?
Перечитываю по несколько раз - кайф
...а у Nokia «Ожившее фото» было уже в 2012:)
про "отрицательный затвор" даже не догадывался ;)
*на любую мобильную камеру. Опечатка
Стекинг по времени позволяет получить длинную выдержку с помощью серии коротких. Первопроходцами в нём были любители поснимать следы от звезд на ночном небе, которым было неудобно открывать затвор сразу на два часа. Так было тяжело заранее рассчитать все настройки, а от малейшей тряски весь кадр выходил испорченным. Они решили открывать затвор лишь на пару минут, но много раз, а потом шли домой и клеили полученные кадры в фотошопе.
Получается, камера никогда фактически не снимала на длинной выдержке, но мы получали эффект её имитации, складывая несколько снятых подряд кадров. Для смартфонов уже давно была куча приложений, использующих этот трюк, но все они не нужны с тех пор как фича была добавлена почти во все стандартные камеры. Сегодня даже айфон легко склеит вам длинную выдержку из Live Photo.
Вернёмся к гуглу с его ночным HDR. Оказалось, с помощью брекетинга по времени можно реализовать неплохой HDR в темноте. Технология впервые появилась в Nexus 5 и называлась HDR+. Остальные же телефоны на Android получили её как бы в подарок. Технология до сих пор настолько популярна, что ей хвалятся даже в презентации последних Pixel.
Работает HDR+ достаточно просто: определив, что вы снимаете в темноте, камера выгружает из буфера 8-15 последних фотографий в RAW чтобы наложить их друг на друга. Таким образом алгоритм собирает больше информации о тёмных участках кадра чтобы минимизировать шумы — пиксели, где по каким-то причинам камера не смогла собрать всю информацию и лажанула.
Как если бы вы не знали как выглядит капибара и попросили пять человек описать её — их рассказы были бы примерно одинаковыми, но каждый упомянул бы какую-то уникальную деталь. Так вы бы собрали больше информации, чем просто спросив одного. То же и с пикселями.
📝 HDR+: Low Light and High Dynamic Range photography in the Google Camera App
Сложение снятых с одной точки кадров даёт тот же фейковый эффект длинной выдержки как со звёздами выше. Экспозиция десятков кадров суммируется, ошибки на одном минимизируются на других. Представьте сколько бы каждый раз пришлось щелкать затвором зеркалки, чтобы достичь такого.
Оставалось только решить проблему автоматической цветокоррекции — снятые в темноте кадры обычно получаются поголовно жёлтыми или зелёными, а мы вроде как хотим сочности дневного освещения. В ранних версиях HDR+ это решали простым подкручиванием настроек, как в фильтрах а-ля инстраграм. Потом же подогнали на помощь нейросети — примерно как те, что используют для превращения черно-белых фотографий цветные. Сейчас это не сложно.
Так появился Night Sight — технология «ночной фотографии» в Pixel 2 и 3. В описании так и говорят: «machine learning techniques built on top of HDR+, that make Night Sight work». По сути ими вытягивают цветокоррекцию. Машину обучили на датасете фоточек «до» и «после», чтобы из всякого набора тёмных кривых фотографий делать одну красивую.
Датасет, кстати, выложили в открытый доступ. Может, ребята из Apple возьмут его и наконец-то научат свои стеклянные лопаты нормально снимать в темноте.
Вдобавок, в Night Sight используется вычисление вектора движения объектов в кадре, чтобы нормализовать смазы и призраков, которые обязательно получатся на длинной выдержке. Так смартфон может взять четкие части с других кадров и «заклеить» проблемные места.
📝 Night Sight: Seeing in the Dark on Pixel Phones
📝 Introducing the HDR+ Burst Photography Dataset
В конце 2019 года в iPhone тоже появился ночной режим, который технически работает точно так же. Было очевидно :)
*HDR на любую мобильную камеру
Это не вычислительная фотгарфия, а ебучие кастыли евривеа.
Панорамы — популярное развлечение жителей сельской местности. Истории пока не известно случаев, чтобы панорама-сосиска была бы интересна кому-то, но не упомянуть её нельзя — для многих с этого и начался стекинг.
Первый же полезный способ применения панорамы — получение фотографии большего разрешения, чем позволяет матрица камеры путём склейки нескольких кадров. Фотографы давно используют разный софт для так называемых фотографий с супер-разрешением — когда немного смещенные фотографии как бы дополняют друг друга между пикселей. Таким образом можно получить хоть в сотни гигапикселей, что весьма полезно, если вам надо распечатать всё на рекламном плакате размером с дом.
📝 A Practical Guide to Creating Superresolution Photos with Photoshop
Другой, уже более интересный подход — Pixel Shifting. Некоторые беззеркалки типа Sony и Olympus начали поддерживать его еще с 2014-го, но они лишь снимали за вас пять фоток, а клеить результат равно заставляли потом руками. Типичные инновации больших камер.
Смартфоны же преуспели здесь по одной смешной причине — когда вы снимаете фото, ваши руки трясутся. Эта на первый взгляд проблема легла в основу реализации нативного супер-разрешения на смартфонах.
Чтобы понять как это работает, надо вспомнить как устроена матрица любого фотоаппарата. Каждый её пиксель (фотодиод) способен фиксировать только интенсивность света — т.е. количество залетевших фотонов. Однако, пиксель не может измерить его цвет (длину волны). Чтобы получить RGB-картинку, пришлось нагородить костылей — накрыть матрицу сеткой разноцветных стёклышек чтобы каждый фотодиод отвечал только за свой цвет — R, G или B.
Самая популярная реализация такой сетки называется фильтром Байера и используется сегодня в большинстве матриц. Выглядит как на картинке ниже.
Получается, если лучик красного цвета был невезуч и попал на зеленое или синее стёклышко матрицы — эти фотоны будут просто отброшены на помойку фильтром Байера. То есть мы смело можем терять на этом 2/3 фотонов.
Зелёных ячеек в фильтре Байера больше — так сделали по аналогии с человеческим глазом. Получается, что из 50 миллионов пикселей на матрице зеленый цвет будет улавливать 25 млн, красный и синий — по 12.5 млн. Остальное будет усреднено — этот процесс называется дебайеризация или демозаик, и это такой жирный смешной костыль, на котором всё держится. Отвратительно.
На самом деле, у каждой матрицы свой хитрожопый запатентованный алгоритм демозаикинга, но в рамках данной истории нам насрать
Другие типы матриц (типа Foveon) пока ну как-то совсем не прижились. Хотя некоторые производители до сих пор иногда пытаются использовать матрицы без фильтра Байера для улучшения резкости и динамического диапазона.
Когда света мало или детали объекта совсем крошечны, мы теряем кучу информации потому что фильтр Байера нагло выбрасывает фотоны с неугодной длиной волны. Поэтому и придумали делать Pixel Shifting — смещать матрицу на 1 пиксель вверх-вниз-вправо-влево чтобы поймать их все. Фотография при этом не получается в 4 раза больше, как может показаться, просто процессор использует эти данные чтобы точнее записать значение каждого пикселя. Усредняет не по соседям, так сказать, а по четырём значениям самого себя.
Тряска же наших рук при съемке фото на телефон делает этот процесс естественным следствием. В камерах последних iPhone и Google Pixel эта штука встроена в процессор и включается когда нужно, особенно при зуме. У гугла она называется Super Res Zoom и позволяет очень круто зумить, а у айфона Deep Fusion — там есть небольшое отличие, что промежуточные кадры снимаются еще и с разной выдержкой, но в целом суть та же.
Когда в очередной раз встретие 100x zoom в новом Huawei, знайте — это оно. Оптического там от силы 10x.
📝 SIGGRAPH 2019: Handheld Multi-frame Super-resolution
📝 See Better and Further with Super Res Zoom on the Pixel 3
Наложение друг на друга немного смещённых фотографий позволяет собрать больше информации о цвете каждого пикселя, а значит уменьшить шумы, увеличить резкость и поднять разрешение не увеличивая физическое число мегапикселей матрицы.
«Стеклянные лопаты», ясно, автор андроидный нищеёб
Съемка в темноте - не единственная проблема с которой Apple не хочет ничего делать. Стеклянные лопаты - просто забавное выражение ))
Попробуйте поискать ответ на этот вопрос на 11 абзацев выше...
Васян, серьезно?) Он фанат яблок)
Метод пришел из макросъемки, где маленькая глубина резкости всегда была проблемой. Чтобы весь объект был в фокусе приходилось делать несколько кадров со сдвигом фокуса вперёд-назад, чтобы потом сшить их в один резкий. Тем же методом часто пользовались любители съемки ландшафтов, делая передний и задний план резкими как понос.
Всё это тоже переехало и на смартфоны, правда без особого хайпа. В 2013-м выходит Nokia Lumia 1020 с «Refocus App», а в 2014 и Samsung Galaxy S5 с режимом «Selective Focus». Работали они по одной и той же схеме: по нажатию на кнопку они быстро делали 3 фотографии — одну с «нормальным» фокусом, вторую со сдвинутым вперед и третью со сдвинутым назад. Программа выравнивала кадры и позволяла выбрать один из них, что преподносилось как «настоящее» управление фокусом в пост-продакшене.
Никакой дальнейшей обработки не было, ведь даже этого простого хака было достаточно чтобы вбить еще один гвоздь в крышку Lytro и аналогов с их честным рефокусом. Кстати, поговорим о них (мастер переходов 80 lvl).
Прочитал про демозаикинг, долго думал, при чем тут заикание.
Получается, для фотографий ручной стабилизатор не нужен?
про стеклышки, демозаинг и фильтр Байера слегка неверно написал. но пипл схавает
но клеить результат всё равно заставляли руками. Типичные инновации больших камер. Я конечно понимаю про художественную гипрерболу, но Олимпусы-Порнослоники не только сами шили всегда, так ещё raw-ки не всегда отдают, от чего бомбит ортодоксальных зеркальщиков. Да и вообще Panasonic во флагманах половину описанной здесь"вычислительной фотографии" реализовал на весьма впечатляющем уровне. > некоторые производители пытаются использовать матрицы без фильтра Байера Вероятно, речь про отсутствующий optical low-pass filter без которого повышается резкость, а не про фильтр Байера без которого изображение будет черно-белым.
эх, с импровизированным цитированием вышло так себе...
я немного не понял, физически матрица Байера перемещается или нет?
Хитрые стекинги с ночными режимами и нейросетями, конечно, хороши, но у них есть один главный минус — всё это даёт в результате обычный JPEG. Да, очень сочный, светлый, яркий, но всё-таки JPEG с его главным минусом — его практически невозможно нормально доредактировать в пост-продакшене.
Потеребонькать цвета, микроконтрасты, вот это вот всё наше любимое.
Мы имеем всю мощь стекинга и вычислительной фотографии, но сливаем результат в крестьянские джипеги
Как если бы нам подали в ресторане нежнейшую пасту, а потом захерачили сверху всё кетчупом.
Оно и понятно — обычным людям джипегов достаточно. Даже мне в блоге для тревел-постов в последние годы сполна хватает айфоньих фоток без обработки, что уж говорить про инстаграм и соцсети, которые пережимают их в 10 шакалов.
Не довольны здесь фотографы. Они познали всю мощь вычислительной фотографии, поняли, зеркалке физически такое не повторить, но всё равно не могут начать пользоваться её прелестями, ведь там на выходе обычные джепеги. Потому что мы всё еще верим, что RAW неприкасаем и пишем туда сырые пиксели одного единственного кадра.
Зная все плюшки стекинга, представляете как обидно. В джепеге у тебя прекрасный ночной режим, склеенный из десятка кадров и лихо стабилизированной экспозицией в 2 секунды, а в RAW одинокий шумный квадрат с трясучкой.
Так вот в последние годы мы начали понимать, что пора бы переосмыслить суть RAW-файлов. Отныне это не просто слепок пикселей с матрицы, а контейнер для промежуточных результатов работы всех алгоритмов, дающее право фотографу собрать и настроить финальное фото так, как он задумал.
В таком многослойном DNG-файле может отдельно лежать вытянутая ночным режимом фотография, её карта глубин и другие полезные маски.
Так на сцену выходит вычислительный RAW, который есть в Google Pixel с 2018, и появился в iPhone в 2020 под названием Pro RAW. Оба используют формат DNG.
Картинку выше я взял из свежей статьи Георгия Джеджея, которая полностью посвящена Pro RAW и почему это так круто для фотографов. Рекомендую пройти туда 👇
💎 Вычислительная Фотография 2.0
Сейчас вечеринка вычислительных RAW'ов только начинается. На андроид-смартфонах мало кто всерьез снимал в RAW, потому и софта под такое особо не пилили. С появлением Apple Pro RAW же сразу зашевелились и разработчики — Пиксельматор и Лайтрум наперегонки сейчас будут хвастаться красивой многослойной обработкой.
В блоге Halide вышла неплохая статья Understanding ProRAW о внутренностях формата.
Это ахуэнно!
В 2015м порнослоник выпустил беззеркалку с этими фокусами на основе секундного (50 кадров) дампа буфера.
Я щетаю, всё это - тупое говно - тупого говна. И вот почему.. читать в продолжении
Как мы поняли выше, наши матрицы — это ужас на костылях. По своему устройству они мало изменялись с самого начала времён. Мы лишь совершенствовали техпроцесс — уменьшали расстояние между пикселями, боролись с шумами-наводками, добавляли специальные пиксели для работы фазового автофокуса. Но стоит даже взять самую дорогую зеркалку и попытаться снять на неё бегущего кота при комнатном освещении — кот, мягко говоря, победит.
🎥 The Science of Camera Sensors
Мы уже давно пытаемся изобрести что-то получше. Много попыток и исследований в этой области гуглится по запросу «computational sensor» или «non-bayer sensor», и даже пример с Pixel Shifting выше можно отнести к попыткам улучшения матриц с помощью вычислений.
Однако, самые многообещающие истории в последние лет двадцать приходят к нам именно из мира так называемых пленоптических камер.
Чтобы вы не уснули от предвкушения надвигающихся сложных слов, вброшу инсайд, что камера последних Google Pixel как раз тоже «немного» пленоптическая. Всего на два пикселя, но даже это позволяет ей вычислять честную оптическую глубину кадра и без второй камеры как у всех.
Пленоптика — мощное оружие, которое пока еще не выстрелило. Ниже положу ссылку на одну из моих любимых недавних статей о возможностях пленоптических камер и нашем с ними будущем, откуда я взял позаимствовал примеры.
📝 Вычисляемое видео в 755 мегапикселей: пленоптика вчера, сегодня и завтра
Придумана в 1994-м, собрана в Стенфорде в 2004. Первая потребительская камера — Lytro, выпущена в 2012-м. С похожими технологиями сейчас активно экспериментирует VR-индустрия.
От обычной камеры пленоптическая отличается лишь одной модификацией — матрица в ней накрыта сеткой из линз, каждая из которых покрывает несколько реальных пикселей. Как-то так:
Если правильно рассчитать расстояние от сетки до матрицы и размер диафрагмы, в итоговом изображении получатся четкие кластеры из пикселей — эдакие мини-версии оригинального изображения.
🎥 Видео без звука, где показан процесс редактирования RAW-файла
Оказывается, если взять из каждого кластера, скажем, один центральный пиксель и склеить картинку только по ним — она ничем не будет отличаться от снятой на обычную камеру. Да, мы немного потеряли в разрешении, но просто попросим Sony досыпать еще мегапикселей в новых матрицах.
Веселье же на этом только начинается. Если взять другой пиксель из каждого кластера и снова склеить картинку — получится снова нормальная фотография, только как будто снятая со сдвигом на один пиксель. Таким образом, имея кластеры 10x10 пикселей, мы получим 100 изображений предмета с «немного» разных точек.
Больше размер кластера — больше изображений, но меньше разрешение. В мире смартфонов с 41-мегапиксельными матрицами мы хоть и можем немного пренебречь разрешением, но у всего есть предел. Приходится сохранять баланс.
📝 plenoptic.info — сайт о пленоптике с примерами кода на питоне
Окей, мы собрали пленоптическую камеру, и что это нам даёт?
Фича, о которой жужжали все журналисты в статьях про Lytro — возможность честной корректировки фокуса в пост-продакшене. Под честной имеется в виду, что мы не применяем всякие алгоритмы деблюринга, а используем исключительно имеющиеся под рукой пиксели, выбирая или усредняя их из кластеров в нужном порядке.
RAW-фотография с пленоптической камеры выглядит странно. Чтобы получить из неё привычный резкий джипег, надо сначала его собрать. Для этого надо выбрать каждый пиксель джипега из одного из кластеров RAW'а. В зависимости от того, как мы их выберем, будет меняться результат.
Например, чем дальше находится кластер от места падения оригинального луча, тем более этот луч получается в расфокусе. Потому что оптика. Чтобы получить смещённое по фокусу изображение, нам лишь надо выбрать пиксели на нужном нам удалении от оригинального — либо ближе, либо дальше.
Со сдвигом фокуса на себя было сложнее — чисто физически таких пикселей в кластерах было меньше. Сначала разработчики даже не хотели давать пользователю возможность фокусироваться руками — камера сама решала это программно. Пользователям такое будущее не понравилось, потому фичу добавили в поздних прошивках под названием «креативный режим», но сделали рефокус в нём сильно ограниченным ровно по этой причине.
Одна из самых простых операций в пленоптике — получение карты глубины. Для этого надо просто собрать два разных кадра и расчитать насколько сдвинуты объекты на них. Больше сдвиг — дальше от камеры.
Недавно Google купил и убил Lytro, но использовал их технологии для своего VR и... для камеры в Pixel. Начиная с Pixel 2 камера впервые стала «немного» пленоптической, правда с кластерами всего по два пикселя. Это дало возможность гуглу не ставить вторую камеру как все остальные ребята, а вычислять карту глубины исключительно по одной фотографии.
📝 Portrait mode on the Pixel 2 and Pixel 2 XL smartphones
Карта глубины строится по двум кадрам, сдвинутых на один суб-пиксель. Этого вполне хватает, чтобы вычислить бинарную карту глубины и отделить передний план от заднего чтобы размыть его в модном нынче боке. Результат такого расслоения еще сглаживается и «улучшается» нейросетями, которые натренированы улучшать карты глубины (а не блюрить, как многие думают).
Фишка еще в том, что пленоптика в смартфонах нам досталась почти бесплатно. Мы и так ставили линзы на эти крошечные матрицы, чтобы хоть как-то увеличить световой поток. В следующих Pixel гугл планирует пойти дальше накрыть линзой четыре фотодиода.
Вы не видите своего носа, потому что мозг склеивает вам итоговое изображение из двух разных глаз. Закройте один и вы заметите с краю целую египетскую пирамиду.
Тот же эффект достижим в пленоптической камере. Собрав сдвинутые относительно друг друга изображения из пикселей разных кластеров, мы сможем посмотреть на предмет как будто с нескольких точек. Прямо как наши глаза. Что открывает нам две крутые возможности: оценку примерного расстояния до объектов, что, как и в жизни, позволяет нам легко отделить передний план от заднего, а так же, если размеры объекта небольшие, позволяет полностью удалить его из кадра. Как нос. Оптически, по-настоящему и без фотошопа.
Из приходящих на ум примеров применения: вырезать деревья между камерой и объектом или удалять падающие конфетти, как на видео ниже.
Из пленоптического RAW'а можно собрать сотню фотографий, снятых со сдвигом в несколько пикселей по всей площади матрицы. Получается, у нас есть труба диаметром с наш объектив, в рамках которой мы можем свободно перемещать точку съемки, компенсируя тем самым тряску изображения.
Технически, стабилизация всё еще оптическая, потому что нам не надо ничего вычислять — мы просто выбираем пиксели в нужных местах. С другой стороны, любая пленоптическая камера жертвует количеством мегапикселей в угоду пленоптических возможностей, а точно так же работает любой цифровой стаб. То есть бонусом это фичу иметь приятно, но использовать исключительно ради неё — так себе затея.
Больше матрица и объектив — больше окно для движений — больше возможностей — больше озоновых дыр от обеспечения всего этого цирка электричеством и охлаждением. Еее, технологии!
Даже в пленоптической камере он всё еще необходим, ведь мы так и не придумали другого способа получить цветное цифровое изображение. Зато теперь мы можем усреднять цвет не только по группке соседних пикселей, как в классическом демозаике, а по десяткам его копий в соседних кластерах.
В статьях это называют «вычисляемым супер-разрешением», но я бы тут снова засомневался — ведь по сути мы сначала уменьшаем реальное разрешение матрицы в те самые десятки раз, чтобы потом как бы гордо его восстановить. Чтобы такое кому-то продать, придётся сильно постараться.
Хотя технически оно всё равно интереснее, чем дрожать матрицей в приступе pixel shifting'а.
Любители снимать боке-сердечки здесь будут в восторге. Раз уж мы умеем управлять рефокусом, можно пойти и дальше — брать лишь некоторые пиксели из расфокусированного изображения, а другие из обычного. Так можно получить диафрагму любой формы на радость фотопабликам.
Чтобы не отходить от темы фотографии в посте, всех интересующихся отправляю прочитать и посмотреть на них по ссылкам выше и ниже. Там рассказывают еще с пол десятка интересных применений пленоптической камеры.
🎥 Watch Lytro Change Cinematography Forever
Обычно с них начинают объяснять пленоптику, но я так и не понял зачем морочить ими голову с самого начала. Итак, да, с физической точки зрения, пленоптическая камера — это инструмент фиксации светового поля. Даже название пошло отсюда — plenus, от латинского «полный», то есть собирающий всю информации о лучах света. Как пленарное заседание.
Разберёмся простым языком что такое световое поле и зачем оно нам.
Любая традиционная фотография двумерна — где луч вошел в объектив, там и загорелся пиксель на фотографии. Камере насрать откуда этот луч пришел — случайно упал сбоку или отразился от задницы прекрасной дамы. Фотография фиксирует только точку пересечения луча с поверхностью матрицы.
Изображение же светового поля, в свою очередь, фиксирует то же самое, но с добавлением новой компоненты — откуда этот луч пришел. Иными словами, фиксирует вектор луча в пространстве. Как расчёт освещения уровня в видеоигре, только наоборот — мы пытаемся понять модель освещения реального мира. Световое поле, получается, и есть набор всех световых лучей в рамках нашей сцены. Как падающих от источников света, так и отражённых.
Световое поле по сути визуально описывает пространство вокруг. Любую фотографию в рамках этого пространства мы теперь можем спокойно вычислить математически. Точка съемки, глубина резкости, диафрагма — всё это тоже вычислимо.
Мне тут нравится проводить аналогию с городом. Фотография — это как путь от дома до ларька с пивком, который вы помните наизусть, а световое поле — это карта всего города. Имея карту, мы можем вычислить в ней любой маршрут из точки А в Б. Точно так же мы можем вычислить любую фотографию, зная световое поле.
Для простой фотографии такая штука — оверкилл, но на сцену медленно выползает VR. В нём световые поля являются одним из перспективных направлений. Слепок светового поля позволит рассмотреть объект в виртуальной реальности из любой точки пространства. Больше не надо строить 3D-модель комнаты, чтобы походить по ней — достаточно «всего-лишь» записать все лучи света в этой комнате. Всего-лишь, ага. Над тем и бьёмся.
📝 Google AR and VR: Experimenting with Light Fields
«Чтобы такое кому-то продать, придётся сильно постараться.» Забавно, что блюрей, hd и в некоторых случаях аймакс кино выводят даже более стремным методом — апскейлом. И люди покупают, потому что им об этом не говорят. Ровно то же «суперразрешение»
А чтобы удалять объекты «без фотошопа» нужен достаточно большой объектив (или достаточно маленькие объекты), чтобы с разных «краев» съёмки можно было в итоге получить изображение, в котором ненужные элементы бы игнорировались. Поправьте, если ошибаюсь
Под оптикой мы с ребятами из Стенфорда имеем в виду не только линзы и объективы, но и всё, что между объектом и матрицей — даже диафрагму и затвор. Фотоснобы здесь будут в ярости.
Я уже допил второе пиво и всё ещё читаю. Браво!
Штука сканирующая лучи света в комнате - это то в каком состоянии находится технология на данный момент?
RTX это ведь про то же?
Я единственный читаю членоптика?
Это чуть, совсем другое - это когда луч света вышел из лампы, отразился от хромированой ручки, преломился в бокале пива, и отразившись от задницы прекрасной дамы попал в камеру, прямо во время генерации 3д
Сейчас для этого геймдевелоперы используют всякие костыли для имитации(нарисованный блик или карта отражения). Rtx видеокарты это делают в реальном времени, обычным требуются минуты и часы для рендера.
Похоже на голографию
В 2014 году вышел HTC One (M8) и стал первым смартфоном с двумя камерами и весьма комичными возможностями вычислительной фотографии типа замены фона на дождь или блёстки как в лучших пабликах Одноклассников.
Началась гонка. Все стали ставить два, три, пять объективов в свои смартфоны, пытаясь попутно выяснить что лучше — телевик или ширик. В итоге дошли до появления Light L16, в которой было, как можно догадаться, аж 16 объективов.
L16 уже была не смартфоном, а скорее новым видом карманной камеры. Она позиционировалась как компактная альтернатива зеркалке, в которой качество фотографий достигалось не дорогущим светосильным объективом и фуллфрейм матрицей, а силой алгоритмов вычислительной фотографии.
Среди её 16 объективов были ширики на 28 мм и телевики на 70 и 150 мм. Каждый телевик был перископическим, то есть свет не напрямую шёл через линзу на матрицу, а отражался зеркалом вглубь корпуса. Такое расположение позволяло впихнуть достаточно длинный телевик в плоский корпус, а не торчать из него трубой. Тот же финт недавно провернули китайцы в Huawei P30 Pro.
Каждое фото L16 снималось одновременно на 10 и более объективов, а потом камера их хитро склеивала чтобы получить 52 Мп изображение. По задумке авторов, одновременная съемка на несколько объективов позволяла поймать такое же количество света, как и в большой объектив зеркалки, но при этом хитро обойти все законы оптики и необходимость в длинной подзорной трубе.
Из софтварных фич в первой версии было управление глубиной резкости и фокусом после съемки фото — наличие фотографий с разных ракурсов позволяло вычислить глубину кадра и наложить неплохой программный блюр. На бумаге всё звучало приятно и до релиза у всех даже была надежда на светлое вычислительное будущее.
В марте 2018 года Light L16 вышла на рынок и... с треском провалилась. Технологически она действительно находилась в будущем, но при цене в $2000 не имела никакой оптической стабилизации, из-за чего фотографии постоянно получались смазанными (не удивительно при линзах в 70-150 мм), автофокус был слишком медленный, склейка из нескольких кадров давала странные перепады резкости, а в темноте камера вообще была бесполезна, потому что в ней не было алгоритмов типа гугловского HDR+ или Night Sight. Современные мыльницы за $500 с поддержкой RAW уделывали её со старта, потому продажи быстро прекратили после первой партии.
Однако, компания Light на этом не закрылась, а наоборот подняла бабла и с удвоенной силой продолжает пилить новую версию. Например, их технологии использовались в недавней Nokia 9, которая страшный сон трипофоба. Ждём новых инноваций, потому что идея явно богатая.
🎥 Light L16 Review: Optical Insanity
Фотоснобов нет
Лидар — отдельное устройство, определяющее расстояние до объекта. Чаще всего он выпускает перед собой импульс света и считает время, за которое он вернулся. Прогрессу в области лидаров мы обязаны недавнему хайпу по самоуправляемым автомобилям в последние годы. Странные крутящиеся штуки на их крышах — это как раз лидары.
В смартфон лазерный лидар пока не впихнуть, потому сейчас мы обходимся его младшим братом — time-of-flight камерой. Суть работы до нелепости проста: специальная отдельная камера, над которой стоит LED-вспышка. Камера делает много импульсов, фиксирует до каких объектов свет достигает первыми и строит по этому карту глубины кадра.
Точность мобильных лидаров — до сантиметра. Флагманские смартфоны используют их для создания карты боке и для лучшей работы автофокуса в темноте.
Знание точной глубины кадра будет полезно в эпоху наступающей дополненной реальности — пулять лидаром по поверхностям чтобы сделать первичный маппинг в 3D будет куда точнее и проще, чем анализируя изображения камер.
В смартфоны лидары ставят в основном по трём причинам:
Читайте другой мой пост о Дополненной Реальности, там я рассказываю подробнее как это всё работает.
Перископы для зума были ещё и у сони в 2005 году на dsc-t5, t33, t7.
Light 16 вызывает приступы трипофобии
дошли до появления Light L16 - тут битая ссылочка :(
Начинается зона телескопов, рентгенов и прочего тумана войны. Сильно заходить в неё не будем, но ремни лучше заранее пристегнуть. История кодирующих диафрагм начиналась там, где фокусировка лучей была физически невозможна — для гамма и рентгеновского излучения. Обратитесь к ближайшему учителю физики, он вам объяснит почему.
Суть кодированной диафрагмы заключается в замене стандартной её дырки на некий паттерн. Расположение отверстий должно быть таким, чтобы их общий вид максимально различался в зависимости от степени расфокуса. Чем разнообразнее — тем лучше. Астрономы напридумывали целую гору таких паттернов для своих телескопов, здесь я приведу самый классический.
Когда мы фокусируемся на объекте, всё, что вне глубины нашей резкости, размывается. Физически, размытие — это когда одна точка по причине расфокуса проецируется линзой на несколько пикселей матрицы. Так уличный фонарь превращается в круглый блин боке.
Математики называют такие операции свёрткой (convolution) и обратной свёрткой (deconvolution). Запомним эти слова, ведь они круто звучат!
Технически, мы можем развернуть любую свёртку обратно, если знаем ядро. Но это математики так говорят. В реальности же у нас ограниченные диапазоны матрицы и неидеальные линзы объективов, из-за чего все наши «боке» далеки от математического идеала и полностью восстановить их невозможно.
📝 Владимир Южиков: Восстановление расфокусированных и смазанных изображений
Мы всё равно можем попытаться, если узнаем ядро свёртки. Не буду долго тянуть, но этим ядром в фотографии как раз и является форма диафрагмы. Диафрагма делает математическую свёртку чисто оптически.
Проблема в том, что обычная круглая диафрагма остаётся круглой на любом уровне размытия. Наше ядро всегда примерно одинаковое — это стабильно, но не очень полезно. В случае с кодированной диафрагмой, лучи с разной степенью расфокуса будут закодированы с разным ядром. Читатели с IQ > 150 уже догадались что будет дальше.
Остаётся лишь одна проблема — понять с каким ядром закодирована каждая из областей изображения. Можно попробовать это сделать руками, примеряя разные ядра и смотря где свёртка получается точнее, но это не наш путь. Давным давно человеки изобрели для этого преобразование Фурье! Чтобы не насиловать людей матаном, приложу ссылку на моё любимое его объяснение для тех, кому это вообще интересно.
🎥 But what is the Fourier Transform? A visual introduction
Всё, что нужно знать простому человеку: преобразование Фурье позволяет достать из кучи наложенных друг на друга волн те паттерны, которые в них преобладают. В случае музыки Фурье покажет частоты входящий нот в сложный аккорд, а в случае с фотографией — преобладающий паттерн, с которым куча световых волн наложилась друг на друга. То есть ядро свёртки. Профит.
А так как это форма кодированной диафрагмы всегда разная в зависимости от расстояния до объекта — мы можем вычислить это расстояние чисто математически, используя только один простой кадр, снятый на обычную матрицу!
Применив операцию обратной свёртки по этому ядру, мы можем восстановить разблюренные области изображения. Вернуть все разбросанные пиксели на место, так сказать.
Так работает большинство инструментов деблюра. Причём это прокатывает даже с обычной круглой диафрагмой, но результат получается менее точным.
Минусом кодирующих диафрагм является потеря света и появление шумов, а ими мы всё еще не можем пренебрегать. Появление же лидаров и достаточно точных ToF-камер вообще свело на нет все идеи использования кодирующих диафрагм в потребительских гаджетах. Если вы где-то их встречали — напишите в комментах.
📝 Image and Depth from a Conventional Camera with a Coded Aperture
📝 Coded Aperture. Computational Photography WS 07/08
🎥 Coded aperture projection (SIGGRAPH 2008 Talks)
«Читатели с IQ > 150 уже догадались что будет дальше» – ржал аки конь!
Ребята, ребята, это что, получается, что заблюренную искусственно картинку можно восстановить?
Petya, восстановить то можно, только результат скорее познавательный чем эстетический
evadim, это понятно, но тогда получается, что можно разные данные со скринов восстановить, а это не есть хорошо, имхо.
Petya вау, я об этом не подумал. Теперь буду чёрным замазывать
Так работает большинство инструментов деблюра. Не знаю, про большинство инструментов, но инструмент в Photoshop (Sharpen Edges) работает совсем-совсем не так.
Согласно последним ГОСТам, свет — наполовину волна. Кодируя диафрагму, мы управляли прозрачностью линзы, что в переводе на волновой язык означает управляли его амплитудой. Кроме амплитуды есть фаза и её тоже можно кодировать.
Делают это с помощью дополнительной линзы, которая переворачивает фазу проходящего через неё света. Как на обложке Pink Floyd, да.
Дальше всё работает как в любом другом оптическом кодировании. Разные области изображения оказываются закодированы по-разному, а мы можем их алгоритмически распознать и как-то пофиксить. Например, сдвинуть фокус.
Плюс фазового кодирования — мы не теряем в яркости. Все фотоны честно долетают до матрицы, в отличии от кодированной диафрагмы, где они стукаются о непроходимые её части (ведь во второй половине ГОСТа, свет — это частица).
Минус — мы всегда будем терять в резкости, потому что даже объекты в абсолютном фокусе будут равномерно размазаны по матрице и нам хоть как придётся звать Фурье чтобы собрал их для нас. Ниже приложу ссылку с более подробным описанием и примерами фотографий.
📝 Computational Optics by Jongmin Baek, 2012
сложнааааа
Уже второй день пошёл, вчера я ел рыбу, пил пиво, гулял с детьми, спал и читал.... Читал эту статью, вечером я её потерял, так как читал с фейсбука, а он сучек- прячет недочитанные посты с ссылками. Нашёл. Сегодня уже вечер, я жарю шашлыки, пью безалкоголку и все ещё читаю это творение. Автор ты прекрасен.
Последнее, что мы можем закодировать на пути света до матрицы — затвор. Вместо привычного цикла «открыли — подождали — закрыли» будем несколько раз двигать затвором за кадр, чтобы в сумме получить нужную выдержку. Почти как в мультиэкспозиции — когда один кадр экспонируется несколько раз.
Представим, что мы решили фотографировать быстро движущийся автомобиль ночью и потом рассмотреть его номера. Вспышки у нас нет, длинной выдержкой воспользоваться тоже не выйдет — всё смажется. Надо уменьшать выдержку, но так мы дойдём до абсолютно чёрного кадра, так и не распознав автомобиль. Что делать?
Можно снять тот же кадр в несколько движений затвора — чтобы автомобиль был размазан не равномерно, а как бы лесенкой с заранее известным шагом. Конечно, если он не валит со скоростью заниженной четырки с района, но этот вариант наука игнорирует.
Получается, мы закодировали смаз случайной последовательностью открытий-закрытий затвора и можем попытаться раскодировать его с помощью той же обратной свёртки. Оказывается, это работает в разы лучше, чем пытаться так же вернуть равномерно смазанные от длинной выдержки пиксели.
Алгоритмов для этого придумано аж несколько штук. Для более хардкорных подробностей снова приложу ссылки на публикации умных индусов.
📝 Coded exposure photography: motion deblurring using fluttered shutter
🎥 Flutter Shutter Coded Filter
получается, что принцип съемки соответствует «стекингу по времени», и из результатов стекинга можно восстановить резкость или сымитировать «длинную выдержку»
Скоро мы зажрёмся настолько, что захотим контролировать в пост-продакшене в том числе и освещение. Менять пасмурную погоду на солнечную или выравнивать тени на лице после съемки — сейчас это кажется дикостью, но посмотрим лет через десять.
Мы уже изобрели одно глупое устройство, позволяющее в прямом смысле «в лоб» управлять освещением — вспышку. Сначала она была нужна из-за технических ограничений камер, потом враги стали ставить её во все мыльницы чтобы портить ваши семейные фото, а в эпоху смартфонов все используют её как фонарик.
Наши движения к вычислительному освещению пока еще хаотичны и мало кому понятны.
Управление освещением на гифке происходит механически или с помощью вычислений?
что-то подсказывает, что тут все вручную (а поооомните последний клип луны?)
а как же на айфонах это самое управление уже есть хоть и базовое. Стоит упомянуть.
Старые нокии обожали пощеголять вспышкам на ксеноне, выжирающими по проценту батарейки с каждой фотографией. Сегодня жизнь стала скучнее и везде ставят простой энергоэффективный LED. Со светодиодом особо не разгуляешься, но мы всё равно попытались.
Для начала все перешли на Dual LED вспышки — сочетание оранжевого и синего светодиодов, яркость которых пытается подстроиться под цветовую температуру кадра. В айфонах это зовут True Tone и управляет им небольшой кусок кода по хитрой формуле. Даже разработчикам не дают ими управлять.
📝 Demystifying iPhone’s Amber Flashlight
Когда в смартфонах появились датчики глубины и нейросети, мы захотели решить ими главную проблему всех вспышек — пересвеченные лица и вообще передний план. Каждый сделал это по-своему. В айфонах появился Slow Sync Flash — камера искусственно увеличивала выдержку в темноте. В Google Pixel и других андроидах — алгоритм объединения кадров со вспышкой и без. Телефон быстро делает две фотографии — со вспышкой и без. Части кадра, находящиеся близко к камере, берутся из кадра без вспышки, а подсвеченные детали фона из кадра со вспышкой. Получается примерно равномерное освещение.
Дальнейшее применение программируемых мультивспышек весьма туманно. Интересное применение нашли разве что в областях компьютерного зрения, где нужно было с большей четкостью определять границы объектов. Например, так можно сделать схему по сборке шкафа из икеи.
📝 Non-photorealistic Camera:
Depth Edge Detection and Stylized Rendering using Multi-Flash Imaging
решить ими главную всех вспышек
Если смотреть на картинки, то видно что с кадра со вспышкой взят передний план, а в тексте говорится, что задний
Это что, программный CPL-фильтр?
Кодировать свет всегда было проще всего. Мы можем хоть сотню раз за кадр менять освещение и всё равно даже не приблизимся к скорости его скорости. Поэтому уже в далёком 2005-м вот эти ребята придумали Lighstage.
Суть метода в том, чтобы в каждом кадре реального 24 fps'ового кино успеть подсветить объект со всех возможных сторон. Для этого используется 150+ ламп и высокоскоростная камера, которая на один кадр фильма снимает сотню кадров с разным освещением. Вот так глупо выглядят любые инновации, когда их начинаешь объяснять.
Сейчас подобный этому подход используется при съемках комбинированной CGI графики в кино. Он позволяет полностью управлять освещением объекта в пост-продакшене, помещая его в сцены с абсолютно случайным освещением. Просто берём подсвеченные с нужных сторон кадры, немного тонируем, профит.
Жаль на мобильных девайсах такое будет сделать проблематично, но идея может кому-то и пригодится. Видел приложение ребят, которые снимали 3D-модель лица, подсвечивая его фонариком телефона с разных сторон.
Так мой комментарий похож на спам или не похож?
Чтобы всерьез заняться вычислительным освещением на смартфонах, нам придётся перейти от обычных LED-вспышек к проекторам — любым штукам, умеющим проецировать 2D-картинку на плоскость. Для начала сойдет и простая монохромная сетка.
Первый плюс проектора — он может подсветить только ту часть кадра, которая действительно нуждается в подсветке. Больше никаких выжженных лиц на переднем плане — их можно распознать и игнорировать, как это делают лазерные фары современных автомобилей, которые не слепят встречку в движении, но подсвечивают пешеходов. Даже при минимальном разрешении проектора, типа 100х100 точек, возможности выборочной подсветки весьма интересны.
Второе, более реальное применение проектора — проецирование невидимой глазу сетки на кадр. С ней можно забить на все эти нейросети для определения глубины — по ней все расстояния до объектов в кадре рассчитываются простейшими алгоритмами компьютерного зрения. Так делали еще во времена Microsoft Kinect, царство ему небесное, и было охеренно.
Естественно, здесь нельзя не вспомнить Dot Projector для Face ID в iPhone X и выше . Это пока наш первый шаг в сторону проекторных технологий, но уже весьма заметный.
Для глупеньких типа меня хочу напомнить что расстояние точно так же считается по сдвигу фазы, а не по "делаем снимок каждую наносекунду", а то я забыл и чуть с ума не сошел от технологий
У меня в пылесосе лидар:)
опять же стоит упомянуть инфракрасную камер и проекцию для фейсайди. тот же принцип ведь
первчный -> первичный
Время поразмышлять. Судя по происходящему в крупных технологических компаниях, наши ближайшие десять лет будут плотно посвящены дополненной реальности. Это сейчас AR выглядит как игрушка — как способ пощупать трёхмерную вайфу, примерить кроссовки, посмотреть как будет смотреться макияж или тренировать армию США. Завтра мы и не заметим как станем пользоваться AR постоянно. Плотные потоки бабла от Google и Nvidia уже ощущаются.
Для фотографии это означает, что в моду войдёт AR-фото — возможность управлять 3D сценой. Сканировать пространство, как это делают смартфоны с Tango, добавлять в него новые объекты, как в HoloLenz, вот это вот всё. Пусть вас не смущает пока всратая графика современных AR-приложений — как только сюда придут игровые компании с мыльным кинцом, всё станет куда лучше.
Автор: Битый Пиксель
Помните как эпично бомбанул Huawei с их фейковым Moon Mode? Для тех, кто пропустил как это работало: если камера хуавея определяла, что вы хотите снять луну на небе, она вклеивала в кадр заранее подготовленную фотографию луны высокого разрешения. Так ведь и правда круче. Настоящий китайский киберпанк. Мы всем интернетом смеялись сильно громче обычного.
Потом я купил себе новые лёгкие и задумался — а ведь дядька Ляо на сцене был прав. Он дал людям ровно то, что обещано — луна была настоящей, камера позволяла её ТАК снять, а остальные вопросы пишите в спортлото. Ведь если завтра смартфон будет предлагать приклеить красивый закат или синее небо вместо облаков — пять миллионов жителей Петербурга будут в восторге!
В будущем машины будут «дорисовывать» наши фотографии. Так вижу
Уже сейчас в камерах Pixel, Galaxy и других Android-смартфонов есть какой-нибудь глупый AR-режим. В одном можно добавлять модели персонажей из мультиков чтобы сфотографироваться с ними, во втором лепить эмодзи по всей комнате, в третьем наложить маски на лицо как в снапчате.
Всё это лишь наши первые наивные шаги. Сегодня у того же гугла в камере есть Google Lens, который гуглит для вас информацию о любом объекте, на который вы навели камеру. У Samsung то же самое умеет Bixby. Пока эта фичи сделаны только чтобы унижать людей с айфонами, но несложно представить как в следующий раз, когда вы будете делать селфи на фоне Эйфелевой Башни, телефон скажет: знаешь, твоё селфи — полное говно, я вставил на фон нормальную резкую фотку башни с того же ракурса, а тебе там пофиксил причёску и замазал прыщ под губой. Лучше всего сюда подойдет фильтр VSCO L4. Не благодари.
Дальше камера начнёт заменять траву на более зелёную, друзей на более закадычных, а сиськи на более большие или типа того. Дивный новый мир.
Всё это будет выглядеть нелепо, сначала даже ужасно. У дедов-эстетов будет дико бомбить, а борцы за натуральность пойдут по домам отбирать нейросети у населения. Массовая же аудитория будет в восторге. Потому что для неё фотография — лишь один из способов самовыражения и передачи эмоций. Каждый раз, когда появлялся инструмент чтобы выражать их ярче и эффективнее, все начинали им пользоваться — эмодзи, фильтры, стикеры, маски, аудиосообщения. Список кому-то покажется мерзким, но его легко можно продолжать.
Фотографии «объективной реальности» будут казаться скучными как фотки семьи за новогодним столом с оливье. Они не умрут, но станут чем-то типа бумажных книг — увлечением эстетов, которые видят в этом особый смысл. «Кому вообще может быть интересно заморачиваться с правильным светом и композицией объектов на сцене, если мой телефон дорисовывает то же самое за меня» — будут недоумевать одни. «Ко-ко-коко-ко» — будут парировать другие.
Массовой аудитории насрать на объективность, им надо чтобы алгоритмы делали их лица моложе, а отпуск круче, чем у соседа по офису. Дополненная реальность будет дорисовывать реальность за них даже с более высоким уровнем детализации, чем она есть на самом деле. Как бы смешно ни звучало, мы начнём улучшать графику в реальном мире.
И да, как всегда, всё начнётся с подростков с их «непонятными глупыми увлечениями для дегенератов». Так всегда всё начинается. Как только вы что-то перестаёте понимать — это и есть будущее. Следите за ними.
Так Apple купила технологии Kinect. Так что по сути это один продукт
а фото сетки dot projector было снято автором или это из маркетинговых материалов? интересно, можно ли такой кадр самому получить?
Не лазерные, а LED-фары. Те, что называют себя лазерными фарами, используют лазер как прекурсор для получения сверхяркого дальнего света. По крайней мере так сейчас
Пугающе и приятно почувствовать себя несведущим в большинстве описанных технологий. Видимо, тенденция тратить колоссальную энергию на проблемы "первого мира" сохранится (не обеспечивать же кого попало питьевой водой, в самом деле). Так что вышеописанные решения будут очень полезны чтобы пририсовать не только луну, которую давно не видно из-за смога, но и снег горных вершин, чистый песочек вместо пластикового месива на пляже, ну или что к тому времени будет нужно. https://twitter.com/sirjoancornella/status/1101452407471464448 спасибо за статью, видно сколько труда за ней.
Огонь, спасибо!
Очень исчерпывающая статья, техническую часть придётся вкурить)) Спасибо!
"склеить панораму 18000x600 пикселей и... на самом деле никто так и не придумал что с ними делать дальше." Actually it's not true. This "life-hack" is perfect, when You travel with cheap camera and want to get stunning print-out. Make big-in size-low-dpi-quality panorama, resize by increasing resolution and go to print-out-center. Stunning photo as made with expensive DSLR ;)
Мегареспект за гипердетальность, статья - лучший лонгрид месяца (so far)!
Вастрик, ну невозможно же дочитать до конца. У меня клиповое мышление, ты че творишь, а?
Агонь!!! Просто мощ знаний мне в мозг. Это круто! и дата сеты для "выноса себе мозга" на Python :)
Отличный текст, спасибо!
Ты так приучишь нас читать почти без картинок. И не оторвёшься ведь.
Вообще да, очень люблю беззеркалки, но хотелось бы побольше полезного софта в камере. Потихоньку прогресс, благо, есть. Например сони засунули в камеру нейросеточки для "Real-time Eye AF" – определяет в кадре человека и делает непрерывный автофокус по глазу/лицу. Причем очень точно и быстро делает (даже если человек быстро перемещается). Недавно выпустили обновление с натренированными на животных нейросеточками и теперь у них автофокус и на глазах животных умеет фокусироваться. И, как недавно тестировавший АФ сони на играющих котятах, могу сказать что сони безоговорочно победила.
Отличный обзор, как всегда
Ага, Сони победила. Еще бы цвета нормальные делала, а то я тут грущу со своей камерой. На телефоне приятнее выглядят даже исходники.
Спасибо за такую крутую статью!
отдельное спасибо за открытие всех ссылок в соседней вкладке, а не как у Джеджея
Еще один годный пост. Мне уже неудобно присылать ссылки на посты Вастрика друзьям и родным.
Статья огонь! Спасибо! Спонсоры забыты?
Количество энергии, которую потребляет мозг - всего 10 Ватт. А сколько там потребляют ваши суперкомпьютеры, которые этот мозг еле научились в шахматы обыгрывать?
Удалось понять, чем же круты все эти современные телефоны. Выражаю блягодарность.
Пожалуй, лучший лонгрид этого лета :)
Охуенная простыня! P.S.: Добавь Ctrl+Enter чтобы моментом слать тебе опечатки
Потрясающий труд, не представляю, какую нужно иметь мотивацию, чтобы разобраться во всём этом! Спасибо.
Вастрик, ты мой герой! Лучший пост со времён дома-дурачка!
Охуенно. Спасибо.
Стало быть, зеркалкам в топку? Даешь в каждую лопату радужную кнопку "сделать 3,14здато". Никоны, Кэноны с Пентаксами на помойку! Соньку выдрать публично и перевоспитать, пусть ваяет только смарты. Недалекое будущее - наводишь смарт на девушку и слышишь такое: "у твоей модели неправильное лицо и грудь не в стандарте! Исправить? Банк предметов типовых лиц, типовых фигур, типовых фонов. Все остальное признать не фотогеничным и заблокировать. Пусть умные камеры разъезжают на беспилотных автомобилях и сами решают, кого, когда и где снимать.
PS А статья превосходная! Респект за.
ну и талантище - выбирать именно такие темы, которые самый хайп, но каким-то обзразом не описанные хорошо и полно ни в одном источнике. плюсую к предыдущему каменту - последний раз так радовалась от статьи на доме-дурачке. хоть и все остальные тоже огонь. ну спасибище короче, донат ушел
Да, хорошо зашло, спасибо. (З.Ы. только не Малышеву на аватарку, пожалуйста)
Спасибо за статью.
СЛишком превосходно!!!!
Для справедливости, с зеркалками тоже не все так шаблонно. Та же сони делает "беззеркальные зеркалки" вплоть до полнокадровых, с высокоскоростной и бесшумной съемкой и пост-обработкой. Но, конечно, пос-обработка пока еще очень ограничена. И причина, думается мне, не в том, что это сложно реализовать, а что целевая аудитория таких камер неприемлет автоматическое вмешательство в изображения в таких масштабах, как это себе позволяют смартфоны. Не зря многие снимают только в RAW.
Сколько же автор потратил времени, чтобы опрадать своё пользование смартфоном. Любой ыпхон за 100000 + рубасов куритьв стороне по сравннению с "недорогой" зеркалкой от 1000$. Надо просто любить снимать и растить руки из нужного места. Большинство примеров фото в статье ниочем. Смартфоны для обывателей и мусорного фото, зеркали и беззеркалки для творческих людей.
Офигенная статья - и контент и стиль. Вмемориз
Блэт, Вастрик, наконец то дочитал. Ты мешаешь мне деградировать
Классно стал писать, Вася!
Просто охренеть, какой труд был все это упихать в один лонгрид. Респект. И сильно пугает, что по отдельности 90% рассказанного воспринимается как само собой разумеющееся, пока вот так вдруг не натыкаешься на место, где все это собрано в кучу и разложено по полочкам. Как же мы далеко уехали за последние 15 лет. Единственный наверно момент, которого в статье не нашел, хотя он в тематику просто таки со щелчком входил: истории про плоские линзы на основе выращивания запрограммированного рисунка наноструктур на поверхности, короче вот эта статья: https://news.harvard.edu/gazette/story/2016/06/a-thinner-flatter-lens/
Спасибо! Ушел курить ссылки.
Одно из прекраснейших мест в статье - это камент ФотоПалыча.
Статья - восторг! Спасибо вам за работу от профессионального фотографа.
Я хочу от вас детей
Андрей, Как мне кажется, в плане реализации описанного выше в камерах дальше всего продвинулся Panasonic (чуть меньше его - Olympus) в m43. Возможно просто потому, что там изначально менее снобские пользователи которым и jpeg норм, а может потому что для них обоих камеры это побочный продукт который помогает отбить R&D другого подразделения: у Olympus основной бенефициар это медтехника.
Основная идея по большей части мне была известна - давно слежу за вычислительной фотографией, но автор разложил всё по полочкам и нагрузил кучей полезных ссылок. Статья реально очень крутая. Чего пока не увидел - это имитации изменения перспективы. И тут пока камеры со сменными объективами рулят. А вот когда смогут имитировать перспективу 135мм объектива на полном кадре с характерным бокэ Кэнона или Сони на выбор - вот тут то фотоиндустрия и вздрогнет. Им бы начать шевелиться и наращивать мозги в камерах. Ведь с такими вычислительными технологиями, полнокадровой матрицей и дешманским объективом 18-300мм. Можно было бы закрыть возможности всех современных дорогих зеркалок. Главный вопрос: что произойдёт раньше - смартфоны перегонят зеркалки, научившись имитировать разные фокусные (а это последнее, что осталось) или фотобренды вставят полноценную вычислительную фотографию в свои камеры (и протянут на этом ещё немного лет до неминуемого коллапса).
Ну вот. Ты славно потрудился на предмет популяризации знаний про подходы построения красивой картинки смартфонов, а теперь люди на форумах спекулируют твоим трудом и ломают копья в священных войнах. https://it.d3.ru/i-vsio-taki-pochemu-khoroshii-smartfon-delaet-foto-luchshego-kachestva-chem-sredniaia-zerkalka-1805524/
top content!
Стекинг еще был в камере Sony a77 задолго до массового применения в телефонах. Там был режим мультикадрового шумоподавления, и работал отлично на iso3200 получаем результат около iso400.
Благодарю и патриочу! удивительно какая глубокая статья, много нового и деталей узнал .. но дочитав про спеки телефонов (предвзятость к хуавей) и найдя там косяки закрались сомнения, и наложились оттенком на всю статью.
Вот всё бы как бы и хорошо... да... но от бесконечных «охренеть» «профит» и прочее - говёно. Говно, братец.
только примерился к беззеркальному никонZ , и тут бах, "кувалдой по темечку". только я начну отбивать его, уговаривая клиентов повернуться к свету или встать против солнца, выскочит сопливый племяш с новым смартфоном, "дятел" в фотографии и сделает им фотки, которые переплюнут мои эстетские профифото с постобработкой в фотожопе и лайтруме (на изучение которых я потратил не один год и продолжаю экспериментировать)
Плоская линза https://news.harvard.edu/gazette/story/2016/06/a-thinner-flatter-lens/ это хорошо, но световое поле лучше. Линза всё равно пространства требует между собой и сенсором. А проще и компактнее делать многослойный сенсор, фиксировать всё световое поле и вычислять картину из него, с любым нужным фокусом и т.п., и безо всяких физических линз вообще.
Как если бы вы не знали как выглядит капибара и попросили пять человек описать её — их рассказы были бы примерно одинаковыми, но каждый упомянул бы какую-то уникальную деталь. Так вы бы собрали больше информации, чем просто спросив одного. То же и с пикселями. ненене. Наоборот. Там где их описания совпали -- это полезная информация, а а где их показания разошлись ("уникальная деталь") -- это шум. Это не получение большего объёма информации, это наоборот -- удаление лишней "информации" (шума). Технически -- это хитрое усреднение нескольких изображений, с отбрасыванием аномальных по яркости/цвету пикселей.
или удалять падающие конфетти, как на видео ниже. Опять всё наоборот же. ) В видео речь не про удаление падающего конфети, а про удаление фона (даже проходящего на фонее мужика с лестницей) безо всяких хромакеев. При этом на переднем фоне можно СОХРАНИТЬ даже такие мелкие сложные и смазанные объекты как падающие конфети. В этом поинт.
Отличное сочетание технической корректности и живого языка. Наслаждался.
Лучшее что я читал за последнее время! Автор я теперь твой фанат!))
Реально крута стаття. Сів читати про фото, а дізнався купу всього зверху ) Лайк!
Захотел просто воспользоваться возможностью комментировать. Привет, вастрик!
линзы в мобилках тож довольно хитрые https://www.pencilofrays.com/lens-design-forms/#mobile
в путешествия берут айфон, т.к. и смотреть эти фоточке будут тоже на айфоне, где это выглядит еще более-менее На большом экране (хотя бы 15"), не говоря уже про крупные дисплеи, любые сумеречные, да и дневные фотки с телефонов — полное днище
Ноуп. Глянь мой пост и найди все фотки с Айфона: https://jejeya.pictures/chukotka-2017 На дневных фотографиях на чём ты не смотри, всё будет одинаково.
Ну фиг знает, ребята. Они отличаются на зуме в 1600%, конечно, но в отчётах из путешествий никто всё равно не замечает разницы :D Речь о дневных фото, да. Ночью айфон превращается в тыкву, тогда как раз и приходится тащить с собой сраный фуллфрейм, да и то результат всегда зависит от везения и прямоты рук.
Георгий Джеджея, там с айфона две фотки всего, мыльный буддист на горе и горы в тумане
Ещё 5-и не досчитался