一种视频抖动检测方法、终端设备及存储介质与流程

文档序号:15350457发布日期:2018-09-04 23:16阅读:633来源:国知局

本发明涉及图像处理领域,尤其涉及一种视频抖动检测的方法、终端设备及存储介质。



背景技术:

近年来,视频监控受到安保项目以及各行业视频监控需求快速增长等因素的刺激和拉动,取得了快速发展,整个市场规模迅速扩大。而监控系统想要发挥应有的作用,必须要保证传输视频的质量,需要对监控系统进行运维与维护。随着监控市场的不断发展与扩充,前端的监控摄像头数量不断增大,人工运维的工作量越来越大,成本也越来越高。因此,如何提高视频监控系统运维工作的效率,减少视频监控系统的运维成本成为了视频监控领域需要迫切解决的问题。

视频抖动是监控系统中常出现的一种故障,通常由于摄像头固定不够牢固或外力、人为作用下而导致的视频画面产生的周期性或无规律晃动。而这种画面的晃动在图像中往往表现为图像整体发生了某一方向的位移。因此诊断视频抖动的关键在于如何检测出视频画面的整体位移。目前基于图像整体位移检测视频抖动有光流法,特征点匹配法,灰度投影等多种方法。其中光流法受视频画面中移动物体的影响比较大,特征点匹配法需要大量的计算开销,灰度投影法计算量相对较小,但准确性相对较差。



技术实现要素:

针对灰度投影法准确性较差的问题,本发明一种视频抖动检测方法、终端设备及存储介质,通过分区域进行灰度投影来计算位移,并根据产生位移的子区域的个数来判断换面抖动。

具体方案如下:

一种视频抖动检测方法,包括以下步骤:

s1:从视频流中选取依次相邻的两帧图像,并将所述两帧图像转换到灰度空间;

s2:将图像划分成p×q个大小相同的子区域;

s3:分别计算各子区域相对于两帧图像的实际位移;

s4:排除移动物体的干扰,确定实际的产生位移的子区域的个数n;

s5:根据产生位移的子区域的个数n,得到所述两帧图像间的抖动值k;

s6:重复步骤s1~s5,分别计算l帧图像内两两帧图像之间的抖动值,统计l帧图像的抖动总值kl,设定kl为l帧图像内两两帧图像之间的抖动值之和;

s7:判定抖动总值kl是否大于抖动阈值h,若大于,则判定产生抖动;否则,则判定未产生抖动。

进一步的,步骤s2中将图像划分为p×q个大小相同的子区域包括将图像四周向内缩进额定数目个像素点后再进行划分。

进一步的,步骤s3中具体计算步骤如下:

s31:分别计算相邻两帧图像对应的各个子区域的水平灰度投影和垂直灰度投影,所述水平灰度投影和垂直灰度投影的计算方法相同,以水平灰度投影为例,具体计算步骤包括:

s311:计算图像中每一行所有像素值的和gk(i):

其中gk(i,j)为坐标(i,j)位置像素点的值,n为每行像素点的个数;

s312:计算行像素值和的均值mr:

其中m为图像行的个数;

s313:计算水平灰度投影pr(i):

pr(i)=gk(i)-mr

s32:根据水平灰度投影和垂直灰度投影,计算各子区域相对于相邻两帧图像的水平位移和垂直位移,所述水平位移和垂直位移的计算方法相同,以水平位移为例,具体计算步骤包括:

s321:计算水平灰度投影相关函数dx(w):

其中pcur为当前帧对应区域的水平灰度投影,pref为前一帧对应区域水平灰度投影,m为设定值,代表最大位移计算范围;

s322:在1≤w≤2m+1的范围内,计算相关函数使dx(w)取得最小值的wmin;

s323:水平位移dx的大小:dx=m+1-wmin;

s33:根据各个子区域的水平位移和垂直位移计算各子区域的实际位移d,所述实际位移d的计算方法:

进一步的,步骤s4中所述的排除移动物体的干扰的方法为通过计算各个子区域的标准偏差来进行排除。

进一步的,步骤s4的具体步骤如下:

s41:设定子区域集为s={s1,s2,……,sn},其中n为产生位移的子区域的个数,设定n=p×q,s1、s2、……、sn分别表示第1、第2、……、第n个子区域;

s42:计算子区域集s中的所有子区域的位移均值m和标准差d,计算标准偏差s=d/m;

s43:判定是否满足标准偏差s≥1,若满足,更新子区域集s为删除子区域集s内与位移均值m相差最大的位移所在的子区域后的子区域集,设定n=n-1,返回s42;否则,进入s5。

进一步的,步骤s5中根据子区域位移标准差与位移均值得出的标准差与实际产生位移的子区域个数共同得出所述两帧图像间的抖动值k,具体计算公式为:

k=|1-d/m|*n2

其中d为子区域位移值的标准差,m为子区域位移均值,n为产生位移的子区域个数。

进一步的,步骤s7中所述抖动阈值h的设定与l的个数相关,具体大小根据实验数据或经验数据得出。

进一步的,步骤s7中所述抖动阈值h=2l。

一种视频抖动检测终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现本发明实施例上述方法的步骤。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。

本发明采用如上技术方案,能够准确的检测出视频画面的抖动,相比于光流法,特征点匹配等方法具有更小的计算量,实时性好,且对于画面中的移动物体等干扰具有非常好的抗性。

附图说明

图1所示为本发明实施例一的流程示意图。

图2所示为本发明实施例一的子区域划分示意图。

图3所示为本发明实施例一的灰度投影计算结果。

图4所示为本发明实施例一的垂直位移、水平位移和实际位移的计算结果。

具体实施方式

为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。

现结合附图和具体实施方式对本发明进一步说明。

实施例一

