APP下载

基于多变量动态建模的粒子滤波行人跟踪算法实现

2017-07-18张玉荣

关键词:直方图行人滤波

张玉荣

(1.武汉理工大学信息工程学院,湖北武汉430070;2.徽商职业学院电子信息系,安徽合肥230061)

基于多变量动态建模的粒子滤波行人跟踪算法实现

张玉荣1,2

(1.武汉理工大学信息工程学院,湖北武汉430070;2.徽商职业学院电子信息系,安徽合肥230061)

对于行人运动模型是线性系统,噪声符合高斯分布,采用边检测边跟踪的卡尔曼滤波算法,试验达到了预期的效果。但在实际中行人的随机行走具有很大的不确定性,不一定是线性系统和高斯分布,此时利用Kalman滤波就会导致跟踪失败。研究了基于先检测后跟踪的加权颜色直方图为匹配模板,基于动态建模的粒子滤波实现对行人的有效跟踪。在初始帧利用AdaBoost算法确定行人的位置、大小等状态信息,以行人矩形框内的加权颜色直方图作为跟踪的目标模板,初始化粒子集。在后续的视频图像中,利用粒子滤波算法实现行人跟踪。结果表明,即使在目标有遮挡、阴影等复杂噪声背景下,提出的方法也能很好地跟踪到视频序列中行人。

行人检测;行人跟踪;AdaBoost;加权颜色直方图;粒子滤波

行人跟踪不仅能够提供行人的运动轨迹,也为后期的行为识别(如异常动作检测等)提供了准确可靠的信息。在视频序列中,为了估计行人的运动轨迹,可利用行人检测算法确定初始帧图像的行人状态作为先验信息,结合行人的状态方程和观测方程对行人在后续帧的位置、速度、宽高等进行估计[1-3]。

目前,行人跟踪的方法有基于检测的方法和基于跟踪的方法两大类[1]。当行人运动模型为线性系统,噪声符合高斯分布时,采用边检测边跟踪的卡尔曼滤波算法,可以得到最小均方误差意义上状态的最优估计,试验达到了预期的效果。但也存在着跟踪过程过多依赖检测性能的问题。另外,行人运动的自主性很强,运动轨迹是随机、不确定的,行走过程中可能发生短时全部遮挡或局部遮挡,属于非线性系统,原来的运动模型不一定符合实际行人行走的规律,并且利用最优贝叶斯估计的预测与更新方程计算时,存在高维积分运算,很难把最优解析解形式状态解出,此时使用Kalman滤波无法实现可靠地跟踪[4-5]。而基于Monte-Carlo思想和递推贝叶斯估计的粒子滤波在非线性、非高斯分布的系统中得到了研究者的推广,非常适合非线性系统,即使在目标有遮挡、阴影等复杂噪声背景下,也能很好地跟踪到视频序列中行人。因此本文以加权颜色直方图为匹配模板,基于动态建模的粒子滤波实现对行人的有效跟踪。

1 基于卡尔曼滤波的行人跟踪算法

利用卡尔曼滤波对行人进行跟踪,需要首先确定行人的运动模型(即状态方程)和观测模型,然后再利用卡尔曼滤波的递推方程组估计行人的运动状态。

1.1 运动模型与观测模型

视频目标与点目标跟踪的不同是:视频目标的状态除了目标的质心位置,还要包括目标的轮廓大小。对于行人跟踪,通常采用外接矩形框表示目标的轮廓[6]。在第t帧图像中行人的状态向量表示为

其中,(xt,yt)为行人矩形框质心点第t帧图像的像素位置,(Δxt,Δyt)分别为质心的变化率,(ht,wt)为行人外接矩形框的高度和宽度,(Δht,Δwt)分别为矩形框高度和宽度的变化率。在相邻帧之间,视频目标运动的机动性不是很大,在大多数情况下采用一阶常速模型表述行人变化规律。随时间变化的目标的状态方程可以表示为

其中,ΔT为帧率的倒数,称为采样周期,Wt-1为多变量的高斯白噪声。

行人检测得到的是观测向量Zt=(xt,yt,ht,wt)T,则系统的观测模型为

