{"id":3824,"url":"\/distributions\/3824\/click?bit=1&hash=a0d33ab5520cacbcd921c07a49fc8ac5b78623b57936b992ce15c804b99210d4","title":"\u041a\u0430\u043a\u0443\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0434\u0430\u0442\u044c \u043d\u0430 DTF \u0438 \u043a\u0442\u043e \u0435\u0451 \u0443\u0432\u0438\u0434\u0438\u0442","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"75ec9ef4-cad0-549d-bbed-1482dc44e8ee","isPaidAndBannersEnabled":false}
Lambda МАИ

Как мы Evangelion улучшали

К нам, в Московский авиационный институт (на факультет информационных технологий и прикладной математики), привезли новый сервер с GPU A100x8 и 2TB RAM.

Первым делом мы решили его потестить. Под конец года заниматься чем-то серьёзным не очень хотелось, поэтому нагрузили оборудование задачей Enhancement (улучшает изображение, видео, звук).

Для апгрейда взяли Neon Genesis Evangelion (1995-1996): нашли DVD-образ, перенесли его в цифровой формат .mkv.

Оригинальное разрешение картинки 704x480, кадры сильно зашумлены, нет чёткости линий (как в современных аниме), иногда проступают белые точки/полосы от процесса съемки кадров.

В сети можно найти версии в 1080p, но это то же 480р, просто растянутое

Результат нашей работы — видео в формате 4К (2560x1080). Хотя и не без минусов (белые артефакты из-за при процесса съемки аниме никуда не исчезли), но всё равно круто.

В общей сложности мы обработали 26 серий и фильм End Of Evangelion. Выпускать будем постепенно, согласно этому расписанию:

  • 1 января — 1-6 серия;
  • 2 января — 6-12 серия;
  • 3 января — 12-18 серия;
  • 4 января — 18-24 серия;
  • 5 января — 24-26 серия;
  • 6 января — The End Of Evangelion.

Уведомления о новых сериях мы публикуем на нашем канале в Telegram.

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

Real-ESRGAN

Главный инструмент всего процесса — Real-ESRGAN (Real Enhanced Super-Resolution Generative Adversarial Network)[Paper, GitHub].

Задача GAN — генерировать ненастоящие данные, которые выглядят очень реалистично. Типовая архитектура GAN содержит две сети: генератор и дискриминатора.

Задача генератора создать ненастоящие данные, а дискриминатора — отличить, где настоящие, а где ненастоящие. Тем самым дискриминатор помогает генератору создавать более реалистичные данные.

В чем отличие Real-ESRGAN от просто ESRGAN? В том, что обучение происходит на чистых синтетических данных, а в качестве дискриминатора используется U-Net со спектральной нормализацией.

Синтетические данные

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

После того, как собрали данные, сеть ERSGAN приступает обучаться на разных масштабах увеличения изображения (x1, x2, x4)

Использование U-net

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

Кодес (с пояснением)

Собственно, теория — это круто, но как добиться результатов на своих данных?

Первым делом надо клонировать репозиторий с Real-ESRGAN.

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

git clone https://github.com/xinntao/Real-ESRGAN.git cd Real-ESRGAN virtualenv venv source venv/bin/activate pip install -r requirements.txt pip install tqdm python setup.py develop

Ещё для удобной работы стоит добавить и запустить Jupyter Notebook:

pip install jupyter notebook jupyter notebook

Создадим ipynb и начнём. Импортируем основные библиотеки:

import torch from basicsr.archs.rrdbnet_arch import RRDBNet from basicsr.utils.logger import AvgTimer from tqdm import tqdm from realesrgan import IOConsumer, PrefetchReader, RealESRGANer from realesrgan.archs.srvgg_arch import SRVGGNetCompact

Загрузим нужную нам обученную сеть, список можно найти тут:

!wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.2.3.0/RealESRGANv2-animevideo-xsx4.pth -P experiments/pretrained_models​

Далее указываем параметры для сети (данные параметры только для RealESRGANv2-animevideo-xsx4):

model_name = "RealESRGANv2-animevideo-xsx4" model_path = os.path.join('experiments/pretrained_models', model_name + '.pth') model = SRVGGNetCompact(num_in_ch=3, num_out_ch=3, num_feat=64, num_conv=16, upscale=4, act_type='prelu') netscale = 4 outscale=4 tile = 0 tile_pad = 10 pre_pad = 0 half= False upsampler = RealESRGANer( scale=netscale, model_path=model_path, model=model, tile=tile, tile_pad=tile_pad, pre_pad=pre_pad, half=half)

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

Поставим библиотеку для работы с видео:

!pip install scikit-video
import skvideo.io siries = "Evangelion.(10.serij.iz.26).1995-1996.x264.DVDRip.mkv"

Видео загрузили, теперь посмотрим что с его параметрами:

metadata = skvideo.io.ffprobe(f"./NeonEvangelion/{siries}") fps = float(metadata["video"]['@r_frame_rate'].split('/')[0])/1001 print("Частота кадров:", fps)

Вот тут может быть проблема, так как не во всех видео единый формат, тут пришлось поделить на 1001, так как указанная частота 23976/1001:

frame_width = int(metadata['video']["@width"]) frame_height = int(metadata['video']["@height"]) print("Разрешение видео:", frame_width, "x", frame_height)

Грузим наш видос:

videodata = skvideo.io.vread(f"./NeonEvangelion/{siries}") frame_count = videodata.shape[0] print('Количестов кадров:', frame_count) # float `frame_count` print('Длительность видео (сек):', frame_count/fps) # float `frame_count`

Смотрим как сильно апскейлится наше видео:

output, _ = upsampler.enhance(videodata[0], outscale=outscale) height = output.shape[0] width = output.shape[1] print("Выходное разрешение видео:", width, "x", height)

Создадим метод для записи видео:

crf = 17 writer = skvideo.io.FFmpegWriter('Magmadiver.mp4', inputdict={'-r': str(fps), '-s':'{}x{}'.format(width,height)}, outputdict={'-r': str(fps), '-c:v': 'libx264', '-crf': str(crf), '-preset': 'veryslow', '-pix_fmt': 'yuv444p'} )

И начнём покадрово обрабатывать и записывать видео:

for frame in tqdm(videodata): output, _ = upsampler.enhance(frame, outscale=outscale) writer.writeFrame(output) torch.cuda.synchronize() writer.close()

Теперь, если был звук в видео, надо его как-то вытащить. Поможет с этим ffmpeg. Сохраним его в отдельный mp3-файл:

!ffmpeg -i "./NeonEvangelion/Evangelion.(10.serij.iz.26).1995-1996.x264.DVDRip.mkv" "Magmadiver.mp3"

И потом возьмём созданное видео и добавим в него звук:

!ffmpeg -i "Magmadiver.mp4" -i "Magmadiver.mp3" -c copy -map 0:v:0 -map 1:a:0 "10.Magmadiver.mp4"

Всё! Спустя 1 час 30 минут очередная серия Evangelion обработана.

Colab

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

А ещё совсем недавно выложили portable-версии:

Играйтесь, улучшайте аниме и кидайте свои результаты в комментарии и подписывайтесь на наш Telegram-канал, там мы чаще делимся своими экспериментами и новостями.

0
191 комментарий
Написать комментарий...
ПириРейис

Обожаю современных ученых.
- Эй нам привезли суперкомпьютер
- Давай переведем Евангелион в 4к.

Ответить
Развернуть ветку
Александр Ивасенко

полезай в ебаный компьютер

Ответить
Развернуть ветку
1 комментарий
Johnny Was A Good Man

Классика!

Ответить
Развернуть ветку
5 комментариев
Вынужденный спрей

А чё, тестировать надо как то железо

Ответить
Развернуть ветку
5 комментариев
Куприян Ермаков

Это не современные учёные, а все учёные. А что учёные не люди что-ли? Так ещё и доступ к дорогому оборудованию имеют, так что...

Ответить
Развернуть ветку
Средний яд

Мне кажется, или года 4 назад энтузиасты уже переводили Еву в HD?

Кстати, вы своим улучшением всю ламповость удалили.

Ответить
Развернуть ветку
Он Самый

Синдром утенка какой-то. Ламповость - понятие субъективное конечно, но сейчас, когда у многих 4к телевизоры или даже мониторы смотреть 480р больно. Если хочется Ламповость сохранить, то это надо на элт мониторе ещё и желательно с VHS кассеты смотреть

Ответить
Развернуть ветку
24 комментария
Vitalseo

Я в прошлом году смотрел как раз версию 1080p и одна из серий попалась необработанной (в 480p) и её было «больно» смотреть, так как она была мыльно и не четкой.

Ответить
Развернуть ветку
1 комментарий
Kir Kirsky

Провода в hi-end колонки надеюсь золотые?

Ответить
Развернуть ветку
4 комментария
ncuxonam

В фулл хд, 4-3 с теми же шумами как в оригинале.

Ответить
Развернуть ветку
gogathejedi

Таки да, ничего лудшэ Renewal двд-рипов в сети так и не появлялося.

Ответить
Развернуть ветку
Шрапнель

Анимешников не спрашивали

Ответить
Развернуть ветку
Андрей Киселев

Херня какая-то полная. Вот пример сравнения старой версии с этим недоразумением. У Синдзи рыло, будто он в енота превратился, и каких-то левых деталей добавилось.

Ответить
Развернуть ветку
Hats

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

Ответить
Развернуть ветку
3 комментария
Lambda МАИ
Автор

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

Ответить
Развернуть ветку
1 комментарий
Flanayt Pulsar

Ради интереса закинул в Waifu2x

Ответить
Развернуть ветку
2 комментария
Иван Чернов

То есть мать Синдзи - таки Тануки?
Это интересный оборот!

Ответить
Развернуть ветку
SubCommittee

выглядит как векторизированные рисунки в Corel Draw причем не лучшим способом.

Ответить
Развернуть ветку
Lambda МАИ
Автор

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

Ответить
Развернуть ветку
5 комментариев
Omniscient brain

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

Ответить
Развернуть ветку
Яркий яд

Добавьте изображение на превью (звёздочкой в настройках блока), сейчас пост внимания особо не привлекает в ленте.

Ответить
Развернуть ветку
Lambda МАИ
Автор

Спасибо за подсказку

Ответить
Развернуть ветку
1 комментарий
Неведомый лолипоп

брат умер после скачивания файла по ссылке

Ответить
Развернуть ветку
Неведомый лолипоп

но я бы посмотрел на 16 серию после обработки
Зря что ли брат умирал.

Ответить
Развернуть ветку
3 комментария
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Mervish

Если серьёзно, то проблемы возникают в двух местах:
1. Когда алгоритм уничтожает элементы оригинала, принимая их за шум. Из-за чего, что иронично, улучшение выглядит мыльнее.

Ответить
Развернуть ветку
Mervish

2. Когда алгоритм пытается починить то, что не сломано. Например находящие не в фокусе объекты, которые алгоритм попытается "восстановить". Помимо фокуса уничтожает атмосферные эффекты, вроде размытия изображения из-за горячего воздуха. И некоторые оптические, вроде мягких теней.

Ответить
Развернуть ветку
Mervish

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

Ответить
Развернуть ветку
Sergey Shadrin

Потому что алгоритм заточен под линии. А в аниме далеко не всё рисуется линиями и заливается. Иногда рисуют красками фон как в наруто, иногда блюрят реальные фотографии и тд
Этот ган ещё мелкие фигурки в далеке херит. Это ещё очень сырая модель для практики

Ответить
Развернуть ветку
Hats

Вообще, NGE не так давно на блюреях перевыпускали, правда рипов я лично не видел.

Ответить
Развернуть ветку
Твиттерский Жук

на рутрекере ж, я видел, норм, явно не херата из нейронок и не просто растянули

Ответить
Развернуть ветку
Никита Кузьменков

Так есть рип от беатрисов "Beatrice-raws", вроде норм(хотя я не эксперт в рипах)

Ответить
Развернуть ветку
1 комментарий
[Unknown]
В сети есть версии в 1080p, но это просто растянутые 480p.

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

Ответить
Развернуть ветку
[Unknown]

Не, ребятки, спасибо, не надо. Обойдёмся плохими старыми равками.

Ответить
Развернуть ветку
6 комментариев
1111

Ну ты и душнила пздц

Ответить
Развернуть ветку
Johnny Was A Good Man

Чисто ради интереса спрошу: как в этом случае обстоят дела с авторскими правами? :-)

