Китайские ученые создали нейросеть для сглаживания движения на видео

Цитата из видео «This Neural Network Turns Videos Into 60 FPS!» пользователя Two Minute Papers youtube.com
Цитата из видео «This Neural Network Turns Videos Into 60 FPS!» пользователя Two Minute Papers youtube.com

Нейросетевой алгоритм для увеличения числа видеокадров в секунду создала группа китайских ученых во главе с Вэньбо Бао, 18 февраля сообщает YouTube-канал Two Minute Papers.

Алгоритм интерполяции видеокадров с учетом глубины (Depth-Aware video frame INterpolation, DAIN) позволяет по двум кадрам (последующему и предыдущему) вычислить промежуточный кадр, анализируя движение элементов изображения.

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

Во-вторых, добавляется вычисление карты глубины пикселей (depth maps). Известно, что визуально быстрее всего движутся объекты, находящиеся ближе к наблюдателю. Потом при помощи полученной нейросетью карты глубины корректируются оценки оптического потока.

Во-третьих, на изображении вычленяются контекстные признаки (contextual features), позволяющие определить связанные элементы движущихся объектов. Это позволяет улучшить качество промежуточного изображения.

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

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

Отметим, что в распространенных видеоредакторах доступны два алгоритма увеличения частоты кадров. Самый простой — это смешение предыдущего и последующего кадров в соответствующей пропорции (Frame Blending), порождающее размытые переходы между кадрами.

Более сложный метод оптического потока (Optical Flow) пытается по двум соседним кадрам определить смещения для каждого из пикселей между кадрами, чтобы интерполировать движение отдельных элементов картинки. Этот алгоритм определяет движения мелких элементов картинки сравнительно независимо друг от друга, что дает сбои при сложных движениях.

Читайте также: Нейросеть научили раскрашивать ч/б видео по нескольким кадрам с примерами