发明内容
本发明的目的在于提供克服上述问题的运动图像检测方法。
根据本发明的第一方面,提供一种新的运动图像检测方法。该运动图像检测方法,包括下列步骤:设定初始检测帧率,并且以此帧率从一组连续图像中截取两帧静态图像;比较该两帧图像,确定图像的变化行数;将所述变化行数与第一阈值、第二阈值和/或第三阈值比较,其中第一阈值大于第二阈值但是小于第三阈值;根据比较结果,改变检测帧率。
在根据本发明的第一方面中,优选的是所述改变帧率的步骤包括比较结果为所述变化行数小于第一阈值但大于第二阈值,则减小检测帧率。进一步优选的是,在对于连续多帧均检测到所述变化行数小于第一阈值但大于第二阈值的情况下,将帧率减小。帧率可以减小一半。
优选的是,当对于连续的N帧图像所述变化行数小于第二阈值的时候,检测帧率回归初始值的步骤。
优选的是,如果所述变化行数大于第三阈值,将检测帧率增加的步骤。比如,将检测帧率设置到最快。
优选的是,所述方法包括步骤:判断所述变化行数是否大于预先设定的第一阈值;如果判断结果为是,则判定该组图像为运动图像;如果判断结果为否,判定该组图像为静止图像。
优选的是,所述确定图像的变化行数的步骤包括将两幅图像的对应行的各像素亮度值总和相减,若所得差的绝对值大于第四阈值,则认定该对应行有变化。
根据本发明的第二方面,提供一种运动图像检测电路,包括:行像素求和电路,对输入图像以某一检测帧率抽取两帧图像,对该帧图像的各行像素求和;存储器,存储行像素求和电路的求和结果;运动识别电路,接收来自存储器的求和结果,并且根据求和结果确定图像的变化行数;和帧率控制器,将来自运动识别电路的变化行数与第一阈值、第二阈值和/或第三阈值比较,并且根据比较的结果改变检测帧率。
在第二方面中,优选的是所述行像素求和电路包括求和电路、存储器写入控制电路和帧计数器。
优选的是,所述运动识别电路包括存储器读出控制电路,求差电路,变化行计数器,第一阈值比较电路。
优选的是,所述帧率控制器包括检测帧率产生电路和第二阈值比较电路。
本发明在现有技术的基础上,充分利用中间计算结果,自动调整帧率,提高了原检测方法的适用范围。而且,本发明可以在不用外界cpu的情况下,直接利用中间计算结果控制帧间隔,反应速度快,成本低。
发明的具体实施方式
图1是根据本发明的运动图像检测方法的流程图。如图1所示,在步骤S101,启动摄像头,打开视频流。
在步骤S102,设定初始检测帧率f0(Hz)。从一组连续图像中截取两帧静态图像。f越大,被截取的图像间隔越小。
在步骤S103,截取第一帧图像。
在步骤S104,对于第一帧静态图像,计算出每个像素的亮度值,然后把每一行内各像素的亮度值进行累加,得到一个相应的数组一,即ulPrj1。
在步骤S105,截取第二帧图像。然后在步骤S106,按照与上述过程相同的方式,得到另一个相应的数组二,即ulPrj2。
在步骤S107,比较数组一(ulPrj1)和数组二(ulPrj2)。图2是比较的具体过程的示意图。如图2所示,比较的具体过程是:在步骤S201,将数组一和数组二中对应的行像素亮度累加值逐一相减,并取绝对值;然后在步骤S202,判断是否该绝对值大于预先设定的一个阈值T1。若判断结果为是,则说明该差值所对应行有所变化,进入步骤S203;若否,返回步骤S201,对其它行进行计算和判断。在步骤S203,对变化行数nSum累加一,然后返回步骤S201,对其它行进行计算和判断。这里,nSum表示全部有变化像素行的数量。
若数组一和数组二的所有行均比较完毕,则程序进入步骤S108。
在步骤S108,判断nSum是否大于预先设定的阈值T3。如果判断结果为是,则可判断该两帧图像有变化,即该组图像为运动图像,则进入步骤S109,认定该图像为运动图像。如果判断结果为否,即该数量小于或等于预先设定的阈值T3,则可判断该两帧图像没有变化,即该组图像为静止图像;程序进入步骤S121,判断图像为静止图像。
在步骤S109之后,程序进入步骤S110。在步骤S110,判断nSum是否大于T2。若是,则认为检测帧率相对于运动物体过慢,程序进入S111,检测帧率f应增加,采用由快到慢的逼近方法,将检测帧率设置到最快;然后程序返回步骤S103。若否,则程序直接返回步骤S103。
程序在步骤S121之后,进入步骤S122。在步骤S122,判断是否连续N帧(N可以是4或4以上的整数)都检测到nSum大于T4而小于T3的情况。若是,则认为检测帧率相对于运动物体过快,检测帧率f应减小,程序进入步骤S123,根据奈奎斯特采样定理,将检测帧率减小一半,由此得到新的检测帧率f1。若否,则程序进入步骤S124。
在步骤S124,程序判断是否连续M帧检测到nSum小于T4的情况。若是,则程序进入步骤S125,检测帧率回归初始值f0。若否,程序返回步骤S103。
程序在S123和S125之后,返回步骤S103。
这里,所设的三个阈值T2,T3,T4存在下列关系,即T2>T3>T4。
在返回步骤S103后,以新的检测帧率(比如f1)从一组连续图像中截取两帧静态图像,重复以上的过程(包括步骤S104-S125和S201-S203)。
图3是根据本发明的运动图像检测电路的结构框图。如图3所示,运动图像检测电路包括行像素求和电路310、存储器320、运动识别电路330、帧率控制器340和控制寄存器350。
该运动图像检测电路的具体操作过程如下。
行像素求和电路310对输入图像以某一检测帧率抽取检测的帧,并对该帧图像所有行的每一像素求和,在每一行结束时,将一行像素之和写入存储器320,同时将一行像素之和直接送入运动识别电路330。
运动识别电路330用于判断当前检测帧是否为运动图像。在当前检测帧的每一行结束时,将上一检测帧的相应行像素和读出,确认此行是否变化。如发现变化的行,变化行计数器将加一。在当前检测帧结束时,对变化的行数与阈值T3比较,输出检测结果。变化行的统计结果和最后与阈值T3的比较都会送入帧率控制器340。
帧率控制器340利用运动识别电路提供的计算结果,调节检测帧率。
控制寄存器350设置各个阈值,包括阈值T1、T2、T3和T4,以及初始帧率等等。
图4是图3所示行像素求和电路310的一种结构图。在图4中,行像素求和电路包括求和电路410、存储器写入控制器420和帧计数器430。
图5是图3所示运动识别电路330的一种结构图。在图5中,运动识别电路包括存储器读出控制电路510、求差电路520、变化行计数器530和第一阈值比较电路540。
图6是图3所示帧率控制器340的一种结构图。在图6中,运动识别电路包括检测帧率产生电路610和第二阈值比较电路620。
具体的工作过程如下。
在行像素求和电路310中,根据输入的检测帧率利用帧计数器430进行帧计数。然后,利用求和电路410在帧计数器的触发下对输入图像抽取检测的帧,并对该帧图像所有行的每一像素求和,在每一行结束时,将一行像素之和通过存储器控制电路420写入存储器320,同时将一行像素之和直接送入运动识别电路330。
在运动识别电路330中,在当前检测帧的每一行结束时,存储器读出电路510将上一检测帧的相应行像素和读出,经求差电路520确认此行是否变化,如发现变化的行,变化行计数器530将加一。在当前检测帧结束时,第一阈值比较电路540会对变化的行数与阈值T3比较,输出检测结果。变化行的统计结果和最后与阈值T3的比较都会送入帧率控制器340。
在帧率控制器340中,第二阈值比较电路620接收来自第一阈值比较电路540的变化行数统计结果nSum和与阈值T3的比较结果,并且与多个阈值进行比较。根据第二阈值比较电路620的比较结果,检测帧率产生电路610产生相应的检测帧率。具体地说,首先比较nSum是否大于阈值T2。若是,则检测帧率f增加,采用由快到慢的逼近方法,将检测帧率设置到最快。其次,若连续N帧都检测到nSum大于T4而小于T3的情况,则检测帧率f应减小。N的数值比如是大于等于4的自然数。第三,若连续M帧检测到nSum小于T4的情况,则检测帧率回归初始值f0。M的数值比如是大于等于4的自然数。
检测帧率产生电路610所产生的帧率送往行像素求和电路310。
虽然上文较详尽地描述了本发明,但是这些描述仅是示意性的而非限制性的。显然,对于普通技术人员而言本发明会以许多方式进行变化。
比如,用于判断图像行是否变化的参考因素除像素的亮度以外,还可以是色度、色饱和度,或者也可以是RGB信号的G值等等。
另外,本发明的方法并不必须对一帧图像的每一行都进行累加对比计算。也可以在不降低判断精度的前提下,从图像中抽取一定数量的行像素进行上述方法的对比判断,以减少计算量。
同样的,根据图像像素的排列性质,按列像素进行如上方法的计算和比较也是可行的,因此并不脱离本发明的范围之外。
此外,图4、图5和图6仅仅是图3电路各组成部分的一种具体结构示例。除此以外,显然还可以采用其它的具体结构来实现图3的电路。
所有这样的变化都属于本发明的范围之内,而不应当被认为偏离本发明的范围。本发明仅受后附的权利要求书的精髓和范围限制。