一种视频去抖方法及装置转让专利

申请号 : CN201810065195.6

文献号 : CN108366243B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 路光明

申请人 : 微幻科技(北京)有限公司

摘要 :

本申请涉及图像处理技术领域,尤其涉及一种视频去抖方法及装置,用以解决现有技术中在对全景视频流进行去抖时存在着去抖效率较低的问题;本申请实施例提供的视频去抖方法包括:针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;对所述全景视频流中的去抖视频段进行旋转类抖动的去除。这样,挑选出全景视频流的一部分视频段进行去抖处理,而不再是对全景视频流中所有的视频帧进行去抖处理,因此,可以减少进行去抖处理时的视频帧数量,进而提高全景视频流的去抖效率。

权利要求 :

1.一种视频去抖方法,其特征在于,包括:

针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;

根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;

对所述全景视频流中的去抖视频段进行去抖处理;

根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段,包括:确定所述全景视频流中沿预设轴的旋转幅度在期望范围内的视频段,将所述视频段作为无旋转视频段,并将其余视频段作为旋转视频段;

根据所述旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段;

对每一无旋转视频段,若确定所述无旋转视频段的时长大于第三阈值,则将所述无旋转视频段作为去抖视频段。

2.如权利要求1所述的方法,其特征在于,所述沿预设轴的旋转幅度在期望范围内的视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于第一阈值,且各视频帧沿预设轴的拍摄旋转角之和的绝对值小于第二阈值。

3.如权利要求1所述的方法,其特征在于,根据所述旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段,包括:对第一个旋转视频段,当确定所述旋转视频段的时长小于第四阈值,且相邻无旋转视频段的时长之和大于第五阈值时,将所述旋转视频段和相邻的无旋转视频段进行合并,得到一个待处理视频段;

若根据所述待处理视频段中各视频帧沿预设轴的拍摄旋转角,确定所述待处理视频段中最大旋转角与最小旋转角之差小于第六阈值,则将所述待处理视频段作为新的无旋转视频段,替换原有的旋转视频段和相邻无旋转视频段;其中,最大旋转角和最小旋转角均是根据所述待处理视频段中各视频帧沿预设轴的拍摄旋转角确定的;

对下一个旋转视频段,返回当确定所述旋转视频段的时长小于第四阈值,且相邻无旋转视频段的时长之和大于第五阈值时,将所述旋转视频段和相邻的无旋转视频段进行合并,得到一个待处理视频段的步骤,直到处理完所有的旋转视频段。

4.如权利要求1所述的方法,其特征在于,所述全景视频流中第一个视频帧沿预设轴的拍摄旋转角为预设值;其它每一视频帧沿预设轴的拍摄旋转角是根据在拍摄该视频帧和拍摄上一视频帧时安装在相机中的传感器所采集的方位角确定的,或者,是根据该视频帧和上一视频帧的图像特征确定的。

5.如权利要求1所述的方法,其特征在于,对所述全景视频流中的去抖视频段进行去抖处理,包括:为该去抖视频段选择一个沿预设轴的目标旋转角;

对该去抖视频段中的每一视频帧,计算该视频帧沿预设轴的拍摄旋转角与所述沿预设轴的目标旋转角之间的差值;

按照计算的差值对该视频帧沿预设轴进行旋转,使该视频帧沿预设轴的拍摄旋转角与所述沿预设轴的目标旋转角之间的差值为零。

6.如权利要求5所述的方法,其特征在于,为该去抖视频段选择一个沿预设轴的目标旋转角,包括:将该去抖视频段中指定视频帧沿预设轴的拍摄旋转角作为沿预设轴的目标旋转角;或者,计算该去抖视频段中各视频帧沿预设轴的拍摄旋转角的平均值,将所述平均值作为该去抖视频段沿预设轴的目标旋转角。

7.一种视频去抖装置,其特征在于,包括:

拍摄旋转角确定模块,用于针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;

去抖视频段确定模块,用于根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;

去抖模块,用于对所述全景视频流中的去抖视频段进行去抖处理;

