一种运动区域提取算法及Matlab实现(2)

5.  当前帧运动区域提取

得到运动目标轨迹区域后,运动目标可视为仅包含在运动轨迹区域中,则后面的操作只在该区域中进行。一种可行的方案是将二值轨迹区域与原始图象相与,得到的区域将包含运动目标以及目标运动相反方向的背景(拖尾状),通常背景与目标特征差异较大,可在该小区域内进行空间分割,得到运动目标的精确轮廓。此为后面要作的工作,本文这里提出一种更为简便的方法,结合根据前面的结果,仅通过一系列的形态学处理,得到当前帧的运动区域。此种方法得到的运动目标区域轮廓不是很精确,不过本文的目的只是给出一中运动区域的大致轮廓,作为动态视觉注意、视频对象分割等任务的一个前端处理环节。针对不同的后续应用情形,可以在根据此方法提取出的运动区域作进一步的后处理。

如前所叙,连续两帧差分图象中运动象素多为孤立点,而且如果运动目标内部纹理不显著,由于前后帧前景对象的遮挡将导致部分运动运动区域被误检为背景区域,另外经过灰度带处理后通常还有部分噪声点的存在。另外,通常前后帧差分图象中运动目标的前端和后端(相对运动方向而言)运动象素很容易检测出来,这是因为前端部分覆盖了原来的背景,而后端将显露背景,这都会导致前后帧对应象素灰度值的变化。至于运动目标内部,如果纹理丰富,则检测出的内部运动象素较多,反之,较少。将运动轨迹区域与前帧差分图象相与,可以得仅属于当前帧的运动象素,同时运动轨迹区域外的噪声点全部滤除,并且运动区域内拖尾状背景的绝大部分也将被滤除,但是由于目标运动显露的背景部分将保留下来,通常相邻两帧运动目标位移并不显著,基于本文的目的言,可以接受。再在此基础上,进行一系列简单后处理,可以得到运动目标区域。

基于以上分析,提出以下的当前帧运动区域形态学提取算法,框图如图2:

一种运动区域提取算法及Matlab实现

7.  实验结果

由于本文并未考虑由于摄象机运动等因素带来的背景全局运动,本文算法主要适用于摄象机静止的视频测试序列,进行全局运动补偿后本文算法将不难适应运动背景序列,这是下一步工作要解决的问题。但是,基于本文算法原理的特点,在运动背景纹理较单一、简单的条件下,本文算法在部分运动背景序列中同样取得了良好的效果。

本文算法在大量视频测试序列上进行了测试,这里给出部分测试结果。

一种运动区域提取算法及Matlab实现

一种运动区域提取算法及Matlab实现

图3为erik序列测试结果,该序列为静止背景,一个前景运动对象,由于背景噪声较小,且运动目标内部文理丰富,提取结果较好,从测试结果可以看出,本文算法对于背景阴影有一定的抑制能力。图4的dancer的有明显的前景运动,背景的云彩也是变化剧烈的,但是背景云灰度纹理不是很丰富,因此本文算法对该变化背景也取得了较好的结果,由于前境对象有两个,当距离较远时(18帧),两运动对象分离,当距离较近时(38、48帧),两运动对象合并。

一种运动区域提取算法及Matlab实现

图5为highway测试序列,该序列的测试部分有一辆小车出现并逐逐渐消失,同时背景的云、公路、公路旁的草等君是为变化的,但此种毕竟纹理简单,故本文算法同样较好的提取出了小车所在的运动区域,但是在第681帧中,由于前背景的变化,出现了右上角的非目标运动区域,同时,由于另一小车目标较小,本文算法未能提取出来。

仿真结果表明,本文算法不仅对静止背景序列有较好的结果,同时在未进行全局补偿的情况下对纹理较单一的变化背景也能取得一定的提取效果,另外,本文算法对运动目标数亮本身并无限制,同时也没有限制运动目标为刚体或为柔体。但从测试结果也可以看出,本文算法提取的运动区域边沿不够精确,这是由本文算法的性质决定的,因为本文实际上仅仅利用了时域灰度信息,更好的结果要联合空域分割算法,这将在下一步工作中进一步考虑。

需要指出的是,本文算法涉及的对应参数为固定值,对不同测试序列要达到更好的结果须作适当调整,重要的参数时域窗口数w、灰度带n、灰度带阈值S典型值均为8。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwjszd.html