"Истинные" фотолюбители и профессионалы все еще ухмыляются при упоминании фотографий, сделанных современными смартфонами. Пока это оправданно, однако разрыв между камерами смартфонов и фотоаппаратами стремительно сокращается в большинстве видов фотосъемки. Особенно впечатляет прогресс в т.н. компьютерной фотографии. Т.е. в методах обработки изображений с помощью продвинутых алгоритмов. Особенно перспективным представляется использование технологий искусственного интеллекта в различных его реализациях. Это может быть нейронная сеть (нейросеть), обученная на массиве актуальных образцов. Так работают, например, плагины Retouch4me. Обучение проводит разработчик, пользователь улучшить модель не может. Значительно интереснее приложения, которые обладают начальными элементами искусственного интеллекта в смысле итеративного улучшения применяемых методов на массиве данных пользователя.

В этом материале я хотел продемонстрировать новые возможности, открывающиеся перед фотолюбителями при использовании приложения Topaz Gigapixel AI. Напомню, AI - это Artificial Intellect, т.е. искусственный интеллект.

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

Я использую это программу в различных сценариях. Основным является увеличение небольших фрагментов фотографии.

Вот исходный кадр:

Сделан он на фотокамеру с датчиком 24 мпикс формата APS-C (т.н. "кроп") с объективом 50 мм. Т.е. эффективное фокусное расстояние (ЭФР) составило 80 мм. Я заметил эту сцену, но не имел ни телеобъектива, ни времени подойти поближе. Но я уже держал в голове возможности этой программы, поэтому нажал кнопку "Спуск".

Итак, запускаем программу Gigapixel AI и перетаскиваем из папки исходный файл (в моем случае формата cr2):

Требуемые настройки описаны ниже (на рисунке выше обозначены цифрами):

  1. Zoom (зум, масштаб). Из раскрывающегося списка удобно выбрать опцию Zoom to Fit, фото будет отображено полностью.

  2. Crop (обрезка, кроп), см. ниже.

  3. Scale (масштаб). В нашем случае требуется увеличение, поэтому выбираем 4х. Если требуется повысить качество изображения с многопиксельной матрицы, то можно выбрать 0.5х (т.е. уменьшить). Важно помнить, что пересчет занимает много времени, а файл получается большим (100 мб и более), поэтому не стоит ставить "с запасом". Внизу в желтой рамке показано, что исходный кадр имеет размер 4020х6024 пикселей, после увеличения в 4 раза это составит 16080х24096 пикс. Напомню, на данном этапе еще не выполнена обрезка, поэтому отображается размер исходного файла.

  4. Используемая модель ИИ (AI Model). Опытным путем я пришел к преимущественному использованию модели Low Resolution. Для геометрии (здания, много прямых линий) хорошо подходит модель Lines. Попробуйте различные варианты сами. Программа автоматически подгружает выбранную модель из сети.

  5. Настройки модели (Settings). Я советую использовать режим Auto. При этом если вы вручную измените настройки, режим автоматически переключится в "ручной".

  6. Дополнительные настройки (Additional Settings). Здесь имеет смысл в зависимости от содержания изображения включать/выключать настройку Face Refinement. Опция Reduce Color Bleed у меня включена всегда.

  7. Auto-update preview (автоматическое обновление превью). Если она включена, программа немедленно начнет пересчитывать фото в соответствии с последними использованными настройками на тот фрагмент фото, который отображается на превью сразу после загрузки фото. Это неудобно, поэтому ее лучше сразу отключить. Тогда программа запускается вручную, кнопкой Update.

После всех настроек, перед нажатием на кнопку Update (№7) можно и нужно кадрировать изображение. В т.ч. для сокращения объема вычислений. Для этого необходимо нажать кнопку "Crop" (№2). Откроется окно:

