Генеральный директор проекта neuro.love Денис Ширяев поделился удачными практиками и алгоритмами для восстановления и улучшения качества старых фильмов. Для самостоятельных экспериментов требуются базовые знания Abode Premiere или After Effects, но результат того стоит!
Пример одной из работ команды:
Подготовка материала
Самое главное – это подготовка материала к работе. К сожалению, не все видеозаписи хорошо сохранились, особенно если им 100 и более лет. Например, если взять материал с Теодором Рузвельтом на острове Пеликан в 1915 году, то даже вся мощь ИИ не поможет. Никаких чудес после улучшения не произойдёт:
Зато вот такой исходник прекрасно подходит для реставрации:
Для работы ИИ требуются детали, потому что алгоритму нужно «видеть» чёткую картинку, нюансы присутствующих в ней объектов и т. д. Другими словами, большое количество деталей помогает ИИ понять, что можно «дорисовать» в кадре для улучшения его качества.
Восстановите фактический FPS, автоматически удалив повторяющиеся кадры
Настоящий вау-эффект получается благодаря сглаживанию движения. Преобразование изображения в формат 60 кадров в секунду делает людей в документальном фильме намного более реалистичными.
Сто лет назад камеры снимали фильмы со скоростью 14-18 кадров в секунду. Затем телевизионное вещание происходило с частотой 24 кадра в секунду. А потом пришла эра интернета. В результате почти все старые фильмы, оцифрованные сегодня, не имеют в своих метаданных фактической частоты кадров.
Вот пример того, как выглядит фильм с частотой 30 кадров в секунду:
А вот как выглядит версия с восстановленным FPS с 20 кадрами в секунду:
На первый взгляд разница небольшая, верно? А вот и нет!
Версия с 30 кадрами в секунду содержит много дублированных кадров. Есть несколько способов искусственно задать 30 кадров в секунду. Мы будем использовать самый популярный — дублирование кадров. Итак, в нашем материале каждый кадр продублирован 2 или 3 раза:
Это не критично, если вы просто зритель, но критично для ИИ, если нам в конечном итоге нужно получить 60 кадров в секунду. Например, вот Мэрилин Монро при 60 кадрах в секунду. Почувствуйте разницу — она выглядит такой «настоящей»:
Шумоподавление
После удаления дубликатов кадров можно эффективно убрать шум. Для этого можно использовать плагин Neat Video. У него почти понятный интерфейс, по нему много учебных пособий и он является эффективным инструментом для уменьшения шума. Плагин платный и стоит 130$. если вы решите его купить, ознакомьтесь с кратким руководством по его использованию:
Шумоподавление — сложная задача, требующая отдельной статьи. Но рекомендуем разделить фильм на сцены и применить разные профили шумоподавления к каждой сцене.
После шумодава изображение будет выглядеть так:
Уже лучше, так что двигаемся дальше.
Устраните мерцание
Одна из проблем, которая была у старых камер, называется «мерцание». Она была вызвана механическими проблемами в устройстве и настройке камеры. Каждый кадр получал разное количество света из-за разной длины выдержки.
Выглядит мерцание так:
Чтобы убрать мерцание, можно использовать плагины FlickerFree (149$) или GBDeflicker (5$).
Выполните Deblur
Deblur — изменение размера отснятого материала до реального масштаба.
Это самая «ненаучная» часть урока. Исходный материал может быть любого размера, от 128p до 2, 4 и так далее K. Проблема в том, что «плотность информации» в кадрах или «насыщенность данными» может быть при этом достаточно низкой.
Почему этот шаг важен? Когда мы просим ИИ дорисовывать кадр (для увеличения масштаба фотографии или кадра видео), нам нужно передать ИИ как можно больше деталей. Это важно, потому что алгоритмы апскейла (о том, как они работают, вы можете прочитать здесь) требуют детальных шаблонов пикселей, которые можно было бы перерисовать.
Взгляните на эту фотографию ночной рыбалки на Гавайях, сделанную в 1948 году:
А вот другая версия той же картинки:
Здесь размер исходного изображения увеличен в 4 раза, из-за чего появилось «размытие» и другие проблемы. Никаких новых деталей не было добавлено, потому что было выполнено только «изменение размера» и не задействован искусственный интеллект. Эта проблема постоянно возникает со старыми кадрами, доступными в интернете.
Даже если у вас есть доступ к исходному материалу и к сканирующему оборудованию, вы можете сканировать исходный материал практически в любом разрешении (даже в 16K). Однако объём данных все равно будет ограничен, а плотность информации будет относительно низкой.
Но решение простое. Нужно менять размер кадра, на глаз оценивая чёткость краёв объектов.
Это выглядит примерно так:
(подход, правда, ненаучный, но он работает)
Лучше сделать несколько прогонов, прежде чем реальный размер отснятого материала будет восстановлен.
Итак, кадры почти готовы. Теперь можно перейти к последним нескольким шагам и отшлифовать видео.
Стабилизация
Этот шаг уменьшит «дрожание камеры» и является необязательным. Существует дюжина методов стабилизации изображения, возьмём самый простой — Warp Stabilization.
Вот руководство:
Но вам решать, насколько «хардкорным» способом вы хотите добиться стабилизации. Итог будет выглядеть примерно так:
Применение ИИ
Когда предварительная обработка будет завершена, можно переходить к использованию искусственного интеллекта для улучшения изображения. Можно использовать разные инструменты:
Решения с открытым исходным кодом или коммерческие варианты
Вам потребуется мощный ПК с современной видеокартой (как вариант — облачный сервер) и некоторые технические навыки.
Чтобы сделать апскейл (перевод видео из меньшего разрешения в большее) можно использовать BasicVSR++ с открытым исходным кодом или платное ПО Topaz Video Enhance (200 $).
Для генерации 60 кадров в секунду — DAIN или Flowframes.
Для раскрашивания — Deoldify (разработчик больше не поддерживает репозиторий).
Чтобы выполнить реставрацию лица – приложение Remini.
Есть и другие приложения, но здесь перечислены те, которые были лично протестированы автором.
Улучшение с помощью neuro.love
Neuro.love предлагает решение для обработки мультимедиа с помощью ИИ. Для работы нужно загрузить исходное видео сюда :
И выбрать, какие фильтры AI вы хотели бы применить:
Например, применим Upscale к 4K, 60 FPS, восстановление лица и раскрашивание. Поскольку исходный материал немного ускорен, можно применить небольшое замедление.
Прежде чем рендерить весь отснятый материал, сделаем предварительный рендеринг и убедимся, что качество демо удовлетворительное.
Примерно через 20 минут получится вот такое видео:
Использовать ли раскрашивание — решать вам. Иногда с художественной точки зрения стоит оставить чёрно-белый вариант.
И вот, наконец, видео готово:
Что скажете? Приемлемый результат?
Что ещё интересного есть в блоге Cloud4Y
→ Малоизвестный компьютер SWTPC 6800
→ Сделайте Linux похожим на Windows 95
→ Бесплатные книги, полезные для IT-специалистов и DevOps
→ WD-40: средство, которое может почти всё
→ Игры для MS-DOS с открытым исходным кодом
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем только по делу.
Комментарии (17)
nickolas059
18.05.2022 16:46+3Актер в сцене с поездом и шпалами нереально рисковал
lair
18.05.2022 16:54+6Если мне память и зрение не изменяют, это фильм "Генерал" Бастера Китона с Бастером Китоном, который делал много рискованных трюков. Вот вам подборочка: https://www.youtube.com/watch?v=frYIj2FGmMA
artemisia_borealis
18.05.2022 17:15+4Результат интересный, но зачем раскрашивать? Почему не оставить Ч/Б или сепию.
Восстановить оригиналы, убрав «изгрызенность» временем, это хорошая идея, но привносить свои улучшайзинги — это выглядит очень маркетологически.
Когда авторы делали свои фильмы, они (может, и хотели бы теоретически цвета) знали, что это будет Ч/Б (сепия) картинка со своими выразительными возможностями и акцентами, с выставлением света, наконец. Не надо лепить цвет там, где он не нужен и не задумывался.А вообще-тоКино погубили две вещи: это появление звука и появление цвета.
INSTE
18.05.2022 17:23+3Заголовок спойлераТак 4k и 60fps тоже самое сделали, превратив кино в мыльную оперу в окне.
Coppermine
18.05.2022 17:22+6Я очень хотел пройтись по словам "реставрация" и "восстановление", но это очень хорошо сделали до меня. Но даже если мы забили на достоверность и нужна просто красивая картинка, то всё по-прежнему плохо. Я вижу как людей буквально размазывает по кадру, как за ними тянутся шлейфы и как деформируются подвижные объекты. Я вижу как лицо телесного цвета становится синим и обратно. Самое печальное, что таких материалов становится всё больше...
Moskus
19.05.2022 06:34+2Более того, обработка, которая может действительно считаться реставрацией (устранение мерцания, виньетирование) получается всё ещё не очень. Зато вовсю дорисовывают что угодно. Наткнуться на оригинал всё сложнее. Впрочем, это хорошо соотносится с тем, что люди делают выбор в пользу фактоидов, а не фактов. Правдоподобной фантазии вместо реальности.
inferrna
18.05.2022 21:06+2Шумодав мылит в тенях. В исходном видео сквозь шумы угадываются детали, в "очищенном" просто мыло мыльное. Ну и раскрашивание страдает - синюшные руки, например.
DenisSDK
18.05.2022 21:44+3Есть более бытовая задача
Видосы, снятые на vhs и уже оцифрованные, улучшить до качества «снято на айфон»
PereslavlFoto
19.05.2022 00:19Все шаги, которые вы здесь рассказали, довольно понятная штука. Ну, вот разве что раскрашивание через ИИ несколько в новинку.
Однако главная проблема не там, где вы её решили.
ГРЯЗЬ И ЦАРАПИНЫ. Настоящая проблема здесь, особенно царапины. Что с ними-то делать? Для цветной плёнки уже придумали Digital ICE с его четырьмя цветами, и он хорошо определяет место царапины, однако весьма дурно закрашивает царапину. Приходится всё переделывать за ним. Ещё придумали мокрое сканирование, однако оно чудовищно трудоёмкая и дорогая штука.
Итак, не знаете ли вы, как теперь убирают царапины с чёрно-белых кадров?
Спасибо.
LonerD
19.05.2022 23:02+1"Раньше было лучше".
А если серьёзно - результат неплох за одним исключением. Убирать зернистость - неблагодарное и ненужное дело, вместе с ней убирается и детализация, а картинка становится слегка "пластилиновой".
melodictsk
20.05.2022 07:23Надо понимать, что процесс тут автоматический. Нет цели сделать максимально качественно, а сделать максимально быстро и просто.
psycho-coder
Прогрэсс сложно отрицать, но имхо пока-что это «танцующий медведь».
Ivnika
ПрогрЭсс - о да! :D
psycho-coder
Долго думал как правильно, надо было в словарь посмотреть)