Комментарии 169
Про звук много думаем, но это существенно сложнее. Для того, чтобы обучить такую нейросеть, нужно воспроизвести те деффекты, которые есть на реальном контенте низкого качества. В случае видео достаточно понизить разрешение, добавить блура и сжать одним из популярных кодеков, и результат уже получается неплохим. В случае звука нужно воспроизводить шумы и дефекты, которые возникали при записи на старые микрофоны и последующей записи на плёнку, что сложнее. Можно попробовать не воспроизводить эти шумы, а воспользоваться технологиями вроде CycleGAN, но мы пока что ещё не пробовали.
С процессом записи на пленку сложнее.
я хотел пропустить через него хоме видео, снятое на первые телефоны, которое сейчас лежит в облаке
www.compression.ru/video/deblocking/index.html
www.compression.ru/video/deblocking/smartdeblocking.html
… и мультфильмы в примерах ой, как не случайны, сравнили-бы результат с тем-же банальным warpsharp-ом по мотивам которого и апскейл можно сделать…
Про всякие поделки сумрачных отаку и MSU Cartoon Restore я вообще молчу, и автор статьи молчит, хотя понятие имеет, ведь на сайт MSUшной лабы он ходил как минимум за примерами деблока…
За MSU Cartoon Restore — спасибо, мы действительно не знали про них, хотя и не совсем честно сравниваться с их решением: оно работает только на мультфильмах и требует ручного выставления параметров.
А пример деблокинга — кадр из видео foreman, широко используемого для демонстрации методов обработки видео по всему миру. Вот целое видео, если интересно: www.youtube.com/watch?v=0cdM-7_xUXM
… пока судя по видосикам, ваша сеть ведёт себя не лучше предшественников
Однако здесь я согласен с вашим подходом.
Почему не убрали дрожание кадра?
Выровняли бы видеоряд первым этапом, потом бы обрабатывали это видео.
С одной стороны DeppHD, вроде топовые технологии, с другой видео на компьютере как на пленочном проекторе.
Да и сжатие значительно увеличится при стабилизации изображения.
Посмотрел ваши демо-ролики.Однозначно. Можно попробовать прогнать бесплатный MSU Deflicker: www.compression.ru/video/deflicker/index_en.html
Почему не убрали дрожание кадра?
Там местами видео однозначно сильно полегчает )
Про универсальность, не надо лукавить, все примитивные алгоритмы обладают ей, можно зашить туда безопасные значения, а можно их динамически вычислять разными способами, что в коммерческих видеопроцессорах и делается…
И вот тут, ваша жесткая структура тупо проиграет корейскому телевизору, который умеет измерить превышение некоторых критичных для человеческого глаза параметров, и подкорректировать свои настройки, до социально приемлемых.
А ваша структура, как и прочие аналоги, лишь генерализует нечто среднестатистическое (дай-то бох :-) и с этой колокольни перескажет пользовательские данные. Но пользователи разные, настроения у них разные, и разные истории показывают им авторы, разным языком.
Есть Норштейновский Ёжик, а есть Соник или Губка Боб, понимаете?
А всё ещё сложнее, есть например Гамбол!
Про кино я и не заикаюсь вообще, люди про него тут написали и я могу лишь подписаться.
Корейского телевизора нет, есть смартфон Sony со встроенной улучшалкой изображения. На вид работает неплохо.
Дико бесит, что эта улучшалка туда вбита проприетарными алгоритмами и привязана к железу. То есть я сделал фото, смотрю — оно красивое. Делюсь им с друзьями — на их экранах оно страшное. Смысл?
Так что "корейский телевизор", но который можно быстро применить к файлу и результат будет доступен везде — это уже хороший продукт, имеющий право на жизнь.
Последовательностей, было много разных, но не в последнюю очередь благодаря регулярным публикациям MSUшников она стала, таки стандартной :-)Еще раз спасибо, но мы только на русском разве что популяризировали foreman-а ), а так все, кто сжатием занимается давно с этим мужиком знакомы так же плотно, как сжимавшие картинки с леной )
Про универсальность, не надо лукавить, все примитивные алгоритмы обладают ей, можно зашить туда безопасные значения, а можно их динамически вычислять разными способами, что в коммерческих видеопроцессорах и делается…Однозначно так!
За MSU Cartoon Restore — спасибо, мы действительно не знали про них, хотя и не совсем честно сравниваться с их решением: оно работает только на мультфильмах и требует ручного выставления параметров.Побойтесь бога, в простом режиме там параметры минимальны:
![image](https://habrastorage.org/getpro/habr/comment_images/07f/894/182/07f89418224d333ec5e2021947e87a72.gif)
Сравнивать скорее некорректно, поскольку это будет сравнение свободно доступного бесплатного плагина под бесплатную программу и закрытой коммерческой технологии. Опять же — MSU Cartoon Restore работает быстрее реального времени и почти не требует памяти, а у вас скорее всего другая история ). Но тем не менее сравнить в качестве стартовой точки можно.
А что мы известны в основном за рубежом, это увы…
Кстати! Что вы заканчивали? Это не вы часом?
graphics.cs.msu.ru/ru/node/861 )))
Про всякие поделки сумрачных отаку и MSU Cartoon Restore я вообще молчу, и автор статьи молчит, хотя понятие имеет, ведь на сайт MSUшной лабы он ходил как минимум за примерами деблока…
Спасибо за добрые слова в наш адрес! ) Очень приятно!
Справедливости ради — примеры простого деблокинга действительно похожи с теми, что у нас на www.compression.ru/video/deblocking, но автор картинку брал, похоже, тут en.wikipedia.org/wiki/File:Deblock1.JPG
Берём старые семейные видеозаписи, прогоняем через эту мясорубку, и вуаля — мы помним людей не такими, какими они были, а такими, какими их представила себе нейросеть.
Привет, «Чёрное зеркало».
Больше такие претензии нужно предъявлять к нейронкам, переводящим из ч/б в цветное. Вот там можно наврать так наврать.
… хотя глубокой сети на вход 3D матрицу дать, может-бы что интересного и вышло бы, хотя опять же, нужно сравнивать с тупыми свёртками, и более сложными алгоритмами движения
Проблема с восстановлением в том, что разные кодеки ухудшают картинку по-разному, причем чем они новее, тем более сложные модели нужно строить, чтобы восстановить поток. Т.е. это возможно (и простой поиск compressed video restoration выдает массу вариантов, начиная от бесплатных и заканчивая вполне коммерческими), но там все очень нетривиально.
Кстати — именно с нейросетями вполне возможно, что получится относительно «просто» смоделировать современные сложные кодеки и таки построить «универсальное» восстановление. Но очень вероятно, что в ближайшее время наилучшие результаты будут, если просто смотреть на кодек, проверять, что артефакты ему соответствуют (ибо транскодеры весьма популярны) и брать модель, обученную на восстановление потоков этого стандарта. Это совершенно реальная тема.
Но правда и спекулировать на таком подходе проще всего ), т.е. обучиться на конкретном стандарте и потом показать, как на нем сеть все хорошо затаскивает )))
![image](https://habrastorage.org/getpro/habr/comment_images/8a3/6a9/077/8a36a90776012b79f5e178463af9a44e.png)
![image](https://habrastorage.org/getpro/habr/comment_images/977/0bf/089/9770bf08915711b4aaf0956f2c110942.png)
Есть надежда, что подобные проблемы можно решить, подавая на вход сети не один кадр, а несколько, но пока что нам такую архитектуру не удалось заставить работать достаточно хорошо.
habr.com/post/146157 — уже в трехмере
total3d.ru/cinema/93899 — уже в стерео, думаю половина вопросов решалась вручную, а половина с помощью разработанных алгоритмов…
Но не об этом мое было желание ) не трехмерная реконструкция (хотя именно она была бы идеальным решением), а что то типа SVP, когда наличие двух кадров позволяет получить третий. Только у SVP это разница во времени, а у меня разница в пространстве/яркости/углу поворота.
Хотя я давно не следил за темой, может сейчас стало получше.
![image](https://habrastorage.org/getpro/habr/comment_images/88a/b6c/c32/88ab6cc324a2d3a5203d28b6e86f2e69.webp)
Но подход реально классный, и статья отличная
APNG уже год как есть в хроме. Теперь только только в IE-Edge он не отображается, впрочем как всегда.
https://caniuse.com/#feat=apng
Технология в опенсорс отдаваться не будет? Запатентована?
Нашёл небольшую опечатку или повтор: «Наши итоговые модели одерживают победу в более чем 70% случаев. Наши итоговые модели одерживают победу в более чем 70% случаев, что достаточно много....»
А в обратную сторону эту нейросеть запустить можно?
В последнем видео на 0:55 рак стал неестественно чётким, пропала мягкость 2d-рисунка.
… в исходнике это заметно как аномальное увеличение\уменьшение люмы в тех же местах, оно не так заметно для не тренированного глаза, но именно за него цепляются все шарпилки, от простых свёрток, до глубоких уродцев.
Помните, как на Марсе сфинкса разлядывали: взяли нечеткий снимок, и после обработки на компьютере что-то углядели, причем, чем больше обрабатывали компом, тем более «сфинксовым» был лик. Но больше информации от этого, увы, не стало, просто картинку подогнали так, чтобы человеку было нескучно смотреть на фото:
![image](https://habrastorage.org/getpro/habr/comment_images/511/217/340/5112173402de7cbb9504fa5a37bda87d.jpg)
Улучшение видео — штука хорошая, но в лучшем случае вы вносите в картинку то, что ваш алгоритм «придумал», а не то, что автор видео хотел или мог бы снять, правильно?
Может, просто взять качественный исходник?
Просто? Можно мне просто качественный исходник Метрополиса 27-го года? Заранее спасибо.
Дело скорее в отсутствии качественного исходника.
Машина сделает работу хорошо, главное, чтобы улучшение было нужным.
x(n+1) = x(n) + 1
И взяв изначальное значение, мы получаем сколь угодно большую последовательность. И ни какого гадания здесь нет.
Если-бы эта аксиома была верна, то не существовало алгоритмов сжатия без потерь.
См. ниже шкалу е%%чxиx шакалов
… и того, ощутимого выхлопа в продажах, который был от работы с аналоговым, эфирным ТВ, уже не будет, да и если начать вспоминать то время, там тоже всё было не так просто, ибо пипл как известно, хавает, а именно массовые модели делают большую часть профита…
Что до 3D, то есть две большие разницы, работаем-ли мы с исходными данными и избыточной частотой кадров, и\или пытаемся процессить пережатку, где никаких уточняющих данных уже нет в принципе, и бороться можно разве-что за устранение артефактов и\или привидение оных в смотрибельный вид…
Однако, по хорошему, эта работа должна делаться внутри самих декодеров, ибо повторно вычислять то что уже вычислено, это знаете, да вы и сами знаете…
Ну, не знаю кому хочется, ИМХО всех всё устраивает, сейчас конечно пошла волна 4кИменно! Продуктам компаний нужно чем-то отличаться в лучшую сторону от аналогов. Нужны красивые истории, если что-то где-то наглядно становится лучше — это радует всех. )
но получить прямо таки визуальное преимущество, которое-бы клиент реально разглядел на полках магазина, это вряд ли…Вы забываете про рост диагоналей. Пипл покупает числа и диагональ 65 дюймов больше, чем 56, я уж 145 или 170 — так вообще! ))) И (внезапно) на таком размере «мыло» привычных алгоритмов ресэмплинга начинает конкретно напрягать пипл, который раньше хавал.
Что до 3D, то есть две большие разницы, работаем-ли мы с исходными данными и избыточной частотой кадров, и\или пытаемся процессить пережаткуОднозначно!
Однако, по хорошему, эта работа должна делаться внутри самих декодеров, ибо повторно вычислять то что уже вычислено, это знаете, да вы и сами знаете…Очень хорошо знаю )
Там все не так просто, увы. Во-первых, как только возникает IPBBB, т.е. большое количество B-кадров, восстановить реальное движение становится той еще задачей. А во-вторых, очень сильно мешает то, что на выбор моушн вектора в кодеке влияет его вес, в итоге уже на средних битрейтах (которые легко возникают в трансляциях при любом резком движении) в поток часто идет вектор просто повторяющий соседа, вместо реального. И использовать такие при процессинге, а тем более восстановлении — плодить характерные артефакты (когда часть слаботекстурного фона прилипает к контрастному объекту, например). И «починить» это оказывается по вычислительной сложности сравнимо с построением карты движения с нуля.
От того счастье так легко и не наступает. )
А если вы выведете формулу, по которой можно дорисовать нерезкий кусок картинки — так вы будете великим, человеком, который весь мир описал одной формулой. *смайлик*
Кстати, в вашей формуле информации ровно немного: тип зависимости и коэффициенты, а вовсе не вся таблица при всех значениях n. Вот эту информацию мы и имеем, но, если я вам скажу, скажем, что есть формула
x(n+1) = x(n) + A
и вы, не имея данных, догадаетесь о значении A, вот тут и появится новая, лишняя, исходно не дававшаяся информация.
А сжатия без потерь и не существует. Не существует алгоритма, который сожмёт любую последовательность байтов так, что она станет от этого короче, и сможет потом любой результат сжатия однозначно разжать. Есть лишь иллюзия сжатия без потерь, которая возникает, когда какой-нибудь алгоритм сильно сжимает последовательности байтов очень специального вида (скажем, "осмысленные"), и при этом чуть портит все остальные.
Не существует алгоритма, который сожмёт любую последовательность байтов так, что она станет от этого короче, и сможет потом любой результат сжатия однозначно разжать.LZMA, LZO, LZ4?..
Про «любую» и белый шум занудствовать не будем.
Это не занудство, это вполне себе ответ по существу на занудство собеседника. MIKEk8 утверждает что когда мы разжимаем LZMA-архив, мы создаём информацию. А я указываю, что если подсунуть архиватору любую достаточно содержательную последовательность байтов, то он задохнётся и ничего не сожмёт. И произойдёт это как раз именно потому, что информация в полезном для практики смысле — именно в том смысле, в котором она в данном разговоре употребляется (информация о том, что изображено на картинке) — при разжатии не появляется, а при сжатии, соответственно, не исчезает, но просто переводится с одного языка на другой. И указываю я на это как можно более резко, применяя приём под названием "парадокс" для привлечения внимания собеседника к именно тому, что требуется.
Не существует алгоритма, который сожмёт любую последовательность байтовКонечно, мы не создаём информацию. Информации в несжатом файле столько же, сколько и в сжатом.
<...>
мы создаём информацию
Но последовательность байт почти всегда можно сжать, а потом разжать, этот процесс не имеет отношения к уничтожению и порождению информации. Байт — это не всегда 8 бит информации, поэтому архиватор может вместить ту же информацию в меньшее количество байт.
если подсунуть архиватору любую достаточно содержательную последовательность байтов, то он задохнётся и ничего не сожмёт.Картинка в bmp — вполне осмысленная последовательность байт. Или текст в txt. Отлично жмутся.
Точно так же и тут: нейросеть «запоминает», как выглядят волосы, и дорисовывает исходя из этого знания. В этом и основная разница методов, основанных на машинном обучении, и простым шарпенингом: без знания о том, как вглядят волосы или глаза, нельзя реалистично их восстановить, см. пример с лицом из статьи. При этом отмечу, что content loss «отвечает» за то, чтобы содержимое кадров не изменилось, в результате нейросеть меняет только высокочастотные детали, не трогая ничего важного.
Но здесь мы ищем не исходник, а именно нечто подобное. Для видеохостинга это как бы глупо: если речь о некачественных роликах, то ценность их такова, что улучшай — не улучшай.
Вы правы, из отсутствия информации сделать её наличие нельзя. Но можно перенести информацию оттуда, где она есть. Подобный подход применяется, например, при обучении классификаторовВ видео подобный подход также можно применять к соседним кадрам. Такие алгоритмы появились порядка 20 лет назад и их все проще и проще делать практическими.
Главное достоинство по сравнению с вашим подходом — это именно восстановление, а не попытка найти что-то похожее. На практике это проявляется в меньшем проценте заметных артефактов.
Приведенный вами пример со снимками планеты, это, в отличии от чисто развлекательного, ненаучного материала, тот случай, когда детали играют существенную роль. Тут, конечно, надо просто быть ответственным и понимать в каких областях можно применять такие методы, а в каких это будет недопустимо.
![image](https://habrastorage.org/getpro/habr/comment_images/ff1/216/7dc/ff12167dc563de8eeee53c98be1d7d4f.jpg)
Точнее, каждый отдельный элемент. И сравнить результат :)
Шкала-то ненастоящая!
Но вот если оценивать тональность изображения в Ч/Б фильмах, то помимо повышения детализации и прорисовки фактуры заметно, что некоторые участки становятся ощутимо темнее. В некоторых случаях (пока сужу только по неподвижным изображениям), это выглядит недостаточно естественно. Просто снимал на Ч/Б фотоплёнку достаточно долго и сужу о результате по своему опыту. Мне кажется, дополнительная обработка или настройка алгоритмов всё-таки нужна.
ни google ни сам яндекс не выдает ничего по deephd
то что то для взрослых, то мультик deep
ссылки на кинопоиск выдают страничку без видео
пример который показан тут, отрывок из маугли дрожит. с этим что то можно сделать?
Под спойлером, например, два кадра примерно одного момента из фильма «Дорогой мой человек» (второй раз взял из первого результата с YouTube).
Такой бы плагин да к старым играм нарисованным от руки в 320x200VGA!
Все ждут теперь этот инструмент в свободном доступе.
В идеале надо ещё сделать шаг — определять автоматически реальное разрешение видео, и предварительно сжимать до него. Или это уже есть? Например если камера выдаёт чёткость сравнимую с 540p на 720p материале, то сжимать предварительно до 540p.
Кстати, пример с OceanTV плохой, там материал вообще идёт без деитерлейсинга, и в итоге каша получается. Видел это сегодня в 13:33, если нужны таймкоды.
Просто для примера — вот относительно новая реализация super resolution: github.com/fperazzi/proSR. На реальных изображениях интернета, даже при условии предобработки всех изображений нашим деблокингом, по оценкам из Толоки DeepHD выигрывает в 67% случаев.
В мультике с раками у вас сильный антиалиасинг, с шакалами — либо минимальный, либо отсутствует.
Также интересны сравнения скорости. Мой типичный конвейер для PAL DVD-видео (720×576) обрабатывает примерно 4-8 кадров в секунду на 4-ядерном процессоре 4-летней давности.
Вы пишете:
на обработку одного телеканала в разрешении 576p требуется одна карта NVIDIA Tesla V100Что подразумевается под телеканалом? 60 полукадров?
NVIDIA Tesla V100 стоит 600+ тысяч рублей, на эти деньги можно купить два двухсокетных сервера с 10-ядерными процессорами.
Что подразумевается под телеканалом? 60 полукадров?
25 полных кадров в секунду.
Мы очень ленивые люди, поэтому всё автоматизировано :)
Ведь в идеале если увеличенное сеткой изображение уменьшить, то оно должно совпадать с тем, которое было исходным (изменения должны вноситься только на тех частотах которых нет в исходном изображении).
Мы очень ленивые люди, поэтому всё автоматизировано :)Вам стоит поинтересоваться, как обрабатывает видео гугл при заливке на YouTube, например. Вы заведомо проиграете им по качеству при ленивом подходе. Ведь когда вы зарелизитесь и вас можно будет сравнить — кто-нибудь это обязательно сделает. И будут вас сравнивать не с академическими аналогами или бесплатными фильтрами, а с доступными бесплатно коммерческими системами. И как вы будете оправдываться? )
Потому что существующие решения решают более узкую задачу. Например, академические решения задачи super resolution хоть и повышют разрешения, но непригодны для решения поставленной задачи,На данный момент ваше решение выглядит не очень далеко ушедшим от академических решений. Но даже не в этом дело, а том, что вообще video restoration люди вполне себе профессионально занимаются уже порядка 25 лет и есть коммерческие программные пакеты, наборы плагинов под популярные редакторы видео и т.п.
Вы ведь не хотите сказать, что никто до вас не решал такую задачу? )
![image](https://habrastorage.org/webt/gq/hl/kz/gqhlkzdwwmq3ad9p78j7wapfhzs.png)
Это блик
![image](https://habrastorage.org/getpro/habr/comment_images/2b6/40a/c8d/2b640ac8d14264becac094ad1ac883ee.jpg)
Это для како-то интервью снимали, и оригинал утерян.
Но вы можете дать свою фотку и мы попробуем на ней.
А потом вы опубликуете оригинал.
Точно ничего не перепутано? И фотография не присутствовала в обучающей выборке? Если так, то можно только поаплодировать, ничего похожего по качеству я в статьях с arxiv не видел.
Я сильно сомневаюсь что это реальный результат обработки, а не художественная интерпретация работы алгоритма.Это вы зря, в статьях на тему можно намного более впечатляющие картинки найти:
![image](https://ai2-s2-public.s3.amazonaws.com/figures/2017-08-08/8b0f338c130992c72b45d2e79e3510cb864e3f49/5-Table2-1.png)
На тему еще 10 лет назад уже книжки выходили:
www.amazon.com/3-D-Shape-Estimation-Image-Restoration/dp/1849965595
Другое дело, что новые подходы намного универсальнее и практичнее.
Вы можете этот же алгоритм предъявить на первой сотне картинок такого запроса:
yandex.ru/images/search?text=лицо )))
Я попробовал через частотное разложение в фотошопе — результат близко не стоял.
Нейросеть всё-таки использует кучу данных из обучающей выборки, чтобы "нафантазировать" детали. Но по поводу картинки из этого комментария у меня тоже сомнения — не видно артефактов апскейлинга. Или фотография была в обучающей выборке и сеть переобучилась, или кто-то перепутал и запостил оригинальную фотографию.
(до сих пор один из «почт» на вашем сервисе)
И это действительно впечатляет.
Вот тут ещё с мультиками примеры можно посмотреть: https://yandex.ru/blog/company/soyuzmultfilm
Вот честно, как обывателю мне не совершенно не ясна польза от таких технологий.
Вот фото превращения смазанной футболки в четкую, приведенное выше, гораздо эффектнее.
Обычные стандартные пункты меню разных программ, типа «автолевел», «шарп», «автоматическое улучшение цвета» и тд, зрительно зачастую лучший эффект дают.
Насчет математики круто наверно. Но вот игра нейросетевого шахматного монстра впечатлила зримее.
Любить российские мультфильмы в HD можно только из России. Есть планы тткрыть их на весь мир?
Пока правда только их десяток в каталоге.
Сейчас и из России этого каталога больше не видно, только стандартный поиск.
В принципе оно все осталось на кинопоиске где и было выложено, например: www.kinopoisk.ru/film/29818/watch
www.kinopoisk.ru/film/44380/watch
остальные там же можно найти
Но почему-то перестало выводиться в удобном каталоге сразу в результатах поиска Яндекса.
Как Яндекс применил компьютерное зрение для повышения качества видеотрансляций. Технология DeepHD