Ответить
Развернуть ветку
[Unknown]

Как обычно.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Никита Громов

Осторожно, они герои!

Ответить
Развернуть ветку
Mervish

Люди, которые сканировали пленку для блю-реев:

Ответить
Развернуть ветку
ncuxonam

Я как то блюрей рип смотрел и в чем прикол, то тоже апскейл?

Ответить
Развернуть ветку
Lambda МАИ
Автор

В BluRay просто апскейл 480p до 1080p. Нечеткая картинка, шумы и тд остаются. Обычный способ скрести денежек на ностальгии. Оригинальная BluRay версии насколько помню около $400 стоила

Ответить
Развернуть ветку
3 комментария
klopizh
в формате 4К (2560x1080)

тут нет ошибки?

Ответить
Развернуть ветку
Никита Кузьменков

Нет, просто это 4к в 4:3. Это как Full HD 1440x1080

Ответить
Развернуть ветку
4 комментария
Great Cthulhu cultist

Спасибо, надеюсь вы доведёте проект до конца, и фильм End of Evangelion. Это произведение как раз из тех, что я возьму с собой на необитаемый остров.

Ответить
Развернуть ветку
[Unknown]

Так есть нормальная 1080п запись - нахрена её портить убогой обработкой?

Ответить
Развернуть ветку
1 комментарий
Никита Мельник

