一种运动检测的方法转让专利

申请号 : CN201010296441.2

文献号 : CN101951462B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高飞

申请人 : 无锡中星微电子有限公司

摘要 :

本发明提供一种运动检测的方法,其包括将帧图像分成不重叠的X组分块;在每相邻的X帧图像的第K帧图像中计算第K组的各分块的图像表征;计算当前帧图像的被计算组的各分块的图像表征和先前帧图像的对应组的各分块的图像表征的差,并计算该被计算组中的各分块的图像表征的差大于图像表征阈值的分块个数,在大于图像表征阈值的分块个数大于个数阈值时,则判定当前帧图像发生了运动,其中1≤K≤X。

权利要求 :

1.一种运动检测的方法,其特征在于,其包括:

将帧图像分成不重叠的X组分块,若原有帧图像为M行N列的棋盘,则将原有帧图像分成pM行qN列的棋盘分块,其中X=p×q;

在每相邻的X帧图像的第K帧图像中计算第K组的各分块的图像表征;

计算当前帧图像的被计算组的各分块的图像表征和先前帧图像的对应组的各分块的图像表征的差,并计算该被计算组中的各分块的图像表征的差大于图像表征阈值的分块个数,在大于图像表征阈值的分块个数大于个数阈值时,则判定当前帧图像发生了运动,其中

1≤K≤X。

2.根据权利要求1所述的运动检测的方法,其特征在于:所述图像表征包括所述分块的亮度均值、色度均值或饱和度均值。

3.根据权利要求2所述的运动检测的方法,其特征在于:所述分块的亮度均值定义为:Y_mean=sum(Y(i属于当前分块))/(m×n),其中,Y(i属于当前分块)为当前分块内各像素点的亮度值,m、n分别为对帧图像分组后形成的分块的宽和高。

4.根据权利要求3所述的运动检测的方法,其特征在于:根据亮度值计算所述各组时间相邻的帧间差时,所述帧间差定义为:dY_mean(I,i,j)=|Y_mean(LK,i,j)-Y_mean((I+X)K,i,j)|,其中,I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,M、N分别为原有帧图像中分块的行数和列数。

5.根据权利要求4所述的运动检测的方法,其特征在于:所述计算各组时间相邻的帧间差大于阈值的数目,所述数目定义为:num_motion=sum(dY_mean(I,i,j)>Thresh_Y,i为1-M之间的任一自然数,j为1-N之间的任一自然数),其中M、N分别为原有帧图像中分块的行数和列数。

6.根据权利要求2所述的运动检测的方法,其特征在于:所述分块的色度均值定义为:U_mean=sum(U(i属于当前分块))/(m×n),其中,U(i属于当前分块)为当前分块内各像素点的色度值,m、n分别为对帧图像分组后形成的分块的宽和高。

7.根据权利要求6所述的运动检测的方法,其特征在于:根据色度值计算所述各组时间相邻的帧间差时,所述帧间差定义为:dU_mean(I,i,j)=|U_mean(IK,i,j)-U_mean((I+X)K,i,)|,其中,I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,M、N分别为原有帧图像中分块的行数和列数。

8.根据权利要求7所述的运动检测的方法,其特征在于:所述计算各组时间相邻的帧间差大于阈值的数目,所述数目定义为:num_motion=sum(dU_mean(I,i,j)>Thresh_U,i为1-M之间的任一自然数,j为1-N之间的任一自然数),其中M、N分别为原有帧图像中分块的行数和列数。

9.根据权利要求1所述的运动检测的方法,其特征在于:所述每组的分块利用同一个数值进行标记。

说明书 :

一种运动检测的方法

【技术领域】

