0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

有人开源PyTorch实现极慢视频 突破人类极限

ml8z_IV_Technol 来源:cg 2019-01-02 09:49 次阅读

英伟达团队CVPR-18论文Super SloMo使用深度学习,能将任意视频变为“高清慢速播放”模式,从此不再错过任何细节。今天有人开源了PyTorch实现,赶紧来试试吧!

总有那么一些细节,你瞪大双眼拼了命想看清却依然奈不了何,比如下面这个:

跟得上球吗?要看清男子羽毛球比赛的细节实在不容易

有时候想盯住飞来飞去的羽毛球,非常吃力,这就是人类肉眼的极限。

你或许会说,好解决啊,用慢速回放功能就行了。

确实可以回放,但慢速回放的前提,是摄像机一开始就捕捉到了这些细节。如今,一些大型体育赛事已经用上了工业高速摄像头,为的就是在裁判的裁决引发争议时,可以用慢镜头回放来判定结果。

但是,没有专业的高速摄像头怎么办?

像我们用智能手机拍的视频,记录下生活中很多美好,随风飘逝的晚霞,又或者池塘溅起的涟漪,还有孩子们在泳池里泼水嬉戏,如果都能够放慢了观看,必将带来全新的感受。

正因如此,当今年计算机视觉顶会CVPR举行时,英伟达团队的一篇能让手机拍摄的视频也“高清慢速播放”的论文,在业界引发了很大的反响。

这项被称为Super SloMo的工作,使用深度神经网络,对视频中缺失的帧进行预测并补全,从而生成连续慢速回放的效果。

更赞的是,他们提出的方法,能够排除原视频帧当中被遮挡的像素,从而避免在生成的内插中间帧里产生模糊的伪像(artifact)。

值得一提,这篇论文的第一作者,是本硕毕业于西安交通大学、现在马萨诸塞大学阿默斯特分校读博四的Huaizu Jiang。第二作者Deqing Sun是英伟达学习与感知研究小组的高级研究员,本科毕业于哈工大,硕士读的港中文,在布朗大学取得博士学位后,在哈佛Hanspeter Pfister教授的视觉研究小组做过博士后。

感受一下Super-SloMo生成的“慢速回放”效果:

注意,左右两边都是Super SloMo生成的视频。左边是原始慢速视频,右边是将这个结果再放慢4倍的效果,如果不告诉你中间的细节(帧)是神经网络生成的,你会不会把它们当做真的慢速回放?来源:Huaizu Jiang个人主页

实际用手机拍摄的画面是这样的,对比后,意识到Super SloMo补充多少细节了吗?

论文作者称,他们能将30FPS(画面每秒帧数)的视频变为480FPS,也即每秒帧数增加了16倍。

根据Super SloMo项目主页,作者表示,使用他们未经优化的PyTorch代码,在单个NVIDIA GTX 1080Ti 和 Tesla V100 GPU上,生成7个分辨率为1280*720的中间帧,分别只需要0.97秒和0.79秒。(补充说明:从标准序列30-fps生成240-fps视频,一般需要在两个连续帧内插入7个中间帧。)

效果当然称得上惊艳。然而,令很多人失望的是,论文发布时并没有将代码和数据集公开,尽管作者表示可以联系 Huaizu Jiang 获取部分原始资料

仅在论文中提到的数据和示例。来源:Super SloMo论文

今天,有人在 Github 上开源了他对 Super-SloMo 的 PyTorch 实现。这位ID为atplwl的Reddit用户,在作者提供的adobe24fps数据集上预训练的模型(下图中pretrained mine),实现了与论文描述相差无几的结果。

现在,这个预训练模型,还有相关的代码、数据集,以及实现条件,都能在GitHub上查到。

自称新手的atplwl表示,他目前在努力完善这个GitHub库,接下来预计添加一个PyThon脚本,将视频转换为更高的fps视频,欢迎大家提供建议。

Super SloMo:将任意视频变为“高清慢速播放”

代码在手,再看论文——前文已经说过,从已有视频中生成高清慢速视频是一件非常有意义的事情。

