人体运动目标检测与跟踪方法的研究与实现

时间:2022-09-16 09:18:52

人体运动目标检测与跟踪方法的研究与实现

摘 要:通过摄像机拍摄到的一段视频,对其中运动的人进行检测与跟踪。在目标检测方面,获取运动行人图像序列,利用自适应背景提取方法得到背景,根据将目标与背景进行分离的分割阈值,对差分图像进行分割,提取运动区域,检测出人体运动目标;在目标跟踪方面,选用基于Kalman滤波的运动跟踪系统,通过估计出运动目标的下一位置,对运动目标进行实时跟踪。这里的实验是在Linux平台上利用Intel的开源OpenCV函数库建立起模型并实现算法。经过多次仿真测试表明,使用Kalman滤波可以很好地解决实验中两个人握手时运动目标间遮挡的问题,并跟踪运动目标,而且处理速度比较快,能够满足一般情况下的实时性要求。

关键词:图像序列;目标检测;Kalman滤波;实时跟踪

中图分类号:TP311文献标识码:A

文章编号:1004-373X(2010)04-128-04

Research and Realization on Moving Object Detection and Tracking Methods of Human

XU Lei,PEI Hailong

(College of Automation Science and Engineering,South China University of Technology,Guangzhou,510640,China)

Abstract:Through a section of camera video,the moving human bodies are detected and tracked.In target detection,it obtains image sequence,gets the background using adaptive background extraction method.In accordance to the segmentation threshold of the partition separating the objects and images,it segments the images,extracts moving field,and detects the human bodies′ moving targets.In the target tracking,it chooses the movement tracking system based on Kalman filtering.By estimating the next position of moving targets,it tracks moving targets with real-time.In this paper,it builds the model and algorithm on the experimental platform in the Linux open-source use of Intel′s OpenCV library.Several rounds of simulation tests show that the use of Kalman filter can be a very good solution to the experiment.When two people shake hands with the issue of inter-shading,it solves the problem well,gets very good tracking of moving targets and fast processing speed.So,the system meets the real-time requirements under normal circumstances.

Keywords:image sequence;target detection;Kalman filtering;real-time tracking

0 引 言

运动目标的检测和跟踪是计算机视觉研究的主要问题之一,它融合了图像处理、模式识别、自动控制、人工智能及计算机等许多领域的先进技术,在无人机视觉导航、视频监控、医疗诊断、智能交通等方面都有广泛的应用。在此主要围绕这两个方面的内容展开研究。

运动检测的目的是从序列图像中将变化区域从背景图像中提取出来,运动区域的有效分割对于目标分类、跟踪和行为理解等后期处理是非常重要的。然而,由于背景图像的动态变化,如天气、光照、影子及混乱干扰等影响,使得运动检测成为一项相当困难的工作。在此,只研究在背景静止状况下的人的运动[4]。

所谓跟踪,就是对图像序列中的运动物体,通过提取它的某些特征,并且把这些特征从一幅图像到另一幅图像匹配起来,这个过程叫作跟踪。运动跟踪主要通过建立目标链来实现,目的是获得运动物体的运动轨迹。如果把所有的这些图像重叠起来,就可以得到这个运动物体的运动轨迹,所以运动物体的跟踪也可以看作是对运动物体的运动状态进行估计。

本文主要利用基于背景剪除方法检测出运动目标,然后利用Kalman滤波实现运动估计与跟踪。

1 人体运动检测原理及具体实现

在本文中,由于系统的实时性、稳定性等可实现性问题,根据行人检测系统对实时性的要求,这里采用背景差法提取运动行人。算法主要包括图像预处理、背景提取、动态选取阈值和运动行人分割等。基本流程图如图1所示。

图1 运动目标检测流程图

