Вероятностное улучшение фотографий по нескольким пикселям: модель Google Brain


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

    Можно ли повышать разрешение фотографий до бесконечности? Можно ли генерировать правдоподобные картины на основе 64 пикселей? Логика подсказывает, что это невозможно. Новая нейросеть от Google Brain считает иначе. Она действительно повышает разрешение фотографий до невероятного уровня.

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

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

    Для примера достаточно посмотреть на КДПВ, где в левой колонке реальные тестовые изображения для нейросети. На них отсутствуют детали кожи и волос. Их никоим образом невозможно восстановить традиционными способами интерполяции вроде линейной или бикубической. Однако если предварительной обладать глубокими знаниями о всём разнообразии лиц и их типичных очертаниях (и зная, что здесь нужно увеличить разрешение именно лица), то нейросеть способна совершить фантастическую вещь — и «нарисовать» недостающие детали, которые с наибольшей вероятностью будут там.

    Специалисты подразделения Google Brain опубликовали научную работу «Рекурсивное пиксельное суперразрешение», в которой описывают полностью вероятностную модель, обученную на наборе фотографий высокого разрешения и их уменьшенных копиях 8×8 для генерации изображений размером 32×32 из маленьких образцов 8×8.

    Модель состоит из двух компонентов, которые обучаются одновременно: кондиционная нейросеть (conditioning network) и приор (prior network). Первая из них эффективно накладывает изображение низкого разрешения на распределение соответствующих изображений высокого разрешения, а вторая моделирует детали высокого разрешения, чтобы сделать финальную версию более реалистичной. Кондиционная нейросеть состоит из блоков ResNet, а приор представляет собой архитектуру PixelCNN.

    Схематично модель изображена на иллюстрации.



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

    Но как оценить качество работы такой сети? Авторы научной работы пришли к выводу, что стандартные метрики типа пикового отношения сигнал/шум (pSNR) и структурного сходства (SSIM) не способны корректно оценить качество предсказания для таких задач сверхсильного увеличения разрешения. По этим метрикам выходит, что лучший результат — это размытые картинки, а не фотореалистичные изображения, на которых чёткие и правдоподобные детали не совпадают по месту размещения с чёткими деталями настоящего изображения. То есть эти метрики pSNR и SSIM крайне консервативны. Исследования показали, что люди легко отзличают реальные фотографии от размытых вариантов, созданных регрессионными методами, а вот отличить сгенерированные нейросетью образцы от реальных фотографий им не так просто.

    Посмотрим, какие результаты показывает модель, разработанная в Google Brain и обученная на наборе 200 000 лиц знаменитостей (набор фотографий CelebA) и 2 000 000 спальных комнат (набор фотографий LSUN Bedrooms). Во всех случаях фотографии перед обучением системы были уменьшены до размера 32×32 пикселя, а потом ещё раз до 8×8 методом бикубической интерполяции. Нейросети на TensorFlow обучались на 8 графических процессорах.

    Результаты сравнивались по двум основным базам: 1) независимая попиксельная регрессия (Regression) c архитектурой, похожей на нейросеть SRResNet, которая показывает выдающиеся результаты по стандартным метрикам оценки качества интерполяции; 2) поиск ближайшего соседнего элемента (NN), который ищет в базе учебных образцов пониженного разрешения наиболее схожее изображение по близости пикселей в евклидовом пространстве, а затем возвращает соответствующую картинку высокого разрешения, из которой был сгенерирован этот учебный образец.

    Нужно заметить, что вероятностная модель выдаёт результаты разного качества, в зависимости от температуры softmax. Вручную было установлено, что оптимальные значения $\tau$ лежат между 1,1 и 1,3. Но даже если установить $\tau = 1,2$, то всё равно каждый раз результаты будут разными.


    Различные результаты при запуске модели с температурой softmax $\tau = 1,2$

    Оценить качестве работы вероятностной модели можете по образцам под спойлером.

    Сравнение результатов по спальням









    Сравнение результатов по лицам знаменитостей









    Для проверки реалистичности результатов учёные провели опрос черед краудсорсинг. Участникам показывали две фотографии: одну настоящую, а вторую сгенерированную различными методами из уменьшенной копии 8×8 и просили указать — какая фотография сделана камерой.



    Сверху в таблице — результаты для базы лиц знаменитостей, снизу — для спальных комнат. Как видим, при температуре $\tau = 1,2$ на фотографиях спальных комнат модель показала максимальный результат: в 27,9% случаях её выдача оказалась более реалистичной, чем настоящее изображение! Это явный успех.

    На иллюстрации внизу — самые удачные работы нейросети, в которых она «побила» оригиналы по реалистичности. Для объективности — и некоторые из худших.



    В области генерации фотореалистичных изображений с помощью нейросетей сейчас наблюдается очень бурное развитие. В 2017 году мы наверняка услышим много новостей на эту тему.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 72

      +19
      У меня только один вопрос, присутствовали ли указанные лица (в данных примерах) в обучающей выборке?
      Если да, то это не рисование а фактически поиск в базе по индексу в виде нейросети.

      Потому как слишком уж выглядит неправдоподобно.
        +5
        Угу. А то по такому алгоритму «смогут восстанавливать» изображения из случайно сгенерированных картинок.
        Был куча случайных кубиков, стала Памела Андерсон.
          0
          Ну, или некое средне взвешенное лицо, плавали — знаем…
          … меня удивляет другое, зачем плодить такие бестолковые работы, понты дороже денег, честное слово!

          Эта байда не имеет отношения к реальному апскейлу, тк условия тут не менее синтетические чем результат, на входе не фрагмент реального изображения с шумами и артефактами, а чистинький даунскейл, и на выходе не полезные в хозяйстве линии и градиенты, а такая-же мелочь, по которой не возможно судить об адекватности реконструкции и тех диких «артефактах» которые порождаются таким подходом в больших масштабах.
          … короче это игра на далёкую от темы публику, для которой не нужны не супер умы, не супер компьютеры
            0
            улучшайзер качества фоток с ойфона как например, сможете фоткать с бодуна в темноте, а результат будет как на проф зеркалку, ещё через meitu-подобное что-то пропустить и всё, хит продаж, лучшая камера в сегменте.
              +5

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

                +2
                После предварительного анализа фотографий на телефоне владельца даже фото случайных людей будут похожи на владельца.
                  +3

                  В моем случае, все фотки будут похожи на кота владельца)

          0
          вот — вот, зафотить все население и захешировать
        • UFO just landed and posted this here
            –7
            Я помогу вам
            Заголовок спойлера
            http://img0.joyreactor.cc/pics/post/fuuuu-auto-111812.jpeg
              +8
              Я помогу вам.
              CSI
              image
                +1
                Электронные микроскопы и им подобные не нужны. Она все атомы/элем_частицы и так покажет
                  0
                  Судя по описанию нейронки, на последнем кадре должен оказаться Лео с оскаром
              +1
              : Ждем когда придет кто-нибудь неленивый и подставит случайные фото в первое изображение.
                +11
                Не дождался, наколхозил на скорую руку, как только опять добрался до компа.image
                  –3
                  Всецело поддерживаю.
                    +17
                    image
                      +8
                • UFO just landed and posted this here
                    0
                    Да это ладно… можно будет смотреть фильмы 70-х годов в 8K+ разрешении. Правда, после такого upscaling, это будут уже совсем другие фильмы (причем, разные даже от каждого производителя TV)
                      +2
                      Те фильмы на аналоговых носителях в большинстве своем четче чем первая цифра из 2000х, решающую роль там играло качество оптики… Поэтому ничего не мешает оцифровать их в 4к.
                    +1
                    Наконец-то узнаю, как выглядит Missingno.
                      0
                      При таком подходе, например, при задаче определения автомобильного номера — в любой непонятной ситуации будут подставляться цифры и буквы с высокой частотой встречаемости. Владельцы номеров O111OO пострадают :)
                        0
                        Владельцы блатных номеров пострадают :)
                          0
                          их проблемы :)
                        0
                        И это всего лишь начало. Представьте себе перспективы.
                        «Восстановление» фотографии по кучке пикселей — ерунда. Вот когда начнут восстанавливать людей, в том числе вымышленных персонажей, это будет куда интересней. Да, их воспоминания окажутся аппроксимацией, не полностью соответствующей реальности, но это будут реальные живые люди, которые будут вести себя примерно так же, думать примерно так же, говорить примерно так же, как и давно умершие оригиналы.
                        Максимальный цифровой след оказывается нашим шансом получить бессмертие, даже если мы умрём задолго до своего воскрешения.
                          +1

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

                            +1
                            Как обычно, перспективы колоссальные, а использоваться будет только для «де-цензуризации» японских фильмов для взрослых.
                            +2
                            Предвижу полное восстановление видеозаписи преступления по одному пикселю…
                              0
                              del
                                0
                                Может, я чего-то не понял, но — откуда такое различие в общем тоне губ в первом и третьем примере на КДПВ? Видно, что хоть картинка, подобранная нейросетью, похожа по положению пикселей, но цвет губ подобранной картинки отличается от цвета пикселей на 8*8 и от «оригинала».
                                  +1
                                  Эта сеть не восстанавливает изображение, она придумывает его на основе кучки пикселей. Я тоже делал аналогичную нейросетку несколько месяцев назад, и да, она неплохо придумывает детали по минимуму пикселей, но выход далеко не всегда сильно похож на оригинал.
                                    0
                                    Это понятно, мне интересно почему результат «придумывания» так сильно отличается по цвету.
                                      +1
                                      Потому что большинство лиц в обучающем наборе имеют подобные цвета, а сеть не очень успешно или совсем не разделила кластеры «розовые губы» и «красные губы»?
                                        0
                                        не разделила кластеры «розовые губы» и «красные губы»

                                        Вооот. Как-то совсем сыро — «не заметить» такой очевидный не подходящий параметр.
                                      • UFO just landed and posted this here
                                    +2
                                    Можно ли генерировать правдоподобные картины на основе 64 пикселей? Логика подсказывает, что это невозможно.

                                    Логика подсказывает, что нельзя восстановить исходное. А нарисовать новое — да пожалуйста, в любом разрешении.
                                      +3

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

                                        +1
                                        «Можно ли генерировать правдоподобные картины на основе 64 пикселей?»
                                        «Логика подсказывает, что это невозможно»
                                        У вас какая-то поломанная логика. Вопрос про правдоподобные изображения, а она вам возвращает ответ о достоверных :-)
                                          +2
                                          Не хватает исходного изображения в хорошем качестве, чтобы понять, насколько точно нейросеть угадала.
                                            0
                                            А что за колонка NN в списке примеров? Картинки там сильно отличаются от остальных.
                                              0
                                              Полагаю, что на ней обучали сеть
                                                0
                                                Тогда немного странно. Некоторые примеры очень сильно отличаются по цвету.
                                                  0
                                                  А они должны совпадать?
                                                    0
                                                    В принципе нет. Однако почему в таблице именно она? Обучали же не по одной картинке. Как именно она связана с конкретным результатом? Даже если это наиболее похожая — всё равно местами странный выбор.
                                                      0
                                                      Не знаю. Я же просто предположил :)
                                                +1
                                                Цитирую из текста:
                                                «Поиск ближайшего соседнего элемента (NN), который ищет в базе учебных образцов пониженного разрешения наиболее схожее изображение по близости пикселей в евклидовом пространстве, а затем возвращает соответствующую картинку высокого разрешения, из которой был сгенерирован этот учебный образец»
                                                0
                                                Размывание изображения необратима теряет информацию, нейросеть при обратном процессе добавляет информацию, так чтобы она реалистично выглядело.
                                                  +4
                                                  Вспоминается та сеть, которую на собаках обучали, и она потом везде собак рисовала.
                                                  Deep Dream

                                                    +1
                                                    Обычная корейская пицца
                                                    +2
                                                    Я так понимаю, что восстановление выброшенной информации происходит за счёт информации набранной в процессе обучения.
                                                    Но что я действительно не понимаю — так это то, зачем телевизионщики закрывают инкогнито пискельными масками. Они в движении дают достаточное количество информации для восстановления личности, я предполагаю.
                                                      0
                                                      Да, пиксельные маски можно «взломать», так и работает многокадровое супер-разрешение.
                                                      А хорошо работать будет просто размазывание лица до неузнаваемости, когда движение не даёт дополнительной информации.
                                                      0
                                                      Если приглядеться повнимательней, то получаемые изображения вообще не похожи на оригинал. По ним не возможно будет найти кого-то, а те изображения которые окажутся очень похожи в результате такого «восстановления» — скорей статистическая погрешность, чем результат.
                                                        0
                                                        Такое «сверхповышение» разрешения не является восстановлением исходного изображения по копии низкого разрешения. Это синтез правдоподобной фотографии, которая вероятно могла быть исходным изображением. Это вероятностный процесс.
                                                        0
                                                        Подскажите софт на андроид, который может склеивать несколько макроснимков в один большой документ. Хочу чтобы у телефона качество сканирования было как у планшетного сканера.
                                                        Пока весь софт, что я пробовал работает примитивно: делаем одну фотку, изменяем у ней пропорции и баланс белого — готово. Без слез на такой скан не посмотришь, печатать потом стыдно.
                                                          0
                                                          Есть Google PhotoScan для фотографий. Он интерполирует результат съемки с нескольких точек, ориентирован на фото — удаление бликов, в первую очередь.

                                                          Но результат — что на документах, что на фото — меня совершенно не вдохновил. Малое выходное разрешение, смазанность, особенно на неровностях (а где вы видели абсолютно плоские фото\документы?), отсутствие каких-либо внятных настроек… В общем, не то совсем.
                                                            0
                                                            У меня с одной фотки разрешение получается выше, чем у гугла из пяти.
                                                            Как по мне, склеить такую панораму — довольно простая задача по сравнению со всякими нейросетями, которые сами дорисовывают, а никто не сделал почему-то.

                                                            Пробовал в фотошопе автовыравнивание слоев — не получилось ничего, да и неудобно.

                                                            В идеале нужен софт, который записывает видео. Поводил над листом телефоном, а потом из этого видео максимум полезной информации выжимается в один JPG.
                                                          –1

                                                          Здесь просто обязана появиться эта картинка, я считаю.


                                                          image

                                                        • UFO just landed and posted this here
                                                            0
                                                            По мне результаты регрессионного анализа в среднем больше похожи на оригинал. Нейросети много додумывают))
                                                              0
                                                              Если не ошибаюсь, человеческий мозг проделывает аналогичный фокус. Читал где-то, что «разрешение» человеческого глаза довольно посредственное и бОльшую часть деталей изображения того, что у нас в поле зрения, мозг достраивает сам.
                                                                0
                                                                «Zoom and enhance» не за горами? :)
                                                                  0
                                                                  Какая глубина цвета у ужатых картинок? Если мы пропорционально увеличиваем разрядность цвета при уменьшеннии разрешения, повлияет ли это на результат?
                                                                    0

                                                                    Судя по выборке для обучения, это популярные фотографии из интернета, а значит всего 8 бит.

                                                                    0
                                                                    Есть даже короткое и ёмкое название для подобной техникик — hallucination.
                                                                    Какая практическая польза от этого алгоритма, кроме как для синтеза реалистичных изображений?

                                                                    Для видео алгоритм без серьёзных модификаций не подойдёт — будет высокая неустойчивость, на каждом кадре будет «галлюцинироваться» что-то своё. Для анализа изображений — и подавно: информации больше не стало.
                                                                      0
                                                                      Для видео алгоритм без серьёзных модификаций не подойдёт — будет высокая неустойчивость, на каждом кадре будет «галлюцинироваться» что-то своё.
                                                                      Переносите веса из скрытых слоёв от обработки предыдущего кадра в веса текущего (конкатенация, не сложение), и будет Вам счастье.
                                                                        0
                                                                        Переносите веса из скрытых слоёв от обработки предыдущего кадра в веса текущего (конкатенация, не сложение), и будет Вам счастье.


                                                                        И получим в итоге старческое слабоумие. Если человек пропадёт из видео на несколько секунд, нейросеть забудет про него, и при следующем появлении человек уже станет другим.
                                                                          0
                                                                          Для сжатия видео это приемлемо. Для организации долговременной памяти нужно значительно больше ресурсов.
                                                                      +2
                                                                      Молодцы, придумали тест Роршаха для нейросети )

                                                                      Only users with full accounts can post comments. Log in, please.