使用卡尔曼滤波跟踪行人,首先要确认状态变量的初始状态值X0和误差方差矩阵的初始值P0。本文利用行人检测算法在连续两帧图像上进行检测,确定行人矩形区域质心位置、矩形宽高、位置变化率、宽高变化率,然后从第3帧开始跟踪行人。因此,状态向量的初始值可表示为

由于Pt在Kalman滤波中反复更新,因此可以将状态的误差方差矩阵初始值P0设置为较大初值。假设初始行人在x方向和y方向速度离真实速度有±5个像素误差,在x方向和y方向离真实位置有±10个像素的误差。由于行人腿部运动,使得行人矩形框的宽度比高度有较大的变化,所以矩形窗口的宽度误差设为±10个像素,宽度变化率设为±5个像素,高度误差设为±5个像素,高度的变化有±3个像素的误差。因此,误差方差矩阵初始值可表示为[1]

利用初始条件、状态方程、观测方程、误差方差矩阵等已知条件,代入卡尔曼滤波递推方程组进行行人状态的估计。

1.2 利用卡尔曼滤波实现行人跟踪的试验

本文采用边检测边跟踪的卡尔曼滤波跟踪算法对摄像机采集的视频序列进行行人跟踪。行人跟踪的具体流程为:

(1)视频序列连续两帧检测到行人后,按式(4)求出状态向量的初始值;

(2)通过前一时刻行人的状态向量运动模型预测出行人在下一帧中的状态。以此时状态向量的位置元素(x,y)为中心,在宽、高元素的基础上放大2倍,得出行人的感兴趣区域;

(3)在感兴趣区域利用AdaBoost行人检测算法检测行人,获得当前时刻下行人的观测信息;

(4)利用观测信息校正预测的状态向量,通过卡尔曼滤波方程组得到状态向量的最优估计;最后转入第(2)步进行下一帧行人的跟踪。

利用Kalman滤波和AdaBoost行人检测算法实现视频序列行人跟踪,效果较好,如图1所示。但该算法的观测量主要依赖于行人检测算法的准确率。假如某一帧行人检测算法的效果不好,如图1中的第140帧,那么跟踪效果就会受到影响,跟踪轨迹偏离较大。更糟糕的是,如果某一帧中无法检测出行人,那么就会导致跟踪失败。另外行人运动模型也是根据经验得到的线性系统,噪声也是符合高斯分布条件的。但在实际中行人的随机行走具有很大的不确定性,不一定是线性系统和高斯分布,此时再利用Kalman滤波就会导致跟踪失败。因此可根据观测向量的时间序列建立符合行人运动规律的状态模型,定时更新状态模型,利用粒子滤波避免线性系统、高斯分布的限制,就能达到跟踪的高可靠性。

图1 Kalman滤波算法实现单个行人跟踪

2 利用粒子滤波实现单个行人跟踪的试验

运用加权颜色直方图的粒子滤波算法跟踪视频中的单个行人目标。笔者选取校园内的三个场景随机拍摄了视频序列,三个场景都分别拍摄了两组视频,一组视频是1个行人;为模拟相似物的干扰,跟踪行人有交叉运动,另一组多添加1个行人。视频采集用惠普TrueVision HD摄像机,每帧速率为10 fps,帧的像素为320×240。这些视频数据采集包括跟踪目标的随意转动和相似物树影以及光照变化等比较复杂的背景[2]。

2.1 初始化

首先利用双阈值运动区域分割的AdaBoost行人检测算法,给出跟踪人所在区域的位置信息的起始状态p(x0),其中状态向量为x0={x0,y0,vx,vy,hx,hy,at_dot},检测初始帧中的目标行人。使用加权颜色直方图作为观测模型,按式求出加权颜色直方图分布作为目标模型。然后在目标行人区域的中心点附近选取一些粒子,并初始化粒子集,每个粒子的状态为,其中是在初始状态的基础上按照高斯分布N(0,0.42)叠加的随机干扰。

2.2 粒子的传播

对于视频目标来说,在目标变化机动性很小的相邻两帧之间,可以用一阶常速模型表述行人的运动变化。初始目标随时间的状态改变方程可表示为

