专栏首页数据派THU独家 | AutoFlip:智能化视频剪裁的开源框架(附链接)

独家 | AutoFlip:智能化视频剪裁的开源框架(附链接)

作者:Nathan Frey

翻译:张达敏

校对:和中华

本文约2500字,建议阅读5分钟

本文向大家介绍智能化视频剪裁的开源框架:AutoFlip。

标签:算法框架

前言

为电视和显示器拍摄制作的视频常常使用横向16:9或者4:3比例。然而越来越多的用户开始在移动设备上制作和观看视频,传统的画面比例并不能完美兼容。为此需要对视频画面进行剪裁,传统的做法涉及到静态剪裁,例如,选定好可视区域,然后把区域外的内容全部剪掉。不幸的是,由于构图种类和相机运动模式繁多,这种静态剪裁经常产出无法让人满意的结果。而其他特殊的做法,常常要求拍摄者手动确定每个画面的目标,并追踪他们在每帧间的转变,然后相应的剪裁掉多余的画面。这个过程是非常耗时、乏味且容易出错的。

用户:

https://insights.digitalmediasolutions.com/articles/digital-mobile-dominate

为了解决这个问题,我们很开心向大家介绍智能化视频剪裁的开源框架:AutoFlip。基于MediaPipe框架,该框架支持开发用于处理时间序列多模态数据的管道。把一个视频文件(业余级拍摄或专业级剪辑)和一个目标比例(横向、正方形、人像等等)作为输入,AutoFlip会分析视频内容,逐步得出最佳的追踪和剪裁策略,然后输出一个同样时长但剪裁至目标画面比例的视频文件。

AutoFlip:

https://github.com/google/mediapipe/blob/master/mediapipe/docs/autoflip.md

MediaPipe:

https://github.com/google/mediapipe/blob/master/mediapipe/docs/face_detection_desktop.md

左图:原视频(16:9)。中间:使用常规居中剪裁(9:16)。右边:使用AutoFlip剪裁(9:16)。AutoFlip通过追踪目标内容,避免了把重要内容剪掉的问题。

AutoFlip简介

得益于应用行业领先的机器学习目标检测和追踪技术,AutoFlip能够轻易理解视频内容,进而为智能视频剪裁提供了一个全自动的解决方案。通过探测能够表明场景变化的差异,AutoFlip能够在处理过程中把每个场景分离开来。在每段场景被选定的相机模式和轨迹优化剪裁之前,通过视频分析确定主要目标。

画面(场景)探测

一个场景或画面是一个无删减(或跳跃)的连续视频。为了探测出场景变化,AutoFlip计算每帧的颜色直方图并和之前的帧做对比。如果该帧的色彩分布和之前一连串画面不同的话,就说明该帧的场景发生了改变。为了优化整个场景的剪裁,AutoFlip在剪裁前会缓存整段视频直到该场景结束。

视频内容分析

我们利用基于深度学习的目标检测模型来寻找每帧画面里有趣的、重要的内容。这类内容常常包含人物和动物,但出于应用角度考虑,其他物体也可能会被考虑在内,包括文字覆盖和商业logo,或者体育运动中运动和球的探测。

面部和目标检测模型通过MediaPipe整合到了AutoFlip当中,这一功能可以通过在CPU上运行TensorFlow Lite实现。这种结构让AutoFlip具有扩展性,开发者能很方便地为不同场景和视频内容增添新的探测算法。当然,每类物体都有相应的比重,也就是该类物体的相对重要程度 – 比重越高,该类物体在计算摄像轨迹中就更有影响力。

面部:

https://github.com/google/mediapipe/blob/master/mediapipe/docs/face_detection_desktop.md

目标检测模型:

https://github.com/google/mediapipe/blob/master/mediapipe/docs/object_detection_desktop.md

TensorFlow Lite:

https://www.tensorflow.org/lite

上图:运动中的人物检测。下图:两个面部探测方块(“核心面部”和“全面部”)。在较窄的人像比例剪裁案例中,经常只有核心面部能够显示(全面部尺寸太大)。

剪裁

在确定了每帧的目标后,就可以决定如何把内容剪裁到新的画面中。取决于物体在场景中的移动轨迹(例如物体是跑来跑去还是静止不动),AutoFlip会自动选择最佳剪裁策略 – 静态的、移动的或是追踪的。在静态模式中,剪裁后的相机视角是固定在某一位置,从这个位置可以在大部分场景中看到目标。这个模式能高效地模拟专业静态电影拍摄,例如使用静态三脚架的相机或者后期的稳定处理。而在其他场景中,以恒定速率移动相机视角相比于静态模式会有更好的效果。而追踪模式能够在场景中提供连续稳定的目标物体追踪。

在算法决定使用以上哪种剪裁策略后,AutoFlip对每帧确定一个最佳剪裁窗口,同时确保目标出现在该窗口中。当追踪框追踪场景里的目标时经常会在每帧画面之间跳来跳去,导致了不能很好的确定剪裁窗口。因此我们在欧式范数优化过程中,通过降低平滑(低阶多项式)相机轨迹和追踪框间的残差来调整每帧的窗口视角。

欧式范数:

https://zh.wikipedia.org/wiki/%E8%8C%83%E6%95%B0

低阶多项式:

https://en.wikipedia.org/wiki/Degree_of_a_polynomial

