视频增稳方法、装置、计算机设备及存储介质与流程

文档序号:19814681发布日期:2020-01-31 18:56阅读:269来源:国知局
视频增稳方法、装置、计算机设备及存储介质与流程

本申请涉及计算机处理技术领域,特别是涉及一种视频增稳方法、装置、计算机设备及存储介质。



背景技术:

手机等拍摄设备在拍摄视频或图像时,由于拍摄时人为移动或手轻微抖动等外在因素容易导致拍摄的画面抖动。所以为了提高拍摄质量,需要对视频进行增稳处理,传统的视频增稳效果不理想。



技术实现要素:

基于此,有必要针对上述问题,提出了一种增稳效果好的视频增稳方法、装置、计算机设备及存储介质。

一种视频增稳方法,所述方法包括:

获取当前视频帧对应的抖动测量数据;

根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;

对所述初始抖动幅度进行滤波调整得到目标抖动幅度;

根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;

根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

一种视频增稳装置,所述装置包括:

获取模块,用于获取当前视频帧对应的抖动测量数据;

计算模块,用于根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;

调整模块,用于对所述初始抖动幅度进行滤波调整得到目标抖动幅度;

确定模块,用于根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;

剪裁模块,用于根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:

获取当前视频帧对应的抖动测量数据;

根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;

对所述初始抖动幅度进行滤波调整得到目标抖动幅度;

根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;

根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:

获取当前视频帧对应的抖动测量数据;

根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;

对所述初始抖动幅度进行滤波调整得到目标抖动幅度;

根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;

根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

上述视频增稳方法、装置、计算机设备及存储介质,通过获取当前视频帧的抖动测量数据,根据抖动测量数据计算得到当前视频帧对应的初始抖动幅度,对初始抖动幅度进行滤波调整得到目标抖动幅度,根据目标抖动幅度确定当前视频帧对应的剪裁位置,根据当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。通过对初始抖动进行滤波可以得到更准确的目标抖动幅度,然后根据目标抖动幅度确定剪裁位置,可以得到更加准确的剪裁位置,从而提高了视频增稳的效果。

附图说明

图1为一个实施例中视频增稳方法的应用环境图;

图2为一个实施例中视频增稳方法的流程图;

图3为一个实施例中平滑前和平滑后的路径示意图;

图4为一个实施例中得到目标抖动幅度的方法流程图;

图5为一个实施例中调整前后剪裁框位置的示意图;

图6为一个实施例中计算得到初始抖动幅度的方法流程图;

图7为一个实施例中视频增稳方法的流程示意图;

图8为一个实施例中滤波的原理示意图;

图9为另一个实施例中视频增稳方法的流程图;

图10为一个实施例中视频增稳装置的结构框图;

图11为一个实施例中调整模块的结构框图;

图12为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中视频增稳方法的应用环境图。参照图1,该视频增稳方法应用于视频增稳系统。该视频增稳系统包括终端110和服务器120。终端110和服务器120通过网络连接,终端110具体可以是台式终端或移动终端,移动终端具体可以是手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。终端110用于进行视频采集,将采集到的视频帧和相应的抖动测量数据发送给服务器120,服务器120获取当前视频帧对应的抖动测量数据,根据抖动测量数据计算得到当前视频帧对应的初始抖动幅度,然后对初始抖动幅度进行滤波调整得到目标抖动幅度,并根据目标抖动幅度确定当前视频帧对应的裁剪位置,最后根据当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧,将增稳后的视频帧返回给终端110。

如图2所示,在一个实施例中,提供了一种视频增稳方法。既可以应用于终端,也可以应用于服务器,本实施例以应用于终端举例说明。该视频增稳方法具体包括如下步骤:

步骤s202,获取当前视频帧对应的抖动测量数据。

其中,当前视频帧是指当前处理的视频帧。当前视频帧可以是终端实时调用摄像头拍摄的视频帧,也可以是之前存储的视频帧。一个视频帧对应一张视频图片,视频是由一帧帧的视频帧组成的。抖动测量数据是指测量得到的用于表示抖动情况的数据,属于实际测量得到的数据。

在一个实施例中,抖动测量数据可以采用终端中的陀螺仪进行测量,即将陀螺仪测量得到的与当前视频帧对应的陀螺仪数据作为抖动测量数据。不同的陀螺仪测量得到的数据表示形式不同。比如,四元数q(x,y,z,w)、欧拉角e(roll,pitch,yaw)和旋转矩阵r(x,y,z)都可以用来表示陀螺仪的数据,其中,四元数、欧拉角、旋转矩阵之间可以相互转换,即不同的数据表示形式之间可以相互转换,便于后续计算。在另一个实施例中,也可以采用其他的抖动测量方法对视频抖动的情况进行测量,比如,可以采用特征点匹配方法进行测量。

