运动图像检测方法

文档序号:6587962阅读:587来源:国知局
专利名称:运动图像检测方法
技术领域
本发明涉及运动检测方法,特别涉及一种对运动图像进行检测的方法,在背景不变的情况下,获得运动物体的边缘轮廓以显示待测目标的运动。
背景技术
一组运动图像的变化其实质对应于一帧画面中某个/些具体部分的亮度变化。将每个像素的亮度值变化与阈值相比较,就可以判断其静动状态,进而勾画出它的运动边缘轮廓。
目前已经提出了很多关于运动检测和分析的方法中国专利CN 91111320.7用运动目标的图像来分析运动特性。它对运动目标的一组连续图像,在每一帧图像到来时,用比较灰度的方法记录这帧图像上运动目标所在位置的灰度值,从而形成灰度轨迹图。在记录这帧图像上目标所在位置的灰度值的同时,将另一帧图中对应目标位置的像素值写为该帧编号,从而形成带帧号的轨迹图。然后将灰度轨迹图或带帧号轨迹图通过接口电路输入计算机进行分析。
现在已经有多种保安系统,运用对运动图像进行分析的方法来录取进入保护区的人员图像,用来对保护区进行监视。中国专利申请文件CN 96193009.8中提出了将一系列分离的景致画面的数字图像数据存入存储器,进而对画面中的目标的运动进行检测,以达到保护监视的目的。通常这些系统很昂贵,而且需要很多现场检查人员。
又如中国专利中请文件CN 95113626.7。它是一种测量技术领域的基于图像识别的运动物体测量方法,它所提供的测量方法,是由同步时钟指挥对被测运动物体打标记的同时摄取图像,然后识别标记并计算出标记特征点的坐标,再计算出被测物体运动轨迹、沿轨迹的长度和当前的运动速度等参数。
然而这些发明更偏向于通过运动检测来提取自己所需的参数,针对性强,但是在图像的处理上,可观测性差,尤其是应用于图像监测方面,其直观性和可操作性显然还需进一步完善。
本发明的目的在于提供这样一种运动检测方法,其在背景不变的前提下,对运动影像文件中的运动图像进行识别与跟踪程序对指定的运动影像文件进行处理,并生成目标文件。然后在所生成的目标文件中,将上述运动影像文件图像中所有运动部分的外缘表示出来,并且被外缘圈定的部分随着图像的移动而相应移动。

发明内容
本发明提出的目的通过以下方案来实现一种运动图像检测方法,从一组运动图像中顺次连续提取两帧静态图像,来依次判断该两帧图像的差异;其中判断差异采取采用了这样的方法将每帧图像分解为若干个BLIT*BLIT(像素)的小块,将每个BLIT块中所有像素G值进行累加,并在累加完毕后求平均值,然后计算两帧图像对应BLIT块G值平均值的差,若该差值大于设定的阈值则将该有差异的BLIT块的外缘表示出来,进而将运动区域最外面的边缘显示出来。
所述将运动区域最外面的边缘显示出来采用了这样的方法让相邻BLIT块相互重叠一个像素,并对差值大于设定阈值的BLIT块的外缘像素进行反色处理。
所述BLIT块中参与G值累加的像素的选取原则为将BLIT块按从下至上,从右至左的反向顺序,且像素行列值从0到BLIT-1来进行处理。
所述顺次连续提取两帧静态图像是这样来实现的从运动图像文件中连续提取静态图像,先将第1帧图像读到指针fp1所指的内存区域,将下一帧图像读到指针fp2所指向的内存区域,对两帧图像进行比较;然后将指针fp1指向的内存区域的数据写到目标文件中相应的位置,接着交换fp1、fp2两指针的值,完成一次循环;下一次循环将新一帧图像读入fp2指向的内存区域。
与现有技术相比,本发明的优点在于1.本发明直接通过微机进行运动检测分析,不需要对图像进行分离,不需要人参与检测。
2.本发明对目标运动轮廓的勾勒更加清晰,可直观的显示出目标运动轨迹,更方便于对运动参数的检测。
3.将运动检测在软件中进行实现,可移植性强。对任何一个图像文件都可以将其运动轨迹勾画出来。本程序是一个很基本的程序模块,可以为进行实时监控、作为安全装置、进行静动力检测等方面的应用奠定基础。