[0001] 本发明涉及运动检测领域,尤其是关于一种将帧图像分为多组帧图像进行运动检测的方法。【背景技术】
[0002] 动态场视觉监控室计算机视觉领域中一个非常活跃的新兴应用方向,其不仅用摄像机代替人眼,而且还用计算机代替人、协助人来完成监视或控制任务从而减轻人的负担。视觉监控具有广泛的应用前景和潜在的经济价值。
[0003] 视觉监控中一个非常重要的研究内容就是从监控摄像机所捕捉的序列帧图像中检测是否有物体运动。目前,帧图像运动检测的常用方法主要有连续帧间差分法、背景差分法和光流法。所述连续帧间差分法对于动态环境有很好的适应性,其主要思想是:将帧图像分成若干小块,计算各小块的亮度均值,判断帧间各小块的变化判断是否发生运动。其缺点是:运动判别的分辨率低,使得分块内的运动无法判断。
[0004] 因此,需要提出一种新的技术方案来克服上述问题。【发明内容】
[0005] 本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。
[0006] 本发明的目的在于提供一种运动检测的方法,其降低了运动判别的复杂度和代价。
[0007] 根据本发明的一方面,本发明提供一种运动检测的方法,其包括将帧图像分成不重叠的X组分块,若原有帧图像为M行N列的棋盘,则将原有帧图像分成pM行qN列的棋盘分块,其中X=p×q;在每相邻的X帧图像的第K帧中计算第K组的分块的图像表征;计算当前帧图像的被计算组的各分块的图像表征和先前帧图像的对应组的各分块的图像表征的差,并计算该被计算组中的各分块的图像表征的差大于图像表征阈值的分块个数,在大于图像表征阈值的分块个数大于个数阈值时,则判定当前帧图像发生了运动,其中1≤K≤X。
[0008] 进一步的,所述图像表征包括所述分块的亮度均值、色度均值或饱和度均值。
[0009] 进一步的,所述分块的亮度均值定义为:
[0010] Y_mean=sum(Y(i属于当前分块))/(m×n),
[0011] 其中,Y(i属于当前分块)为当前分块内各像素点的亮度值,m、n分别为对帧图像分组后形成的分块的宽和高。
[0012] 进一步的,根据亮度值计算所述各组时间相邻的帧间差时,所述帧间差定义为:
[0013] dY_mean(I,i,j)=|Y_mean(IK,i,j)-Y_mean((I+1)K,i,j)|,[0014] 其中,I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,M、N分别为原有帧图像中分块的行数和列数。
[0015] 进一步的,所述计算各组时间相邻的帧间差大于阈值的数目,所述数目定义为:
[0016] num_motion=sum(dY_mean(I,i,j)>Thresh_Y,i为1-M之间的任一自然数,j为1-N之间的任一自然数),其中M、N分别为原有帧图像中分块的行数和列数。
[0017] 进一步的,所述分块的色度均值定义为:
[0018] U_mean=sum(U(i属于当前分块))/(m×n),
[0019] 其中,U(i属于当前分块)为当前分块内各像素点的色度值,m、n分别为对帧图像分组后形成的分块的宽和高。
[0020] 进一步的,根据色度值计算所述各组时间相邻的帧间差时,所述帧间差定义为:
[0021] dU_mean(I,i,j)=|U_mean(IK,i,j)-U_mean((I+1)K,i,j)|,[0022] 其中,I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,其中,M、N分别为原有帧图像中分块的行数和列数。
[0023] 进一步的,所述计算各组时间相邻的帧间差大于阈值的数目,所述数目定义为:
[0024] num_motion=sum(dU_mean(I,i,j)>Thresh_U,i为1-M之间的任一自然数,j为1-N之间的任一自然数),其中M、N分别为原有帧图像中分块的行数和列数。
[0025] 进一步的,所述每组的分块利用同一个数值进行标记。
[0026] 与现有技术相比,本发明提高原帧图像的分辨率,并将帧图像进行棋盘间隔分块分为若干组,在连续组数帧间分别计算各组的帧间差,或同时计算各组的帧间差,完成运动检测,从而大大降低了计算量,在提高分辨率的前提下不改变运动判别的复杂度和代价,且提高运动估计计算速率,提高编码效率。【附图说明】
[0027] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中:
[0028] 图1为本发明中运动检测的流程图;
[0029] 图2为本发明中棋盘间隔分块的一个实施例;
[0030] 图3为图2中分块后的四组分块组;和
[0031] 图4为本发明中一实施例的分组图。【具体实施方式】
[0032] 本发明的详细描述主要通过程序、步骤、过程或其他象征性的描述来直接或间接地模拟本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。换句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被详细描述。
[0033] 此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
[0034] 本发明将原有的帧图像分成更多的不重叠的分块,利用对帧图像进行棋盘分块以分成若干组,即将一个帧分成若干组,将各组时间相邻的两帧进行比较以计算帧间差,由此判定是否发生运动,大大提高了运动估计计算速率。其具体的过程可参见图1所示。
[0035] 图1为本发明中运动检测的流程图,请参阅图1所示,所述运动检测方法包括:
[0036] 步骤110,对帧图像进行分组,也就是将帧图像原有的棋盘间隔分块分成更多的不重叠的分块,并将所述不重叠的放开分为X组。一般的,若原有帧图像为M行N列的棋盘,可将帧图像分成pM行qN列的棋盘分块,这里则有X=p×q。如将p、q取2时,其具体的可参见图2所示,图2为本发明中棋盘间隔分块的一个实施例,原有帧图像为一个四行四列的一个棋盘,现将其每个分块再进行分块,也就是将原有棋盘分块成了八行八列;然后将原有帧图像分块后进行分组,并用同一个数值对同组进行标记,如图中的1、2、3和4,最后分成四组,如图3所示。在实际应用中,可以根据实际所要达到的效果将各个分块分成不同个数的分块。
[0037] 步骤120,在每相邻的X帧图像的第K帧图像中计算第K组的各分块的图像表征。
[0038] 对所有帧图像均分块并对分块进行分组后,在计算图像表征的时候需依次在每连续的X个帧图像中选取不同的组来进行计算。即每X个帧图像为一个周期,在每一个周期内均要在不同的帧图像中依次选取不同的组以进行各分块的图像表征的计算。
[0039] 在一个实施例中,当上述X=4时,则对第I+1帧则计算第1组的各个分块的图像表征,对第I+2帧则计算第2组的各个分块的图像表征,对第I+3帧和第I+4帧则分别计算第3组和第4组的各个分块的图像表征;而对于第I+5帧则计算第1组的各个分块的图像表征,下面依次类推。
[0040] 其中所述图像表征可以为亮度均值、色差均值或饱和度均值。
[0041] 一般的,亮度均值可定义为:Y_mean=sum(Y(i属于当前分块))/(m×n),Y(i属于当前分块)为当前分块内各像素点的亮度值;色差均值定义为:U_mean=sum(U(i属于当前分块))/(m×n),U(i属于当前分块)为当前分块内各像素点的色度值;饱和度均值同样定义为:V_mean=sum(V(i属于当前分块))/(m×n),V(i属于当前分块)为当前分块内各像素点的饱和度的值。
[0042] 其中,m、n分别为对帧图像分组后形成的各个分块的宽和高。在一个实施例中,若原有帧图像为M×N个分块的帧图像,现将原有帧图像分为了pM×qN个分块的帧图像,则现有帧图像中每个分块的宽为m=width/(pM),每个分块的高为n=height/(qN),其中width和height分别为帧图像的宽和高。
[0043] 在一个实施例中,每个组由4行4列的分块组成,即共有16个分块,其可参见图4所示,在进行亮度均值计算时,首先计算每个分块(从分块1到分块16)内各像素点的亮度值,对每个分块中各像素点亮度值的求和,然后除以当前分块的分辨率,则得到当前分块的亮度均值。
[0044] 步骤130,计算当前帧图像的被计算组的各分块的图像表征和先前帧图像的对应组的各分块的图像表征的差。
[0045] 具体来说:第I帧为先前帧,第I+X帧为当前帧,对第I帧和第I+X帧中的对应的组均进行帧间差的计算,如第I帧选取第一组进行帧间差的计算,则在第I+X帧也选取第一组进行帧间差的计算,其将第I帧和第I+X帧对应第一组的每个分块进行比较以计算图像表征的差值(即帧间差)。所述对应分块的图像表征的差值可以通过亮度差、色度差或饱和度差来计算。
[0046] 一般的,当用亮度差计算帧间差时,所述帧间差即帧间亮度差可以定义为:dY_mean(I,i,j)=|Y_mean(IK,i,j)-Y_mean((I+X)K,i,j)|,其中I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,即计算各组相邻两帧之间各个分块的亮度差;帧间色度差可以定义为:dU_mean(I,i,j)=|U_mean(IK,i,j)-U_mean((I+X)K,i,j)|,其中I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,即计算各组相邻两帧之间各个分块的色度差;同理,饱和度差可以定义为:dV_mean(I,i,j)=|V_mean(IK,i,j)-V_mean((I+X)K,i,j)|,其中I为帧号,IK和(I+X)K为选取标记为k组分块的帧号,i为1-M中任一自然数,j为1-N中任一自然数,即计算各组相邻两帧之间各个分块的饱和度差。其中,所述M、N分别为原有帧图像中棋盘分块的行数和列数。
[0047] 在一个实施例中,在连续的2X个帧中,分别计算具有相同标记的两帧之间的帧间差,如当X=4时,则计算第1帧和第5帧之间的帧间差,第2帧和第6帧之间的帧间差,第3帧和第7帧之间的帧间差,第4帧和第8帧之间的帧间差。若第1帧到第4帧依次选取第1组到第4组,则其具体为:计算第1帧和第5帧中第1组的对应的各个分块之间亮度均值的差,并取其绝对值,最后将第1组中所有分块之间的亮度均值的差的绝对值求和,则得到第1帧和第5帧之间的帧间差;其余对应的三组帧依次类推。
[0048] 步骤140,计算各组所述帧间差大于图像表征阈值的数目,即计算被计算组中的各分块的图像表征的差大于图像表征阈值的分块个数。
[0049] 具体为:将每组当前帧和对应的先前帧中对应分块均进行图像表征的计算,得到差值后再将所述差值与预设的图像表征阈值进行比较,大于所述图像表征阈值则数目加1,最终得到每组中所有大于图像表征阈值的数目。(具体的计算将在下面的一个实施例中讲述)
[0050] 这里计算帧间差大于阈值的数目的计算公式可以定义为:
[0051] 根据帧间亮度差可定义为:num_motion=sum(dY_mean(I,i,j)>Thresh_Y,i为1-M之间的任一自然数,j为1-N之间的任一自然数);根据帧间色度差可定义为:num_motion=sum(dU_mean(I,i_)>Thresh_U,i为1-M之间的任一自然数,j为1-N之间的任一自然数);或根据帧间饱和度可定义为:num_motion=sum(dV_mean(I,i,j)>Thresh_V,i为
1-M之间的任一自然数,j为1-N之间的任一自然数)。
[0052] 步骤150,判定是否发生了运动。
[0053] 具体来讲:通过上述步骤得到了每组中图像表征大于图像表征阈值的数目,现将每组得到的数目与个数阈值进行比较,大于个数阈值的,也就是说,每组中图像表征大于所述图像表征阈值的总数目大于所述个数阈值时,则认为当前帧相对于先前帧发生了运动。
[0054] 在一个具体的实施例中,请参阅图2所示,图2将帧图像进行了分块并分组,也就是将原来的四行四列的帧图像分成了八行八列的帧图像,且将其分为4个组,分别用1、2、3和4进行了标记,标记相同值的各分块为一组。这样,每块的分辨率为m×n,其中,m=width/(2×M),n=height/(2×N),width为帧图像的宽,height为帧图像的高,M=N=4。从而将帧图像分为四组M×N的数组,即四组4×4的数组,如图3所示。
[0055] 对第I帧中标记为1的第一组进行图像表征的计算,这里选用小块的亮度均值来表征,其具体定义为:Y_mean=sum(Y(i属于当前分块)/(m×n);Y(i属于当前分块)表示当前分块内各像素的亮度值)。
[0056] 然后,计算时间相邻的帧间差,对于第一组分块来讲,则第I帧的时间相邻的帧为第I+4帧,所述第I+4帧仍选取标记为1的第一组分块进行计算,则它们之间的帧间差为:dY_mean(I1,i,j)=|Y_mean(I1,i,j)-Y_mean((I+4)1,i,j)|,其中,I1和(I+4)1为选取第一组分块作为帧间差的帧,i:(1-4),j:(1-4)。也就是说,上式计算选取同样分组的连续两帧之间的相对应各分块的亮度差值。同理,可计算其它各组在时间相邻两帧间的亮度差值。
[0057] 接下来,将上述得到的各组的亮度差值与预先设定的图像表征阈值进行比较,由于两个帧中同一块的亮度值的差大于一定阈值则代表着帧发生了运动,从而得到各组中亮度差值大于所述图像表征阈值的数目。其具体的计算为:num_motion=sum(dY_mean(I,i,j))>Thresh Y,i:(1-4),j:(1-4),其中,Thresh_Y为亮度差阈值,大于该阈值则说明两帧的亮度差值比较大。
[0058] 最后,判定是否发生了运动,即计算任一组中上述num_motion的数目大于个数阈值则认为发生了运动。如阈值设定为12,由上得到的各组的num_motion的数目分别为5,7,14,10,则其中第三组的数目大于个数阈值,可由此直接判定当前帧发生了运动。
[0059] 在利用亮度值、色度值或饱和度值对帧图像进行图像表征时,各个组选用的图像表征可以不相同。如,在分别选取第一组到第四组的第1帧到第4帧中,其第一帧可以用亮度值对其内的第一组分块进行图像表征,此时对应的第5帧在进行计算的时候也需要用亮度值对其内的第一组分块进行图像表征,以计算第1帧和第5帧之间的帧间差;第二帧可以用色度值对其内第二组分块进行图像表征,此时对应的第6帧在进行计算的时候也同样需要用色度值对其内第二组分块进行图像表征,以计算第2帧和第6帧之间的帧间差;其余的各对应帧可类推。
[0060] 由上可知,由于现有技术的分块比较大,使得块内的运动无法判断;而本发明中的技术是将原有帧图像的分块再进行分块,使得分块比较小,这样进行块内的运动估计判定比较精确。且对分块后进行分组后,选取帧中一组分块进行计算,其每一帧的计算量均比原有帧的计算量要小的多,如分组为X组,则此时每一帧的计算量仅为原有帧的1/X。由此可以看出,本发明有效的利用提高分辨率来提高分块内的运动估计,并利用分组来保证计算的复杂度保持不变。
[0061] 综上所述,本发明通过对原有帧图像进行分块,并对分块后的帧图像进行了分组,再通过每组来计算时间相邻的帧间差,提高了块内运动检测的精度,且降低了运动判别的复杂度和代价,并提高了运动估计的效率。
[0062] 上述说明已经充分揭露了本发明的具体实施方式。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式。