12 марта 2019

Берёзки NEWS №63. Умные камеры

О том, как «глупые» камеры в наших смартфонах вдруг стали «умными».

Несколько последних лет меня мучил вопрос, как при использовании старых технологий изготовления модулей камеры современным флагманам удается «вытянуть» картинку до качества недорогих «зеркалок». В том, что это происходит, сомневаться не приходится, интернет наполнен красивыми снимками, которые люди делают на мобильный телефон. Надо отметить, что сам модуль камеры никак не изменился за последние лет десять. Да, разрешение матрицы фотодиодов росло, но более значимый параметр – физический размер этой матрицы (и площадь конечного фотодиода), а значит, и светосила – находится плюс-минус на прежнем уровне. Так что же конкретно делает современная «умная камера» в современных флагманах? И зачем ей дополнительный блок «ИИ», находящийся в чипсете? Чтобы ответить на эти вопросы, было решено провести маленькое исследование, используя прямые руки, ясную голову и бесплатное программное обеспечение.

Содержание

  1. Фотографирование и постановка задачи
  2. Доступные технологии
  3. Практическая проверка догадок
  4. Результат и выводы

Фотографирование и постановка задачи

Недавно по всей стране прогремел Международный женский день – 8 марта. Это подходящий случай, чтобы сфотографировать праздничный стол на разные смартфоны и изучить вопрос самым результативным методом – сравнением. Для этой цели у одного из гостей был отнят Honor 10, а вторая фотография была сделана с помощью ветерана Sony Xperia Z1 Compact. Фотографирование велось от окна (теневая сторона дома) в сторону центра комнаты, условия довольно жесткие в любом случае. И вот что получилось:

Режим интеллектуальной съемки Honor 10 впечатляет, огурцы как живые, а помидоры имеют правильный оттенок дозревавшего в магазине овоща. Задний фон обработан нормально, близкие по оттенку ковры не сливаются в месиво, узор на них четкий. Не расстраивает и разрешение снимка, упавшее c 24 МП (основная камера) до 4,9 МП в процессе обработки. Уменьшение размера кадра часто сопровождает автоматическую обработку, почти все алгоритмы, когда не знают, что делать с оттенками серого, «съеживают» изображение до полного их уничтожения. Камера Honor 10 обладает искусственным интеллектом, по мнению ее создателей. Пора ее сравнить с «глупой» камерой. Та же композиция, сфотографированная на Z1 Compact:

Недостаток света привел к появлению белесой пелены и цветности сумеречной зоны по всему кадру. Камера Z1C не поддерживает Camera API от Google на уровне железа, и ей недоступны современные способы улучшения снимка «на лету», что делает ее идеальной для нашего опыта.

Пришло время поставить задачу и рассмотреть варианты ее решения. Итак, у нас есть хороший снимок умной камеры Honor 10 и отвратительно-ущербный снимок Z1C.

Задача: выяснить суть алгоритма «умной камеры».

Возможное решение:

  • Провести ряд простых операций, которые превратят плохой снимок Z1С в аналогичный снимку Honor 10
  • Провести обратные операции со снимком Honor 10, которые превратят его в отвратительный снимок, подобный Z1C.

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

Доступные технологии

Перед тем, как приступить, необходимо определиться, а что, собственно, умеет делать с изображением камера современного смартфона без «умных» функций. Итак, камера умеет:

  • Определять фокусное расстояние, используя различные способы измерения расстояния до объекта.
  • Применять HDR, искусственно расширяя диапазон яркости.
  • Делать боке, определяя границы силуэта ближайшего объекта и размазывая фон вокруг него.

Это базис, прописанный в драйверах большинства современных камер. На него и стоит опираться, если ты искусственный интеллект и тебе надо «вытянуть» снимок.

Практическая проверка догадок

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

Вид стола недвусмысленно указывает на применение HDR в процессе получения снимка на Honor 10, все объекты яркие, цвета очень сочные. Добиться эффекта HDR на любой фотографии очень просто, для этого достаточно зайти в Google Фото и применить фильтр «Пальма», что и является довольно агрессивным HDR. Вот что получилось в отношении оригинального снимка Z1C:

Отлично видно, что цветовая гамма и яркость объектов на столе стали идентичными тем, что мы видим в Honor 10. При этом вокруг стола творится настоящий цветовой беспредел с царящим над всем и вся красным цветом. И вот тут-то и закрадывается первая догадка о том, что в алгоритме «искусственного интеллекта» использована стандартная функция – боке. Возможно, сначала объект в фокусе был вырезан из кадра, оба полученных изображения были обработаны отдельно (объект в фокусе более агрессивно), а потом совмещены обратно.