Институт маи , который находиться в твоями.
(Простите за рак)

Ответить
Развернуть ветку
Кирилл Солодухин
Ответить
Развернуть ветку
kraz4r

нужно сравнение с блю рей версией, т.к. непонятна целесообразность данного релиза, но апскейлить формат 20 летней давности конечно мое почтение, почему не TV рип тогда уж?

Ответить
Развернуть ветку
Alena Dzhukich

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

Интересно как факт, не особо интересно для просмотра.

Ответить
Развернуть ветку
Алексей Третьяков

ну и кал

Ответить
Развернуть ветку
splinefx

А как этот проект выглядит с точки зрения прав, и всё такое?

Ответить
Развернуть ветку
Никита Громов

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

Ответить
Развернуть ветку
2 комментария
Ninedogs
поэтому решили нагрузить его задачей Ethereum

*fixed

Ответить
Развернуть ветку
MLGBrotishka

Сначала думал, что я в ВК сижу. Но всё-таки lambda и на dtf есть) 8x A100 🤤🤤🤤

Ответить
Развернуть ветку
MLGBrotishka

Так вы с первого января тут, поздравляю с переходом на новую соц сеть DTF))

Ответить
Развернуть ветку
Владимир Титов

Ничего себе, так всё-таки в 8 институте люди чем-то дельным занимаются?

