人体运动目标检测与跟踪系统设计及算法仿真实现
2012-08-07朱一峰陈丽华
朱一峰,陈丽华
(朝阳师范高等专科学校,辽宁 朝阳 122000)
人体运动目标检测与跟踪系统设计及算法仿真实现
朱一峰,陈丽华
(朝阳师范高等专科学校,辽宁 朝阳 122000)
在人体运动目标检测部分,根据室内监控的特点,提出了先采用统计平均法获取室内背景,然后选用背景减除法对运动目标进行检测,接着利用改进的区域增长法对属于同一目标的像素区域进行合并,判断并提取人体目标。在人体跟踪部分,使用卡尔曼滤波器预测目标参数,再根据预测参数跟踪人体目标,得到行人的运动轨迹。利用Matlab/Simulink对整个系统进行建模仿真,并不断修正算法的参数。通过室内实际采集的几个视频序列进行试验,该算法能够正确地检测并且跟踪运动的人体。
运动目标检测与跟踪;背景减除法;卡尔曼滤波;Simulink
0 引言
人体运动目标跟踪是计算机视觉研究[1]的一个核心课题之一,它在医学研究、监视、统计、安防等领域有着非常重要的实用价值和广阔的发展前景。在视频监视中人体运动目标跟踪不但可以提供被监视人体目标的运动轨迹,也为进行场景中人体目标的运动分析和场景分析[2]提供了可靠的数据来源,同时运动目标的跟踪信息也为运动目标的正确检测以及识别提供了帮助。
1 系统分析
笔者研究的人体运动检测和跟踪方法[3-4]主要是针对室内的监控应用,尤其是在单个房间或病房内的情况,这种应用具有以下特点:①背景相对简单;②摄像头固定;③光照等引起的背景变化比较缓和;④室内人体的运动速度比较缓慢;⑤对人体检测和跟踪必须具有实时性,应最快地获得人体的具体运动信息。考虑以上特点,为了减少计算复杂度,增强处理的实时性,采用背景减除法[5]来对场景中的运动人体进行检测,然后采用Kalman滤波的方法[6]预测和估计人体目标在下一帧中的位置,最后用矩形框标识出人体并且输出人体运动的位置信息,为将来人体行为的理解和分析奠定基础。
2 系统总体设计
根据系统的设计目标和对系统的分析,系统的总体设计框架如图1所示。
图1 系统总体设计框架图
1)视频序列输入模块:从视频文件读入一个视频序列。
2)背景估计模块:此模块采用统计平均法来估计和更新背景模型。
3)图像分割[7]模块:在此模块中,先通过背景减除法,再利用Otsu自动阈值法对图像进行分割,把表示运动目标的像素与背景相分离。
4)人体运动检测模块:对于属于同一目标的区域进行统计与合并,并且用矩形框标记出检测到的运动目标,并根据人体特征判断出目标是否为人体。
5)人体运动跟踪模块:在此模块中,主要利用Kalman滤波原理预测和估计当前帧的人体位置。
6)结果显示模块:显示运动人体的跟踪结果。
3 系统详细设计
Simulink是实现动态系统仿真的一个集成环境。其主要功能是对动态系统进行适当的仿真分析,从而可以在做出实际系统之前预先对系统所采用的算法进行分析,然后对其做出适当的修正,使其更加符合系统的设计目标。这样做不仅可以得到更加合适的算法,而且还可以增强系统的性能,减少系统反复修改的时间,达到高效开发系统的目标。鉴于Simulink的功能和优点,笔者在系统算法验证阶段采用Simulink对算法建模,然后根据分析结果对算法模型进行修改,使其最终达到系统设计的目标。
3.1 系统总体设计的Simulink模型
用Simulink表示系统的总体设计模型track. mdl如图2所示。
3.2 背景估计模块
考虑到摄像机固定以及室内背景的相对简单、稳定,室内场景的变化较为缓和,以及场景内的目标滞留时间较短,而且目标出现又不频繁,为了使背景的估计具有较快的运算速度和较高的实时性,在不失准确性的基础上,该系统选用统计平均法作为自适应背景的更新方法[8]对背景进行估计。背景估计模块的子系统模型如图3所示。
子系统中的Mean模块就是对背景图像进行多帧平均,Reshape模块的参数则随着输入图像的大小而做相应的修改,最后输出的为背景图像BG。
3.3 图像分割模块
由于系统主要是针对室内监控,并且摄像机具有固定的特点,所以在前面得到背景的基础上,此模块采用背景减除法来实现运动目标像素与背景的分离[9-10]。此子系统的Authreshold模块采用的是由Otsu[11]自动阈值与分割因子seg_scale的乘积作为分割阈值对图像进行分割,输出的Emetric表示对图像分割的有效性度量值,若其大于所设定的度量值seg_metric,则表明输出的二值图像[12]效果较好,可以为后面的处理所使用。此子系统最终输出运动目标的二值图像。图像分割模块的详细设计模型如图4所示。
3.4 人体运动检测模块
人体运动检测模块的设计模型如图5所示。
模块首先对图像分割的运动目标二值图像进行闭运算,接着利用Simulink图像处理工具包中的Blob Analysis单元分析得到属于运动目标的多个片状图像区域 (blob),其中该系统在对二值图像目标进行Blob Analysis单元分析的时候选用的是8连通区域。
图2 系统的总体设计模型
图3 背景估计模型
图4 图像分割模型
图5 运动人体检测模型
模块中的Blob Analysis单元可为视觉系统提供图像中区域 (斑点)的数量、位置、形状和方向,还可提供相关斑点间的拓扑结构。Blob Analysis单元是一种对闭合目标形状进行分析处理的基本方法,其输入主要是针对二值化图像,它被包含在Simulink的视频与图像处理工具包内,可以直接在 Simulink中调用。通过 Blob Analysis单元对闭运算的结果进行分析后,自动输出被标识模块区域的大小、位置和数目等。最后用改进的区域增长法对属于同一目标的区域进行合并,其基本思想是:先计算各个区域之间的距离,再分别与在系统的Edit parameter属性中设定的合并阈值merge_thresh相比较,然后再决定是否对区域进行合并,最终检测并提取出整个运动目标。判断并合并目标区域的详细模型如图6所示。检测出的运动目标用矩形框标识出来,位置用坐标(r,c,h,w)表示,其中r和c分别代表矩形框左上顶点的横坐标与纵坐标,h和w分别代表矩形框的高与宽。最后根据运动人体形状与室内其他运动物体的明显不同特征,依据得出的矩形框的高(h)、宽(w)比来判断检测出的运动目标是否为人体,从而完成人体运动目标的检测,并输出人体的位置坐标。
3.5 人体运动跟踪模块
人体运动跟踪模块的设计模型如图7所示。其中包括的主要子模块有:
图6 判断合并区域模型
1)寻找并跟踪匹配目标子模块。用矩形框之间距离Dis与设定的跟踪匹配阈值track_thresh(指定两个连续帧中同一运动目标之间的最大距离)相比较,寻找最佳匹配目标。
2)Kalman预测更新子模块。Kalman滤波器根据上一帧人体矩形框位置预测当前帧的人体矩形框位置,并输出当前帧中人体矩形框所在位置的估计值。
图7 运动人体跟踪模型
3.6 结果显示模块
1)根据人体位置坐标(r,c,h,w)画出跟踪人体的矩形框。另外对于多人的情况,还利用矩形框的不同颜色区分同一场景中的不同人体。
2)利用Simulink中的Video Display模块显示检测和跟踪结果。其中包括提取的背景图像,经阈值分割后的二值图像,在运动人体上添加矩形框后的检测和跟踪图像。
3)利用Simulink中的Scope模块分别显示检测和跟踪后的人体位置坐标曲线图。
4)输出人体的二维(x,y)坐标图和三维(x,y,t)坐标图。
4 试验仿真结果及分析
4.1 系统模型初始化设置
试验前,根据所处的试验环境和人体目标的运动情况对模型的Initfcn函数和主要子模块进行仿真参数设置。
1)Initfcn函数的参数设置为:
num_targets=8;%分割目标的最大个数
seg_metric=0.70;%表示对图像分割有效性度量的最小值
video_frame_size:[240 320]。%定义输入视频的大小。
2)系统的Edit parameter属性:根据室内场景的光线、目标大小和运动情况等并结合试验效果不断调整属性中参数的大小。根据本系统的试验环境,设置的参数大小分别为:
Segmentation threshold scale(即分割因子seg_scale的大小,通常在1附近):1.20;
Box merging thresholds(即检测模块中区域合并阈值merge_thresh的大小,取值范围是[0,0]到[h,w]):[30,5];
Target tracking threshold(即跟踪模块中跟踪匹配阈值track_thresh的大小):95。
3)Kalman预测更新子模块的初始化参数设置为:
初始状态估计x^:zeros([6,1]);
初始估计误差协方差P^:10*eye(6);
状态转换矩阵A:
[1 0 1 0 0 0;0 1 0 1 0 0;0 0 1 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
状态噪声协方差Q:0.05*eye(6);
观测矩阵H:[1 0 0 0 0 0;0 1 0 0 0 0;0 0 0 0 1 0;0 0 0 0 0 1];
观测噪声协方差R:2*eye(4)。
4.2 仿真结果及分析
4.2.1 试验结果 试验环境:为了真实模拟室内监控的效果,地点选在某大厅,利用CCD摄像机以俯瞰的方式拍摄,其中视频共有474帧,每帧图像大小为240×320,帧率为30 fps。然后在PC机上利用设计的系统模型对视频进行仿真处理,完成对算法的验证。
试验步骤:①从视频中随机抽取原始图像序列。②原始图像序列经过背景减除法,然后再通过滤波和区域合并后输出二值图像序列。③输出经过人体运动目标检测并对目标加矩形框后的图像序列。④ 输出人体运动目标跟踪后的图像序列。
输出的人体矩形框位置坐标(r,c,h,w)的仿真曲线如图8所示,其中图的上半部分是由人体运动检测模块输出的仿真曲线,下半部分是由跟踪模块输出的仿真曲线,横坐标表示仿真时间,r表示人体矩形框左上顶点的横坐标,c表示人体矩形框左上顶点的纵坐标,h表示矩形框的高,w表示矩形框的宽。
为了对运动人体的跟踪结果有一个更加清楚的认识,该系统还输出了在整个视频序列中人体运动的二维(x,y)坐标图和三维(x,y,t)坐标图,如图9所示。
此外为了更全面的验证算法的正确性和鲁棒性,在试验中还选取了一个两人出现的场景,此场景也是在同一室内拍摄的,选取其中的几帧图像,并对其原始图像序列和仿真试验的跟踪图像序列进行对比。
4.2.2 试验结果分析 根据以上的试验结果,结合系统的设计可以看出:
1)根据本系统中室内监控的特点,利用统计平均法提取的背景能够反映室内真实背景情况,可以满足室内监控的需要,为下一步运用背景减除法进行运动目标检测奠定了基础。
2)通过背景减除法与Otsu自动阈值法相结合,成功地从每一帧的原始图像中提取出含有人体运动目标的像素区域,再通过数学形态学的闭运算对像素区域进行处理,成功地消除了前景图像中的噪声和空洞影响,然后选取合适的合并阈值,通过改进的区域增长法对属于同一目标像素的区域进行合并,从而完成目标检测分析,提取出完整的运动目标。同时试验也表明合并阈值的设置是合理的,能够满足合并和提取目标的需要。
3)从图8的人体位置坐标曲线以及图9的人体运动的坐标图可以看出,基于Kalman滤波的目标跟踪模型能较为准确、迅速地得到运动目标的轨迹,实现对人体运动目标的跟踪。另外通过对两人跟踪的试验结果可知,基于Kalman滤波的目标跟踪模型有较好的自适应性和鲁棒性,不仅对单个运动目标可以进行跟踪,同时也可以跟踪多个目标,并且在系统中用不同颜色的矩形框对不同的人体运动目标进行标注。
图8 人体位置坐标曲线图
图9 人体运动的二维和三维坐标图
通过对图8中检测曲线和跟踪曲线的对比可知,由于卡尔曼滤波器的滤波功能,使得跟踪曲线比检测曲线更加平滑,输出的人体位置也更加精确。
总之,基于卡尔曼滤波的跟踪算法能够实现对运动人体目标的跟踪,说明人体目标的运动轨迹能良好地反映目标的运动情况。
4)根据试验结果,此系统基本上完成了预先设计的目标,验证了算法的正确性和鲁棒性。
5 结语
笔者首先对要设计的系统进行了分析,然后确定对算法进行验证的试验平台Matlab/Simulink,再结合运动目标检测和跟踪理论以及系统的设计目标,通过不断的分析、调试和修改,设计出符合系统要求的Simulink模型。试验结果表明,得到的人体目标运动轨迹能良好地反映人体目标的运动情况,证明系统能够满足设计要求。
[1]陈毓晶.视频图像序列中运动目标的检测和跟踪[D].大连:大连理工大学,2009.
[2]金星.运动目标检测和跟踪及其在视频监控系统中的应用[D].杭州:浙江工业大学,2010.
[3] 滕游.基于DSP的运动目标检测与跟踪系统的设计与实现[D].杭州:浙江工业大学,2009.
[4]赵志旭.智能视觉监控中的运动目标检测与跟踪[D].成都:电子科技大学,2009.
[5]邱道尹,张文静,顾波,等.帧差法在运动目标实时跟踪中的应用[J].华北水利水电学院学报,2009,30(3):45-47.
[6]曲巨宝,林宏基.运动图像快速跟踪技术研究[J].重庆师范大学学报,2011,28(1):44-48.
[7]杨爱丽.基于单目监控中视觉的车辆检测与跟踪[D].合肥:合肥工业大学,2010.
[8]冯形松.基于全方位的运动目标检测跟踪研究[D].杭州:浙江工业大学,2009.
[9]张娟,毛小波,陈铁军.运动目标跟踪算法研究综述[J].计算机应用研究,2009,26(12):4407-4410.
[10]张学贺,张学东,丁宁.基于OpenCV的运动目标检测与跟踪[J].辽宁科技大学学报,2010,33(5):490-494.
[11]Huston S J,Krapp H G.Visuomotor transformation in the fly gaze stabilization system[J].PLoS Biology,2008,6(7):1468-1478.
[12]张显亭.复杂场景中运动目标鲁棒检测与跟踪研究[D].太原:中北大学,2010.
ZHU Yi-feng,CHEN Li-hua
(Chaoyang Teachers College,Chaoyang 122000,Liaoning,China)
Detecting and tracking moving object is one of the key technologies in analyzing human movement,and is also an important part of intelligent monitoring system.In the part of detecting,according to characteristics of indoor monitoring,this paper puts forward the method obtaining in indoor background by statistical averaging method,and then uses background subtraction method to detect indoor moving object,and uses an improved regional growth method to connect the areas which belong to the same moving object region.In the part of tracking,this paper uses Kalman filter to predict the location′s parameters of the object.According to the predicted parameters,the system tracks human target and obtains human moving track.The system is modeled and simulated through Matlab/Simulink,and the algorithm parameters are revised accordingly. Through testing several indoor video sequences,it is shown that the algorithm can detect and track human movement correctly.
detecting and tracking for moving object;background subtraction method;Kalman filter;Simulink
TN911.7;TP311
:A
:1673-0143(2012)03-0058-06
(责任编辑:陈 旷)
2012-04-09
朱一峰 (1983—),男,讲师,硕士,研究方向:计算机教学研究。