其中,A为系统传递矩阵,B为噪声矩阵,ΔT为采样周期,是视频帧率的倒数,wk-1为一个多变量的高斯白噪声。粒子集中的每个粒子按式(6)进行改变,由k-1时刻传播到k时刻,粒子集就更新了分布。随着行人目标的运行,行人矩形框每间隔20帧就用中心点x、y坐标、矩形半宽、半高四个状态量形成的时间序列建立4个AR(p)模型[7]。然后由新的状态方程确定粒子的传播。给出AR模型阶数p=3的x坐标数据建立的模型为

误差εxt~N(0,5.101 7)。AR模型阶数p=1的y坐标数据建立的模型为

误差εyt~N(0,10.127 0)。矩形半宽hx的80帧数据建立的AR模型阶数p=6,模型为

误差εhxt~N(0,5.884 9)。矩形半高hy的80帧数据建立的AR模型阶数p=1,模型为

误差εhyt~N(0,4.345 8)。这样就由前p时刻的状态确定状态xt,yt,hxt,hyt。

2.3 粒子的观测值计算

在获得新的粒子集后计算它们用来确定的矩形候选区域的观测值,即加权颜色直方图分布qˆiu,i=1,…,Np。然后计算目标模型与各个粒子的候选模型,相似度函数值di,i=1,…,Np。并根据di计算出粒子对应的颜色观测似然函数值,归一化用以更新粒子的权值

2.4 重采样

根据粒子集的匮乏程度来决定是否对粒子集进行重采样。按随机采样将权值大的粒子多次复制,具体采用如下几个步骤:

(3)令xi⇒xj,权重值重新定义为wi=1/N。为实现重采样,需要在采样总数保持不变的情况下多次复制权重较大的粒子。

到此,粒子集经过系统状态方程的预测,又经过观测方程的更新,最后新的状态估计就是粒子集加权求和[8]。这个状态估计处的加权颜色直方图分布和目标模型的相似度值满足一定条件就更新目标模型。

3 仿真跟踪效果

(1)实验中只有一个跟踪行人视频图像。在3个场景中跟踪的效果如图2~4所示。

图2 场景1:对一个行人的跟踪效果

图2所在的视频包含346帧图像,跟踪一个目标。在第1帧矩形框中心分散80个粒子点。第293帧因为背景的影响,此目标粒子集在向背景漂移使得跟踪矩形框与实际行人有一定程度的偏离,但在第300帧后,又逐步达到有效跟踪。

图3 场景2:跟踪目标反方向行走

由图3可知,由于受到环境变化的影响,粒子滤波在行人跟踪过程中效果会受到一定程度的影响,如第101帧,但到了第110帧又重新跟踪上了。当目标在第143帧开始转向,向反方向行走时,同样也能顺利地跟踪上目标。

图4 场景3:复杂场景下对单个人的跟踪

图4所在的视频包含244帧,行人目标相对较小,且左侧图像区域由于房屋、树的倒影,以及汽车颜色的影响,光线偏暗,粒子传播到左侧区域时,分散度较大,跟踪矩形框会与实际行人有较大的偏离,但到最后还是能跟踪上目标。

(2)实验中有两个行人的视频图像。还是对其中一个行人进行跟踪,而另一个人与跟踪目标有相交情况,此时运用粒子滤波跟踪到的效果如图5、6所示。

图5 当跟踪目标遇到行人交叉相遇而目标不被遮挡

图5所在的视频包含232帧,目标相对较小,当跟踪目标在行走遇到其他行人没有被遮挡时,在树木倒影、光照变化的影响下,该粒子滤波算法能够实现正确的跟踪。

图6 当跟踪目标遇到行人交叉相遇且目标被遮挡

图6所在的视频包含252帧,目标相对较小,当跟踪目标在行走时遇到其他行人时,且目标被行人遮挡,在树木倒影、光照变化的影响下,该粒子滤波算法也能实现正确的跟踪。

4 结语