所述去抖视频段确定模块,具体用于确定所述全景视频流中沿预设轴的旋转幅度在期望范围内的视频段,将所述视频段作为无旋转视频段,并将其余视频段作为旋转视频段;根据所述旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段;对每一无旋转视频段,若确定所述无旋转视频段的时长大于第三阈值,则将所述无旋转视频段作为去抖视频段。

8.一种电子设备,其特征在于,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述电子设备执行权利要求1~6任一所述方法的步骤。

9.一种计算机可读存储介质,其特征在于,包括程序代码,当所述程序代码在电子设备上运行时,使所述电子设备执行权利要求1~6任一所述方法的步骤。

说明书 :

一种视频去抖方法及装置

技术领域

[0001] 本申请涉及图像处理技术领域,尤其涉及一种视频去抖方法及装置。

背景技术

[0002] 随着图像处理技术的快速发展,出现了越来越多的全景视频,全景视频的最佳观看方式是通过虚拟现实(Virtual Reality,VR)头显进行观看,如果不对全景视频进行去抖处理,在通过VR头显观看时,很容易使用户产生晕眩,较大地影响用户体验。
[0003] 现有技术中,在对全景视频流进行去抖处理时,是对全景视频流中的所有视频帧都进行平滑处理,但视频帧中的抖动有的是由预期旋转引起的,如在转弯处对相机的旋转而引起的抖动,有的则是由非预期旋转引起的,如在直线拍摄过程中相机的异常旋转而引起的抖动。一般地,包含预期旋转的视频段,由于在拍摄该视频段的过程中相机的拍摄角度发生了较大变化,所以这些视频段中各视频帧之间的差别比较大,即使对这些视频段进行去抖处理也不能降低用户在观看全景视频时的眩晕感,因此,对包含预期旋转的全景视频段进行去抖并不能起到很好的去抖效果,而且会降低全景视频流的去抖处理效率。
[0004] 可见,现有技术中在对全景视频流进行去抖时存在着去抖效率较低的问题。

发明内容

[0005] 本申请实施例提供一种视频去抖方法及装置,用以解决现有技术中在对全景视频流进行去抖时存在着去抖效率较低的问题。
[0006] 本申请实施例提供的一种视频去抖方法,包括:
[0007] 针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;
[0008] 根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;
[0009] 对所述全景视频流中的去抖视频段进行去抖处理。
[0010] 本申请实施例提供的一种视频去抖装置,包括:
[0011] 拍摄旋转角确定模块,用于针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;
[0012] 去抖视频段确定模块,用于根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;
[0013] 去抖模块,用于对所述全景视频流中的去抖视频段进行去抖处理。
[0014] 本申请实施例提供的一种电子设备,包括至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述电子设备执行上述视频去抖方法的步骤。
[0015] 本申请实施例提供的一种计算机可读存储介质,包括程序代码,当所述程序代码在电子设备上运行时,使所述电子设备执行上述视频去抖方法的步骤。
[0016] 本申请实施例中,针对获取的全景视频流,确定全景视频流中各视频帧沿预设轴的拍摄旋转角,再根据各视频帧沿预设轴的拍摄旋转角,确定全景视频流中的去抖视频段,进而对去抖视频段进行去抖处理,这样,挑选出全景视频流的一部分视频段进行去抖处理,而不再是对全景视频流中所有的视频帧进行去抖处理,因此,可以减少进行去抖处理时的视频帧数量,进而提高全景视频流的去抖效率。

附图说明

[0017] 图1为本申请实施例提供的视频去抖方法的流程图;
[0018] 图2为本申请实施例提供的以Equirectangular投影方式存储的视频帧的示意图;
[0019] 图3为本申请实施例提供的以Stereographic投影方式存储的视频帧的示意图;
[0020] 图4为本申请实施例提供的对以Stereographic投影方式存储的视频帧进行处理的示意图;
[0021] 图5为本申请实施例提供的将视频帧旋转180°后的示意图;
[0022] 图6为本申请实施例提供的确定新的无旋转视频段的流程图;
[0023] 图7为本申请实施例提供的对每一去抖视频段进行去抖处理的流程图;
[0024] 图8为本申请实施例提供的各视频帧沿预设轴的拍摄旋转角的示意图;
[0025] 图9为本申请实施例提供的确定出的无旋转视频段和旋转视频段的示意图;
[0026] 图10为本申请实施例提供的将第一个旋转视频段和相邻的两个无旋转视频段合并后的视频段的示意图;
[0027] 图11为本申请实施例提供的最终确定出的旋转视频段和去抖视频段的示意图;
[0028] 图12为本申请实施例提供的又一视频去抖方法的流程图;
[0029] 图13为本申请实施例提供的视频去抖装置结构图;
[0030] 图14为本申请实施例提供的用于实现视频去抖方法的电子设备的硬件结构示意图。