背景差分法是利用视频图像中每一帧图像与确定的背景图像相减,比较其中的偏差得到运动区域,并通过阈值化差分图像检测出运动物体,求取运动行人。背景差分方法是以固定摄像机为前提条件,该方法很大程度上依赖于背景图像的可靠性,背景图像需不断地被更新,以迎合环境光线、阴影和天气的变化等。背景更新中的误差累计和光线变化是影响背景差分法精度的主要因素。它可用式(1)描述。

d(x,y)=0,如果|f1(x,y)-f2(x,y)|

1,其他(1)

式中:f1(x,y)为输入图像帧;f2(x,y)为背景图像帧。如果输入图像帧中不含行人,则与背景图像帧相同,此时d(x,y)=0;相反,如果输入图像帧中包含行人,则与背景图像帧不同,此时根据阈值Th的大小判定d(x,y)可能不为0。下面是目标检测流程中用到的方法。

1.1 图像预处理

图像预处理主要用于消除图像的基本噪声、增强图像对比度等,以改善图像质量,使图像变得较为清晰,以便后续处理和分析,如图像分割等。

对图像滤波方法的选择取决于噪声与图像的关系以及处理的具体要求,图像常被强度随机信号(也称为噪声)所污染。考虑到实际场景图像中的噪声特性,这里主要采用高斯滤波法,来滤除图像中包含的高斯噪声。

1.2 背景提取

背景图像为不含前景目标的场景图像。这里采用自适应背景提取方法,即首先将输入的第一帧图像作为原始背景,从第二帧开始对当前帧间差分图像进行二值化处理,由二值图找到运动区域和非运动区域[2]。为了消除纹理相似的前景交叠区域作为背景提取的不足,这里采用的方法中引入了数学形态学运算对帧差分图像的进一步处理,准确提取出非运动区域;然后用当前帧图像中的非运动区域部分更新当前背景图像,而运动区域部分的背景图像则保持不变,经过一定数量图像的迭代便可提取出背景。

1.3 运动行人分割

在采用背景差法检测运动行人过程中,除了得到清晰的背景图像之外,选取合适的阈值也是准确分割出运动的行人中至关重要的一步,是运动行人检测的一个重点和难点。由于场景中背景基本无动态变化,且行人的服装颜色与背景差别较大,经反复实验,人工确定动态图像序列中差分图像二值化的阈值为30(灰度值)。

1.4 提取运动区域

分割后的连通区域受噪声影响很大,图像中存在一些小的噪声干扰点,这些干扰的存在必然影响行人检测的质量。首先,对二值化之后的图像进行中值滤波,消除小的噪声;然后,采取数学形态学处理中的腐蚀和膨胀算子对二值图进行操作,去除噪声前景点和填补目标区域的小孔,从而得到行人较为清晰和完整的轮廓,如图2所示。

图2为两人面对面行走的图像。对得到的差分二值图像进行标记,显示出检测到的运动目标(人)。用行人的外接矩形表示检测到的行人轮廓,矩形的四个边分别表示行人的上下左右四个边界位置,矩形的中心位置即为检测出的行人位置。

图2 人体运动目标检测结果图像

从行人通行情况下的检测效果图来看,效果比较明显,可以准确检测到场景中运动的行人。但是由于运动产生的噪声因素影响,轮廓有时不是十分准确。

2 目标跟踪关键技术分析

运动跟踪主要通过建立目标链来实现,目的是获得运动物体的运动轨迹。如果把所有这些图像重叠起来,就可以得到这个运动物体的运动轨迹,所以运动物体的跟踪也可以看作是对运动物体运动状态的估计。

在此,选用基于Kalman滤波的运动跟踪系统,通过估计出运动目标的下一位置,对运动目标进行实时跟踪[3]。

在处理每帧图像的过程中,提取并记录每个目标对应的位置信息,可以利用这些检测出的位置信息对行人的运动进行预测,预测出行人目标在下一帧的位置,对运动行人进行连续检测和跟踪。最后,根据图像序列中依次确定的目标位置,得到行人的运动轨迹。