步骤s204,根据抖动测量数据计算得到当前视频帧对应的初始抖动幅度。

其中,初始抖动幅度是指根据抖动测量数据直接计算得到的用于表示抖动情况的数值。通过终端中的抖动测量仪器(比如,陀螺仪)测量得到的抖动测量数据有时不能直接使用,需要进一步处理才可以使用。比如,如果是通过陀螺仪测量得到的数据,还需要将得到的陀螺仪数据转换为图像坐标系的数据才可使用。初始抖动幅度并不能够直接从抖动测量数据中提取,而是需要根据抖动测量数据进行进一步处理计算才能得到初始抖动幅度。在一个实施例中,计算初始抖动幅度,还需要获取摄像头装置中的内置参数,然后根据抖动测量数据和内置参数计算得到的初始抖动幅度。另外,在获取到抖动测量数据后,还需要将抖动测量数据转换为图像坐标系的数据才可使用。

在一个实施例中,初始抖动幅度包括:初始水平抖动幅度、初始垂直抖动幅度和初始旋转抖动幅度。其中,初始水平抖动幅度是指初始水平抖动的距离,初始垂直抖动幅度是指初始垂直抖动的距离,初始旋转抖动幅度是指初始旋转抖动的角度。

步骤s206,对初始抖动幅度进行滤波调整得到目标抖动幅度。

其中,目标抖动幅度是指进行滤波调整后的抖动幅度,即进行初步增稳后的抖动幅度,也是更加接近真实情况的抖动幅度。在一个实施例中,可以采用卡尔曼滤波器对初始抖动幅度进行滤波处理得到目标抖动幅度。通过将初始抖动幅度作为卡尔曼滤波器的输入,获取卡尔曼滤波器输出的进行滤波处理后的目标抖动幅度。在一个实施例中,目标抖动幅度包括:目标水平抖动幅度、目标垂直抖动幅度和目标旋转抖动幅度。其中,目标水平抖动幅度是指目标水平抖动的距离,目标垂直抖动幅度是指目标垂直抖动的距离,目标旋转抖动幅度是指目标旋转抖动的角度。在一个实施例中,初始抖动幅度可以表示为(dx,dy,da),目标抖动幅度表示为(dx’,dy’,da’)。在一个实施例中,为了更好地对滤波进行理解,可以将(dx,dy,da)累加起来理解为一条路径,卡尔曼滤波器预测后就可以把这条路径上不平滑的地方变得平滑,如图3所示为平滑前和平滑后的路径示意图。图中横坐标表示视频的帧数,纵坐标表示da的累加变化值。

步骤s208,根据目标抖动幅度确定当前视频帧对应的裁剪位置。

其中,为了得到更加稳定的视频画面,需要对采集到的视频画面进行剪裁,根据计算得到的目标抖动幅度调整当前视频帧对应的剪裁位置。在一个实施例中,首先获取当前视频帧对应的初始剪裁位置,初始剪裁位置可以是上一视频帧对应的剪裁位置,也可以是最初设定的剪裁位置。然后根据得到的目标抖动幅度对初始剪裁位置进行调整得到当前视频帧最终对应的剪裁位置。剪裁位置的确定可以通过剪裁框表示,首先获取上一视频帧对应的剪裁框位置,然后根据目标抖动幅度调整得到当前视频帧对应的剪裁框位置,便于后续直接根据剪裁框位置进行剪裁。传统的对视频画面进行剪裁只是简单地从画面中心开始剪裁,无法根据实际运动的情况进行剪裁,容易出现裁剪超出视频边缘的情况。而本实施例中根据目标抖动幅度进行剪裁可以根据抖动实际情况自适应地调整剪裁位置,从而增加视频的增稳效果。

步骤s209,根据当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

其中,在确定了剪裁位置后,就可以根据确定的与当前视频帧对应的剪裁位置进行剪裁得到的增稳后的视频帧。在一个实施例中,确定了当前视频帧的剪裁位置即是确定了当前视频帧对应的剪裁框的位置。根据剪裁框的位置进行剪裁即保留剪裁框内的内容,剪去剪裁框外的内容,剪裁得到的视频画面即增稳后的视频画面。在一个实时视频拍摄的场景中,得到增稳后的视频帧后,将增稳后的视频帧在终端显示,即对视频帧是一个实时增稳处理实时显示的过程。

