内容简介:前言为电视和显示器拍摄制作的视频常常使用横向16:9或者4:3比例。然而越来越多的用户开始在移动设备上制作和观看视频,传统的画面比例并不能完美兼容。为此需要对视频画面进行剪裁,传统的做法涉及到静态剪裁,例如,选定好可视区域,然后把区域外的内容全部剪掉。不幸的是,由于构图种类和相机运动模式繁多,这种静态剪裁经常产出无法让人满意的结果。而其他特殊的做法,常常要求拍摄者手动确定每个画面的目标,并追踪他们在每帧间的转变,然后相应的剪裁掉多余的画面。这个过程是非常耗时、乏味且容易出错的。用户:
前言
为电视和显示器拍摄制作的视频常常使用横向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上运行TensorFlowLite实现。这种结构让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
TensorFlowLite:
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/
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Learning Python, 5th Edition
Mark Lutz / O'Reilly Media / 2013-7-6 / USD 64.99
If you want to write efficient, high-quality code that's easily integrated with other languages and tools, this hands-on book will help you be productive with Python quickly. Learning Python, Fifth Ed......一起来看看 《Learning Python, 5th Edition》 这本书的介绍吧!