除了专业的高速摄像机尚未普及到每个人手里,人们用手机拍摄的视频 (一般为240FPS) 想要放慢的时刻是不可预测的,要实现这一点就不得不用标准帧速率来记录所有视频,但这样做需要的内存过大,对移动设备来说耗电量也花不起。

现在,计算机视觉领域,除了将标准视频转换为更高的帧速率之外,还可以使用视频插值来生成平滑的视图转换。在自监督学习中,这也可以作为监控信号来学习未标记视频的光流。

不过,生成多个中间视频帧 (intermediate video frame) 是具有挑战性的,因为帧必须在空间和时间上是连贯的。例如,从30-fps标准序列生成240-fps视频,需要在两个连续帧内插入7个中间帧。

成功的解决方案不仅要正确解释两个输入图像之间的运动(隐式或显式),还要理解遮挡 (occlusion)。 否则,就可能导致插值帧中产生严重的伪像,尤其是在运动边界附近。

现有方法主要集中于单帧视频插值,而且已经取得了不错的进展。然而,这些方法不能直接用于生成任意高帧率视频。

虽然递归地应用单帧视频插值方法生成多个中间帧是一个很不错的想法,但这种方法至少有两个限制:

首先,递归单帧插值不能完全并行化,速度较慢,因为有些帧是在其他帧完成后才进行计算的(例如,在七帧插值中,帧2取决于0和4,而帧4取决于0和8)。

其次,它只能生成2i-1个中间帧。因此,不能使用这种方法有效生地生成1008 - fps 24帧的视频,这需要生成41中间帧。

论文Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation提出了一种高质量的变长多帧插值方法,该方法可以在两帧之间的任意时间步长进行插值。

其主要思想是,将输入的两幅图像扭曲到特定的时间步长,然后自适应地融合这两幅扭曲图像,生成中间图像,其中的运动解释和遮挡推理在单个端到端可训练网络中建模。

Super SloMo效果展示:注意在放慢过渡区域对伪像的处理。

具体来说,首先使用流量计算CNN来估计两幅输入图像之间的双向光流,然后线性融合来近似所需的中间光流,从而使输入图像发生扭曲。这种近似方法适用于光滑区域,但不适用于运动边界。

因此,Super SloMo 论文作者使用另一个流量插值CNN来细化流近似并预测软可见性图。

通过在融合之前将可见性图应用于变形图像,排除了被遮挡像素对内插中间帧的贡献,从而减少了伪像。

Super SloMo网络架构

“我们的流计算和插值网络的参数都独立于被插值的具体时间步长,是流插值网络的输入。因此,我们的方法可以并行生成任意多的中间帧。”作者在论文中写道。

为了训练该网络,团队从YouTube和手持摄像机收集了240-fps的视频。总量有1.1K视频剪辑,由300K个独立视频帧组成,典型分辨率为1080×720。

然后,团队在其他几个需要不同插值数量的独立数据集上评估了训练模型,包括Middlebury 、 UCF101 、慢流(slowflow)数据集和高帧率(high-frame-rate) MPI Sintel。

实验结果表明,该方法明显优于所有数据集上的现有方法。 团队还在KITTI 2012光流基准上评估了无监督(自监督)光流结果,并获得了比现有最近方法更好的结果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4762

    浏览量

    100533
  • 开源
    +关注

    关注

    3

    文章

    3244

    浏览量

    42385
  • pytorch
    +关注

    关注

    2

    文章

    803

    浏览量

    13144

原文标题:干掉高速摄像头!神经网络生成极慢视频,突破人类肉眼极限(PyTorch实现)