Можно выбрать настройку Aspect Ratio (№1). Я всегда использую опцию Free. Затем обычным порядком необходимо скадрировать требуемый фрагмент (№2). Для завершения настройки нажмите Apply (№3). Откроется основное окно программы:

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

После окончания процесса окно приложения примет вид:

Необходимо выгрузить изображение, нажмите кнопку Save Image (выделена красным). Откроется окно настроек сохранения:

Программу можно и нужно использовать для улучшения файлов в формате jpeg, тогда и выгружать лучше в нем же. У меня исходный файл в формате raw, поэтому я использую в данном случае tiff. Можно выбрать глубину цвета, сжатие, имя файла, профиль цвета и папку для выгрузки. В конце нажмите Save. Начнется процедура выгрузки:

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

Когда процесс выгрузки завершится, экран примет вид:

Можно переходить к следующему кадру. Перед этим удобнее предыдущий кадр закрыть (он будет мешать, вы можете запутаться), для этого нажмите кнопку "-" (выделена красным). Экран приложения примет исходный вид.

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

Поскольку изображение высокого качества, а кадрирование было сделано точно, достаточно нажать кнопку Auto (желтым на рисунке выше). Экспортируем изображение в файл jpeg размером 900 пикс по длинной стороне. Ниже показаны варианты этого фрагмента: слева прямо из Lightroom (кадрирование и кнопка Auto, без использование приложения Gigapixel AI); справа - с использованием приложения:

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

Важно, что приложение может выполнять пакетную обработку. Для этого достаточно выделить в папке "Проводника" интересующие файлы и перетащить их в окно. (Естественно, вначале на одном снимке нужно выполнить все настройки.) Нажмите кнопку Save Image, программа начнет работу, а на экране будет отображаться список файлов и ход обработки

Сами файлы будут в указанной папке выгрузки. Таким образом я улучшил, например, отсканированные старые фотографии, более 200 шт. Программа отработала без сбоев, но времени уходит порядочно, десятки минут на 40 сравнительно небольших файлов. Подчеркну, что приложение не удаляет дефекты отпечатков, я выполнял процедуру для повышения четкости и увеличения размера одновременно. Даже на 816 файлах (см. рисунок выше) программа работает хорошо.

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

Например, повышение разрешения кадров, сделанных на телеобъектив:

Это снимок Замоскворечья на ЭФР=400 мм, вверху исходный файл из камеры, внизу после обработки. Программа позволяет компенсировать влияние атмосферы.

Еще один сценарий - улучшение шумных кадров, сделанных при недостаточном освещении:

Получить такое разрешение и плотную структуру изображения на ISO=4000 непросто. Заметьте, тут используется не обычный "шумодав", а другой алгоритм.

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

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

  • я получаю телеобъектив из "полтинника" (т.е. увеличиваю ЭФР на 50-75-100% без потери качества)

  • могу снимать не в идеальных условиях прозрачности воздуха (например, в городе летом)

  • могу поставить более широкую "вилку" автовыбора чувствительности (ISO) в настройках камеры по умолчанию