具体实施方式

[0031] 本申请实施例中,针对获取的全景视频流,确定全景视频流中各视频帧沿预设轴的拍摄旋转角,再根据各视频帧沿预设轴的拍摄旋转角,确定全景视频流中的去抖视频段,进而对去抖视频段进行去抖处理,这样,挑选出全景视频流的一部分视频段进行去抖处理,而不再是对全景视频流中所有的视频帧进行去抖处理,因此,可以减少进行去抖处理时的视频帧数量,进而提高全景视频流的去抖效率。
[0032] 下面结合说明书附图对本申请实施例作进一步详细描述。
[0033] 实施例一
[0034] 如图1所示,为本申请实施例提供的视频去抖方法的流程图,包括以下步骤:
[0035] S101:针对获取的全景视频流,确定全景视频流中各视频帧沿预设轴的拍摄旋转角。
[0036] 其中,预设轴可以为常用的x轴、y轴或z轴,也可以为其它自定义的轴,在此不做限定。
[0037] 对任一视频帧而言,该视频帧沿预设轴的拍摄旋转角是指相机从拍摄上一视频帧到拍摄该视频帧时沿预设轴旋转过的角度,因为全景视频流中第一个视频帧没有上一视频帧,所以第一个视频帧沿预设轴的拍摄旋转角可以为预设值,比如0°,其它每一视频帧沿预设轴的拍摄旋转角是根据在拍摄该视频帧和拍摄上一视频帧时安装在相机中的传感器所采集的方位角确定的,或者,是根据该视频帧和上一视频帧的图像特征确定的。
[0038] 下面结合具体的实施例说明计算各视频帧沿预设轴的拍摄旋转角的方法。
[0039] 1、根据图像特征确定各视频帧沿预设轴的拍摄旋转角。
[0040] 假设获取的全景视频流中包含100个视频帧,且每个视频帧以Equirectangular投影方式存储,如图2所示,为以Equirectangular投影方式存储的视频帧的示意图,可以选择以下任一种方式计算全景视频流中各视频帧沿预设轴的拍摄旋转角。
[0041] 方式一
[0042] a,将视频帧从Equirectangular投影方式转换为Stereographic投影方式,如图3所示,为以Stereographic投影方式存储的视频帧的示意图。
[0043] b,为进行旋转比较,保留Stereographic投影中圆形区域中的内容,将圆形区域之外的内容用黑色填充,如图4所示。
[0044] c,针对视频帧用尺度不变特征变换(Scale-invariant feature transform,SIFT)算子、或加速健壮特征(Speed-up robust features,SURF)算子进行特征抽取。
[0045] d,针对相邻的两个视频帧进行Flann-based特征匹配。
[0046] e,根据相匹配的特征点得到仿射变换的矩阵,仿射变换的矩阵中包含有两个视频帧之间的拍摄旋转角度。
[0047] 方式二
[0048] a,将视频帧中最左边的n列像素移到视频帧的最右侧,相当于将视频帧绕z轴旋转,旋转角度θ=n/视频宽度*360,其中,n为整数。
[0049] 如图5所示,为将视频帧旋转180°后的示意图。
[0050] b,计算旋转后视频帧与前一视频帧之间的均方误差(Mean-square Error,MSE)。
[0051] c,取所有旋转角度中MSE最小的角度,如果该MSE值小于预设的阈值,则将所有旋转角度中MSE最小的角度作为该视频帧沿z轴的拍摄旋转角。
[0052] 2、根据拍摄视频帧时的方位角确定各视频帧沿预设轴的拍摄旋转角。
[0053] 如果相机中安装有用于采集拍摄时相机方位角的传感器,则在拍摄全景视频帧时,可以利用传感器采集相机拍摄视频帧时的方位角,并将采集的方位角与视频帧一起存储,之后,对任一视频帧,可计算采集上一视频帧时的方位角与集该视频帧时的方位角之差,之后,将差值映射到预设轴上作为该视频帧沿预设轴的拍摄旋转角。
[0054] S102:根据各视频帧沿预设轴的拍摄旋转角,确定全景视频流中的去抖视频段。
[0055] 这里,可以先确定全景视频流中沿预设轴的旋转幅度在期望范围内的视频段,将这些视频段作为无旋转视频段,将其余视频段作为旋转视频段,之后根据无旋转视频段和旋转视频段确定去抖视频段。
[0056] 可选地,沿预设轴的旋转幅度在期望范围内的视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于第一阈值,且各视频帧沿预设轴的拍摄旋转角之和的绝对值小于第二阈值,这些特征说明在拍摄视频段的过程中相机的拍摄方位并没有发生较大变化,比较符合相机未发生预期旋转时拍摄的视频段的特点,因此,可以将这些视频段看作是无旋转视频段。
[0057] 比如,挑选无旋转视频段时的标准可以为视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于0.3°,且各视频帧沿预设轴的拍摄旋转角的累加和的绝对值小于10°;还可以为视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于0.2°,且各视频帧沿预设轴的拍摄旋转角的累加和的绝对值小于5°,具体选用哪一挑选标准,由技术人员根据实际需求来确定,在此不做限定。
[0058] 进一步地,可以根据旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段,之后,对每一无旋转视频段,若确定该无旋转视频段的时长大于第三阈值,则可以将该无旋转视频段作为去抖视频段,其中,第三阈值由技术人员预先设定。
[0059] 具体地,可以按照图6所示的流程确定新的无旋转视频段:
[0060] S601a:载入一个旋转视频段,确定该旋转视频段的时长小于第四阈值,且相邻无旋转视频段的时长之和大于第五阈值时,将该旋转视频段和相邻的无旋转视频段进行合并,得到一个待处理视频段。
[0061] 初始时,载入的为第一个旋转视频段。
[0062] 由于相机在旋转过程中可能存在短暂的停留,相机在停留阶段拍摄的视频段有可能也是无旋转视频段,但这些短暂的视频段其实并不是有效的视频段,对这类视频段进行去抖并没有实际意义,因此可以使用视频段的拍摄时长来滤掉这类视频段。
[0063] S602a:对待处理视频段中的每一视频帧,计算相机从拍摄待处理视频段中拍摄时间最早的视频帧到拍摄该视频帧时沿预设轴的旋转角,得到待处理视频段中的最大旋转角和最小旋转角。
[0064] 其中,对任一视频帧,该视频帧相对于待处理视频段中拍摄时间最早的视频帧之间沿预设轴的旋转角,可以对该视频帧和时间最早的视频帧之间沿预设轴的拍摄旋转角进行累加得到。
[0065] S603a:计算最大旋转角与最小旋转角之间的差值。
[0066] S604a:若最大旋转角与最小旋转角之间的差值小于第六阈值,则将待处理视频段作为新的无旋转视频段,替换原有的旋转视频段和相邻无旋转视频段。
[0067] 实际应用中,旋转视频段中各帧视频之间的旋转角比较大,因此,可以根据待处理视频段中各视频帧与拍摄时间最早的视频帧之间的最大旋转角与最小旋转角之间的差值,判断在拍摄待处理视频段的过程中相机是否发生预期旋转,若最大旋转角与最小旋转角之间的差值小于第六阈值,则确定在拍摄该待处理视频段的过程中相机未发生预期旋转,即可以将待处理视频段作为新的无旋转视频段,替换原有的旋转视频段和相邻无旋转视频段,反之,则不作处理。
[0068] S605a:判断是否存在下一个旋转视频段,若是,则进入601a;否则,流程结束。
[0069] 上述过程中,第四阈值、第五阈值和第六阈值均由技术人员预先设定。
[0070] S103:对全景视频流中的去抖视频段进行去抖处理。
[0071] 这里,对每一去抖视频段进行去抖处理时,可以为该视频段中的视频帧选择一个沿预设轴的目标旋转角,之后计算该视频段中每一视频帧沿预设轴的拍摄旋转角与沿预设轴的目标旋转角之间的差值,进而按照该差值对相应的视频帧进行旋转,使该视频帧沿预设轴的拍摄旋转角与沿预设轴的目标旋转角之间的差值为零。相比对视频帧做平滑处理的去抖方式,对去抖视频段中的各视频帧逐帧进行旋转处理的去抖方式可以有效去除视频帧之间的相对旋转,因此,可以更有效地减轻用户的眩晕感,去抖效果也更好。
[0072] 可选地,针对任一去抖视频段,可以将该视频段中的指定视频帧(比如第一个视频帧)的拍摄旋转角作为目标旋转角;或者,计算该视频段中各视频帧沿预设轴的拍摄旋转角的平均值,将该平均值作为该视频段沿预设轴的目标旋转角。
[0073] 在具体实施过程中,可以按照图7所示的流程对每一去抖视频段进行去抖处理:
[0074] S701a:为去抖视频段选择一个沿预设轴的目标旋转角。
[0075] 比如,将去抖视频段中第一个视频帧沿预设轴的拍摄旋转角作为沿预设轴的目标旋转角。
[0076] S702a:载入去抖视频段中的一个视频帧,计算该视频帧沿预设轴的拍摄旋转角与沿预设轴的目标旋转角之间的差值θ。
[0077] S703a:判断θ是否等于零,若是,则进入S705a;若否,则进入S704a。
[0078] S704a:按照-θ对当前视频帧进行旋转,使沿预设轴上该视频帧的拍摄旋转角与目标旋转角之间的差值θ等于零。
[0079] S705a:判断该视频帧是否是去抖视频段中的最后一个视频帧,若是,则流程结束;否则,进入S702a。
[0080] 本申请实施例中,针对获取的全景视频流,确定全景视频流中各视频帧沿预设轴的拍摄旋转角,再根据各视频帧沿预设轴的拍摄旋转角,确定全景视频流中的去抖视频段,进而对去抖视频段进行去抖处理,这样,挑选出全景视频流的一部分视频段进行去抖处理,而不再是对全景视频流中所有的视频帧进行去抖处理,因此,可以减少进行去抖处理时的视频帧数量,进而提高全景视频流的去抖效率。
[0081] 实施例二
[0082] 假设获取的全景视频流是使用三角架沿某一路径行进拍摄的,包含5000个视频帧,且视频的帧率为50fps。
[0083] 首先,获取到全景视频流之后,将全景视频流中第一个视频帧沿预设轴的拍摄旋转角设定为0°,对其它每一视频帧,计算该视频帧相对前一视频帧沿预设轴的拍摄旋转角。假设计算的各视频帧沿预设轴的拍摄旋转角的示意图如图8所示,其中,i为视频帧的序号,i=0,1,…,5000,视频帧下面的数字,如0.0,0.3等代表相应视频帧沿预设轴的拍摄旋转角。
[0084] 其次,将全景视频流划分为无旋转视频段和旋转视频段。
[0085] 比如,选择无旋转视频段的标准为视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于0.2°,且各视频帧沿预设轴的拍摄旋转角的累加和的绝对值小于5°,假设从图8中各视频帧中选择的无旋转视频段和旋转视频段如图9所示,其中,虚线表示旋转视频段,实线表示无旋转视频段,图9中的数字,如300、320等,代表视频帧的序号。
[0086] 再次,根据无旋转视频段和旋转视频段确定去抖视频段。
[0087] 在具体实施过程中,可以根据旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段,之后,对每一无旋转视频段,确定该无旋转视频段的时长大于5000m时,再将该无旋转视频段作为去抖视频段。
[0088] 具体地,参照图9,图9中从第300~320帧为旋转视频段,与该旋转视频段相邻的前一个无旋转视频段为0~300帧,后一个无旋转视频段为320~720帧,确定旋转视频段300~320帧的拍摄时长小于1000ms,且相邻无旋转视频段0~300帧和320~720帧的拍摄时长之和大于5000ms时,将这3个视频段进行合并得到一个待处理视频段0~720帧,当确定待处理视频段0~720帧内的最大旋转角与最小旋转角的差值为3°(小于5°),则可以将待处理视频段0~720帧作为新的无旋转视频段,替换原有的旋转视频段300~320帧和相邻无旋转视频段0~300帧和320~720帧,即0~720帧成为第一个无旋转视频段,替换后如图10所示。
[0089] 之后,用类似的方法,从前至后对全景视频流中的其它每一旋转视频段进行处理,如图11所示,为对图9所示的5000个视频帧最终划分出的旋转视频段和去抖视频段的示意图,其中,双线箭头所示部分为在全景视频流中确定出的去抖视频段,虚线所示为旋转视频段,图11中数字如720、900等代表视频帧的序号。
[0090] 在对所有的旋转视频段执行完上述操作以后,对每一无旋转视频段(包括原始的无旋转视频段和新的无旋转视频段),若确定该无旋转视频段的时长大于5000ms,则可以将该无旋转视频段确定为一个去抖视频段。
[0091] 最后,对每一去抖视频段进行去抖处理。
[0092] 在具体实施过程中,上述过程可以按照图12所示的流程执行:
[0093] S1201:载入一个旋转视频段,由该旋转视频段及相邻的前后无旋转视频段组成待处理视频段。
[0094] 这里,在将旋转视频段及相邻的前后无旋转视频段组成待处理视频段之前,可以确定旋转视频段的时长小于1000ms,且相邻无旋转视频段的拍摄时长之和大于5000ms。
[0095] S1202:计算待处理视频段中各视频帧相对于待处理视频段中第一个视频帧沿预设轴的拍摄旋转角。
[0096] S1203:计算处理视频段中最大旋转角和最小旋转角之间的差θ。
[0097] S1204:判断θ是否小于5°,若是,则进入S1205;否则,进入S1207。
[0098] S1205:将待处理视频段作为新的无旋转视频段,替换原有的旋转视频段和相邻无旋转视频段。
[0099] S1206:判断是否有下一个旋转视频段,若是,则进入S1201;否则,进入S1207。
[0100] S1207:对每一无旋转视频段,若确定该无旋转视频段的时长大于5000ms,则将该无旋转视频段确定为一个去抖视频段。
[0101] S1208:载入一个去抖视频段。
[0102] S1209:对去抖视频段进行去抖处理。
[0103] 具体地,可以以每一去抖视频段中第一个视频帧沿预设轴的拍摄旋转角作为该视频段的目标旋转角,计算该视频段中每一视频帧沿预设轴的拍摄旋转角与沿预设轴的目标旋转角之间的差值,该差值可以通过累加每一视频帧与前一视频帧之间的旋转角得到,之后根据沿预设轴上该视频帧的拍摄旋转角与目标旋转角之间的差值对该视频帧进行旋转,使沿预设轴上该视频帧的拍摄旋转角与目标旋转角之间的差值为零。
[0104] S1210:判断全景视频流中是否有下一个去抖视频段,若是,则进入S1208;否则,流程结束。
[0105] 本申请实施例中,首先得到全景视频流中各视频帧相对于上一视频帧在拍摄时的旋转角,根据旋转角将全景视频流分割为包含预期抖动的视频段和去抖视频段,之后,根据包含预期抖动的视频段和去抖视频段的特征,生成一个或多个去抖视频段,在每个去抖片段内沿预设轴设定目标旋转角,之后沿预设轴旋转该去抖片段内的每个视频帧至目标旋转角,通过该方法可以有效地区分出相机的预期旋转和非预期抖动,并可以使一个视频段内的各视频帧的方位角保存一致,从而消除由于全景视频拍摄时全景相机非预期的旋转导致的画面抖动。
[0106] 实施例三
[0107] 基于同一发明构思,本申请实施例中还提供了一种与视频去抖方法对应的视频去抖装置,由于该装置解决问题的原理与本申请实施例视频去抖方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
[0108] 如图13所示,为本申请实施例提供的视频去抖装置结构图,包括:
[0109] 拍摄旋转角确定模块1301,用于针对获取的全景视频流,确定所述全景视频流中各视频帧沿预设轴的拍摄旋转角;
[0110] 去抖视频段确定模块1302,用于根据各视频帧沿预设轴的拍摄旋转角,确定所述全景视频流中的去抖视频段;
[0111] 去抖模块1303,用于对所述全景视频流中的去抖视频段进行去抖处理。
[0112] 可选地,去抖视频段确定模块1302具体用于:
[0113] 确定所述全景视频流中沿预设轴的旋转幅度在期望范围内的视频段,将所述视频段作为无旋转视频段,并将其余视频段作为旋转视频段;
[0114] 根据所述无旋转视频段和旋转视频段,确定所述去抖视频段。
[0115] 可选地,所述沿预设轴的旋转幅度在期望范围内的视频段中各视频帧沿预设轴的拍摄旋转角的绝对值均小于第一阈值,且各视频帧沿预设轴的拍摄旋转角之和的绝对值小于第二阈值。
[0116] 可选地,去抖视频段确定模块1302具体用于:
[0117] 根据所述旋转视频段和无旋转视频段中各视频帧沿预设轴的拍摄旋转角、以及各视频段的时长,确定新的无旋转视频段;
[0118] 对每一无旋转视频段,若确定所述无旋转视频段的时长大于第三阈值,则将所述无旋转视频段作为去抖视频段。
[0119] 可选地,去抖视频段确定模块1302具体用于:
[0120] 对第一个旋转视频段,当确定所述旋转视频段的时长小于第四阈值,且相邻无旋转视频段的时长之和大于第五阈值时,将所述旋转视频段和相邻的无旋转视频段进行合并,得到一个待处理视频段;
[0121] 若根据所述待处理视频段中各视频帧沿预设轴的拍摄旋转角,确定所述待处理片段中最大旋转角与最小旋转角之差小于第六阈值,则将所述待处理视频段作为新的无旋转视频段,替换原有的旋转视频段和相邻无旋转视频段;其中,最大旋转角和最小旋转角均是根据所述待处理视频段中各视频帧沿预设轴的拍摄旋转角确定的;
[0122] 对下一个旋转视频段,返回当确定所述旋转视频段的时长小于第四阈值,且相邻无旋转视频段的时长之和大于第五阈值时,将所述旋转视频段和相邻的无旋转视频段进行合并,得到一个待处理视频段的步骤,直到处理完所有的旋转视频段。
[0123] 可选地,所述全景视频流中第一个视频帧沿预设轴的拍摄旋转角为预设值;其它每一视频帧沿预设轴的拍摄旋转角是根据在拍摄该视频帧和拍摄上一视频帧时安装在相机中的传感器所采集的方位角确定的,或者,是根据该视频帧和上一视频帧的图像特征确定的。
[0124] 可选地,去抖模块1303具体用于:
[0125] 为该去抖视频段选择一个沿预设轴的目标旋转角;
[0126] 对该去抖视频段中的每一视频帧,计算该视频帧沿预设轴的的拍摄旋转角与所述沿预设轴的目标旋转角之间的差值;
[0127] 按照计算的差值对该视频帧沿预设轴进行旋转,使该视频帧沿预设轴的拍摄旋转角与所述沿预设轴的目标旋转角之间的差值为零。
[0128] 可选地,去抖模块1303具体用于:
[0129] 将该去抖视频段中指定视频帧沿预设轴的拍摄旋转角作为沿预设轴的目标旋转角;或者,
[0130] 计算该去抖视频段中各视频帧沿预设轴的拍摄旋转角的平均值,将所述平均值作为该去抖视频段沿预设轴的目标旋转角。
[0131] 实施例四
[0132] 如图14所示,为本申请实施例提供的用于实现视频去抖的电子设备的硬件结构示意图,包括至少一个处理单元1401、以及至少一个存储单元1402,其中,存储单元存储有程序代码,当程序代码被所述处理单元执行时,使得电子设备执行上述视频去抖方法的步骤。
[0133] 实施例五
[0134] 本申请实施例提供的一种计算机可读存储介质,包括程序代码,当所述程序代码在电子设备上运行时,使电子设备执行上述视频去抖方法的步骤。
[0135] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0136] 本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0137] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0138] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0139] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0140] 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。