Ответить
Развернуть ветку
Грайр

Все говорят про потерянную ламповость, а мне вот интересно, чем данная разработка лучше и/или отличается от коммерческого Topaz Video Enchacer и опенсорсного TecoGAN?
Просто по примерам, приведённым в лонге, я разницы не увидел

Ответить
Развернуть ветку
Жора Жугор

вобщем ниче нового
обычная https://github.com/k4yt3x/video2x

Ответить
Развернуть ветку
Vitaly Zhukov

Мгмда. Страна нуждается в героях, студенты апскейлят Евангелион.

Ответить
Развернуть ветку
Aliden

Ребята, озвучка, ну как так-то? :(

Ответить
Развернуть ветку
Жожо не пройдет

Потестите лучше на нейронке которая цензуру из хентая убирает))

Ответить
Развернуть ветку
Ivan A

Пожалуйста, улучшите так "Берсерк" 1997 года. Если сделаете, то вас в лик святых возведём

Ответить
Развернуть ветку
Артем Сизко

Чего, там офигенное блю рей 1080 качество
А это поделка только все испоганит

Ответить
Развернуть ветку
42

А нельзя обучить еще одну сетку на фильтрацию шумов/полос до апскейлинга?

Ответить
Развернуть ветку
Lambda МАИ
Автор

Можно применить сеть только на удаление шумов без апскейлинга.

Ответить
Развернуть ветку
2 комментария
Андрей Н. И. Петров

А можно так же, например, любимое ч/б кино улучшить до 4к? А то когда делал себе аватарку сюда и обложку на ФБ, скачал типа самое качественное издание "Восхода солнца", а оно все равно просто как сохранилось на плёнке.

Ответить
Развернуть ветку
Lambda МАИ
Автор

Можно в статье есть ссылка на GitHub репозитория и ссылки на portable версии сеток, надо будет только другою версию выбрать.

Ответить
Развернуть ветку
Zirak Zigil

А есть не ленивые, можете залить парочку скринов с таймстапами? Хочу сравнить с рипом, который у меня лежит, но качать лень)

Ответить
Развернуть ветку
[Unknown]

Держи.

Ответить
Развернуть ветку
15 комментариев
Vartan Popov

Не самый лучший материал , я бы лучше реставрировал версию которая выходила с фильмам the end , там качество детализации лучше .