上图:跟踪每帧的追踪框得出的相机轨迹。下图:使用欧式范数得出的平滑相机轨迹。

左图:目标物体在场景中来回移动,需要追踪相机轨迹。右图:目标物体和场景保持相对静止;静态相机视角能够涵括该场景目标物体的移动轨迹。

AutoFlip的图像构造提供非填充和填充剪裁两种设置。当窗口不能包含所有指定区域时(例如目标分散在整个画面),通过自动切换到较为缓和的剪裁策略,例如填充黑边使图像充满整个画面。对于图像背景颜色是单色调时,黑边颜色会自动转成相同色调,来达到无缝填充效果;在其他情况下,AutoFlip会采取虚化的方式来达到相同效果。

黑边:

https://zh.wikipedia.org/wiki/%E9%BB%91%E9%82%8A

AutoFlip使用场景

能够直接让开发者和电影制作人使用这款工具、减少他们创造中的阻碍、以及实现视频剪辑自动化让我们感到非常激动。处理各种视频类型和高宽比的功能愈发重要,尤其现在出现越来越多的各种比例的视频内容消费设备。不管你的应用场景是人像转横向、横向转人像、还是改动极小的4:3转16:9比例,AutoFlip都能提供一个智能、自动化和自适应的剪裁方案。

展望未来?

和机器学习算法相似,AutoFlip也能够从不断提升的视频内容相关物体探测能力中受益,例如面试探测或者卡通片中人物面部捕捉。然而一个常见问题是当输入视频边缘有重要内容遮挡(例如文字或者标志),这些内容通常会被剪裁掉。通过整合文字、标志探测以及图像修补技术,我们希望AutoFlip在将来能够保证剪裁质量同时复位这些表层信息。最后,在需要填充的案例中,deep uncrop技术能够提供超越原可视区域的能力。

deep uncrop:

http://openaccess.thecvf.com/content_ICCV_2019/papers/Teterwak_Boundless_Generative_Adversarial_Networks_for_Image_Extension_ICCV_2019_paper.pdf

当我们在Google改进AutoFlip的同时,我们也鼓励开发者和电影制作人能够在开源社区为我们提供帮助。

鸣谢

我们想对AutoFlip的同事表示感谢,Alexander Panagopoulos, Jenny Jin, Brian Mulford, Yuan Zhang, Alex Chen, Xue Yang, Mickey Wang, Justin Parra, Hartwig Adam, Jingbin Wang, 以及Weilong Yang; 还有提供开源帮助的MediaPipe团队, Jiuqiang Tang, Tyler Mullen, Mogan Shieh, Ming Guang Yong, 以及Chuo-Ling Chang。

原文标题:

AutoFlip: An Open Source Framework for Intelligent Video Reframing

原文链接:

https://www.googblogs.com/autoflip-an-open-source-framework-for-intelligent-video-reframing-2/

本文分享自微信公众号 - 数据派THU(DatapiTHU),作者:Nathan Frey

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 独家 | 构建端到端数据科学项目,从我的Data Scientist Ideal Profiles项目中学习(附链接)

    (链接:https://unsplash.com/photos/Ji_G7Bu1MoM?utm_source=unsplash&utm_medium=refer...

    数据派THU
  • 可能是史上最全机器学习和Python速查表(附下载链接)

    来源:网路冷眼 作者:Hanson 本文长度为680字,建议阅读5分钟 本文为你分享有关机器学习、Python和相关数学知识的速查表大全。 机器学习有很多方面。...

    数据派THU
  • 精选10大机器学习开源项目 !(附链接)

    本文推荐的10大机器学习开源项目是由Mybridge从250个机器学习开源项目中挑选出来的,Github平均star为1385,主题包含:Tensorflow,...

    数据派THU
  • 什么是时间分片(Time Slicing)?

    所以为了避免这种情况,我们可以使用两种方案,一种是Web Worker,另一种是时间切片(Time Slicing)。

    前端劝退师
  • 什么是时间分片(Time Slicing)?

    所以为了避免这种情况,我们可以使用两种方案,一种是Web Worker,另一种是时间切片(Time Slicing)。

    陈大鱼头
  • python3.2列表操作总结

    list操作:快速创建list、新增item、删除item、重新赋值item、颠倒item顺序、检索item

    py3study
  • JavaScript中的时间分片(Time Slicing)

    当延迟超过100ms,用户就会察觉到轻微的延迟。所以为了避免这种情况,我们可以使用两种方案,一种是Web Worker,另一种是时间切片(Time Slic...

    刘亦枫
  • 爬虫案例|抓取拉勾网职位需求关键词,并生成统计图

    知己知彼,方可百战不殆。在学习技术的时候我们往往面临太多选择而不知所措,可能是各个方面都有涉猎,对某个领域没有深入研究,看似什么都会,真要让你做个什么东西的时候...

    统计学家
  • IE6下的png透明图片的背景定位

    在IE6下PNG透明图片做背景,无法使用background-position进行定位。但是可以使用margin和绝对定位来进行。 另外,由于IE6下的 :ho...

    欲休
  • Java基础之你会在foreach遍历集合时进行remove操作吗?

    当通过for循环遍历集合时,一般禁止操作(add or remove)集合元素。虽然开发规范里写的非常清楚,但最近还是有人掉坑里导致出了一个小BUG,那我们就一...

    码代码的陈同学

扫码关注云+社区

领取腾讯云代金券