上述视频增稳方法,通过获取当前视频帧的抖动测量数据,根据抖动测量数据计算得到当前视频帧对应的初始抖动幅度,对初始抖动幅度进行滤波调整得到目标抖动幅度,根据目标抖动幅度确定当前视频帧对应的剪裁位置,根据当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。通过对初始抖动进行滤波可以得到更准确的目标抖动幅度,然后根据目标抖动幅度进行裁剪位置的确定,可以得到更加准确的剪裁位置,从而提高了视频增稳的效果。

如图4所示,在一个实施例中,对初始抖动幅度进行滤波调整得到目标抖动幅度,包括:

步骤s206a,获取当前视频帧的前向视频帧对应的目标抖动幅度,根据前向视频帧的目标抖动幅度计算得到当前视频帧对应的预测抖动幅度。

其中,前向视频帧是指当前视频帧之前的视频帧。前向视频帧可以是一帧,也可以是多帧。比如,可以选取当前视频帧的上一视频帧作为与当前视频帧对应的前向视频帧,也可以选取当前视频帧相邻的前多个视频帧作为与当前视频帧对应的前向视频帧。获取前向视频帧的目标抖动幅度,如果前向视频帧为一帧,直接根据该一帧的目标抖动幅度对当前视频帧的抖动幅度进行预测,得到预测抖动幅度。如果前向视频帧为多帧,则将前多帧的目标抖动幅度的平均值作为与前向视频帧对应的目标抖动幅度,然后得到当前视频帧对应的预测抖动幅度。在一个实施例中,前向视频帧的目标抖动幅度与当前视频帧的预测抖动幅度之间满足一个状态转移函数,状态转移函数可以自定义设置,比如,可以设置x′(k)=f(x(k-1)),其中,x(k-1)表示前向视频帧的目标抖动幅度,f(x)为设置的状态转移函数,x′(k)表示当前视频帧对应的预测抖动幅度。

举个例子,假设相邻视频帧的抖动幅度相同,那么直接将上一视频帧的抖动幅度作为当前视频帧的预测抖动幅度,即满足x′(k)=x(k-1),其中,k表示当前视频帧,k-1表示当前视频帧的上一视频帧,x(k-1)表示上一视频帧对应的目标抖动幅度,x′(k)表示当前视频帧对应的预测抖动幅度。

步骤s206b,获取前向视频帧对应的估计误差值,根据估计误差值计算得到当前视频帧对应的滤波增益值。

其中,估计误差值是指目标抖动幅度与真实抖动幅度之间的误差估计值。由于误差是不可避免的,所以即使是增稳后得到的目标抖动幅度,其与真实抖动幅度还是会存在误差值。前向视频帧对应的估计误差值即前向视频帧的目标抖动幅度与真实抖动幅度之间的误差估计值。滤波增益值是指进行滤波处理时对应的滤波增益参数,用于对预测抖动幅度进行修正。

在一个实施例中,滤波增益值与估计误差值成正相关,即估计误差值越大,滤波增益值越大,相应的滤波增益值和估计误差值之间的关系可以采用如下公式表示:a(k)=p(k-1)/(p(k-1)+r)。其中,a(k)表示滤波增益值,p(k-1)表示前向视频帧的估计误差值,r可以为设置的常数。

步骤s206c,根据滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度。

其中,在得到滤波增益值后,根据滤波增益值和初始抖动幅度对预测抖动幅度进行调整,使预测抖动幅度朝着更加接近真实抖动幅度的方向进行调整,得到目标抖动幅度,目标抖动幅度即调整后得到的抖动幅度。

在一个实施例中,滤波增益值用于对初始抖动幅度与预测抖动幅度的差值进行调整,从而实现了对预测抖动幅度进行调整。目标抖动幅度可以采用如下公式计算得到:x(k)=x′(k)+a(k)*(z(k)-x′(k)),其中,x(k)为当前视频帧的目标抖动幅度,x′(k)为当前视频帧的预测抖动幅度,a(k)为滤波增益值,z(k)为当前视频帧的初始抖动幅度。通过对预测得到的预测抖动幅度进行调整从而可以得到更加贴近实际的目标抖动幅度,从而可以提高视频增稳的效果。

步骤s206d,根据滤波增益值和前向视频帧对应的估计误差值计算得到当前视频帧对应的估计误差值。

