基于计算机视觉的视频防抖:来自CEVA专家的建议和见解

2016-07-29 11:54:59来源: 集微网
   Ben Weiss – 图像与计算机视觉开发人员
Yury Schwarzman - 图像与计算机视觉项目组主管
 
在我们以前的文章中,我们介绍了视频防抖在许多不同的相机应用中已经成为一种必备功能。然后我们还详细介绍了防抖处理的前两个阶段:特征检测 和 特征跟踪/匹配。
 
在这篇文章中,我们将介绍运动模型估计(即运动估计部分的最后一个阶段)并详细解释运动校正阶段: 运动平滑处理、滚动快门校正和帧翘曲。
 
运动模型估计
 
本文将提到三种运动模型。每个模型描述具有不同数量自由度 (DOF) 的相机移动场景。随着DOF 数量的增加,运动估计将越来越准确,并且整体防抖处理效果会更好。
 
• 变换模型仅适用于 X轴和 Y 轴这两个自由度。 
• 相似度模型描述 X 方向和 Y方向的变换,以及统一的缩放和旋转,总共四个自由度。 
• 单应性模型提供三维相机运动场景变换的最完整描述,有八个自由度。
 
可以预期的是,为了准确估计具有更多自由度的变换,系统将需要更多的数据,从而需要更多的内存,并给处理器带来更大的负荷。为了在性能和处理负荷之间实现最佳平衡,我们使用了相似度模型进行运动平滑处理。我们稍后可以看到,滚动快门校正则要求使用单应性模型。
 
我们使用随机抽样一致性(RANSAC)算法,根据最后一步(特征跟踪/匹配)生成的一组特征来估计帧到帧的运动模型。该算法是一种著名的迭代方法,可以让运动模型观察到的一组包含无效值的数据。在这种情况下,有效值是代表全局运动的特征对(或称背景运动),而无效值是代表本地运动和测量噪点的剩余特征对。我们认为,全局运动可以根据最大的有效值集来估计(在这个阶段忽略滚动快门失真)。 
 
为了准确估计运动轨迹,开发人员需要确保特征在每一帧上均匀分布。这可以通过调整检测器来实现,并且跟踪器/匹配器需要足够灵敏,即便对于帧的低纹理区域特征,也要提供有效的响应。
 
运动平滑处理
 
创建帧到帧运动模型后,累积结果来创建估计的相机路径。在这个阶段,路径上将有噪点和抖动现象。为了使路径平滑,我们使用了卡尔曼滤波器。该算法通过对一系列测量中的变量使用联合概率分布的统计推断和估计来滤掉噪点。这种算法是递归的,其工作分为两个步骤:预测和更新。对于每次测量,都会按照给定的状态变换模型,基于当前状态进行预测。然后根据新测量的结果更新状态,同时考虑测量的不确定性。每个运动分量都单独滤波:X 向分量、Y 向分量、缩放和旋转。
 
平滑处理阶段的准确性严重依赖卡尔曼滤波器根据预测的噪点特性和优选平滑路径而采用的配置。要调整的三个主要参数是状态变换模型、过程噪点的协方差和观测噪声的协方差。 
 
对于第一个参数,我们使用匀速直线模型:每个分量(X、Y、缩放和旋转)的状态包括位置和速度值。每一步仅使用之前的位置和速度来预测位置。我们针对特定的运动和噪点类型同时调整过程噪点和观测噪点的协方差矩阵。在行走、开车时拍摄视频或者从无人机上拍摄会产生不同类型的运动特征和运动噪点(抖动),并伴随不同的频率分布。通过研究许多不同类型的运动和噪点,我们已经能够提供保证出色效果的参数,并提供流畅的浏览体验。
图 1.相机动态运动的插图。运动平滑处理采用帧到帧运动模型(用红色箭头表示)并过滤掉噪点来生成平滑的运动路径(用白色虚线表示)。
 
滚动快门校正
 