Снимки на смартфон в формате jpeg также выглядят заметно лучше после такой обработки и все сказанное в предыдущем абзаце также относится и к ним.

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

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

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


  1. muxa_ru
    18.08.2021 19:26

    Вы не могли бы увеличить вот эту картинку в 4 раза - https://hsto.org/webt/xv/zw/od/xvzwodokw610bekzpw6qfinenqc.jpeg ?

    Мне для экспериментов интересно.


    1. RigelNM
      18.08.2021 19:58
      +1

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

      https://habrastorage.org/webt/9q/_f/gg/9q_fggxif2ctamg883hgp9t_cwc.jpeg


      1. Moskus
        18.08.2021 20:07
        +1

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


      1. muxa_ru
        18.08.2021 20:07

        Спасибо.

        Мне было интересно, появится ли обезьяна в фаре или нет.


    1. Elpi Автор
      18.08.2021 20:42

      Это использование проги 2 раза последовательно с кропом и увеличением в 4 раза

      https://ibb.co/4KN2dQt


      1. muxa_ru
        18.08.2021 21:06

        Спасибо.

        В фаре либо странная обезьяна, либо рыба. :)


      1. iAndrey
        23.08.2021 05:41

        Поезд ушёл, с результатами ознакомиться уже нельзя? Или это imgbb по какой-то причине удалили картинку? На habrastoraqge не загрузите?


        1. Elpi Автор
          23.08.2021 17:05

          Прошу извинить, но "ушел". Файл не мой, делал для конкретного человека.

          *

          Если исходник у автора есть, легко повторить самому...


  1. Moskus
    18.08.2021 19:28
    +1

    Не для "улучшения", а для "автоматической дорисовки деталей" только.

    Никакой AI не может добавить реально существующие в сцене детали, которые не были зарегистрированы камерой.


    1. Alexufo
      18.08.2021 19:39

      del


    1. northzen
      18.08.2021 19:56

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

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


      1. RigelNM
        18.08.2021 20:02

        "Но алгоритм способен спрятать негативные детали..."

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

        https://habrastorage.org/webt/ya/st/ml/yastmlswfc6srn3ukdmvrxnmtdq.jpeg

        Вот вам пример обработки в lightroom "исходного изображения", причем смею заметить - пережатого jpg, выгруженного из статьи. С исходным raw файлом можно сделать гораздо больше.


        1. northzen
          19.08.2021 01:29

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

          Чего гадать, возьмите вытащите с телефона единственный raw и сравните с тем, что сам телефон собирает, когда вы нажимете "сделать фотографию".


      1. muxa_ru
        18.08.2021 20:02
        +3

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

        Ага


      1. Moskus
        18.08.2021 20:04
        -1

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

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


    1. light_and_ray
      18.08.2021 21:31

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


      1. Moskus
        18.08.2021 21:49

        то действительно восстанавливаются детали

        Пример, пожалуйста.


        1. light_and_ray
          18.08.2021 22:29
          +1

          Вот

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

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

          Если надо, могу скинуть полную версию того фото с котом


          1. Moskus
            18.08.2021 22:33
            -1

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


            1. light_and_ray
              19.08.2021 01:26
              +1

              А так

              Неужели все еще не видно деталей? Ну вы раскройте картинку, и посмотрите! Где на второй картинке пара десятков слегка отличающихся по оттенку пикселей, там на первой - полноценная текстура и граница! Например рот, нос, граница глаза и уха. Из далека мозг особо не замечает, но если смотреть на пиксели, то результат на лицо

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


              1. Moskus
                19.08.2021 03:20
                -2

                Мне прекрасно видно, что там есть детали, но это не оригинальные детали. Потому это не "восстановление".


          1. Moskus
            18.08.2021 23:23

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

            Берем исходное изображение, уменьшаем его, скажем, в два или четыре раза по длине стороны, сохраняем в JPEG, далее - прогоняем через "чудесный восстановитель деталей" с увеличением до исходного разрешения. А теперь берем и накладываем получившееся на исходное с режимом наложения Difference (в любом граф. редакторе со слоями есть такое) и наблюдаем результат. Если изображение действительно "восстановлено", результатом будет практически сплошное черное поле. Если изображение правдоподобно дорисовано, чтобы имитировать отсутствующие детали, увидим "тени" вокруг контрастных деталей, псевдослучайный шум, "звон" (повторяющиеся периодические тени) и, простите, какое-нибудь лицо обезьяны (как в приведенной по ссылке в другом моем комментарии статье).

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

            Имитация деталей не равна их восстановлению. Чтобы считаться восстановленными, детали должны совпадать с оригиналом. Иначе, они дорисованы.


  1. RigelNM
    18.08.2021 19:38
    +2

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

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


  1. Alexufo
    18.08.2021 19:39
    +2

    Ставил себе Gigapixel AI и удалил. У вас в примере тоже так себе разница, учитывая, что добавляются еще артефакты от самой программы, которые особенно заметны на боке, толку от нее вообще не увидел.


  1. Moskus
    18.08.2021 20:12
    +1

    Пожалуй, дам ссылку на более полезную статью https://habr.com/ru/post/439766/

    Ну и на статью, ссылку на которую пора лепить в автоматическое предупреждение от НЛО для статей про "улучшение изображений". https://habr.com/ru/post/490620/


    1. RigelNM
      18.08.2021 20:21
      +2

      Спасибо!


  1. Elpi Автор
    18.08.2021 20:28
    +2

    Спасибо всем откликнувшимся (неравнодушным)

    *

    Возможно, я неточно сформулировал/позиционировал место этого приложения в workflow. Дополню.

    *

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

    Т.е. я загружаю нужный РАВ в прогу, получаю улучшенный вариант - и уже его загружаю/обрабатываю/храню в Лайтрум. А уже дальше могу делать по желанию, в т.ч. обрабатываю под конкретный замысел другими фильтрами, в ФШ и пр.

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

    *

    Лично я вижу проблему в том, чтобы "правильно" скомбинировать инструменты обработки, чтобы они в комплексе давали синергию, а не "спорили" друг с другом. Так вот, на выходе из этого приложения получается полупродукт, который хорошо обрабатывается далее в моем workflow. С моей точки зрения, это значимое улучшение.

    *

    Ну и не надо, конечно, все кадры гнать через него. Это считанные единицы, особые случаи.


    1. Moskus
      18.08.2021 20:43
      -2

      Окей, если "не все" кадры гнать, то возникает вопрос - какие нужно, а какие - нет?


      1. Elpi Автор
        18.08.2021 20:48

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

        *
        Хороший пример с авто. У меня похожий случай - сделал фото березовой рощи на острове в Измайлово. Более 10 лет назад. Исходник утерял, остался крохотный кадр на flickr. Скачал, пропустил - можно показать онлайн (ессно, на большой формат уже не потянет). Сканы мелких отпечатков типа 9х12 и меньше.

        *

        Вы посмотрите поиском, здесь для этого приложения был описан прием повторной обработки одного кадра столько раз, сколько нужно. Ну и другие инструменты можно и нужно использовать. Это, повторюсь, лишь "полуфабрикат".

        Спасибо и успехов:)


  1. imageman
    19.08.2021 18:03

    @Moskus говорит правильные вещи. Нейросеть может дофантазировать детали. Это дофантазирование может быть очень убедительным (чем дальше, тем лучше становятся нейросети). Но это именно фантазирование, а не восстановление фотографии.

    Я развлекался с GAN сетью цифрового увеличения esrgan, анализировал результаты. Чудес не бывает. К примеру нейросеть "видит" волосы и пытается их прорисовать. И в части случаев их убедительно рисует, но они не точно такие же, как на оригинале (просто похожие). Ещё хуже обстоят дела с мелкими незнакомыми текстурами. К примеру на девушке свитер ручной работы. Фото низкого разрешения и на свитере не видны детали. После увеличения мы можем получить как причудливый узор, так и монотонный участок (всё зависит от кадрирования фото, обучения и настроек нейросети).

    @Elpi "Прием повторной обработки одного кадра столько раз, сколько нужно" в подавляющем большинстве случаев многократно усилит артефакты (в фаре мы увидим лицо железного дровосека или что похуже). Если при увеличении классическим бикубиком или сплайнами артефакты минимальны и как бы размазаны по всему фото, то в случае с нейросетевым увеличением какие-то участки фотографии могут быть весьма достойно увеличены, а какие-то жутко искажены (и при беглом просмотре их можно пропустить, не обратить внимание). Для художественной обработки фотографий это подходит. Более того, можно получить необычные забавные эффекты.