其中,当前视频帧的估计误差值是根据当前视频帧对应的滤波增益值和前向视频帧对应的估计误差值计算得到的。在一个实施例中,当前视频帧的误差估计值可以采用如下公式表示:p(k)=(1-a(k))*p(k-1)。其中,p(k-1为前向视频帧对应的估计误差值,a(k)为滤波增益值,p(k)为当前视频帧对应的误差估计值。当前视频帧的估计误差值用于计算下一视频帧对应的滤波增益值,从而实现对下一个视频帧进行视频帧增稳处理,即当前视频帧的滤波增益值的计算是依赖于前向视频帧(比如,上一视频帧)的估计误差值。所以计算当前视频帧的估计误差值是用于计算下一视频帧对应的滤波增益值。依据同样的方法,就可以依次对视频中的每个视频帧进行增稳处理。

在一个实施例中,根据滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度,包括:根据滤波增益值计算得到初始抖动幅度对应的权重和预测抖动幅度对应的权重;根据初始抖动幅度、初始抖动幅度对应的权重、预测抖动幅度和预测抖动幅度对应的权重计算得到目标抖动幅度。

其中,滤波增益值用于对初始抖动幅度和预测抖动幅度所占的权重进行调整,然后通过加权求和得到的目标抖动幅度。在一个实施例中,初始抖动幅度的权重和预测抖动幅度的权重之和为1。举个例子,假设初始抖动幅度表示为z(k),预测抖动幅度表示为x′(k),滤波增益值表示为a(k),将滤波增益值a(k)作为初始抖动幅度z(k)的权重,将1-a(k)作为预测抖动幅度x′(k)的权重。然后通过加权求和得到的目标抖动幅度x(k)=a(k)*z(k)+(1-a(k))*x'(k)。

在一个实施例中,获取前向视频帧对应的估计误差值,根据估计误差值计算得到当前视频帧对应的滤波增益值,包括:获取增益调整值,增益调整值是根据当前视频帧的初始抖动幅度确定的;根据前向视频帧对应的估计误差值和增益调整值计算得到当前视频帧对应的滤波增益值。

其中,增益调整值是指对滤波增益值进行调整的参数值。自适应地调整增益调整值能够得到更准确的滤波增益值,从而得到更准确的目标抖动幅度。为了能够根据视频的抖动情况选择更合适的滤波增益值,根据视频的初始抖动幅度来自适应地确定更加合适的增益调整值。

在一个实施例中,滤波增益值与增益调整值成反相关,即通过控制增益调整值就可以实现对滤波增益值的调整。然后根据前向视频帧对应的估计误差值和增益调整值计算得到当前视频帧对应的滤波增益值。滤波增益值的公式可以采用如下公式表示:a(k)=p(k-1)/(p(k-1)+r),其中,r为增益调整值。可以设置r与初始抖动幅度之间的对应关系,根据获取到的初始抖动幅度来调整r值,从而调整滤波增益值。初始抖动幅度与增益调整值的关系可以根据实际情况自定义设置。一般来说,初始抖动幅度越大,滤波增益值应该越大,相应地需要减少r值。

在一个实施例中,根据前向视频帧对应的估计误差值和增益调整值计算得到当前视频帧对应的滤波增益值,包括:获取当前视频帧对应的预测噪声值;根据前向视频帧对应的估计误差值和当前视频帧对应的预测噪声值计算得到当前视频帧对应的预测误差值;根据当前视频帧对应的预测误差值和增益调整值计算得到与当前视频帧对应的滤波增益值。

其中,滤波增益值与当前视频帧对应的预测误差值和增益调整值相关。当前视频帧对应的预测误差值与前向视频帧对应的估计误差值和当前视频帧对应的噪声值相关。当前视频帧对应的预测噪声值用于表示预测的不确定度,可以设置当前视频帧对应的预测噪声值为一个常数,比如,0.0001。在一个实施例中,当前视频帧对应的预测误差值等于前向视频帧对应的估计误差值与当前视频帧对应的预测噪声之和,在一个实施例中,选取上一视频帧作为当前视频帧的前向视频帧。当前视频帧对应的预测误差值的计算可以用如下公式表示:p′(k)=p(k-1)+q,其中,p′(k)表示当前视频帧对应的预测误差值,p(k-1)表示上一视频帧对应的估计误差值,q为当前视频帧对应的噪声值。最后,根据当前视频帧的预测误差值p′(k)和增益调整值计算得到当前视频帧对应的滤波增益值。在一个实施例中,滤波增益值与预测误差值成正相关,与增益调整值成反相关。即预测误差值越大,滤波增益值越大,增益调整值越大,滤波增益值越小。滤波增益值与预测误差值、增益调整值之间的关系可以采用如下公式表示:a(k)=p′(k)/(p′(k)+r),其中,r表示增益调整值。

在一个实施例中,获取增益调整值,增益调整值是根据当前视频帧的初始抖动幅度确定的,包括:根据当前视频帧对应的初始抖动幅度计算得到当前视频帧对应的运动度;根据运动度计算得到与当前视频帧对应的增益调整值,增益调整值与运动度成反相关。

其中,增益调整值是指用于调整滤波增益值的参数,可以通过调整增益调整值来自适应地调整滤波增益值。增益调整值的大小与当前视频帧抖动的幅度有关。运动度是用于衡量抖动幅度大小的量,抖动越大,相应的运动度越大,即运动度与抖动幅度成正相关。在一个实施例中,滤波增益值与增益调整值成反相关,可以采用如下公式表示:a(k)=p′(k)/(p′(k)+r),其中,r为增益调整值。另外,由于滤波增益值与实际测量得到的初始抖动幅度成正相关,运动大时,需要增大滤波增益值,而滤波增益值与增益调整值成反相关,所以运动大时,需要减小增益调整值。

在一个实施例中,目标抖动幅度包括目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度;根据目标抖动幅度确定当前视频帧对应的剪裁位置,包括:获取初始剪裁框的位置;根据目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度对初始剪裁框进行仿射变换,得到当前视频帧对应的目标剪裁框的位置。

其中,目标抖动幅度包括目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度,目标水平抖动幅度可以采用dx’表示,目标垂直抖动幅度可以采用dy’表示,目标抖动旋转角度可以采用da’表示。仿射变换用于调整剪裁框的位置,包括:调整剪裁框的水平位置、垂直位置和旋转角度。如图5为一个实施例中,调整前后剪裁框位置的示意图,图中实线框为初始剪裁框的位置,虚线框为调整后的剪裁框的位置。

如图6所示,在一个实施例中,根据抖动测量数据计算当前视频帧对应的初始抖动幅度,包括:

步骤s204a,获取摄像装置对应的内置参数,根据内置参数得到对应的内参矩阵。

其中,内参矩阵是根据摄像装置对应的内置参数得到的,用于表示摄像装置本身的参数特征。由于计算初始抖动幅度需要依赖于摄像装置中的内置参数才能计算,所以首先获取内置参数,然后得到内参矩阵,内参矩阵可以通过特地的算法计算得到,比如,张正友棋盘标定法。

步骤s204b,根据抖动测量数据得到抖动旋转矩阵。

其中,为了计算初始抖动幅度,需要将抖动测量数据表示为旋转矩阵的形式,便于和内参矩阵进行乘积运算。抖动测量数据可以采用多种方式表示,而不同方式之间可以相互转换。比如,陀螺仪测量得到的数据可以用四元数、欧拉角和旋转矩阵来表示,如果抖动测量数据为四元数或欧拉角,则需要将其转换为旋转矩阵的表示形式,从而得到抖动旋转矩阵。

步骤s204c,根据抖动旋转矩阵和内参矩阵计算得到当前视频帧对应的初始抖动幅度。

其中,初始抖动幅度是根据抖动旋转矩阵和内参矩阵得到的。通过将动旋转矩阵和内参矩阵进行乘积运算得到变换矩阵,进而从变换矩阵提取出初始抖动幅度。初始抖动幅度包括:初始水平抖动幅度和初始垂直抖动幅度。初始水平抖动幅度和初始垂直抖动幅度可以直接从变换矩阵中的矩阵元素中提取得到。

如图7所示,为一个实施例中,视频增稳方法的流程示意图。首先,获取当前视频帧(即视频帧数据),读取当前视频帧对应的抖动测量数据(比如,陀螺仪数据),将抖动测量数据转换为抖动旋转矩阵r,然后获取摄像装置中的内参矩阵k,将抖动旋转矩阵r与内参矩阵k相乘得到变换矩阵t,然后从变换矩阵t中提取出初始抖动幅度(dx,dy,da)。将初始抖动幅度作为卡尔曼滤波器的输入,获取输出的目标抖动幅度(dx’,dy’,da’)。根据目标抖动幅度对初始剪裁框的位置进行仿射变换得到当前视频帧对应的剪裁框位置,然后根据剪裁框位置对当前视频帧的视频画面进行剪裁得到增稳后的视频画面,并将增稳后的视频画面显示在终端。

如图8所示,为一个实施例中,滤波的原理示意图。首先,根据当前视频帧的前向视频帧的目标抖动幅度对当前视频帧的抖动幅度进行预测得到当前视频帧对应的预测抖动幅度,其次,根据实际测量得到的抖动测量数据计算得到初始抖动幅度(实际测量得到的抖动幅度),不管是预测抖动幅度还是测量得到的抖动幅度都是有误差的,所以需要综合预测抖动幅度与初始抖动幅度来得到目标抖动幅度。在得到目标抖动幅度的过程中,需要计算得到滤波增益值,然后根据滤波增益值确定预测抖动幅度和初始抖动幅度的权重,进而通过加权求和得到目标抖动幅度。

在一个实施例中,滤波的过程可以分为以下几个步骤:

首先,获取上一视频帧对应的目标抖动幅度,根据上一视频帧的目标抖动幅度预测计算得到当前视频帧对应的预测抖动幅度,可以采用如下公式表示该过程:x′(k)=f(x(k-1)),其中,x(k-1)表示前向视频帧的目标抖动幅度,f(x)为设置的状态转移函数,x'(k)表示当前视频帧对应的预测抖动幅度。

其次,获取上一视频帧的估计误差值和当前视频帧的噪声值,根据上一视频帧的估计误差值和当前视频帧的噪声值计算得到当前视频帧对应的预测误差值。可以采用如下公式表示该过程:p′(k)=p(k-1)+q,其中,p′(k)表示当前视频帧对应的预测误差值,p(k-1)表示上一视频帧对应的估计误差值,q为当前视频帧对应的噪声值。

再次,根据初始抖动幅度计算得到增益调整值r,根据当前视频帧对应的预测误差值和增益调整值r计算得到滤波增益值。可以采用如下公式表示该过程:a(k)=p′(k)/(p′(k)+r)。

最后,根据滤波增益值和初始抖动幅度对预测抖动幅度进行调整,得到目标抖动幅度。可以采用如下公式表示该过程:x(k)=x′(k)+a(k)*z(k)-x′(k)),其中,z(k)为初始抖动幅度。