Ответить
Развернуть ветку
Тимур Есенбаев

Техническая часть очень интересная. Спасибо!

Ответить
Развернуть ветку
Fred Lemuer

Ребилд, который мы заслужили (нет) .

Ответить
Развернуть ветку
Кот Космодесантник

Я понимаю, что речь тут идёт про визуал и это круто, но что насчёт звуковой дорожки, перевода?
UPD: судя по яндексу, это только видеодорожка без звука.

Ответить
Развернуть ветку
Lambda МАИ
Автор

На Яндекс.Диск видео со звуком.
В сторону улучшения звука пока не смотрели, но по-любому там есть стоящие работы.

Ответить
Развернуть ветку
1 комментарий
Аким Ильин

Пацаны вообще ребята 👍

Ответить
Развернуть ветку
Александр Горячев

А торрент где?! :)

Ответить
Развернуть ветку
Kokoro

Гааайз, а можно Ковбой Бибоп и Самурай Чамплу также заебенить?)

Ответить
Развернуть ветку
Zirak Zigil

https://beatrice-raws.org/release/samurai-champloo-1080p

у бибопа на няше есть норма релизы

Ответить
Развернуть ветку
1 комментарий
Mervish

У Санрайза, к счастью, всё хорошо с блю-реями.

Ответить
Развернуть ветку
Emil Alasgarov
Ответить
Развернуть ветку
Dmitry

Я бы киберпанк бы запустил на таком

Ответить
Развернуть ветку
Like End

когда нибудь обычные юзеры с обычными компами смогут повторять такое с любимыми аниме у себя дома, я бы например улучшил гантз, а то вряд ли кто то из энтузиастов с 2 тб оперы вообще знает о таком маняме

Ответить
Развернуть ветку
Илья Кудашкин

Я так понимаю права на публикацию сериала ваш институт купил, да?)))

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Alexander Zhirnov

Когда я учился в МАИ, были факультеты, теперь переименовали в институты.

Ответить
Развернуть ветку
Иван Золотухин

Институты тоже были. Просто в институтах разные факультеты, вот и всё.

Ответить
Развернуть ветку
Сергей Герасимов

Так разве уже не было ремастера когда был выход на блюрей?

Ответить
Развернуть ветку
Adventurer

был ремастер с плёнки, автор статьи просто не знает

Ответить
Развернуть ветку
Captain Nemo

Ха-ха, ждем карающего удара японских охранителей копирайта.

Ответить
Развернуть ветку
Spid3r

Синдзи, пиздуй в ебаный 4К!

Ответить
Развернуть ветку
gast_

1) ремастер уже давно на блюреях выпустили. Почему бы его за основу не взять?
2) зачем придумывать велосипед когда уже есть нормальные алгоритмы на нейросетках для апскейла видео? waifu2x-extension-gui как пример.
Это чисто баловство с непонятной целью. Что там проверять они хотели на рабочем серваке таким образом? Он или работает или нет.

Ответить
Развернуть ветку
Adventurer

щас даже кранчи на лету позволяют с помощью Waifu2x и Anime4k улучшать картинку в реальном времени в плеере, а они блин сервера тестят. Ору просто.
Какие у них там сервера, на первом пентиуме)))
https://habr.com/ru/news/t/504534/

Ответить
Развернуть ветку
Sergey Shadrin

2) Потому что ганы эффективнее сверточных в супер резолюшене

Ответить
Развернуть ветку
Иван Золотухин

Горжусь своими братьями-маёвцами.

Ответить
Развернуть ветку
Sergey Shadrin

Я просто иногда офигеваю. Зачем это нужно делать для нге, у которого сохранились исходные плёнки, которые переоцифровали и получили супер качественное 1080p, которое отлично апскейлится до 4к - максимум nnedi3 применить вместо стандартных алгоритмов, чтобы максимум детали сохранить.
Тем более Real-ESRGAN косячный до ужаса - на практике в нем смысла нет.

Короче насколько бессмысленная работа, просто невероятно.

Ответить
Развернуть ветку
Иван Соколов

На кой хуй?

Ответить
Развернуть ветку
Ress

Как всегда весь объём теряется за счёт этого "смазывания".

Ответить
Развернуть ветку
SWTMRLYN

Эх, а я бы Гайвера посмотрел в таком апскейле.

Ответить
Развернуть ветку
Читать все 191 комментарий
null