文章出处:【微信号:IV_Technology,微信公众号:智车科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Image Style Transfer pytorch方式实现的主要思路

    深度学总结:Image Style Transfer pytorch方式实现,这个是非基于autoencoder和domain adversrial方式
    发表于 06-20 10:58

    如何用变址寻址原理突破EEPROM存储器的擦写寿命极限

    用变址寻址原理突破EEPROM存储器的擦写寿命极限
    发表于 03-18 06:00

    物联网发展 人类与工具的交互方式实现突破

    我们向 5G 发展的过程,其实也是人类计算工具的移动能力和计算能力并行发展的过程,是我们人类与工具的交互方式实现突破的过程。
    的头像 发表于 03-01 10:46 3439次阅读

    Facebook致力AI开源PyTorch 1.0 AI框架

    Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架是PyTorch与Caffe 2的结合,可以让开发者无需迁移就从研究转为生产。
    的头像 发表于 05-08 14:58 3385次阅读

    Facebook致力AI 开源PyTorch1.0 AI框架

    导读: Facebook近日宣布,将于近期开源PyTorch 1.0 AI框架,据悉,该框架是PyTorch与Caffe 2的结合,可以让开发者无需迁移就从研究转为生产。 Facebook近日宣布
    的头像 发表于 06-18 10:30 3164次阅读

    PyTorch版《动手学深度学习》开源

    目前,该项目在 GitHub 上已获得超过 1.1 万星,并且中文版电子书还发布了纸质版书籍。不过虽然书籍非常优秀,但还是有一些读者不太习惯用 Gluon 来写代码,毕竟开源项目大部分都是 TF 或 PyTorch 写的。现在好了,我们可以直接结合书籍内容和
    的头像 发表于 09-20 15:25 2791次阅读

    Pytorch实现MNIST手写数字识别

    Pytorch 实现MNIST手写数字识别
    发表于 06-16 14:47 7次下载

    PyTorch开源深度学习框架简介

    PyTorch 是一种开源深度学习框架,以出色的灵活性和易用性著称。这在一定程度上是因为与机器学习开发者和数据科学家所青睐的热门 Python 高级编程语言兼容。
    的头像 发表于 07-29 10:26 4363次阅读

    PyTorch教程3.2之面向对象的设计实现

    电子发烧友网站提供《PyTorch教程3.2之面向对象的设计实现.pdf》资料免费下载
    发表于 06-05 15:48 0次下载
    <b class='flag-5'>PyTorch</b>教程3.2之面向对象的设计<b class='flag-5'>实现</b>

    PyTorch教程3.5之线性回归的简洁实现

    电子发烧友网站提供《PyTorch教程3.5之线性回归的简洁实现.pdf》资料免费下载
    发表于 06-05 11:28 0次下载
    <b class='flag-5'>PyTorch</b>教程3.5之线性回归的简洁<b class='flag-5'>实现</b>

    深度学习框架pytorch入门与实践

    深度学习框架pytorch入门与实践 深度学习是机器学习中的一个分支,它使用多层神经网络对大量数据进行学习,以实现人工智能的目标。在实现深度学习的过程中,选择一个适用的开发框架是非常关键
    的头像 发表于 08-17 16:03 1566次阅读

    pytorch用来干嘛的

    pytorch用来干嘛的 PyTorch是一个开源的Python机器学习库,它主要用于创建神经网络。它提供了几乎所有深度学习工具,包括用于自动梯度计算的张量之间的运算,通过GPU加速的深度神经网络
    的头像 发表于 08-21 16:41 9195次阅读

    如何使用PyTorch建立网络模型

    PyTorch是一个基于Python的开源机器学习库,因其易用性、灵活性和强大的动态图特性,在深度学习领域得到了广泛应用。本文将从PyTorch的基本概念、网络模型构建、优化方法、实际应用等多个方面,深入探讨使用
    的头像 发表于 07-02 14:08 356次阅读

    PyTorch的介绍与使用案例

    PyTorch是一个基于Python的开源机器学习库,它主要面向深度学习和科学计算领域。PyTorch由Meta Platforms(原Facebook)的人工智能研究团队开发,并逐渐发展成为深度
    的头像 发表于 07-10 14:19 352次阅读

    pytorch怎么在pycharm中运行

    第一部分:PyTorch和PyCharm的安装 1.1 安装PyTorch PyTorch是一个开源的机器学习库,用于构建和训练神经网络。要在PyCharm中使用
    的头像 发表于 08-01 16:22 1217次阅读