另外,根据当前视频帧对应的预测误差值和滤波增益值计算得到当前视频帧对应的估计误差值。可以采用如下公式表示该过程:p(k)=(1-a(k))*p′(k)。

如图9所示,在一个实施例中,提出了一种视频增稳方法,该方法包括:

步骤s901,获取当前视频帧对应的抖动测量数据,根据抖动测量数据得到抖动旋转矩阵。

步骤s902,获取摄像装置对应的内置参数,根据内置参数得到对应的内参矩阵。

步骤s903,根据抖动旋转矩阵和内参矩阵计算得到当前视频帧对应的初始抖动幅度。

步骤s904,获取当前视频帧的前向视频帧对应的目标抖动幅度,根据前向视频帧的目标抖动幅度计算得到当前视频帧对应的预测抖动幅度。

步骤s905,获取增益调整值,增益调整值是根据当前视频帧的初始抖动幅度确定的;

步骤s906,根据前向视频帧对应的估计误差值和增益调整值计算得到当前视频帧对应的滤波增益值。

步骤s907,根据滤波增益值计算得到初始抖动幅度对应的权重和预测抖动幅度对应的权重;

步骤s908,根据初始抖动幅度、初始抖动幅度对应的权重、预测抖动幅度和预测抖动幅度对应的权重计算得到目标抖动幅度。