2.1 行人的运动预测

运动预测通常利用了运动的连续性约束和平滑性约束。运动的连续性约束是指相邻帧间目标的运动位移很小,运动的平滑性约束是指相邻帧间目标的运动不会发生突变。因而当起始帧目标的位置标定完成以后,可以通过前几帧的检测结果来估计新一帧图像中目标的位置,从而简化对后续帧目标的检测,加速对目标的识别[4]。

在对行人跟踪过程中,需要在图像序列中连续不断地检测到行人,如果对每帧图像的处理都采用搜索整幅图像的方法,则系统的处理速度必然得不到保证[5];同时在行人的检测过程中,图像中同时出现的两个行人在运动过程中也经常发生相互间遮挡现象。由于这些问题的存在,为了提高系统的实时性和解决目标短时间内被遮挡时的跟踪问题,可以考虑采用运动预测的方法对被遮挡目标的位置加以估计,利用预测的目标位置继续跟踪目标,达到实时检测和连续跟踪运动行人的目的。

2.2 Kalman滤波在运动目标跟踪中的应用

Kalman滤波以其实时性较好而得到了广泛的应用,在此选用Kalman滤波进行运动估计。

在视频监控中对运动物体进行跟踪时,最简单的方法是利用空间、时间特性来描述运动目标,采用基于像素的区域搜索匹配方法进行目标的运动预测和判别,该方法只有目标在两个连续帧的运动变化很小时才适用,当目标运动发生跳跃变化或受到其他因素干扰时,如被其他物体遮挡或在视频传输时发生丢帧现象,则算法便会失败。

基于Kalman滤波的目标跟踪是将运动目标的运动模型看作是一个Kalman滤波器模型,根据运动目标的运动历史预测它在下一帧中的位置信息。目标跟踪过程中Kalman循环滤波的过程如图3所示。

图3 Kalman循环滤波过程

首先在进行时间分析处理时,不需要定义一个精确的运动模型,它能够通过一个简单的运动学模型有效地跟踪真实对象的运动轨迹;其次,Kalman滤波算法是一种基于运动学模型的反馈结构算法,当运动目标发生跳跃变化时,可以根据对象以前的运动轨迹和运动模型继续对其运动进行预测[6]。当这些对象再次在场景中出现时,可以帮助跟踪系统识别这个对象。Kalman滤波在运动目标预测中的具体实现如下:

若X表示目标状态向量,(x,y)和(vx,vy)分别为目标特征点在图像中的坐标位置和运动速度,则X=(x,y,vx,vy)T,若Y=(x,y)T表示观测向量。根据Kalman滤波理论,建立的系统状态估计Kalman滤波模型如下:

状态方程:

X(k)=A(k|k-1)X(k-1)+w(k-1)(2)

观测方程:

Y(k)=H(k)X(k)+v(k)(3)

式(2)和式(3)中:A(k|k-1)为从k-1时刻到k时刻系统的状态转移矩阵;H(k)为观测矩阵;w(k-1)和v(k)分别为零均值的系统噪声向量和观测噪声向量,其中:

A(k|k-1)=10100

0100

0010

0001(4)

H(k)=1000

0100(5)

假设两个人做匀速直线运动,通过计算得知每个人的运动速度,则根据离线实验可得初始状态的预测误差协方差矩阵P、系统噪声向量w(k)和观测噪声向量v(k)的协方差矩阵Q,R分别为:

P= 100000

010000

00250

0000 Q= 4000

0400

0010

0001

R=10

01(6)

根据式(2)~(6),可以很容易地实现计算机的程序,完成对运动目标跟踪任务的实现。

2.3 OpenCV介绍

该实验是在开源系统Linux平台上用OpenCV函数库建立起模型并实现算法的。OpenCV是Intel公司开发的开源数据库。作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV可以直接应用于很多领域,作为第二次开发的理想工具。比如实时计算机视觉领域中人机交互目标的分割和识别、人脸识别、手势识别、运动跟踪、自我运动、运动理解、移动机器人等。它由以下类库组成:

