运动目标检测跟踪的DSP设计与实现

时间:2011-07-18

 摘 要: 提出一种基于MPEG-4的运动目标检测跟踪的方法,通过对MPEG-4编码中的运动矢量进行阈值分割、形态滤波等,实现运动物体的检测,并在ADSP-BF533上进行实现,给出实验结果。

  1 研究现状

  目前国内数字化视频监控系统发展迅速,嵌入式系统更是由于其成本低、稳定性高、可维护性强等优势而成为新的发展方向。嵌入式系统的出现初是基于单片机的,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的使用性能:更容易使用、更快、更便宜。这些装置已经初步具备了嵌入式的应用特点,但是这时的应用只是使用8位的芯片,执行一些单线程的程序,还谈不上“系统”的概念。因此已成为目前发展的热点。

  本文提出一种基于MPEG-4编解码系统的运动目标检测的方法,并在ADI公司的ADSP-BF533上进行实现,测试结果验证了算法的正确性和可行性。

  由于MPEG-4将对象按运动、形状、纹理三类信息进行编码,运动信息编码主要是通过运动估计和补偿来完成。其中运动估计就是在参考画面上搜寻相似的方块,并确定二块相对位置的变化,即确定运动矢量MV的过程。而运动目标的检测就是要将运动的物体与背景进行区分。所以可以充分利用二者的联系,将MPEG-4编码中运动估计所得到的运动矢量信息作为检测依据的基本信息,这样无须再增加额外的运算和存储就能获取整帧图像的所有运动信息。

  本文提出的检测运动物体的方法就是在编码端,对提取的运动信息进行分析,滤除噪声区域,以准确分割运动物体,将目标块聚类在的外接矩形框内。并且将此时划分出来的运动目标块进行标记,随编码流输出。在解码端,从码流中读取相应运动块标志信息,判断边缘块,在解码图像上叠加边框后输出显示。对运动物体的跟踪则主要通过将每帧识别出的运动图像质心相连来实现,所以跟踪相对比较容易,重点还是单帧的运动目标检测。

  2 运动目标检测与跟踪

  2.1 编码端实现运动目标分割

  编码部分主要是检测分割出运动物体,并对物体包含的所有运动块进行标记,随码流输出。为便于监测观看,检测出的运动物体要聚类成矩形。编码端实现框图如图1所示。

  MPEG-4基于更高的编码效率。同已有的或即将形成的其它标准相比,在相同的比特率下,它基于更高的视觉听觉质量,这就使得在低带宽的信道上传送视频、音频成为可能。一个场景的多视角或多声道数据流可以高效、同步地合成为终数据流。由于宏块的运动矢量已体现了各块运动的大致信息,所以运动物体检测算法提取的运动矢量以宏块为基本单元。

  MPEG4只处理图像帧与帧之间有差异的元素,而舍弃相同的元素,因此大大减少了合成多媒体文件的体积。应用MPEG4技术的影音文件显着特点就是压缩率高且成像清晰,一般来说,一小时的影像可以被压缩为350M左右的数据,而一部高清晰度的DVD电影, 可以压缩成两张甚至一张650M CD光碟来存储。对广大的“平民”计算机用户来说, 这就意味着, 您不需要购置 DVD-ROM就可以欣赏近似DVD质量的高品质影像。而且采用MPEG4编码技术的影片,对机器硬件配置的要求非常之低,300MHZ 以上CPU,64M的内存和一个 8M显存的显卡就可以流畅的播放。

  由于运动矢量包括x和y二个分量,为便于后面分析处理,先通过下式对其进行降维:

  式(1)中,I(x,y)是一维运动信息变量,其中x和y分别代表宏块位置的水平和垂直坐标,MVx和MVy是该位置运动矢量的2分量。然后将I(x,y)进行阈值分割得二值函数B(x,y),即:

  式(2)中,Thresh为分割的阈值。阈值分割可以大致确定运动区域。由于太微小的变化多半是噪声,所以忽略不计。其中阈值的选取可根据需要按监控对象来定:对于剧烈运动的可选取范围大些,如监视人员的出入,这样可使框定的物体更;反之,对于细微运动的则选取小阈值,以免漏报。

  通过阈值分割得到的二值图只是标识了运动的大致区域,要想准确地确定运动物体,还需从二方面进行滤波处理。(1)对于本不属于运动物体但被标识为运动块的区域进行处理,即除噪。这里的噪声主要是指由于物体运动而带来的阴影和周边光线的变化。噪声的连通区域一般很小或为孤立宏块。(2)对属于运动物体但未进行标识的块进行处理。这种情况一般表现为运动区域中的空洞或区域边缘凹槽。这二部分的处理采用形态滤波,其实现框图如图3所示。

  形态滤波包括边缘除噪、中心除噪和中心填补三部分。形态滤波中,B表示二值图像,S表示结构元素,Sxy表示一个结构元素的原点平移到点(x,y)。边缘除噪运算如下:

  式(3)中的A表示结构元素与二值图像的交集,式(4)中COUNT(A)表示计算集合A中的元素个数。根据边缘位置不同,选取的结构元素为不同类型的全1三邻域。

  中心除噪与边缘除噪类似,在具体实现过程中为减少计算量,将除噪和填补同时进行,运算过程如下:

  形态滤波包含多种算法,考虑到该算法要应用于DSP中,编程时判断语句会大大增加运算时间。所以在是否属于运动块的判定上,没对邻域运动信息分布采用复杂的判断,而是通过计算其中包含运动块的个数来判定。形态滤波前后的效果图如图4所示。

  图4中叠加在原图像上的阴影就是对运动宏块作的标记。从图中可以看出,由于物体运动产生的阴影噪声已得到很好的消除,即左图中下边的标记块,而运动物体左边的零散标记块,是由于运动造成的背景变化,也基本滤除了。此时运动物体已基本被标志出。

  形态滤波参数变化的效果图如图5所示,它对分割运动区域会产生影响。左图中thresh_noise=4、thresh_padding=5;右图中thresh_noise=2、thresh_padding=7,从图中可看出左边的形态滤波效果更好。

  经过除噪和填补的形态滤波,基本分割出运动物体。将运动物体聚类到矩形区域内,并对所有矩形区域内的块进行标记并输出到码流。

  2.2 解码端实现运动目标的检测

  解码部分主要就是在解码图像上为已经标记好的运动物体矩形区域加上框,以显示输出。具体实现方法是:从码流中提取各宏块运动标志信息,对于运动块,判断其是否为矩形区域边缘,若是边缘则根据类型绘出相应框。解码端实现框图如图6所示。

  判断运动宏块是否在矩形框边缘时,采用模板匹配法。模板使用四连通标准,将垂直和水平方向邻点作为邻域。宏块与模板匹配后,根据判定的边缘类型再加边。边缘四模板如图7所示。

  2.3 运动目标的跟踪

  MPEG-4将图像帧分为I、P、B三种类型。P、B属于预测帧,需要用到运动编码。而I是帧内编码,没有运动估计。前面都是针对预测帧而做的运动物体检测,将每帧图像确定的运动区域质心提取,整个视频序列连接而成的轨迹就实现了对运动物体的跟踪。其中I帧并没有识别运动物体,但由于I帧出现间隔一般在十帧或几十帧,所以对于整个物体运动的跟踪没有什么影响。

  3 算法的DSP实现结果和结论

  本文提出的运动目标检测算法应用于嵌入式视频监控系统,而在嵌入式监控系统中对于视频压缩处理部分都采用DSP芯片来完成,所以需要使用DSP芯片来对算法进行测试和验证。Blackfin是ADI推出的一系列高性能16位定点处理器,专为满足当今嵌入式音频、视频和通信的计算需要与功率限制而设计。测试对象:(1)用摄像头采集的30帧灰度视频序列,序列为在纯色背景下晃动U盘形成的,采集过程中摄像头位置不变,处理格式为CIF(352*288)。前面采用的效果图均出自此序列。(2)针对实际监控场景采集的100帧序列,处理格式为352*240。

  U盘运动序列检测结果图像和人运动监控监测结果图像分别如图8和图9所示。可以看出本文提出的运动检测算法能正确检测出运动图像。从图9的检测图像还可以看出该算法能检测出多于一个的运动目标。第30和60帧图像中,能检测出2个人同时运动。

  对于算法的可行性主要从输出码率和DSP运行的周期数二方面来评估。输出码率:每个运动标志按4位输出到码流,以352*288图像为例,每帧增加了352*288/(16*16)*0.5=198字节,码流的增加量非常小,对于网络传输不会造成任何影响。运行周期:用Blackfin 实现MPEG-4编码每帧需要约10M周期,而每帧用于检测标志运动区域的计算只占用不足0.4M周期,不会影响编码的实时性。

  由此可见,本文提出的基于MPEG-4的运动检测跟踪方法正确可行,完全可用DSP来实现,并可应用于嵌入式视频监控系统中,这个系统实惠,效果好,受大众的喜欢。


  
上一篇:一种油漆配料的控制系统介绍
下一篇:半导体制冷在投影仪散热中应用的前景

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料