步骤s909,获取初始剪裁框的位置;

步骤s910,根据目标抖动幅度对初始剪裁框进行仿射变换,得到当前视频帧对应的目标剪裁框的位置。

步骤s911,根据当前视频帧对应的目标剪裁框的位置进行剪裁得到增稳后的视频帧。

如图10所示,在一个实施例中,提出了一种视频增稳装置,该装置包括:

获取模块1002,用于获取当前视频帧对应的抖动测量数据;

计算模块1004,用于根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;

调整模块1006,用于对所述初始抖动幅度进行滤波调整得到目标抖动幅度;

确定模块1008,用于根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;

剪裁模块1010,用于根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

如图11所示,在一个实施例中,所述调整模块1006包括:

预测幅度计算模块1006a,用于获取当前视频帧的前向视频帧对应的目标抖动幅度,根据所述前向视频帧的目标抖动幅度计算得到当前视频帧对应的预测抖动幅度;

增益值计算模块1006b,用于获取所述前向视频帧对应的估计误差值,根据所述估计误差值计算得到当前视频帧对应的滤波增益值;

修正模块1006c,用于根据所述滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度;

误差值计算模块1006d,用于根据所述滤波增益值和所述前向视频帧对应的估计误差值计算得到当前视频帧对应的估计误差值。