本发明实施例一提供了一种视频抖动检测方法,如图1所示,其为本发明实施例所述的视频抖动检测方法的流程示意图,所述方法可包括以下步骤:

s1:从视频流中选取依次相邻的两帧图像,并将两帧图像转换到灰度空间,该实施例中,为从彩色空间转换到灰度空间,所述彩色空间包括yuv和rgb等。

s2:将图像划分为p×q个大小相同的子区域,如图2所示,该实施例中,将图像划分为2×2=4个大小相同的子区域,分别为左上、右上、坐下、右下四个子区域,进一步的,为了后续计算区域位移的方便,划分子区域时由图像四周向内缩进额定数目个像素点,该实施例中缩进20个像素点。

s3:分别计算各子区域相对于两帧图像的实际位移,该实施例中,具体计算步骤如下:

s31:分别计算相邻两帧图像对应p×q个子区域的垂直和水平方向的灰度投影。

如图3所示为本实施例的灰度投影计算结果,所述图像的水平和垂直灰度投影的计算方法相同,以水平投影为例,具体计算步骤如下:

s311:计算图像中每一行所有像素值的和gk(i):

其中gk(i,j)为坐标(i,j)位置像素点的值,n为每行像素点的个数。

s312:计算行像素值和的均值mr:

其中m为图像行的个数。

s313:计算水平灰度投影pr(i):

pr(i)=gk(i)-mr

s32:根据水平和垂直方向的灰度投影,计算相邻两帧图像对应p×q个子区域的水平和垂直位移。

所述水平和垂直位移的计算方法,以水平位移为例,具体步骤如下:

s321:计算水平灰度投影相关函数dx(w):

其中pcur为当前帧对应区域的水平灰度投影,pref为前一帧对应区域水平灰度投影,m为设定值,代表最大位移计算范围。

s322:在1≤w≤2m+1的范围内,计算相关函数使dx(w)取得最小值的wmin。

s323:水平位移dx的大小:

dx=m+1-wmin

s33:根据p×q个子区域水平和垂直位移计算p×q个子区域的实际位移d。

所述实际位移d的计算方法:

如图4所示为本实施例中垂直位移、水平位移和实际位移计算结果。

s4:排除干扰,确定实际产生位移的子区域的个数n。该实施例中,所述干扰为移动的物体,具体的为计算各个子区域的标准偏差来进行排除,移动的物体其所产生的实际位移会远大于抖动所产生的位移,因此其位移应偏离所有子区域的位移均值。

具体步骤如下:

s41:设定子区域集为s={s1,s2,……,sn},其中n为产生位移的子区域的个数,设定n=p×q,s1、s2、……、sn分别表示第1、第2、……、第n个子区域。该实施例中所述子区域集为s={s1,s2,s3,s4}。

s42:计算子区域集s中的所有子区域的位移均值m和标准差d,计算标准偏差s=d/m。

s43:判定是否满足标准偏差s≥1,若满足,更新子区域集s为删除子区域集s内与位移均值m相差最大的位移所在的子区域后的子区域集,设定n=n-1,返回s42;否则,进入s5。

该实施例中当满足s≥1时,假设子区域s2为与位移均值m相差最大的位移所在的子区域,则更新后的子区域集s={s1,s3,s4}。

s5:根据产生位移的子区域的个数n,得到相邻两帧间抖动值k。

具体的,为根据子区域位移标准差与位移均值得出的标准差与实际产生位移的子区域个数共同得出所述两帧图像间的抖动值k,具体计算公式为:

k=|1-d/m|*n2

其中d为子区域位移值的标准差,m为子区域位移均值,n为产生位移的子区域个数。

s6:重复步骤s1~s5,分别计算l帧图像内两两帧图像之间的抖动值,统计l帧图像的抖动总值kl,设定kl为l帧图像内两两帧图像之间的抖动值之和。

具体的,设定第i帧图像与第i+1帧图像间的抖动值为ki,其中i为正整数,则第1帧图像与第2帧图像间的抖动值为k1,第2帧图像与第3帧图像间的抖动值为k2,第3帧图像与第4帧图像间的抖动值为k3,……,第l-1帧图像与第l帧图像间的抖动值为kl-1,则l帧图像的抖动总值kl=k1+k2+…+kl-1。

s7:判定抖动总值kl是否大于抖动阈值h,若大于抖动阈值h,则判定产生抖动;否则,则判定未产生抖动。所述抖动阈值h的设定与l的个数相关,具体大小根据实验数据或经验数据得出,该实施例中,当l=25时,h=50;当l=50时,h=100,因此设定h=2l。

本实施例中,将图像分为多个子区域,计算各区域的灰度投影,根据相邻帧对应子区域灰度投影的关系计算图像的位移,对产生位移的子区域个数进行统计筛选,得到相邻帧图像的抖动结果,并对一段时间内每相邻帧图像的抖动结果进行统计得到该时间内视频的抖动结果,该结果若大于设定的阈值,则判定为画面产生抖动。

实施例二:

本发明还提供一种视频抖动检测终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。

进一步地,作为一个可执行方案,所述视频抖动检测终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述视频抖动检测终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述视频抖动检测终端设备的组成结构仅仅是视频抖动检测终端设备的示例,并不构成对视频抖动检测终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述视频抖动检测终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。

进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(centranprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitansignanprocessor,dsp)、专用集成电路(appnicationspecificintegratedcircuit,asic)、现成可编程门阵列(fiend-programmabnegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述视频抖动检测终端设备的控制中心,利用各种接口和线路连接整个视频抖动检测终端设备的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述视频抖动检测终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigitan,sd)卡,闪存卡(fnashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。

所述视频抖动检测终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onnymemory)、随机存取存储器(ram,randomaccessmemory)以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。

尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,以上所述仅为本发明的一个较佳的实施案例,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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