(1)CXCORE。包含了图像处理和数学运算,特别是矩阵运算的相关函数。

(2) CV。包含图像处理和分析的一些函数,同时还包含了其他诸如结构分析、极线几何、模式识别、结构分析等一些函数。

(3) HighGUI。与平台相关的用户界面函数,主要用以控制图像窗口、按钮等控件。

(4) CVCAM。与视频设备输入/输出相关的函数。

在该程序中,主要利用了CV库中现有的图像处理函数,如边缘检测、图像叠加、灰度转换及图像翻转等。在此基础上开发自己的一些函数,如演算图像运动历史(Motion History of Image)等。

3 目标跟踪试验与仿真

在本次试验中,充分利用OpenCV封装的函数库。其中,在跟踪阶段用到两个重要的函数为:

(1) KalmanPredict

估计后来的模型状态 :

const CvMat* cvKalmanPredict( CvKalman* kalman,const CvMat* control=NULL );

#define cvKalmanUpdateByTime cvKalmanPredict

(2) KalmanCorrect

调节模型状态:

const CvMat* cvKalmanCorrect( CvKalman* kalman,const CvMat* measurement );

#define cvKalmanUpdateByMeasurement cvKalmanCorrect

得到的实验结果如图4所示。

图4 运动行人检测跟踪效果图

图4中标注白色线框的为检测到并进行了标记的运动人体前景图像,黑色线框为利用Kalman滤波技术对人体进行预测跟踪的结果。其中,两个中点为各自方框的中心点。

4 结 语

该实验结果表明,Kalman滤波的估计值与实际测量值比较接近,误差在很小的范围之内,可以很好地跟踪运动目标,而且处理速度比较快,能够满足一般情况下实时性的要求。此外利用Kalman滤波可以很好地解决实验中两人握手时运动目标间遮挡的问题。

通过Kalman滤波器的预测估计可以大大缩小图像处理的范围,因此极大地提高了处理速度和信息反馈的时间,减少或消除视觉通道反馈信息的时间滞后问题。

但是,一个明显的缺陷是该实验只对目标一个方向上的估计跟踪效果比较好,而对另一个目标的预测则明显呈现滞后现象,这一点可以在今后对代码的不断完善中完成。Kalman滤波存在初值选取、噪声参数确定的问题,该实验是在多次反复试验的基础上选定的各个参数及初值,而且假设运动目标做匀速直线运动,这也是Kalman滤波的局限性之一。

参考文献

[1]王亮,胡卫明,谭铁牛.人运动的视觉分析综述[J].计算机学报,2002,25(3):225-237.

[2]侯志强,韩崇昭.视觉跟踪技术综述[J].自动化学报,2006(4):603-617.

[3]宋磊,黄祥林,沈兰荪.视频监控系统概述[J].测控技术,2003(5):33-35.

[4]陈h,蔡自兴.基于DirectShow技术的移动机器人视频采集系统[J].华中科技大学学报:自然科学版,2004(Z1):87-89.

[5]刘雷.人体运动建模仿真方法研究[J].计算机仿真,2009(1):166-168.

[6]孙剑,李克平.行人运动建模及仿真研究综述[J].计算机仿真,2008(12):12-16.

[7]Neri A,Clonnese S,Russo G,et al.Automatic Moving Object and Background Separation [J].Signal Processing,1998,66:219-232.

[8]Peter Meer.Real-Time Tracking of Non-Rigid Objects using Mean Shift[A].IEEE CVPR[C].2000.

[9]Natan Peterfreund,Robust.Tracking of Position and Velocity with Kalman Snakes[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,1999,21(6):564-569.

上一篇:基于GA-LMBP算法的模拟电路故障诊断方法 下一篇:单脉冲二次监视雷达天线波瓣测量方案研究