在一个实施例中,所述修正模块还用于根据所述滤波增益值计算得到初始抖动幅度对应的权重和所述预测抖动幅度对应的权重,根据初始抖动幅度、初始抖动幅度对应的权重、预测抖动幅度和预测抖动幅度对应的权重计算得到目标抖动幅度。

在一个实施例中,所述修正模块还用于获取增益调整值,所述增益调整值是根据当前视频帧的初始抖动幅度确定的;根据所述前向视频帧对应的估计误差值和所述增益调整值计算得到当前视频帧对应的滤波增益值。

在一个实施例中,所述修正模块还用于获取当前视频帧对应的预测噪声值;根据所述前向视频帧对应的估计误差值和当前视频帧对应的预测噪声值计算得到当前视频帧对应的预测误差值;根据所述当前视频帧对应的预测误差值和所述增益调整值计算得到与所述当前视频帧对应的滤波增益值。

在一个实施例中,所述修正模块还用于根据当前视频帧对应的初始抖动幅度计算得到当前视频帧对应的运动度,根据所述运动度计算得到与所述当前视频帧对应的增益调整值,所述增益调整值与所述运动度成反相关。

在一个实施例中,所述目标抖动幅度包括目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度;所述确定模块还用于获取初始剪裁框的位置;根据所述目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度对所述初始剪裁框进行仿射变换,得到当前视频帧对应的目标剪裁框的位置。

在一个实施例中,所述计算模块还用于获取摄像装置对应的内置参数,根据所述内置参数得到对应的内参矩阵;根据所述抖动测量数据得到抖动旋转矩阵;根据所述抖动旋转矩阵和所述内参矩阵计算得到当前视频帧对应的初始抖动幅度。

图12示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是终端,也可以是服务器。如图12所示,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现视频增稳方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行视频增稳方法。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的视频增稳方法可以实现为一种计算机程序的形式,计算机程序可在如图12所示的计算机设备上运行。计算机设备的存储器中可存储组成该视频增稳装置的各个程序模块,比如,图10的获取模块1002、计算模块1004、调整模块1006、确定模块1008和剪裁模块1010。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的视频增稳装置中的步骤。例如,图12所示的计算机设备可以通过如图10所示的视频增稳装置的获取模块获取当前视频帧对应的抖动测量数据;通过计算模块1004根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;通过调整模块1006对所述初始抖动幅度进行滤波调整得到目标抖动幅度;通过确定模块1008根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;通过剪裁模块1010根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:获取当前视频帧对应的抖动测量数据;根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;对所述初始抖动幅度进行滤波调整得到目标抖动幅度;根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

在一个实施例中,所述对所述初始抖动幅度进行滤波调整得到目标抖动幅度,包括:获取当前视频帧的前向视频帧对应的目标抖动幅度,根据所述前向视频帧的目标抖动幅度计算得到当前视频帧对应的预测抖动幅度;获取所述前向视频帧对应的估计误差值,根据所述估计误差值计算得到当前视频帧对应的滤波增益值;根据所述滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度;根据所述滤波增益值和所述前向视频帧对应的估计误差值计算得到当前视频帧对应的估计误差值。

在一个实施例中,所述根据所述滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度,包括:根据所述滤波增益值计算得到初始抖动幅度对应的权重和所述预测抖动幅度对应的权重;根据初始抖动幅度、初始抖动幅度对应的权重、预测抖动幅度和预测抖动幅度对应的权重计算得到目标抖动幅度。

在一个实施例中,所述获取所述前向视频帧对应的估计误差值,根据所述估计误差值计算得到当前视频帧对应的滤波增益值,包括:获取增益调整值,所述增益调整值是根据当前视频帧的初始抖动幅度确定的;根据所述前向视频帧对应的估计误差值和所述增益调整值计算得到当前视频帧对应的滤波增益值。

在一个实施例中,所述根据所述前向视频帧对应的估计误差值和所述增益调整值计算得到当前视频帧对应的滤波增益值,包括:获取当前视频帧对应的预测噪声值;根据所述前向视频帧对应的估计误差值和当前视频帧对应的预测噪声值计算得到当前视频帧对应的预测误差值;根据所述当前视频帧对应的预测误差值和所述增益调整值计算得到与所述当前视频帧对应的滤波增益值。

