用AI脑补慢动作,30帧秒变120帧,轻松看清“松果糖豆五连鞭”动作细节

本文主要是介绍用AI脑补慢动作,30帧秒变120帧,轻松看清“松果糖豆五连鞭”动作细节,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

来源:HyberAI超神经本文约2400字,建议阅读8分钟本文带你了解Super SloMo教程。

如今,人们对于视频帧率的追求越来越高,因为高帧率视频更加顺滑、流畅,能极大地提升人们的观看体验。

现有相机拍摄的视频帧率,也从 24 FPS(Frames Per Second) 不断提升到 60 FPS,再到 240 FPS 甚至更高。

在绝大多数电影帧率 24 的当下,李安的《双子杀手》以 120 的帧率实现电影技术的革新

但是,高帧率的摄像设备,对于内存需求非常大,而且成本高昂,尚不能普及。为了在没有专业设备的情况下,能够得到高帧率的视频,视频插帧技术应运而生。

而英伟达提出的 AI「脑补」大法 Super SloMo,则在众多视频插帧技术中一骑绝尘,即使帧率仅仅为 30 帧的视频,也可以 Super SloMo 补成 60 帧、240 帧甚至更高。

传统插帧方法优劣势一览

为了更好地理解 Super SloMo,我们首先来了解一下现有的较为传统的视频插帧技术。

帧采样 

帧采样就是用关键帧来做补偿帧,其实质就是拉长每一个关键帧的显示时间,相当于并没有插帧。除了获得文件属性更高的帧率和在同视频质量下更大的文件体积外,不会带来任何视觉观感上的提升。

优点:帧采样消耗资源少,速度快。

缺点:可能会使得视频看起来不是很流畅。


帧混合 

帧混合,顾名思义,就是提升前后关键帧的透明度,再将其混合成一个新的帧,来填补空缺。

优点:计算所需时长短。

缺点:效果不佳。由于只是简单的把原关键帧变成半透明状,运动物体轮廓在前后两帧交叠的时候,就会产生明显的模糊场景,对视频的视觉效果流畅程度提升很小。

运动补偿 


运动补偿(Motion Estimation and Motion Compensation,简称 MEMC),其原理是在水平和垂直两个方向上,对两帧之间的差异寻找出现运动的块,通过分析图像块的运动趋势,再辅以计算得到中间帧。

MEMC 主要被应用于电视、显示器和移动端,提升视频帧率,给观众更加流畅的观感。

优点:减小运动抖动,减弱画面拖尾与虚影,提升画面清晰度。

缺点:对于运动物体背景比较复杂的情况 ,就会出现物体边缘运动的 bug。

光流法 

光流法是计算机视觉研究中的一个重要方向,其根据上下帧来推断像素移动的轨迹,自动生成新的空缺帧。有点类似于运动模糊计算方法。

优点:画面更流畅、卡顿感弱。

缺点:计算量大, 耗时长;对光线敏感,在光线变化较大的情况下,容易出现画面紊乱的错误。

Super SloMo:AI 插帧法,堪称业界经典

在 2018 年计算机顶会 CVPR 上,英伟达发布的论文《Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation》中,提出了 Super SloMo,在业界引起广泛关注。

《超级慢动作:用于视频多个中间帧插值的的高质量估计》论文地址:

https://arxiv.org/pdf/1712.00080.pdf

Super SloMo 不同于传统方法,它利用深度神经网络来实现补帧,基本思路为:使用大量普通视频与慢动作视频进行训练,然后让神经网络学会推理,根据正常视频生成高质量的超级慢动作视频。

Super SloMo 方法框架图包括光流计算模块(左)与特定时间流插值模块(右)

Super SloMo 团队提出的方法,其整个框架依赖于两个全卷积神经网络  U-Net。

首先,用一个 U-Net 来计算相邻输入图像之间的双向光流。然后,在每个时间步长上对这些光流进行线性拟合,以近似中间帧的双向光流。

为了解决运动边界出现伪影的问题,使用另一个 U-Net 来对近似的光流进行改善,并且预测柔性可见性映射关系。最后,将输入的两张图像进行扭曲和线性融合,从而形成中间帧。

此外,Super SloMo 的光流计算网络和插值网络的参数,都不依赖于被插值帧的特定时间步长(时间步长被做为网络的输入)。因此,它可以并行地在两帧之间的任意时间步长上插帧,从而突破了很多单帧插值方法的局限性。

原始 SloMo 视频(上)Super SloMo 补帧后的超级慢动作视频(下)

作者表示,使用他们未经优化的 PyTorch 代码,在单个 NVIDIA GTX 1080Ti 和 Tesla V100 GPU 上,生成 7 个分辨率为 1280*720 的中间帧,分别只需要 0.97 秒和 0.79 秒。

为了训练网络,作者从 YouTube 和手持摄像机上收集了多个 240 帧的视频。总计收集了 1100 个视频段,由 30 万张 1080×720 分辨率的独立的视频帧组成。这些视频从室内到室外,从静态相机到动态相机,从日常活动到专业运动,包含了各类场景。

之后在其它数据集上对模型进行了验证,结果表明,该研究在这些数据集上比现有的方法性能上有了显著的提高。

