Super-resolution из единственной фотографии

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

    Алгоритмы SR используют два подхода для вычисления результирующего изображения: 1) на базе множества кадров одного объекта; 2) самообучающаяся система с базой образцов.



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



    Научная работа Super-Resolution form a Single Image (PDF), авторы Daniel Glasner, Shai Bagon, Michal Irani.

    Авторы сравнивают свой метод с двумя стандартными способами интерполяции — метод ближайшего соседа и бикубическая интерполяция, а также тестируют SR-техники на базе образцов (Freeaman et al.: Kim et al.), и ещё одну SR-технику (Fattal), использующую статистические алгоритмы на базе единственного образца, то есть примерно как в нашем случае с методом Гласнера-Бэгона-Ирани. Перечисленные методы описаны в следующих научных работах:

    [Freeman et all.] W. T. Freeman, T. R. Jones, and E. C. Pasztor. Example-based super-resolution. IEEE Computer Graphics and Applications, 22(2):56-65, 2002.

    [Kim et al.] K. I. Kim and Y. Kwon. Example-based learning for single-image super-resolution and JPEG artifact removal. Technical Report 173, 08 2008.

    [Fattal] R. Fattal. Image upsampling via imposed edge statistics. ACM Trans. Graphics (Proc. SIGGRAPH 2007), 26(3):95-102, 2007.

    Исходное изображение 128х128 пикселов.



    Интерполяция методом ближайшего соседа



    Бикубическая интерполяция



    Метод Фримана



    Метод Кима



    Метод Фатталя



    Метод Гласнера-Бэгона-Ирани



    Вот ещё один пример восстановленого изображения — таблица символов.



    Слева результат работы бикубической интерполяции, справа — SR-метод путём применения статистических алгоритмов.



    Больше образцов
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 64

      +6
      Качество поражает! Очень надеюсь на скорейшее появление оного алгоритма в коробке продуктов Adobe.
        +65
        Очень жду когда эти алгоритмы будут заложены в опенсорсные библиотеки.
          0
          Это ж можно будет старые фильмы и русские сериалы в HD перевести. Ну попробовать, не понятно, как на произвольных картинках эти алгоритмы будут себя показывать.
            +3
            Для фильмов нужны специализированные фильтры, которые учитывают кадры до и после.
              +1
              Мне лично режут слух фильмы с очищенными звуковыми дорожками — пропадает атмосфера. А если еще картинка обработают-подшаманят, будет вообще печалька.
                0
                Ну всегда можно вернуться к необработанной версии. Тем более, можно увеличивать разрешение не только у фильмов, но и передач и прочей документалки.
                  0
                  Интересно было бы, если такой фокус происходил на лету. Т.е. в браузере/проигрывателе.
                0
                видимо уже можно:
                www.psi.toronto.edu/~vincent/videoepitome.html
                  0
                  Ну вообще-то, их не плохо было бы в HD переиздать, а не перевести.
                    –1
                    Чем лучше? Вряд ли кто-то будет вкладывать серьезные ресурсы в то, чтобы улучшить качество старых материалов. Т.е. качество будет мало отличимо от машинного, скорее всего, только переиздадут выборочно, а софтом можно будет хоть «просто Марию» перевести в HD, если кому-то будет очень надо.
                      0
                      Извините, но разрешение обычной пленки (на которой и записаны те самые старые фильмы) обычно куда больше того самого HD.

                      И для HD переизданий используется просто несколько копий фильма на пленке.
                        0
                        Дело не только в разрешении пленки. Там, где качество позволяет, уже давно издано в HD (в том числе и фильмы 20ти летней давности, хоть там и видно огрехи). А телевизионный материал, скорее всего, снимался на такую аппаратуру, что от перевода в hd будет такой-же эффект, как и от увеличения в фотошопе просто. Мало того, что разрешение пленки не показательно само по себе, так еще есть ограничения объективов и. А если материал хранится не на обычной пленке, а на магнитной, то оттуда уже ничего лишнего не вытянешь. Это-же касается и советских и постсоветских фильмов года эдак до 2000го, а то и 2005го.
                  +2
                  Не спорю, конечно тоже этого хочу, но нативной поддержки основного рабочего инструмента (да вообще инструмента, где этот алгоритм будет использоваться чаще всего в мире) уж больно хочется.

                  Смысл в том, что одно и то же размытие по Гауссу 10Mpx файла в Photoshop работает довольно быстро, а в GIMP можно успеть кофе попить, покурить, немного вздремнуть, принять душ, пофапать на Сашу Грей и поковыряться в носу. Скорость работы конкретной реализации алгоритма решает все.
                    0
                    liquidrescale.wikidot.com/

                    Не уверне, но мне кажется, что это SR метод (Seam Carving algorithm). Там вот как-раз используется открытая библиотека.
                      0
                      это совсем не то, насколько понимаю. Тут изменяются пропорции картинки, без искажения объектов, на которые взгляд обращён
                      +1
                      и вот еще:
                      mentat.za.net/supreme/
                      0
                      Для Adobe есть Genuine Fractals. Вот для Gimp бы что появилось наконец…
                        +1
                        Есть же плагины для того же фш, «Blow up!».
                          0
                          Кстати в CS6 ситуация с увеличением улучшилась
                            0
                            в принципе сторонние модули уже давно могут интерполировать изображение.
                            +15
                            используются статистические алгоритмы, а образцы берут из единственного изображения.

                            На таблице для проверки зрения отлично видно, как это работает. Обратите внимение, буквы S и Z четко восстановлены даже в последней строке, так как на картинке есть более крупные образцы этих букв. А вот B и M замылились тремя строчками выше (даже на бикубической интерполяции их видно лучше), потому что этих букв большего размера нигде больше нет.
                            • UFO just landed and posted this here
                                0
                                Все правильно, образца буквы E не было, а буквы S — был. Интересно, если к подопытной картинке приклеить семплы всех букв алфавита, результаты улучшатся?
                                • UFO just landed and posted this here
                              +7
                              Как это сделать с openCV.
                                +19
                                Пришло время улучшить чёткость вашей аватарки ;)
                                  0
                                  И дерзость заодно.
                                  +1
                                  Ссылка на метод для исходного _набора_ кадров.
                                  А речь в посте по улучшение по _одному_ кадру.
                                  +4
                                  Прямо CSI-овский "enhance"…
                                    +1
                                    Весьма круто. А с фрактальными алгоритмами не сравнивали? Вот, например, у Кена Роквелла статья про Genuine Fractals:
                                    www.kenrockwell.com/tech/gf.htm
                                      0
                                      Вообще, по принципу действия алгоритмы похожи. Результаты должны быть сравнимы.
                                      +5
                                      Результат метода Кима в применении к фотке выглядит вполне себе, а остальные — ужас, хуже бикубика. Фиктивное дополнение «деталями», которых в оригинале никогда не было.
                                        +5
                                        На их сайте по ссылке примеры более впечатляющие.
                                          +2
                                          Ну, собственно, хорошо смотрится в применении к архитектуре и графике, средне — к природе, отвратительно — к животным в общем и людям в частности. Чем больше искусственных чётких линий в оригинале, тем лучше. Чем больше мягких переходов и неконстрастных деталей, тем хуже.

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

                                          Птыц
                                            0
                                            Мне все равно результат этого алгоритма нравится больше, чем NN или бикубическая интерполяция.
                                            Изображение более четкое.
                                        –4
                                        Зашёл увидеть коммент с CSI, а его тут не оказалось о_О
                                        +1
                                        Я так и не увидел никакой магии. Поясняю: на фотографии с младенцем все инстинктивно проверяют чистоту кожи и сохранение контура глаз/лица.

                                        А смотреть надо на нитки вязания на шапке. Легко видно, что ничего там не восстанавливается — как не было видно большинства штрихов, так их и не видно.
                                          +1
                                          Ну очевидно, что деталям, которых на фото небыло, взятся неоткуда… у нас же не CSI.
                                          Главное ведь, что качество куда выше.
                                          –8
                                          Надо быть полным придурком, чтобы обычное увеличение без какой-либо интерполяции вообще называть «интерполяцией ближайшим соседом». Голову сломаешь пока поймёшь о каком таком соседе речь.
                                            +1
                                            По-моему, все уже давно привыкли к подобной классификации: и к религии «атеизм», и к автомобилю «безмашины»…
                                              +4
                                              Да что вы говорите?
                                              Тыц №1: en.wikipedia.org/wiki/Nearest-neighbor_interpolation
                                              Тыц №2: ru.wikipedia.org/wiki/Интерполяция_методом_ближайшего_соседа

                                              Подсказка: не бывает «просто увеличения без интерполяции», кроме единственного случая, когда увеличение кратно оригинальному размеру и пиксели просто дублируются. В любом другом случае нужна интерполяция, даже если это простейший вариант «ближайший сосед».
                                                +1
                                                И даже увеличение дублированием — тоже интерполяция. Ведь пикселей, которые «отдублировались» раньше не было, а значит мы как раз получили промежуточные значения из оригинальных, т.е. интерполировали :)
                                                  –1
                                                  Да, дублирование частный случай Nearest neighbor interpolation. Но обычные люди знают слово «дублирование», оно же «без интерполяции».
                                                  Это маркетологи пускай тупое дублирование называют «интерполяцией» для хомячков.
                                                    0
                                                    У вас явно нелады с темой, терминологией и элементарной вежливостью…
                                                0
                                                И не хватает сравнения с известными EDI/NNEDI3
                                                  +2
                                                  Почему Лины Седерберг нету? :)
                                                    –2
                                                    Это, конечно, прекрасно, только не очень понятно, зачем. Я говорю не о самой технологии, а о её применении.
                                                    На мой взгляд, это никем никогда не будет использоваться. Фотографии чего-либо всегда можно либо сделать самому, либо найти хорошего качества. Иллюстрации можно обвести в векторе. Более того, полученный результат, честно говоря, не дотягивает до приемлемого уровня.
                                                      +1
                                                      Старые фотографии, или например если утеряны полноценные оригиналы. А также представьте, что вы при фотографировании запечатлели какой нибудь интересный момент, но он был далеко и надо хоть немного улучшить качество.
                                                        +1
                                                        Ну как — тот же Genuine Fractal очень активно используется всякими типографиями, у них это стандарт де факто для повышения разрешения «кошмарных жипегов» с которыми им приходится работать.
                                                        0
                                                        На мой взгляд, лучше всего с этой задачей справляются художники.

                                                          0
                                                          за счет разной резкости получилась как бы имитация малой ГРИП, забавно ;)
                                                            0
                                                            Скорость работы такого алгоритма с художниками слишком маленькая.
                                                              0
                                                              И стоимость работы большая.
                                                              0
                                                              Что-то не очень впечатлило и правый глаз какой-то более размытый.
                                                                0
                                                                Правый глаз остался без изменений
                                                              +2
                                                              Теперь то киношникам есть что ответить, когда их будут спрашивать: как можно так четко восстановить картинку снятую в ночное время с камеры наблюдения?
                                                                +1
                                                                А почему нет lanczos, spline, sal, hqx? Хоть два последних и для пиксельарта, хотелось бы их увидеть в сравнении. Ну а два первых популярны и широко используются.
                                                                +2
                                                                Навскидку, только бикубик и метод Кима оставили фотографию фотографией. Остальные сделали из нее рисунок с пересвеченными гранями. Та же беда в современном софте вроде Photo Zoom Pro и плагинах — увеличивая фотографии мы теряем фотографичность. Зато для графики подходит отлично, можно пользовать.
                                                                  0
                                                                  Если что, pfstools реализует Фатталя, Драго и 2 версии рейнхарда:

                                                                  pfstools.cvs.sourceforge.net/viewvc/pfstools/pfstmo/src/
                                                                    0
                                                                    ничего нового
                                                                    2002 год
                                                                    img-service.com/overview/super-resolution_algorithm.html
                                                                      +2
                                                                      У меня кстати был диплом на подобную тему. Я пытался увеличивать изображения на основе фрактального анализа. Точнее на основе алгоритма фрактального сжатия изображений. Идея в том, что картинка считается фракталом, и почти брутфорсом, ищется набор афинных преобразований в цветовом пространстве этот фрактал порождающий. Потом картинка восстанавливается примененением полученные преобразования на холсте большего размера.

                                                                      Результат выходил похожим на метод Фрмана в приведённой статье, даже симпатичнее. Главная проблема — чудовищная медлительность алгоритма, при том, что в качестве примитивов использовались только квадраты. А, по хорошему, это должны быть произвольные фигуры.

                                                                      Пока я это дело писал, наткнулся на схожие коммерческие алгоритмы. Но они работали в частотном пространстве и использовали вейвлеты (примерно так). Мне их результаты не нравились, т.к. картинка как-то неприятно сглаживалась.
                                                                        0
                                                                        Вспомнил древнюю статью на gamedev про smart filtering. Интересно, кто-нибудь пытался реализовать похожий алгоритм, ведь он не только пиксели учитывает, а еще и форму.

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