对视频序列的单个行人采用两种方法进行跟踪。一种是边检测边跟踪的Kalman滤波行人跟踪算法,另一种是基于加权颜色直方图的先检测后跟踪粒子滤波行人跟踪算法[3]。针对第1种方法,先建立行人运动模型和观测模型;然后从初始状态向量开始预测下一时刻行人可能出现的候选区域,在候选区域中进行AdaBoost行人检测[5],缩小检测范围,校正了Kalman滤波预测的状态向量,保证了跟踪的精度。但该算法过多依赖检测效果的优劣,因此使用第2种方法,先检测初始视频帧,确定行人的位置、宽高等作为跟踪的先验信息;由先验信息计算加权颜色直方图作为构建似然函数的目标模板,初始化粒子的状态分布[9];然后利用状态转移模型预测粒子下一时刻的状态分布,计算每个粒子对应的加权颜色直方图与目标模板的似然函数值,并更新粒子权值;根据有效粒子的个数判断是否进行重采样,并对目标模板更新;最后由所有粒子的加权和估计行人的运动状态。实验表明,该算法在环境光照变化大、目标半遮挡、全遮挡的情况下,都能有效地实现行人跟踪。

[1]GORDONN.A hybrid bootstrap filter for target tracking in clutter[J].IEEETransactionson Aerospaceand Electronic Systems, 1997,33(1):353-358.

[2]李锴,冯瑞.基于粒子滤波的多特征融合视频行人跟踪算法[J].计算机工程,2012,38(24):141-145.

[3]朱志宇.粒子滤波算法及其应用[M].北京:科学出版社,2010:3-32,190-206.

[4]朱伟.基于人体匹配解决多人体跟踪中遮挡问题的方法研究[D].上海:上海交通大学,2009.

[5]李伟,何鹏举,杨恒,等.基于双阈值运动区域分割的AdaBoost行人检测算法[J].计算机应用研究,2012,29(9): 3571-3574,3576.

[6]郭晓东.轿车前方行人识别及碰撞预警系统研究[D].沈阳:东北大学,2012.

[7]郑晓薇,于梦玲.基于Matlab多核集群的人脸识别算法的并行化设计[J].计算机应用,2011,31(10):2597-2599.

[8]郭烈.基于单目视觉的车辆前方行人检测技术研究[D].长春:吉林大学,2007.

[9]胡士强,敬忠良.粒子滤波原理及其应用[M].北京:科学出版社,2010.

【责任编辑:王桂珍 foshanwgzh@163.com】

Particle filter algorithm for tracking person tracking based on dynam icmodeling

ZHANG Yu-rong
(1.School of Information Engineering,Wuhan Universityof Technology,Wuhan 430070,China; 2.Department of Electronics Information,Huishang Vocational College,Hefei230061,China)

We study on particle filtering algorithm for tracking person based on theweighted color histogram.In the thesis,we use themethod with detecting person firstly and tracking itsecondly.First,we apply the pedestrian detection algorithm to rectangle the persons in the images and compute the status information,like position, scale,and so on.Then we compute theweighted color histogram in the rectangle region as target template.Then we initialize the particle setaccording to the startstatus.The random workmodel isused asstate equation in the initial tracking stage to propagate the state ofparticles.Thenwe compute theweighted colorhistogram of the each particle as observation data,and also compute the similarity coefficient between them and the target template. According to the similarity coefficient,each particle isweighted by thenew value.Then allweighted particlesare summed to get the final state estimation to be output.Finally,the particles were re-sampled to reduce the degradation.Since the personswalk in the uncertainty and random,one state equation isnoteffective to be used to track the target during thewhole procedure.Sowe propose themethod with dynamical state equation update based on time series to reduce the estimation error.The experimental results show that the proposedmethod can well track the video sequences in the presenceofcomplexbackground such asocclusion and shadow.

pedestrian detection;pedestrian tracking;AdaBoost;weighted colorhistogram;particle filtering

TP391.4

A

2017-05-12

安徽省自然科学研究重点项目(KJ2016A685);安徽省教育厅质量工程项目(2014jxtd110,2015tszy089)

张玉荣(1976-),女,安徽庐江人,徽商职业学院副教授,武汉理工大学博士生。

1008-0171(2017)04-0047-07

猜你喜欢

直方图行人滤波
符合差分隐私的流数据统计直方图发布
毒舌出没,行人避让
路不为寻找者而设
用直方图控制画面影调
我是行人
中考频数分布直方图题型展示
基于空间变换和直方图均衡的彩色图像增强方法
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波
基于随机加权估计的Sage自适应滤波及其在导航中的应用