下面结合附图和并非特定的实施例来对本发明作更详尽的说明。
图1是24bits未压缩BMP图像的存储结构。
图2是未压缩AVI文件视频数据的存储结构。
图3是使用“重叠边缘反色”法的前后对比。
图4是本发明所述方法的程序流程图。
具体实施例下面将以AVI影像文件为例来对本发明作出更详细的说明。
对于24bits的非压缩BMP文件,其文件头和图像头中的相关参数见表1(只列出与本程序相关的参数和结构);图像像素的存储结构见附图1(设图像尺寸为M*N,单位像素)。
参数名 偏移量占用空间描述bfSize 2字节 4字节 文件的大小(字节)bfOffBits 10字节4字节 图像开始处离文件头标的字节偏移量biWidth 18字节4字节 图像宽度(像素)biHeight22字节4字节 图像高度(像素)表1 文件头和图像头中的相关参数图像像素的存储遵从由左至右、由下至上的原则。譬如,对于一个24bits的BMP图像来说,左下角的像素存在文件数据区的最前面,而右上角的的像素存在文件最后面。每一个像素占据3个字节,依次存放其B、G、R通道值,从0至255。这三个通道分别代表蓝、绿、红光学三原色,它们的值表示其各自的光强,其中0为无光、255为光强最大。因此(0,0,0)代表纯黑色,(255,255,255)代表纯白色。为方便文件存储,BMP文件中规定图像每一行像素占据4的整数倍个字节。不足部分需在末尾补0。例如有一个24bitsBMP图像宽度为6个像素,则应该在其每一行第六个像素的R值后补两个0。(20-3*6=2)而对于仅存在视频流的非压缩24bits AVI文件,其文件结构文件头的相关参数见表2(只列出与本程序相关的参数和结构)。
参数名 偏移量占用空间描述biWidth 64字节4字节 图像宽度(像素)biHeight68字节4字节 图像高度(像素)表2 文件头和图像头中的相关参数AVI文件的存储结构(见图2)和BMP文件一样,AVI文件也包括了主头标,它定义了有关此文件的一般信息,比如文件中的流块数,AVI序列的宽、高度,总数据帧数等等。主头标后紧跟着一个或多个流头块和流格式块,它们包含了文件有关流的信息。例如说明了流的数据类型(视频或音频)、压缩特性、演示特性,流中的数据格式等等。紧接着存放的是实际的数据块。其中音频数据用“##wb”标识(“##”为流标识符),视频数据(压缩)用“##dc”标识,视频数据(未压缩)用“##db”标识(如图2)。此外还有索引块等其他可选块,不过它们和本程序关系不大,故不做详细介绍。
对AVI动态影像文件的识别与跟踪最终要归结到对两幅静态图像的处理上来。程序变量、指针说明见表3。
变量(指针)名称用途*file1输入大件指针*file3输出文件指针*fp1 指向第1帧图像所在内存的指针*fp2 指向第2帧图像所在内存的指针
*fp1s *fp1的归位指针*fp2s *fp2的归位指针bmpbytes一帧图像所占据的空间(字节)changeloc 在某个BLIT块中坐标为<i,j>的像素的G值在内存中的偏置(字节)loc 第k帧(k=0、1、2…)第一个像素的B值在内存中的偏置(字节)blitnummax 总BLIT块数blitnum 当前BLIT块的编号blitx 当前BLIT块的行坐标blity 当前BLIT块的列坐标width 一帧图像的宽度(像素)height 一帧图像的高度(像素)s1,s2 两帧图像对应BLIT块中像素G值的累加(平均值)变量i,j循环变量k 记录当前处理帧数的变量n 协助像素反色操作的循环变量flag视频帧结束标志(0为结束)BLITBLIT块的边长(像素)CON 判断图像运动剧烈程度的阈值变量表3程序变量、指针表参照附图4本发明所述方法的程序流程图可对本发明实施例作更清楚的了解。对AVI文件的处理通过了一种下面所述的方法来实现,本发明暂称之为“顺次取帧”法。所述“顺次取帧” 法就是从AVI文件中连续提取静态图像的方法。简而言之,就是先将第1帧图像读到fp1所指的内存区域,将下一帧图像读到fp2所指向的内存区域,对两帧图像进行比较。将fp1指向的内存区域的数据写到目标文件中相应的位置。接着交换fp1、fp2两指针的值,完成一次循环。下一次循环将新一帧图像读入fp2指向的内存区域。由于fp1、fp2已提前交换,相当于将上上帧图像覆盖。这样,顺次将静态图像进行比较。
在读入每帧图像前通过loc=2056+(bmpbytes+8)*k语句对其定位,其中k=0、1、2…,为即将处理的帧序列号。将一帧图像读入内存是(以读入fp1指向的内存区域为例)通过语句fread(fp1,bmpbytes,1,file1)实现的。交换内存指针的语句为fp2=fp1s-1和fp1=fp2s-1。
然后本发明通过“块平均值”法来判断相邻两帧图像的差异,其也是本程序的核心算法。简单的说是将每帧图像分解为若干个BLIT*BLIT(像素)的小块,并计算每个BLIT块中所有像素G值的平均值。然后求两帧图像对应BLIT块G值平均值的差。如果它大于设定的阈值CON,则将此BLIT块的外缘圈定。其中,阈值的选择是很重要的,通常阈值是固定的,本发明针对不同的背景,不同的运动图像,阈值的设定是有针对性的。要恰当的判断各帧之间的运动,就要适当选取阈值。如果判定系数小,则许多静止图像间被判定为运动图像,如果判定系数太大,将难以准确区分目标的运动。待所有需圈定的BLIT块外缘被圈定后,将内存中的数据写到目标文件中相应的位置。
其中所述将有差异的BLIT块的外缘圈定处理,本发明采用了一种新颖的方法来实现,此处暂称之为“重叠边缘反色”法。所谓的“重叠边缘反色”法通过下文进行说明。
针对对每个BLIT块的外边缘着色,存在以下两个问题一是应该用什么颜色着色?如果用一固定颜色,此颜色必定会和某些图像某些区域的颜色相近,与原图很难区分;二是在相临几个BLIT块均存在差异的情况下,外边缘着色很容易形成“栅格效应”(见图3)。然而我们只是想描绘出运动物体的外边缘,并不想在它们上面画格子。“重叠边缘反色”法简单说就是让相邻BLIT块相互重叠一个像素。因为外边缘着色也是一个像素,这样如果相邻BLIT块都进行外边缘着色的话,重叠区域将被着色两次或四次。试想如果将“着色”改为“反色”,经过两次(或四次)反色颜色还原,栅格会消失。对于运动物体的外缘,只进行一次反色,故在这个外缘有一个像素宽度的像素组被反色,无论图像如何,均能形成最大的反差。而且,实践中可以发现,BLIT块重叠的角部会被反色四次,这正好形成了“虚线边缘”的理想效果。于是,采用“重叠边缘反色”法将运动区域最外面的边缘显示出来。在判断了两帧图像的某个对应BLIT块存在差异后,通过“重叠边缘反色”法可以对这种差异进行标记,并最后输出到文件。
例如要处理一个160*120的AVI文件,假设BLIT值设为10。那么每行分为160/10=16块,每列分为120/10=12块。将16*12=192个BLIT块编号(blitnum=0--191),依次对其处理。
先求每一个BLIT块的行列坐标值blity=width/BLIT-fmod(blitnum,width/BLIT)-1;blitx=height/BLIT-(blitnum-blity)/(width/BLIT)-1;再计算此块第一个G值在内存中的偏置(以fp1为例)fp1=fp1s+(blitx*BLIT)*(4*(int)(3*width/4.0-0.1)+4)+blity*BLIT*3;之后将此块每个像素的G值进行累加,通过累加变量s1、s2。在所有像素值累加完毕后求平均值s1=s1/(double)(BLIT*BLIT);s2=s2/(double)(BLIT*BLIT);如果此时s1、s2差值的绝对值大于预设阈值CON,则用“重叠边缘反色”法将此BLIT块的外缘圈定。后将s1、s2清0,blitnum加1,进行下一个BLIT块的操作。
用分块平均的方法,可以找到有差异的块。但是像素究竟是从(i1,j1)移到(i2,j2)还是从(i2,j2)移到(i1,j1)却无法判断。事实上由于“壁纸效应”的存在,仅通过两帧静态图像是根本不可能对其判断的。(“壁纸效应”就是仅通过两帧静态图像无法判断(i1,j1)和(i2,j2)谁是壁纸谁是物的效应。)然而,由于前面提过的“顺次取帧”法可以从根本上减弱“壁纸效应”的影响。
如果将某个BLIT块中的所有像素全进行累加,即像素行列值(在BLIT块中的)均从0到BLIT。发现如果这样则在最后会多出一行一列(多出一列的影响不大),超出内存区域,造成比较错误;如果令像素行列值均从0到BLIT-1,但若前一个BLIT块已做完比较,fp1指向的内存区域数据变了,行(或列)值为0的像素已进行了反色,这样比较会发生差错;如果像素行列值均从1到BLIT-1,当BLIT为1时会出错;BLIT不为1但很小时会出现很大误差,也不可取。所以,BLIT块中参与G值累加的像素的选取原则是这样的将BLIT块按从下至上,从右至左的反向顺序处理,且像素行列值从0到BLIT-1,可以很好地解决以上问题。
本发明所述的对运动图像进行检测的方法,不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明之领域,对于熟悉本领域的人员而言可容易地实现另外的优点和进行修改,因此在不背离权利要求及等同范围所限定的一般概念的精神和范围的情况下,本发明并不限于特定的细节、代表性的设备和这里示出与描述的图示示例。
权利要求
1.一种运动图像检测方法,对一组连续图像进行比较,其特征在于从一组运动图像中顺次连续提取两帧静态图像,来依次判断该两帧图像的差异;其中判断差异采取采用了这样的方法将每帧图像分解为若干个BLIT*BLIT(像素)的小块,将每个BLIT块中所有像素G值进行累加,并在累加完毕后求平均值,然后计算两帧图像对应BLIT块G值平均值的差,若该差值大于设定的阈值则将该有差异的BLIT块的外缘表示出来,进而将运动区域最外面的边缘显示出来。
2.根据权利要求1所述的运动图像检测方法,其特征在于,所述将运动区域最外面的边缘显示出来采用了这样的方法让相邻BLIT块相互重叠一个像素,并对差值大于设定阈值的BLIT块的外缘像素进行反色处理。
3.根据权利要求1所述的运动图像检测方法,其特征在于,所述将运动区域最外面的边缘显示出来采用了这样的方法让相邻BLIT块相互重叠一个像素,并对差值大于设定阈值的BLIT块的外缘像素进行着色处理。
4.根据权利要求1所述的运动图像检测方法,其特征在于,所述BLIT块中参与G值累加的像素的选取原则为将BLIT块按从下至上,从右至左的反向顺序,且像素行列值从0到BLIT-1来进行处理。
5.根据权利要求1所述的运动图像检测方法,其特征在于,所述顺次连续提取两帧静态图像是这样来实现的从运动图像文件中连续提取静态图像,先将第1帧图像读到指针fp1所指的内存区域,将下一帧图像读到指针fp2所指向的内存区域,对两帧图像进行比较;然后将指针fp1指向的内存区域的数据写到目标文件中相应的位置,接着交换fp1、fp2两指针的值,完成一次循环;下一次循环将新一帧图像读入fp2指向的内存区域。
6.根据权利要求5所述的运动图像检测方法,其特征在于,在读入每帧图像前通过loc=2056+(bmpbytes+8)*k语句对其定位,其中k=0、1、2…,为即将处理的帧序列号。
7.根据权利要求5所述的运动图像检测方法,其特征在于,将一帧图像读入内存是(以读入fp1指向的内存区域为例)通过语句fread(fp1,bmpbytes,1,file1)实现的,其中交换内存指针的语句为fp2=fp1s-1和fp1=fp2s-1。
8.根据从1到7中任一权利要求所述的运动图像检测方法,其特征在于,所述运动图像文件为AVI动态影像文件。
9.根据权利要求8所述的运动图像检测方法,其特征在于,文件中规定图像每一行像素占据4的整数倍个字节,不足部分在末尾补0。
全文摘要
本发明公开了一种对运动图像进行检测的方法,其在背景不变的前提下,对运动影像文件中的运动图像进行识别与跟踪程序对指定的运动影像文件进行处理,并生成目标文件;然后在所生成的目标文件中,将上述运动影像文件图像中所有运动部分的外缘表示出来,并且被外缘圈定的部分随着图像的移动而相应移动。本发明的优点在于本发明直接通过微机进行运动检测分析,不需要对图像进行分离,不需要人参与检测。本发明对目标运动轮廓的勾勒更加清晰,可直观的显示出目标运动轨迹,更方便于对运动参数的检测。将运动检测在软件中进行实现,可移植性强。
文档编号G06T5/50GK1489112SQ0213139
公开日2004年4月14日 申请日期2002年10月10日 优先权日2002年10月10日
发明者俞青, 卢波, 赵鑫, 李铁夫, 华楠, 俞 青 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1