Для вырезания праздничного стола из кадра я использовал бесплатное приложение Paint.NET. Если вам совсем нечем заняться и вы хотите повторить весь путь (процесс трудоемкий), то можете попробовать фотошоп или еще что-нибудь, чем вы умеете пользоваться. Чтобы в ходе операций не наделать новых артефактов изображения, крайне рекомендую все манипуляции проводить с фотографиями в растровом формате BMP, а не JPEG. Вот что получилось:

Расширяем динамический диапазон яркости (HDR) обоим изображениям с разной степенью агрессивности и склеиваем их в одно изображение:

Фотография Z1C после раздельной обработки объектов

Можно и дальше поиграться с настройками и разными фильтрами, но наша задача – получить общее представление и прийти к схожему с «умной камерой» результату. И считаю, что цель достигнута. Теперь пройдем обратный путь с фотографией Honor 10:

Фотография Honor 10 после сужения динамического диапазона яркости (HDR)

Считаю методы улучшения изображения, примененные вручную, точно такими же, как и используемые «искусственным интеллектом» в камерах современных смартфонов.

Результат и выводы

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

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

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

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

Каждая компания-производитель хранит свой алгоритм как зеницу ока и использует различные методы для борьбы с расхитителями интеллектуальной собственности. В Sony используют скрытый TA-раздел и хранящиеся в нем DRM-ключи, утеря которых моментально превратит снимок в мыло мыльное. Другие используют дополнительные микросхемы защиты, препятствующие разблокировке загрузчика и доступу к содержимому. По этим причинам нам показывают только результат работы такого алгоритма и никогда – последовательность производимых им манипуляций. В любом случае прогресс не стоит на месте, и рынок камерофонов замер в ожидании появления мобильной технологии добавления утраченных частей изображения, что произойдет совсем скоро. Но даже и тогда речь будет идти об ускорении расчетов и усложнении уже существующих технологий сопоставления, реализованных, к слову, во всем известной оптической мыши. Или в зрительном аппарате пчелы, которая умудряется выжать из сопоставления двух снимков, параллельно обновляющихся по двум каналам (глазам), информацию о своем положении в пространстве и расстоянии до объекта по курсу, и которая не имеет механизма объемного зрения.

Уважаемые читатели, согласны ли вы с результатом или можете предложить свое видение работы умной камеры?

Читайте также