目前捕捉数字图像最普遍采用的技术是 CMOS图像传感。CMOS图像传感器通过曝光和一次读出一行像素来捕捉图像。这种方法的结果是,如果在扫描整个图像时发生运动,捕获的图像将会扭曲。造成这种运动的原因可能是由于相机移动、场景移动,或两者兼有之。
 
这种现象被称为“滚动快门”效果,或滚动快门失真。在数字视频中,低频运动中将产生拉伸或畸变,而高频运动时会产生晃动,俗称“果冻效应”。
我们提供的方案中纠正这种失真的第一步是将帧分割成多个水平条。对于每一个水平条,估计单应性模型。下一步是通过单应性的空间插值模型参数确保在竖直方向的边界条件。
 
帧翘曲
 
稳定处理的最后一个阶段是帧翘曲。在这个阶段,将按照预定义的感兴趣区域 (ROI) 裁剪图像的某个部分。还可以根据运动幅度动态选择 ROI。运动幅度越大,需要裁剪的面积就越大。通常情况下,每个方向上将有大约 10% 的图像被裁掉。为最大程度提高校正不必要运动的能力,最好是让 ROI 尽量靠近帧的中心位置。 
 
有三个相关的翘曲模型: 
 
• 仿射模型,要实现视频稳定并校正慢速运动导致的滚动快门失真,这个模型就足够了。它的效果已经不错了,但还不是最好的。为了获得更准确的结果,还需要一个更复杂的模型。
 
• 单应性模型可以为视频防抖和慢速运动滚动快门提供非常棒的结果,但在处理高速滚动快门(如无人机的发动机引起的振动)时,还需要一个更复杂的模型。 
 
• 在映射模型中,输出帧中的每个像素被显式映射到输入帧中的一个像素。该模型的计算最为密集,但它可以提供最准确的结果,并能够处理所有类型的运动引起的滚动快门失真。在这个模型中,镜头畸变校正可以在同一阶段进行处理,而不需要额外的处理。
 
从视频防抖中学到的知识
 
我们可以看到,视频防抖是一个复杂的问题,涉及许多阶段和参数。每个阶段都可以采用不同的方法,每种方法都有不同的优点和缺点。关于这个过程,重要的一点是它包含许多平衡:性能与功耗的平衡,质量与计算时间的平衡,高频或低频运动目标,等等。因此,只有防抖软件的具体应用才能确定这个过程的最佳方法。不过,即便如此,我们也可以在这里得出一些具体的结论:
 
• 使用丰富的测试集:在开发软件视频防抖解决方案时,重要的是要有丰富的测试集来涵盖各种运动类型。 
 
• RANSAC 并不完美:虽然 RANSAC 是一种非常强大的技术,但它也有缺点。在特征检测和跟踪/匹配阶段,空间图像覆盖对于准确估计运动轨迹非常重要。
 
• 特征匹配更优越:运动估计的第二阶段可以通过特征跟踪或特征匹配来执行。虽然每种方法都有其优点和缺点,但经验告诉我们,一般情况下,特征匹配在准确性和鲁棒性方面优于特征跟踪。
 
• 定点和浮点都需要:虽然定点精度对于特征跟踪阶段已经足够,但运动模型估计和平滑处理还需要浮点精度。
 
• 平滑处理很重要:运动平滑处理算法虽然复杂度相对较低,但对整体质量却有着突出贡献。 
 
• 单应性可以提供最佳效果:不太复杂的模型计算速度更快,耗用更少的内存和电量,但要达到最佳视觉效果,还是需要使用单应性运动模型。
 
• 帧翘曲需要最大的计算量:整个过程中计算最密集的部分是帧翘曲阶段。这个阶段对整个视频稳定算法的性能通常影响最大。
 
通过单击CEVA-Digital-Video-Stabilizer?sukey=3997c0719f15152064c56839ee845aa2ef089261b3b8945be1d1bc332cf2525a6b94be507f07daa1e9b1811793ca8085" target="_blank">这里进一步了解 CEVA 的 DVS 解决方案

关键字:CEVA  视频防抖

编辑:北极风 引用地址:http://www.eeworld.com.cn/xfdz/article_2016072956052.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
CEVA
视频防抖

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved