全景视频的处理方法、装置、设备、计算机可读存储介质与流程

文档序号:16317243发布日期:2018-12-19 05:31阅读:170来源:国知局
全景视频的处理方法、装置、设备、计算机可读存储介质与流程

本发明涉及移动视频处理技术领域,特别是指一种全景视频的处理方法、装置、设备、计算机可读存储介质。

背景技术

随着拍照设备和移动网络的飞速发展,手持式的视频拍摄越来越多的应用于我们生活中,比如现在比较流行的移动视频直播平台、旅游直播、购物直播等。为了给用户提供较好的视频质量,视频稳像是实时视频处理中较关键的一个环节。

目前的视频稳像方法主要分为三类:机械式处理、光学式处理,以及数字化处理。机械式的视频稳像方法是基于附加的传感器,如陀螺仪、角度传感器等获取相机的运动信息用于运动补偿。光学式的视频稳像方法则是应用光学设备,如改变镜头和棱镜之间的方向位置以消除相机的抖动。机械式的视频稳像方法和光学式的视频稳像方法都是基于附加硬件设备的稳像处理方法,因此经常需要一些较昂贵的设备,可移植性很差。数字式的视频稳像方法则是通过图像处理的方法去获取抖动的运动信息,然后用图像补偿的方法得到稳定的视频图像序列,而不需要任何额外的机械或光学设备。因此相对于机械式的视频稳像方法或光学式的视频稳像方法,数字式的视频稳像方法应用更广泛。

数字式的视频稳像方法根据是否实时得到稳定视频序列可分为实时视频稳像方法和离线视频稳像方法两种。因为离线视频稳像方法是一种视频后处理,因此它能得到整个视频序列的运动轨迹,从而估计出最优的平滑轨迹,以得到更加鲁棒的稳定视频流。而实时视频稳像方法因为不能利用未来的运动信息,相对于离线视频稳像方法来说,鲁棒性较差,但它能保证时效性。不管离线视频稳像方法还是在线视频稳像方法,数字式的视频稳像方法主要包括三步:相机运动估计,相机运动平滑和运动补偿。运动估计是指估计出相机的初始运动轨迹;运动平滑则是根据初始运动轨迹计算平滑的运动轨迹;运动补偿则是基于估计得到的平滑的运动轨迹对初始视频进行补偿,以得到稳定的视频序列。

传统的视频稳像方法通常采用基于2d的仿射变化模型进行旋转矩阵和偏移矩阵的运动估计,然后在x轴和y轴上分别进行运动补偿。随着相机制造技术的发展,360度的全景相机越来越多的得到大家的认可。全景相机也越来越多的应用于视频监控,视频直播等领域。为了提供更好的全景视频质量,全景视频稳像技术也得到越来越多人的关注。在全景视频稳像中,由于球体图像的特殊性,传统的2d运动模型不能对全景图像运动进行估计,因此,现有技术尚不能对全景视频进行视频稳像。



技术实现要素:

本发明要解决的技术问题是提供一种全景视频的处理方法、装置、设备、计算机可读存储介质,能够对全景视频进行视频稳像。

为解决上述技术问题,本发明的实施例提供技术方案如下:

一方面,提供一种全景视频的处理方法,包括:

接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

进一步地,所述对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果包括:

将第n+1帧二维全景图像上的多个特征点与第n帧二维全景图像上的多个特征点进行一一匹配,n为正整数;

从所有匹配点对中确定正确的匹配点对,根据正确的匹配点对计算得到第n+1帧二维全景图像到第n帧二维全景图像的旋转矩阵。

进一步地,所述从所有匹配点对中确定正确的匹配点对包括:

从所有匹配点对中选择m对匹配点对,其中,m为大于1的整数;

基于所选择的m对匹配点对计算第n+1帧二维全景图像到第n帧二维全景图像的第一旋转矩阵;

利用所述第一旋转矩阵计算除所述m对匹配点之外其他匹配点对的误差值,根据计算得到的误差值确定支持所述第一旋转矩阵的匹配点对的数目;

如果支持所述第一旋转矩阵的匹配点对的数目大于第一阈值,则确定所选择的m对匹配点对为正确的匹配点对;如果支持所述第一旋转矩阵的匹配点对的数目不大于第一阈值,则确定所选择的m对匹配点对不是正确的匹配点对。

进一步地,所述根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵,利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频包括:

根据平滑后的历史运动轨迹判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动;

在当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动时,对当前帧二维全景图像相对于前一帧二维全景图像的运动补偿旋转矩阵进行计算;在当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动时,对参考帧二维全景图像进行更新,并基于更新后的参考帧二维全景图像和当前帧二维全景图像计算得到两帧之间的运动补偿旋转矩阵;

对所述运动补偿旋转矩阵进行平滑处理;

将当前帧二维全景图像转换成三维球体全景图像,并基于平滑后的运动补偿旋转矩阵对所述三维球体全景图像进行运动补偿,将运动补偿后的三维球体全景图像转换成二维全景图像,得到稳像后的二维全景图像。

进一步地,所述根据所述历史运动轨迹判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动包括:

基于所述历史运动轨迹计算当前帧二维全景图像相对于前一帧二维全景图像的噪声值,在所述噪声值小于第二阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动;在所述噪声值大于第三阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动,其中第三阈值大于第二阈值。

本发明实施例还提供了一种全景视频的处理装置,包括:

接收模块,用于接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

运动估计模块,用于对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

历史运动轨迹计算模块,用于根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

运动补偿旋转矩阵计算模块,用于根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

重构模块,用于利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

本发明实施例还提供了一种实现全景视频处理的电子设备,包括:

处理器;和

存储器,在所述存储器中存储有计算机程序指令,

其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:

接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:

接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

本发明的实施例具有以下有益效果:

上述方案中,由于二维全景图像对应的三维球体全景图像能在任意方向上进行旋转而不造成图像信息损失,因此两帧二维全景图像间必定存在一个旋转向量让其中一帧二维全景图像与另一帧二维全景图像靠近,本发明的技术方案通过计算每一帧二维全景图像的运动补偿旋转矩阵,并利用运动补偿旋转矩阵对每一帧二维全景图像进行重构来完成视频稳像,从而实现了对全景视频的稳像。

附图说明

图1为本发明实施例全景视频的处理方法的流程示意图;

图2为本发明实施例对全景视频中的任意相邻两帧二维全景图像进行帧间运动估计的流程示意图;

图3为本发明实施例从所有匹配点对中确定正确的匹配点对的流程示意图;

图4为本发明实施例计算每一帧二维全景图像的运动补偿旋转矩阵,利用运动补偿旋转矩阵对每一帧二维全景图像进行重构的流程示意图;

图5为本发明实施例判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动的流程示意图;

图6为本发明实施例全景视频的处理装置的结构框图;

图7为本发明实施例运动估计模块的结构框图;

图8为本发明实施例确定单元的结构框图;

图9为本发明实施例运动补偿旋转矩阵计算模块的结构框图;

图10为本发明实施例判断单元的结构框图;

图11为本发明实施例实现全景视频处理的电子设备的结构框图;

图12为本发明实施例稳像前和稳像后全景图像序列的示意图;

图13为本发明具体实施例全景视频的处理方法的流程示意图;

图14为本发明实施例进行特征点匹配的示意图;

图15为本发明实施例对不稳定的二维全景图像进行补偿的示意图。

具体实施方式

为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明的实施例提供一种全景视频的处理方法、装置、设备、计算机可读存储介质,能够对全景视频进行视频稳像。

实施例一

本发明的实施例提供一种全景视频的处理方法,如图1所示,包括:

步骤101:接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

步骤102:对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

步骤103:根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

步骤104:根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

步骤105:利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

由于二维全景图像对应的三维球体全景图像能在任意方向上进行旋转而不造成图像信息损失,因此两帧二维全景图像间必定存在一个旋转向量让其中一帧二维全景图像与另一帧二维全景图像靠近,本发明的技术方案通过计算每一帧二维全景图像的运动补偿旋转矩阵,并利用运动补偿旋转矩阵对每一帧二维全景图像进行重构来完成视频稳像,从而实现了对全景视频的稳像。

作为一个示例,如图2所示,所述步骤102包括:

步骤1021:将第n+1帧二维全景图像上的多个特征点与第n帧二维全景图像上的多个特征点进行一一匹配,n为正整数;

步骤1022:从所有匹配点对中确定正确的匹配点对,根据正确的匹配点对计算得到第n+1帧二维全景图像到第n帧二维全景图像的旋转矩阵。

作为一个示例,如图3所示,所述步骤1024包括:

步骤10241:从所有匹配点对中选择m对匹配点对,其中,m为大于1的整数;

步骤10242:基于所选择的m对匹配点对计算第n+1帧二维全景图像到第n帧二维全景图像的第一旋转矩阵;

步骤10243:利用所述第一旋转矩阵计算除所述m对匹配点之外其他匹配点对的误差值,根据计算得到的误差值确定支持所述第一旋转矩阵的匹配点对的数目;

步骤10244:如果支持所述第一旋转矩阵的匹配点对的数目大于第一阈值,则确定所选择的m对匹配点对为正确的匹配点对。

步骤10245:如果支持所述第一旋转矩阵的匹配点对的数目不大于第一阈值,则确定所选择的m对匹配点对不是正确的匹配点对,则转向步骤10241,重新选择m对匹配点对。

作为一个示例,如图4所示,所述步骤104包括:

步骤1041:根据平滑后的历史运动轨迹判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动;

步骤1042:在当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动时,对当前帧二维全景图像相对于前一帧二维全景图像的运动补偿旋转矩阵进行计算;

步骤1043:在当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动时,对参考帧二维全景图像进行更新,并基于更新后的参考帧二维全景图像和当前帧二维全景图像计算得到两帧之间的运动补偿旋转矩阵。

步骤105中,对所述运动补偿旋转矩阵进行平滑处理,将当前帧二维全景图像转换成三维球体全景图像,并基于平滑后的运动补偿旋转矩阵对所述三维球体全景图像进行运动补偿,将运动补偿后的三维球体全景图像转换成二维全景图像,得到稳像后的二维全景图像。

作为一个示例,如图5所示,所述步骤1041包括:

步骤10411:基于所述历史运动轨迹计算当前帧二维全景图像相对于前一帧二维全景图像的噪声值;

步骤10412:在所述噪声值小于第二阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动;

步骤10413:在所述噪声值大于第三阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动,其中第三阈值大于第二阈值。

实施例二

本发明实施例还提供了一种全景视频的处理装置,如图6所示,包括:

接收模块21,用于接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

运动估计模块22,用于对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

历史运动轨迹计算模块23,用于根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

运动补偿旋转矩阵计算模块24,用于根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

重构模块25,用于利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

由于二维全景图像对应的三维球体全景图像能在任意方向上进行旋转而不造成图像信息损失,因此两帧二维全景图像间必定存在一个旋转向量让其中一帧二维全景图像与另一帧二维全景图像靠近,本发明的技术方案通过计算每一帧二维全景图像的运动补偿旋转矩阵,并利用运动补偿旋转矩阵对每一帧二维全景图像进行重构来完成视频稳像,从而实现了对全景视频的稳像。

作为一个示例,如图7所示,运动估计模块22包括:

匹配单元221,用于将第n+1帧二维全景图像上的多个特征点与第n帧二维全景图像上的多个特征点进行一一匹配,n为正整数;

确定单元222,用于从所有匹配点对中确定正确的匹配点对;

计算单元223,用于根据正确的匹配点对计算得到第n+1帧二维全景图像到第n帧二维全景图像的旋转矩阵。

作为一个示例,如图8所示,确定单元224包括:

选择子单元2241,用于从所有匹配点对中选择m对匹配点对,其中,m为大于1的整数;

第一计算子单元2242,用于基于所选择的m对匹配点对计算第n+1帧二维全景图像到第n帧二维全景图像的第一旋转矩阵;

第二计算子单元2243,用于利用所述第一旋转矩阵计算除所述m对匹配点之外其他匹配点对的误差值,根据计算得到的误差值确定支持所述第一旋转矩阵的匹配点对的数目;

处理子单元2244,用于如果支持所述第一旋转矩阵的匹配点对的数目大于第一阈值,则确定所选择的m对匹配点对为正确的匹配点对;如果支持所述第一旋转矩阵的匹配点对的数目不大于第一阈值,则确定所选择的m对匹配点对不是正确的匹配点对。

作为一个示例,如图9所示,所述运动补偿旋转矩阵计算模块24包括:

判断单元241,用于根据平滑后的历史运动轨迹判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动;

运动补偿旋转矩阵计算单元242,用于在当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动时,对当前帧二维全景图像相对于前一帧二维全景图像的运动补偿旋转矩阵进行计算;在当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动时,对参考帧二维全景图像进行更新,并基于更新后的参考帧二维全景图像和当前帧二维全景图像计算得到两帧之间的运动补偿旋转矩阵;

所述重构模块25具体用于对所述运动补偿旋转矩阵进行平滑处理,将当前帧二维全景图像转换成三维球体全景图像,并基于平滑后的运动补偿旋转矩阵对所述三维球体全景图像进行旋转,将运动补偿后的三维球体全景图像转换成二维全景图像,得到稳像后的二维全景图像。

作为一个示例,如图10所示,所述判断单元241包括:

噪声值计算子单元2411,用于基于所述历史运动轨迹计算当前帧二维全景图像相对于前一帧二维全景图像的噪声值;

判断子单元2412,用于在所述噪声值小于第二阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动;在所述噪声值大于第三阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动,其中第三阈值大于第二阈值。

实施例三

本实施例提供了一种实现全景视频处理的电子设备30,如图11所示,包括:

处理器32;和

存储器34,在所述存储器34中存储有计算机程序指令,

其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器32执行以下步骤:

接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

进一步地,如图11所示,实现全景视频处理的电子设备30还包括网络接口31、输入设备33、硬盘35、和显示设备36。

上述各个接口和设备之间可以通过总线架构互连。总线架构可以是可以包括任意数量的互联的总线和桥。具体由处理器32代表的一个或者多个中央处理器(cpu),以及由存储器34代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。

所述网络接口31,可以连接至网络(如因特网、局域网等),从网络中获取相关数据,例如全景相机拍摄的全景视频,并可以保存在硬盘35中。

所述输入设备33,可以接收操作人员输入的各种指令,并发送给处理器32以供执行。所述输入设备33可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。

所述显示设备36,可以将处理器32执行指令获得的结果进行显示。

所述存储器34,用于存储操作系统运行所必须的程序和数据,以及处理器32计算过程中的中间结果等数据。

可以理解,本发明实施例中的存储器34可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)或闪存。易失性存储器可以是随机存取存储器(ram),其用作外部高速缓存。本文描述的装置和方法的存储器34旨在包括但不限于这些和任意其它适合类型的存储器。

在一些实施方式中,存储器34存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统341和应用程序342。

其中,操作系统341,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序342,包含各种应用程序,例如浏览器(browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序342中。

上述处理器32,当调用并执行所述存储器34中所存储的应用程序和数据,具体的,可以是应用程序342中存储的程序或指令时,可以接收待处理的全景视频,所述全景视频包括多帧二维全景图像;对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

本发明上述实施例揭示的方法可以应用于处理器32中,或者由处理器32实现。处理器32可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器32中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器32可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器34,处理器32读取存储器34中的信息,结合其硬件完成上述方法的步骤。

可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(asic)、数字信号处理器dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。

对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。

具体地,处理器32将第n+1帧二维全景图像上的多个特征点与第n帧二维全景图像上的多个特征点进行一一匹配,n为正整数;从所有匹配点对中确定正确的匹配点对,根据正确的匹配点对计算得到第n+1帧二维全景图像到第n帧二维全景图像的旋转矩阵。

具体地,处理器32从所有匹配点对中选择m对匹配点对,其中,m为大于1的整数;基于所选择的m对匹配点对计算第n+1帧二维全景图像到第n帧二维全景图像的第一旋转矩阵;利用所述第一旋转矩阵计算除所述m对匹配点之外其他匹配点对的误差值,根据计算得到的误差值确定支持所述第一旋转矩阵的匹配点对的数目;如果支持所述第一旋转矩阵的匹配点对的数目大于第一阈值,则确定所选择的m对匹配点对为正确的匹配点对;如果支持所述第一旋转矩阵的匹配点对的数目不大于第一阈值,则确定所选择的m对匹配点对不是正确的匹配点对。

具体地,处理器32根据平滑后的历史运动轨迹判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动或有意识的相机运动;在当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动时,对当前帧二维全景图像相对于前一帧二维全景图像的运动补偿旋转矩阵进行计算;在当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动时,对参考帧二维全景图像进行更新,并基于更新后的参考帧二维全景图像和当前帧二维全景图像计算得到两帧之间的运动补偿旋转矩阵;对所述运动补偿旋转矩阵进行平滑处理;将当前帧二维全景图像转换成三维球体全景图像,并基于平滑后的运动补偿旋转矩阵对所述三维球体全景图像进行运动补偿,将运动补偿后的三维球体全景图像转换成二维全景图像,得到稳像后的二维全景图像。

具体地,处理器32基于所述历史运动轨迹计算当前帧二维全景图像相对于前一帧二维全景图像的噪声值,在所述噪声值小于第二阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是无意识的噪声运动;在所述噪声值大于第三阈值时,判断当前帧二维全景图像相对于前一帧二维全景图像的变化是有意识的相机运动,其中第三阈值大于第二阈值。

由于二维全景图像对应的三维球体全景图像能在任意方向上进行旋转而不造成图像信息损失,因此两帧二维全景图像间必定存在一个旋转向量让其中一帧二维全景图像与另一帧二维全景图像靠近,本发明的技术方案通过计算每一帧二维全景图像的运动补偿旋转矩阵,并利用运动补偿旋转矩阵对每一帧二维全景图像进行重构来完成视频稳像,从而实现了对全景视频的稳像。

实施例四

本实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器运行时,使得所述处理器执行以下步骤:

接收待处理的全景视频,所述全景视频包括多帧二维全景图像;

对所述全景视频中的任意相邻两帧二维全景图像进行帧间运动估计,得到相邻两帧二维全景图像之间的帧间运动估计结果;

根据相邻两帧二维全景图像之间的帧间运动估计结果得到所述全景视频的历史运动轨迹,并对历史运动轨迹进行平滑;

根据平滑后的历史运动轨迹计算每一帧二维全景图像的运动补偿旋转矩阵;

利用所述运动补偿旋转矩阵对每一帧二维全景图像进行重构,输出稳像后的全景视频。

实施例五

随着相机技术的发展,360度视角的全景相机越来越多的应用了我们的日常生活中,常见的全景相机可以通过两个鱼眼镜头进行全景图像的获取。如图12所示,左侧是从全景相机中获取到的不稳定的全景图像序列,右侧是基于本发明的技术方案处理得到的稳定的全景图像序列。在球体坐标系中,由于二维全景图像对应的三维球体全景图像能在任意方向上进行旋转而不造成图像信息的损失,因此两帧二维全景图像间必定存在一个旋转向量让其中一帧二维全景图像与另一帧二维全景图像靠近,其中旋转向量即旋转矩阵的估计是全景视频稳像的关键,本发明的技术方案主要侧重于旋转向量的精确估计以及进行旋转向量的平滑。

如图13所示,本实施例的全景视频的处理方法包括以下步骤:

步骤401:接收输入的全景视频;

该输入的全景视频可以是全景相机获取的实时全景视频,也可以是事先存储的离线全景视频,全景视频包括多帧二维全景图像。

步骤402:计算任意相邻两帧二维全景图像之间的旋转矩阵;

本实施例的二维全景图像具体为二维等距柱状投影图。在本发明实施例中,使用基于特征点的方法进行运动估计,具体地,可以使用常规的角点特征,如harris角点,fast角点,surf角点,sift角点等。具体地,如图14所示,基于角点特征进行前后两帧二维全景图像特征点的匹配,特征点匹配对通过白线连接示意,之后确定正确的特征点匹配对。

通过图14中的匹配结果能够发现,可能存在很多误匹配点对。因此需要进行误匹配点对的移除。很多传统的2d图像特征点匹配选择环节,一般使用基于2d的仿射变换模型。但由于二维全景图像的特殊性,在2d空间上,它并不满足2d仿射变换模型。因此如果2d仿射模型用于二维全景图像特征点对的匹配选择的话,有很多正确的匹配点对将被移除,而一些错误的匹配点对可能被保留,这将极大影响运动估计结果的精度。因此在本发明基于二维全景图像的特殊性提出了基于单位球体图的特征点匹配对选择方法:基于球体空间上的旋转运动一致性进行特征点匹配选择。

具体地,确定正确匹配点对,移除误匹配点对包括以下步骤:

(1)转换2d空间下的特征点匹配对到3d单位球体空间坐标系,在3d单位球体空间坐标系中,两帧二维全景图像间的所有匹配点对的运动方向保持一致;

(2)从所有匹配点对中随机选择m对匹配点对,在本实施例中,可以随机选择4对匹配点对计算旋转矩阵;

(3)基于随机选择的m对匹配点对计算相邻两帧二维全景图像间的旋转矩阵;

(4)基于计算出的旋转矩阵,计算剩余匹配点对的误差函数,将除选择的m对匹配点对之外的剩余匹配点对输入到旋转矩阵中,计算满足该旋转矩阵得到的误差值;

(5)选择支持该旋转矩阵的匹配点对,如果一匹配点对计算得到的误差值小于设定值,则认为该匹配点对支持该旋转矩阵,据此得到所有支持该旋转矩阵的匹配点对;

(6)判断当前旋转矩阵是否满足要求,如果有足够多的匹配点对支持当前的旋转矩阵,那么认为当前选择的m对匹配点对为正确的匹配点对,否则,重复步骤(2)-(5)直至得到正确的匹配点对。

如图14的最后一部分图所示,对比初始的匹配结果,许多误匹配点已被移除。之后基于正确的匹配点对计算旋转矩阵。基于筛选后的匹配点对,能够计算出更加准确的旋转矩阵。在3d空间上,相机的主要运动分为旋转运动和平移运动,而对于二维全景图像来说,二维全景图像的抖动除了相机旋转抖动外,还存在平移抖动,但由于二维全景图像的特殊性,平移运动在一定程度上可以近似为类旋转运动。因此本发明主要通过旋转运动描述相机的抖动运动,常用的旋转运动计算方法有:旋转矩阵,欧拉角,单位四元数,和旋转向量。在本发明中,使用旋转矩阵作为旋转运动的描述。

步骤403:根据任意相邻两帧二维全景图像之间的旋转矩阵得到全景视频的历史运动轨迹,并根据历史运动轨迹对全景视频做运动平滑;

根据任意相邻两帧二维全景图像之间的旋转矩阵可以得到全景视频的历史运动轨迹。运动平滑是为了去除由于相机抖动引起的随机抖动而保留相机的真实运动。除了相机的有意识运动,其他的运动都被视为噪声运动。

本实施例中,采用旋转矩阵进行运动描述,采用欧拉角进行运动轨迹描述。由于手持全景相机在拍摄过程中的不稳定性,导致所拍摄图像画面的不稳定。针对稳定的图像画面来说,由于手持相机不稳而引起的抖动就是一种噪声运动。因此,本实施例采用去除相机运动噪声的方法进行在线运动的平滑。具体细节包括以下几步:

(1)判断引起当前帧二维全景图像变化的运动是无意识的噪声运动还是有意识的相机运动(比如是拍摄者主观移动相机),具体地可以根据历史运动轨迹,判断引起当前帧二维全景图像变化的运动是无意识的噪声运动还是有意识的相机运动。主要看当前帧二维全景图像相对于前一帧二维全景图像的相对运动参数的变化量有多大,如果超过事先设定的阈值就认为是有意识的相机运动,如果小于事先设定的阈值就认为是无意识的抖动,即无意识的噪声运动。如果引起当前帧二维全景图像变化的运动是无意识的噪声运动,将采用去噪的模式进行图像稳像。如果引起当前帧二维全景图像变化的运动是有意识的相机运动,则直接对参考帧二维全景图像进行更新。

angle_error=abs(angleinter_frame-mean(angle(n-size)noise,angle(n-size+1)noise,…,angle(n-1)noise))(1)

anglenactual=anglen-mean(angle(n-size)noise,angle(n-size+1)noise,…,angle(n-1)noise)(3)

在公式(1)中,angle_error为相机运动噪声,angleinter_frame是两帧二维全景图像间的运动角度,mean(angle(n-size)noise,angle(n-size+1)noise,…,angle(n-1)noise)是指在一定滑动窗口内的噪声平均值,anglensmooth是平滑后的运动角度。其中anglenoise是稳像后的相邻两帧二维全景图像之间的运动差值,n为帧数。

通过实验发现,当相邻两帧二维全景图像间的运动欧拉角在[0-1]范围内时,人眼是觉察不到图像的抖动的,因此在公式(2)中,t1=1。当angle_error<=t1时,当前帧二维全景图像的运动平滑处理与上一帧二维全景图像相同。当t1<=angle_error<=t2时,表示相机运动在可接受的累积误差范围内,需要对当前帧所做的平滑处理角度等于anglenactual,anglenactual的具体计算方式见公式(3)所示。在公式(3)中,anglen是指相机相对于参考帧二维全景图像的实际运动角度值。当angle_error>t2,则认为该相机运动是由于拍摄人进行了有意识的运动而形成,与原参考帧二维全景图像差别太大,因此需要进行参考帧二维全景图像的更新,t2的设置可以通过实验得到,在本实施例中可以设置为10。

对含有噪声的运动进行平滑处理,即分别对欧拉角pitch/roll/yaw进行去噪处理,具体公式见式(4)。

rollnsmooth=rolln-mean(roll(n-size)noise,roll(n-size+1)noise,……,roll(n-1)noise)

yawnsmooth=yawn-mean(yaw(n-size)noise,yaw(n-size+1)noise,……,yaw(n-1)noise)

pitchnsmooth=pitchn-mean(pitch(n-size)noise,pitch(n-size+1)noise,……,pitch(n-1)noise)(4)

基于平滑后的角度进行运动补偿旋转矩阵的计算。

基于当前平滑帧和上一平滑帧计算旋转角度误差,旋转角度误差可以用来评估稳像的结果的优良程度。众所周知,在图像稳像处理过程中,做不到绝对的稳定,因此仍然会引入噪声的影响,因此用于计算平滑后的两帧图像间的旋转角度噪声,用于后续图像是否稳定的评估。本发明采用滑动窗口进行帧间噪声保存,滑动窗口大小一般根据图像帧率进行设置。

根据公式(2)的判断,如果当前帧二维全景图像发生突变,将进行参考帧二维全景图像的更新,以防止引入更多的累积误差。一般情况下,参考帧二维全景图像为第一帧二维全景图像,在需要更新参考帧二维全景图像时,将参考帧二维全景图像更新为当前帧二维全景图像。

步骤404:对全景视频进行运动补偿。

运动补偿就是基于运动平滑结果即运动补偿旋转矩阵对全景视频进行重构。在传统的2d视频稳像处理过程中,一般基于图像裁剪进行图像重构以完成视频稳像。对于全景图像,图像裁剪将破坏它的360度宽广角特性。全景图像在3d空间上是一个球体图,基于球体图的特性,能让它在任意方向上进行旋转,以达到稳像效果。因为球体图像能在任意方向上进行旋转而不破坏全景图像特性,因此针对不稳定球体图像的运动补偿,主要表现为旋转运动补偿,而不需要进行图像裁剪。如图15所示,左上角为一张参考帧二维全景图像,左下角为待补偿的不稳定的二维全景图像。基于参考帧二维全景图像和不稳定的二维全景图像计算得到两帧二维全景图像之间的运动补偿旋转矩阵,基于在线运动平滑计算得到平滑后的旋转矩阵,将当前帧二维全景图像转换成三维球体全景图像,并基于平滑后的运动补偿旋转矩阵对所述三维球体全景图像进行旋转,将运动补偿后的三维球体全景图像转换成二维全景图像,得到稳像后的二维全景图像。对比参考帧二维全景图像和补偿后的二维全景图像发现,补偿

稳定图像=rsmooth*rnoise*不稳定图像+t(6)

在公式(5)中,r是旋转矩阵,根据欧拉角计算得到theta(x),theta(y),theta(z)分别代表由全局运动计算得到的欧拉角roll,pitch,yaw,欧拉角roll,pitch,yaw是指当前帧相对于参考帧的旋转角度。公式(6)是由不稳定图像转换为稳定图像的计算公式,其中rsmooth代表平滑后的旋转矩阵,rnoise代表原始旋转矩阵。t表示运动偏移量。由于在球体图稳像过程中,球体图的运动主要表现为旋转运动,因此一般可忽略t。

输出稳像后的视频图像。如果输入的是实时的全景视频,则输出的也是实时的全景视频;如果输入的是离线全景视频,则输出的也是离线全景视频。

本发明提出了一种全景视频的稳像方法。由于3d全景图像的球体图特性,不稳定图像所表现的运动主要为旋转运动,因为本发明提出了基于旋转运动补偿的全景图像稳像方法。该方法通过任意方向上的球体图旋转来完成视频稳像,而不需要传统的图像裁剪方法。在实时运动平滑处理过程中,本发明分别对旋转欧拉角进行平滑,而不需要复杂的3d运动模型,同时能进行实时的运动稳像处理。对比传统的视频稳像方法,本发明首先通过判断本次运动是有意识运动还是无意识运动进行角度平滑计算。如果当前帧为有意识运动,则直接进行参考帧的更新。而如果当前帧为无意识运动,则需进一步进行判断。如果当前无意识运动在噪声容忍范围内,则采用上一帧的平滑运动参数进行本帧运动平滑处理;如果当前无意识运动超过了容忍范围,则需要引入本帧噪声,基于历史运动信息,进行运动平滑处理。这种分段式的处理方法,可以减少累积误差的引入。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1