67 комментариев на «“Берёзки NEWS №63. Умные камеры”»

  1. CDMA:

    млин, жрать захотелось от этой фотосессии)))

  2. zopa:

    Шедеврально!

    Естественно, реальные алгоритмы работают несколько по другому,
    но в первом приближении — можно согласится и с этим.
    Во всяком случае проделанная работа (с озвученными выводами) — заслуживает всяческого уважения!

    • Черногор:

      Согласен.
      Только рыбу консервированную надо выкладывать из алюминиевой банки в соответствующую по объёму тарелку/розетку.
      И ветчину/буженину надобно резать тонкими кусочками, а не по пол-сантиметра толщиной ?

      • Me Ku:

        Ну к ИИ телефона это уже не относится 🙂 Или он должен дополненную реальность делать с тегом «снимите уже ковер»? 🙂

        • Черногор:

          Против ковров как раз ничего не имею — приятные воспоминания из детства и «возврат к традициям» ))

      • zopa:

        могли бы и промолчать об этом. тема статьи немножко о другом

        • Черногор:

          Ну вот такой вот я неполиткорректный ?
          Резануло глаз просто

      • Lecron:

        Вы бы еще посетовали, что так не сделано.
        https://uploads.disquscdn.com/images/aec0808a04d8268765cb1b8190cedba44d5c08a94990ce929c7e6eea4e7330bf.jpg

        Все нормально сделано, уютно, по домашнему.

        • Черногор:

          Это уже чересчур, но есть же элементарные нормы… выкладывать продукт из консервной банки в тарелку для подачи — одна из них

          • Lecron:

            И мерило, что чур, а что чересчур, конечно же кто?

            • Черногор:

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

      • Maneken:

        Большому куску и рот радуется.
        Если человеку нравится ветчина нарезанная в полсантиметра, то пусть кушает на здоровье
        Что за рамки/ограничения кругом. Должен то, делай то.

        • Черногор:

          Ветчина/буженина намного вкуснее, когда нарезана тонкими кусками.
          В конце концов не в голодное послевоенное время живём ?

  3. Ростислав Ильницкий:

    Что-то оригинал с онора при увеличении совсем убого выглядит

    • Черногор:

      Все «хорошо обработанные» алгоритмами современных смартфонов фото выглядят также — жуткая потеря в детализации. Сравнивал десятку с s7 — разница впечатляющая ?

  4. П.Н.:

    Добиться эффекта HDR на любой фотографии очень просто, для этого
    достаточно зайти в Google Фото и применить фильтр «Пальма», что и
    является довольно агрессивным HDR.

    Не спортивно! Где гарантия, что на серверах или в приложении Google Фото не используется ИИ?

  5. П.Н.:

    1. Работа с уровнями (убираем «дымку»)
    2. Тон/Насыщенность/Освещенность (делаем «вырвиглазные» цвета).
    3. Всё 🙂
    А вот динамический диапазон никакими фильтрами не поднять — уж что есть на входе, то есть. https://uploads.disquscdn.com/images/deb52f08ce7c8e55ee4532090a5528e0ff33a9ce50837e4f1bc0ff1fef7d50e3.png

    • Lecron:

      Никаких вырвиглазных цветов. Даже не надо вырезать фон, как это делал Александр. Кривыми все прекрасно делается. Обработка в тенях, светах и середине диапазона должна различаться. Тени осветляем сильнее, с одновременным снижением насыщенности. Остальное по вкусу. Худшее, что получите относительно аппаратно улучшенного, шумы в тенях.

    • katalnikov:

      ДД поднять минусом хайлайт и плюсом в тенях, см. мою обработку выше

      • П.Н.:

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

        • Lecron:

          С пересветами согласен. А вот с тенями не совсем))
          И вопрос-то в другом. Хватит ли вытянутой информации для нормального визуального восприятия или без hdr никуда? Так получается, что в большинстве кадров, этой информации хватает. Чем пользуются нечестные на руку разработчики. Делая фактически «ребалансинг», но выставляя его как супер-пупер программно-аппаратную разработку.

          • П.Н.:

            Ну, почему нечестные? Из точки А в точку Б попали? Да. Результат устраивает? Вполне. А что ещё-то надо? 🙂

            • Lecron:

              В обществе растет запрос на объективность. Уж слишком брехливость утомила. Они бы еще сказали, что высший разум заточили в процессор. А чё? В точку Б ведь попали)))

        • katalnikov:

          Да, это понятно. Но в картинке, приведенной в качестве примера с этим все как раз в порядке 😉
          Так что ИМХО первое, что должен делать ИИ в камере это выставлять экспозицию так, чтобы гистограмма не выходила за рамки или делала это минимально.

  6. NOMAD:

    На мой взгляд весь секрет в расширении динамического диапазона. Если камера (модуль) способна сделать группу корректных снимков с разной экспозицией за короткий промежуток времени. И камера (софт) при этом все эти снимки склеит без видимых артефактов, то на выходе будет то, что сейчас принято считать хорошей фотографией. В этой области вперёд ушёл Гугл. https://uploads.disquscdn.com/images/e527828748886872be1b00cbe7b29d7a18744cfc307c7730ca966bd4036b4cbf.jpg

    • Lecron:

      С каких пор низкоконтрастное безтеневое фото стало принято считать хорошим? Камера просто исправила криворукость фотографа, взявшего такой ракурс. Сделав из совсем ничего хоть что-то. Но до хорошего еще далеко.

      • NOMAD:

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

        • Lecron:

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

          • NOMAD:

            Снимок сделан «на ходу» и только для проверки работы камеры. А вообще — давайте свой пример с хорошим фокусом и солнцем и прочими атрибутами шедевра.

          • Me Ku:

            А если это, например, фото подвижной игры или детей на пляже или в спортивном зале против окна, где не всегда можно выставить правильный свет? И пока будешь искать ракурс, момент уйдет, либо будет пересвет или недосвет?

            • Lecron:

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

              В принципе, признаю свою ошибку, даже в этом кадре, виноват не hdr, а параметры экспозиции и контраста. Но от мнения, что кадр неживой, нет ощущения сумерек, не откажусь.

      • john orsis:

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

        • Lecron:

          Т.е. глаз по вашему не увидел бы теней от забора и машины? HDR, технология компрессии (не расширения!) динамического диапазона, наоборот, отдаляет кадр от восприятия, чтобы компенсировать слабость железа. Глаз видит и свет, и тень. Здесь ни того, ни другого нет – везде серость.

          • john orsis:

            таковы пока границы этой технологии. пока лучше глаза нет ничего, но это несомненно уже ближе

            • Lecron:

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

              • john orsis:

                это уже субъективно. здесь речь идет лишь в контексте технического прогресса, а не художественной эстетики

          • Me Ku:

            Но все равно намного лучше, чем было до hdr. В конце концов это всего лишь камера телефона.

  7. Alex Fedoseev:

    Разве HDR = фильтр? А как же несколько снимков с разной экспозицией?

    • Lecron:

      Я бы сказал, что это техника работы с изображением. И может быть фильтром. Преобразующим 8+ битное изображение к 8 битным форматам и мониторам так, чтобы максимально снизить контраст))), вытянув и света и тени к середине яркостного диапазона.

      • Alex Fedoseev:

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

        • Lecron:

          Многие путают технологию получения выскоконтрасного исходника и tone mapping, его приведение к возможностям экранов и форматов. Некоторые камеры имеют ДД в 4D и более (1:10000), а матрицы компактов и смартов 2.5-3D (1:500-1:1000). Первой камере два кадра не нужны, она и с одним может обогнать эксповилку любительской.
          Техника HDR включает первый этап, но требует его наличия. Даже 1:1000 уже дает пространство для маневра.

  8. Ушелец:

    Интересный эксперимент и, возможно, близкий к реальному алгоритм.

  9. John6301:

    Реально умная камера для начала точно убрала бы ковер со стены. ) Но это пока недосягаемо даже для человеческого интеллекта, какой уж там A.I.

    • Alexandr.Noskov:

      Никогда! 😉 Реально нравится)))

      • DioGen:

        Хорошая статья про ковры на стенах (убрать 2 пробела):
        maxim-nm. livejournal. com/414335.html?page=7
        Автор обещает, что после прочтения вы обязательно захотите выбросить свой ковер 😉

        • Alexandr.Noskov:

          А это политический ковер, в знак уважения нашим татарским братьям) И самовар в чулане тоже)

    • Serhij Kuryliuk:

      Ковры со стены и салаты с майонезом со стола. ??

  10. Lecron:

    Справедливости ради, стоит упомянуть и реальные методики улучшения качества. Гуглим «Увеличь это! Современное увеличение разрешения» с описаниями работы Pixel 2 и 3. И также справедливости ради, указать что ИИ там тоже нет, камера ну тууупаааяяяя))))

  11. katalnikov:

    Экспозиция, контраст в плюс, хайлайтс в минус. Шарпинг + шумодав.
    ББ даже не трогал )
    https://uploads.disquscdn.com/images/3386dd6816253bcd723c26195adb8552b60115fdee365df7c0589ec6b28712da.jpg

  12. Andy:

    У автора не вышло потому, что на самом деле там используется алгоритмы восстановления фото по видео. Т.е. из последовательности кадров вытягивается резкость и цвета. Это можно заметить, по айфону: если в кадр попадёт движущаяся рука, то вокруг неё частенько появляются ореолы дефектов, хотя в том месте был неподвижный объект! В глупой камере (честно делающий только один снимок для одного фото) будут заметны лишь полупрозрачные размытия, отражающие траекторию движения руки. Это происходит так потому, что движущаяся рука мешала собрать информацию с участка изображения в процессе сборки кадров.

  13. Да откуда взяться hdr в обычном 8 битном jpeg?

    • Lecron:

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

      • Абсолютно прямая связь между битностью и динамическим диапазоном. Чтобы хдр запихать в джпег он должен быть JPEG XT. Иначе это просто картинка с подкрученой контрастностью.

        • Donkey IAIAIA:

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

          • Я в курсе что под этим подразумевают. Мне как пользователю безразлично какие технологии использует производитель внутри камеры для повышения качества, если на выходе я получаю 8и битный джпег.

            • Donkey IAIAIA:

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

  14. superboss:

    Мои соболезнования..

    Многое становится понятно.

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

    А статья хорошая. Интересный подход. Непонятно практическое применение, но в целом — познавательно.

  15. Мороз:

    Сравнение можно выбрасывать в корзину.
    Вот из-за этой фразы:
    Недостаток света привел к появлению белесой пелены.

    Белесая пелена и световые ореолы появляются от микроцарапин на просветляющем покрытии стекла, закрывающего объектив. Свет, попадающий сбоку, рассеивается на матрицу.

    У меня на Z1 так же было. Пришлось полировать стекло ватной палочкой с антицарапином пока весь просветляющий слой не удалил.

    Т.е. сравнение нового со старым должно учитывать физ износ. И не делать скоропалительных выводов о прогрессе.

    • Lecron:

      Ага, и поэтому в фоторедакторы встраивается фильтр Dehaze. Дымка, это рядовое явление в фотографии.