跟着教程,一键实现 Super SloMo

虽然英伟达这一论文的作者尚未公开数据集和代码,不过,高手在民间,GitHub 上一位名为为 avinashpaliwal 的用户,已经开源了自己对 Super SloMo 的 PyTorch 实现,其结果与论文描述相差无几。

该项目具体信息如下:

Super SloMo 超级慢动作镜头补帧

运行环境:PyTorch 0.4.1

语言版本:Python 3.6

训练可视化:TensorboardX

训练数据集:Adobe 240 fps

项目地址:

https://github.com/avinashpaliwal/Super-SloMo

由于模型训练和测试是在 PyTorch 0.4.1 和 CUDA 9.2  上完成的,所以安装这两个软件必不可少,另外你还需要有一张 NVIDIA 的显卡。

此外,模型不能直接使用视频训练,因此还需要安装 ffmpeg 从视频中提取帧。这些准备工作一切就绪后,方可下载 adobe 240fps 数据集进行训练。

不过,你也可以不需要准备这些,做一个安安静静的「伸手党」,一键实现 Super SloMo。

我们在国内的机器学习算力容器服务平台(https://openbayes.com)找到了相应的教程。

从数据集到代码再到算力,一应俱全,即使是小白,也可以轻松上手。

教程链接:

https://openbayes.com/console/openbayes/containers/xQIPlDQ0GyD/overview

教程使用指南 

首先注册并登录 https://openbayes.com/,在「公共资源」菜单下的「公共教程」中,选择本教程——「Super-SloMo超级慢动作镜头的PyTorch实现」。

教程中样例展示文件是 Super-SloMo.ipynb,运行这个文件,会安装环境,并展示最终补帧而来的超级慢动作效果。


大家也可以使用自己的视频素材,将下方生成代码中的 lightning-dick-clip.mp4 改为你的视频文件名。

属性「scale」 用于控制生成视频的倍速,比如:设为 4,即 4 倍速慢放。

生成代码:

!python3 'Super-SloMo/eval.py' \'lightning-dick-clip.mp4' \--checkpoint='/openbayes/input/input0/SuperSloMo.ckpt' \--output='output-tmp.mp4' \--scale=4
print('Done')

转换视频格式代码:

!ffmpeg -i output-tmp.mp4 -vcodec libx264 -acodec aac output.mp4

该教程中,使用了网络上的某段视频,进行 Super SloMo 插帧,得到如下结果:

4倍速慢放,看清武术动作的每一步

目前,该平台还能薅羊毛,每周都赠送 vGPU 的使用时长,人人都可轻松完成,赶快动手试试吧!

参考资料:

https://arxiv.org/pdf/1712.00080.pdf

http://jianghz.me/projects/superslomo/https://zhuanlan.zhihu.com/p/86426432

编辑:王菁

校对:林亦霖

这篇关于用AI脑补慢动作,30帧秒变120帧,轻松看清“松果糖豆五连鞭”动作细节的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/901202

相关文章

linux报错INFO:task xxxxxx:634 blocked for more than 120 seconds.三种解决方式

《linux报错INFO:taskxxxxxx:634blockedformorethan120seconds.三种解决方式》文章描述了一个Linux最小系统运行时出现的“hung_ta... 目录1.问题描述2.解决办法2.1 缩小文件系统缓存大小2.2 修改系统IO调度策略2.3 取消120秒时间限制3

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Debian如何查看系统版本? 7种轻松查看Debian版本信息的实用方法

《Debian如何查看系统版本?7种轻松查看Debian版本信息的实用方法》Debian是一个广泛使用的Linux发行版,用户有时需要查看其版本信息以进行系统管理、故障排除或兼容性检查,在Debia... 作为最受欢迎的 linux 发行版之一,Debian 的版本信息在日常使用和系统维护中起着至关重要的作

macOS怎么轻松更换App图标? Mac电脑图标更换指南

《macOS怎么轻松更换App图标?Mac电脑图标更换指南》想要给你的Mac电脑按照自己的喜好来更换App图标?其实非常简单,只需要两步就能搞定,下面我来详细讲解一下... 虽然 MACOS 的个性化定制选项已经「缩水」,不如早期版本那么丰富,www.chinasem.cn但我们仍然可以按照自己的喜好来更换

四种简单方法 轻松进入电脑主板 BIOS 或 UEFI 固件设置

《四种简单方法轻松进入电脑主板BIOS或UEFI固件设置》设置BIOS/UEFI是计算机维护和管理中的一项重要任务,它允许用户配置计算机的启动选项、硬件设置和其他关键参数,该怎么进入呢?下面... 随着计算机技术的发展,大多数主流 PC 和笔记本已经从传统 BIOS 转向了 UEFI 固件。很多时候,我们也

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

轻松掌握python的dataclass让你的代码更简洁优雅

《轻松掌握python的dataclass让你的代码更简洁优雅》本文总结了几个我在使用Python的dataclass时常用的技巧,dataclass装饰器可以帮助我们简化数据类的定义过程,包括设置默... 目录1. 传统的类定义方式2. dataclass装饰器定义类2.1. 默认值2.2. 隐藏敏感信息

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开