在一个实施例中,所述获取增益调整值,所述增益调整值是根据当前视频帧的初始抖动幅度确定的,包括:根据当前视频帧对应的初始抖动幅度计算得到当前视频帧对应的运动度;根据所述运动度计算得到与所述当前视频帧对应的增益调整值,所述增益调整值与所述运动度成反相关。

在一个实施例中,所述目标抖动幅度包括目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度;所述根据所述目标抖动幅度确定当前视频帧对应的剪裁位置,包括:获取初始剪裁框的位置;根据所述目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度对所述初始剪裁框进行仿射变换,得到当前视频帧对应的目标剪裁框的位置。

在一个实施例中,所述根据所述抖动测量数据计算所述当前视频帧对应的初始抖动幅度,包括:获取摄像装置对应的内置参数,根据所述内置参数得到对应的内参矩阵;根据所述抖动测量数据得到抖动旋转矩阵;根据所述抖动旋转矩阵和所述内参矩阵计算得到当前视频帧对应的初始抖动幅度。

在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:获取当前视频帧对应的抖动测量数据;根据所述抖动测量数据计算得到所述当前视频帧对应的初始抖动幅度;对所述初始抖动幅度进行滤波调整得到目标抖动幅度;根据所述目标抖动幅度确定所述当前视频帧对应的裁剪位置;根据所述当前视频帧的剪裁位置进行剪裁得到增稳后的视频帧。

在一个实施例中,所述对所述初始抖动幅度进行滤波调整得到目标抖动幅度,包括:获取当前视频帧的前向视频帧对应的目标抖动幅度,根据所述前向视频帧的目标抖动幅度计算得到当前视频帧对应的预测抖动幅度;获取所述前向视频帧对应的估计误差值,根据所述估计误差值计算得到当前视频帧对应的滤波增益值;根据所述滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度;根据所述滤波增益值和所述前向视频帧对应的估计误差值计算得到当前视频帧对应的估计误差值。

在一个实施例中,所述根据所述滤波增益值和初始抖动幅度对当前视频帧对应的预测抖动幅度进行修正,得到目标抖动幅度,包括:根据所述滤波增益值计算得到初始抖动幅度对应的权重和所述预测抖动幅度对应的权重;根据初始抖动幅度、初始抖动幅度对应的权重、预测抖动幅度和预测抖动幅度对应的权重计算得到目标抖动幅度。

在一个实施例中,所述获取所述前向视频帧对应的估计误差值,根据所述估计误差值计算得到当前视频帧对应的滤波增益值,包括:获取增益调整值,所述增益调整值是根据当前视频帧的初始抖动幅度确定的;根据所述前向视频帧对应的估计误差值和所述增益调整值计算得到当前视频帧对应的滤波增益值。

在一个实施例中,所述根据所述前向视频帧对应的估计误差值和所述增益调整值计算得到当前视频帧对应的滤波增益值,包括:获取当前视频帧对应的预测噪声值;根据所述前向视频帧对应的估计误差值和当前视频帧对应的预测噪声值计算得到当前视频帧对应的预测误差值;根据所述当前视频帧对应的预测误差值和所述增益调整值计算得到与所述当前视频帧对应的滤波增益值。

在一个实施例中,所述获取增益调整值,所述增益调整值是根据当前视频帧的初始抖动幅度确定的,包括:根据当前视频帧对应的初始抖动幅度计算得到当前视频帧对应的运动度;根据所述运动度计算得到与所述当前视频帧对应的增益调整值,所述增益调整值与所述运动度成反相关。

在一个实施例中,所述目标抖动幅度包括目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度;所述根据所述目标抖动幅度确定当前视频帧对应的剪裁位置,包括:获取初始剪裁框的位置;根据所述目标水平抖动幅度、目标垂直抖动幅度和目标抖动旋转角度对所述初始剪裁框进行仿射变换,得到当前视频帧对应的目标剪裁框的位置。

在一个实施例中,所述根据所述抖动测量数据计算所述当前视频帧对应的初始抖动幅度,包括:获取摄像装置对应的内置参数,根据所述内置参数得到对应的内参矩阵;根据所述抖动测量数据得到抖动旋转矩阵;根据所述抖动旋转矩阵和所述内参矩阵计算得到当前视频帧对应的初始抖动幅度。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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