具体实施方式
为了解决现有技术中存在的问题,本发明提出了一种新的移动侦测方法,即在对视频图像中需要被监控的区域进行移动侦测之前,首先判断视频图像之间是否存在整体偏移,当存在整体偏移时,对视频图像帧进行补偿后,再采用现有移动侦测方法对需要被监控的区域进行移动侦测。因此,通过本发明方法能够去除因监控设备的抖动而对现有移动侦测带来的影响,从而准确地完成对视频图像中需要被监控的区域的监控。
基于上述介绍,本发明所述方案的具体实现包括:
判断视频图像中的当前帧与当前帧的参考帧之间是否存在整体偏移,当存在整体偏移时,对参考帧或当前帧进行补偿,得到补偿后的参考帧或当前帧,统计补偿后的参考帧的区域同当前帧对应区域的差异、或统计补偿后的当前帧的区域同当前帧的参考帧对应区域的差异,根据所述统计的差异确定当前帧的区域是否有物体移动或外物入侵;否则,统计当前帧的区域同当前帧的参考帧对应区域的差异,根据所述统计的差异确定当前帧的区域是否有物体移动或外物入侵。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
需要说明的是,本实施例也是以图1所示视频序列中的第(n+3)帧为当前帧、区域A为视频序列中需要被监控的区域为例,具体可参见图2给出的本发明移动侦测方法实施例的工作流程。如图2所示,该流程包括以下步骤:
步骤201:选取当前帧的n个区域,所述n为正整数。
如果将一帧图像看作是一个平面,则至少通过平面上3个区域的运动方向才能够判断出一个平面的运动趋势;此外,如果选取的区域距离越近,它们之间相关性越强,也就不能获得更多的全部帧信息。因此,在本步骤,需要选取的当前帧的区域应满足:
1)选取的当前帧的区域的个数n应大于等于3;
2)选取的各个区域之间的距离应尽量大些。
需要说明的是,在本步骤中,所述选取的各个区域的边界是可以重叠的,也可以是不重叠的。
步骤202:分别计算选取出的每个区域的运动矢量。
在本步骤中,每个区域的运动矢量的计算方式可以为:首先,在已选取的一个区域中选择一个宏块,作为当前宏块;其次,按照一定的匹配准则,在参考帧的对应区域中找出与所述选择的当前宏块最相似的宏块,作为匹配块;最后,由匹配块与当前宏块在帧中的相对位置得到当前宏块的运动位移,将所述当前宏块的运动位移作为当前宏块所在区域的运动失量。
需要说明的是,由于区域的中间位置在工程上便于处理和实现,因此,在本步骤中,所述选择的当前宏块最好为区域的中间位置的宏块。实际中,还可选择区域中其它位置的宏块,以不影响本发明实施例的实现为准。
还需说明的是,在本步骤中,采用了最小绝对差的匹配准则来找匹配块,则区域的运动失量可通过如下公式计算得到:
其中,所述f录前帧和f参考帧分别为当前帧和参照帧的像素点的像素值,所述(i,j)为像素点在帧中的位置,所述M×N为宏块大小。
当i=i0,j=j0时,MAD(i0,j0)取得最小值,则区域的运动矢量mv即为(i0,j0)。
进一步地,通过上述计算方式即可得到n个区域的运动矢量mv 1、mv 2、...mv n。
此外,在本步骤中,还可采用其它的匹配准则来找匹配块,具体采用何种匹配准则以不影响本发明实施例的实现为准。
进一步地,本步骤中所采用的参考帧的选取方式同现有技术,不再赘述。
步骤203:根据计算出的运动矢量,判断当前帧同参考帧之间是否存在整体偏移,如果是,执行步骤204;否则,执行步骤205。
在本步骤中,如果计算得到的运动失量都不为零,且n个区域的运动矢量在水平方向上的值都相等、在垂直方向上的值都相等,则判断为当前帧同参考帧之间存在整体偏移。
需要说明的是,在计算运动矢量时可能存在误差,因此,在本步骤中,判断运动矢量在水平方向上的值都相等、在垂直方向上的值都相等是在误差允许的范围内进行的。通常,误差的大小是通过多个特定的测试序列得到的,在实际应用中多以实际实现为准。
在本步骤中,假设两个运动矢量mv 1和mv 2分别为(i1,j1)和(i2,j2),这两个运动矢量在水平方向上的值i1和i2、以及垂直方向上的值j1和j2在误差允许的范围内都分别相等可理解为:
令两个运动矢量mv 1和mv 2在水平方向上的差的绝对值delta_x、在垂直方向上的差的绝对值delta_y、在水平方向上的均值ux、以及在垂直方向上的均值uy分别为:
delta_x=abs(i1-i2),delta_y=abs(j1-j2),ux=(i1+i2)/2,uy=(j1+j2)/2,
则这两个运动矢量的在水平方向上的方差sigma_x和在垂直方向上的方差sigma_y可通过如下公式计算得到,
sigma_x*sigma_x=((ux-i1)*(ux-i1)+(ux-i2)*(ux-i2))/2,
sigma_y*sigma_y=((uy-j1)*(uy-j1)+(uy-j2)*(uy-j2))/2。
此时,当满足delta_x<k*sigma_x且delta_y<k*sigma_y时,即可认为mv 1和mv 2在误差允许的范围内相等。其中,所述K为自然数,且1≤K≤3,当视频图像质量比较好时,对图像的影响比较小,建议选取K=1;反之,当视频图像质量比较差时,建议选取K=3;通常可选取K=2。
步骤204:通过计算出的运动矢量对参考帧或当前帧进行补偿,得到补偿后的参考帧或当前帧。
当当前帧相对于参考帧存在整体偏移时,需要进行补偿处理,在本步骤中,可以通过对参考帧进行补偿处理来实现,也可以通过对当前帧进行补偿处理处理来实现,以下分别介绍这两种补偿方式。
对参考帧进行补偿处理的具体实现为:首先,对计算出的n个运动矢量在水平方向和垂直方向分别求平均,得到n个区域在水平方向上的平均运动矢量、和在垂直方向上的平均运动矢量,即mv平均;其次,在参考帧中找到对应于当前帧的区域A位置的区域,依据mv平均的值,将所述找到的区域分别在水平方向和垂直方向上进行移动,得到补偿后的参考帧。
对当前帧进行补偿处理的具体实现为:首先,也需要对计算出的n个运动矢量在水平方向和垂直方向分别求平均,得到n个区域在水平方向上的平均运动矢量、和在垂直方向上的平均运动矢量,即mv平均;其次,依据mv平均的值,将所述当前帧的区域A分别在水平方向和垂直方向上进行相反方向上的移动,得到补偿后的当前帧。
步骤205:对当前帧的区域A采用现有方法进行移动侦测处理。
需要说明的是,在本步骤中,当步骤204为对参考帧进行补偿时,需要通过统计补偿后的参考帧的区域同当前帧对应区域的差异来完成对当前帧的区域A进行移动侦测;当步骤204为对当前帧进行补偿时,需要统计补偿后的当前帧的区域同当前帧的参考帧对应区域的差异来完成对当前帧的区域A进行移动侦测。
还需说明的是,对当前帧的区域A进行移动侦测即能够统计出当前帧的区域A与参考帧的区域A是否存在差异,进而能够根据统计出的差异确定出当前帧的区域A是否有物体移动或外物入侵。
如何采用现有方法进行移动侦测已为现有技术,这里不再对其进行赘述。
至此,即完成了本发明所采用的移动侦测方法的整个工作流程。
基于上述,图3为本发明移动侦测装置实施例的组成结构示意图。如图3所示,该装置包括:判断模块31、补偿模块32和统计模块33,
所述判断模块31,用于判断视频图像中的当前帧与当前帧的参考帧之间是否存在整体偏移。
所述补偿模块32,用于当判断模块31判断出存在整体偏移时,对参考帧或当前帧进行补偿,得到补偿后的参考帧或当前帧。
所述统计模块33,用于当判断模块31判断出存在整体偏移时,统计由补偿模块32补偿后的参考帧的区域同当前帧对应区域的差异、或统计由补偿模块补偿后的当前帧的区域同当前帧的参考帧对应区域的差异,根据所述统计的差异确定当前帧的区域是否有物体移动或外物入侵;或,当判断模块31判断出不存在整体偏移时,统计当前帧的区域同当前帧的参考帧对应区域的差异,根据所述统计的差异确定当前帧的区域是否有物体移动或外物入侵。
其中,所述判断模块31又可包括:选取子模块311,计算子模块312和判断子模块313,
所述选取子模块311,用于选取视频图像中当前帧的n个区域,所述n为正整数。
所述计算子模块312,用于计算由选取子模块311选取出的每个区域的运动矢量。
所述判断子模块313,用于根据由计算子模块312计算出的运动矢量,判断当前帧与当前帧的参考帧之间是否存在整体偏移。
进一步地,所述计算子模块312又可具体包括:选择子单元3121,匹配子单元3122和计算子单元3123,所述判断子模块313又可具体包括:判断子单元3131,其中,
所述选择子单元3121,用于在由选取子模块311选取出的一个区域中选择一个宏块作为当前宏块;
所述匹配子单元3122,用于按照一定的匹配准则,在参考帧的对应区域中找出与所述选择子单元3121选择的当前宏块最相似的宏块,作为匹配块;
所述计算子单元3123,用于由所述匹配子单元3122找出的匹配块与当前宏块在帧中的相对位置计算得到当前宏块的运动位移,将所述当前宏块的运动位移作为区域的运动失量。
所述判断子单元3131,用于当计算得到的运动失量不为零,且n个区域的运动矢量在水平方向上的值和在垂直方向上的值在误差运行的范围内分别都相等时,判断为当前帧与当前帧的参考帧之间存在整体偏移。
所述补偿模块32又可包括:求平均子模块321和补偿子模块322,
其中,当所述补偿模块32对参考帧进行补偿时,
所述求平均子模块321,用于对由计算子模块312计算出的n个运动矢量在水平方向和垂直方向分别求平均,得到n个区域在水平方向上的平均运动矢量、和在垂直方向上的平均运动矢量;
所述补偿子模块322,用于在参考帧中找到对应于当前帧的区域所在位置的区域,依据所述求平均子模块321得到的水平方向上的平均运行矢量和垂直方向上的平均运动矢量,将所述找到的区域分别在水平方向和垂直方向上分别进行移动,得到补偿后的参考帧。
当所述补偿模块32对当前帧进行补偿时,
所述求平均子模块321,用于对由计算子模块312计算出的n个运动矢量在水平方向和垂直方向分别求平均,得到n个区域在水平方向上的平均运动矢量、和在垂直方向上的平均运动矢量;
所述补偿子模块322,用于依据所述求平均子模块321得到的水平方向上的平均运行矢量和垂直方向上的平均运动矢量,将所述当前帧的区域分别在水平方向和垂直方向上进行相反方向上的移动,得到补偿后的当前帧。
所述统计模块33又可包括:比较子模块331和确定子模块332,其中,
所述比较子模块331,用于当判断模块31判断出存在整体偏移时,将补偿后的参考帧的区域同当前帧的对应区域中每一个像素点上的像素值进行比较、或将补偿后的当前帧的区域同当前帧的参考帧对应区域中每一个像素点上的像素值进行比较;或,当判断模块31判断出不存在整体偏移时,将当前帧的区域中每一个像素点上的像素值同参考帧的对应区域中每一个像素点上的像素值进行比较;
所述确定子模块332,用于当比较子模块331比较出区域中有超过一半以上的像素点的像素值发生了变化时,确定为当前帧的区域有物体移动或外物入侵;否则,确定为当前帧的区域没有物体移动或外物入侵。
至此,即得到了本发明实施例的移动侦测装置。
图3所示装置的具体工作流程请参照图2所示方法实施例中的相应说明,此处不再赘述。
总之,本发明所采用的移动侦测方法,在对视频图像中需要被监控的区域进行移动侦测之前,首先判断视频图像之间是否存在整体偏移,当存在整体偏移时,对视频图像帧进行补偿后,再采用现有移动侦测方法对需要被监控的区域进行移动侦测。因此,通过本发明移动侦测方法能够去除因监控设备的抖动而对现有移动侦测带来的影响,从而准确地完成对视频图像中需要被监控的区域的监控。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。