开篇:润墨网以专业的文秘视角,为您筛选了一篇基于改进型粒子滤波的目标跟踪算法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:目标跟踪是计算机视觉领域的研究热点。该文提出了一种结合卡尔曼滤波和粒子滤波的目标跟踪算法。可以结合卡尔曼滤波算法计算量小,实时度高和粒子滤波算法准确度高,可以在非线性系统下稳定工作的优点。实验结果表明,该方法在计算速度和跟踪准确度上均能取得较满意的结果,具有一定的价值。
关键词:目标跟踪;卡尔曼滤波;粒子滤波
中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2013)32-7310-03
目标跟踪问题是计算机视觉领域的研究热点,是结合图像处理、机器视觉和模式识别等的研究方向,因为跟踪的目标多表示为状态空间模型。所以一般采用目标状态的估计求解来解决目标跟踪问题。现有的目标跟踪算法包括相关匹配、卡尔曼滤波、Camshift算法等[1-3], 但这些算法一般都具有计算准确度不高,鲁棒性不强,应用环境局限等缺点。而粒子滤波算法因为可以较稳定适用于非线性系统的优点,近年来受到了广泛地关注。
粒子滤波[4-6]算法基于蒙特卡洛方法,利用粒子集来表示概率,通过从后验概率中抽取的随机状态粒子来表达其分布,能够适用在任何形式的状态空间模型上。具有较多的优点。但粒子滤波同时也存着着计算量大和实时度不高等问题。而卡尔曼滤波算法[7-8]则可以较为快速跟踪目标的状态,具有稳定、计算量小的特点, 只是卡尔曼滤波一般只能多应用于高斯线性系统,有一定的局限性。
本文结合两种算法各自的优势,提出了一种基于卡尔曼滤波的改进型粒子滤波算法。首先利用卡尔曼滤波预测目标在图像中的位置,并对预测结果进行评估,如果评估结果超过阈值,则直接采用卡尔曼滤波的跟踪结果;否则则利用粒子滤波算法进行目标跟踪。并再次对粒子滤波和卡尔曼滤波的跟踪结果进行比较,选取评估结果高的预测值为最终的跟踪结果。
1 卡尔曼滤波和粒子滤波
1.1 卡尔曼滤波
卡尔曼滤波是典型的最小方差估计方法。其信号模型是由离散的状态方程和观测方程组成的。设估计离散时间过程的状态变量为[x∈Rn]。则状态方程如公式(1)所示:
[xk=Axk-1+Buk-1+wk-1] (1)
其中, [xk]是在[k]时刻系统的[n]维状态矢量; [A]是系统从[k-1]时刻到[k]时刻的[n×n]状态转移矩阵; [B]是可选的控制输入[u∈Rl]的[n×l]增益矩阵; [wk-1]为[k-1]时刻时的过程激励噪声。
定义观测变量[z∈Rm] ,则观测方程如公式(2)所示:
[zk=Hxk+vk] (2)
其中,[zk]是[k]时刻的[m]维观测信号矢量;[H]是[k]时刻的[m×n]阶观测矩阵; [vk]是观测噪声。
卡尔曼滤波算分为两个阶段:时间更新和测量更新。时间更新阶段利用当前的状态及协方差估计得出下一个时刻这两个量的先验估计;测量更新阶段负责处理反馈,将最新获得观测值和先验估计合并以获得改善的后验估计。
时间更新方程如公式(3)-(4)所示:
[x∧k|k-1=Ax∧k-1+Buk-1] (3)
[Pk|k-1=APk-1AT+Q] (4)
其中,[x∧k|k-1]为状态预测矢量, 即[k]时刻状态的先验估计值; [x∧k-1] 为[k-1]时刻的状态值; [Pk|k-1]为预测均方误差矩阵, [Pk-1]为[k-1]时刻的均方误差矩阵。
测量更新方程如公式(5)-(7)所示:
[Kk=Pk|k-1HT(HPk|k-1HT+R)-1] (5)
[x∧k=x∧k|k-1+Kk(zk-HTx∧k|k-1)] (6)
[Pk=(I-KkH)Pk|k-1] (7)
其中,[Kk]为增益矩阵。
1.2 粒子滤波算法
粒子滤波的思想基于蒙特卡洛方法,它是利用粒子集来表示概率,可以用在任何形式的状态空间模型上。其核心思想是通过从后验概率中抽取的随机状态粒子来表达其分布,是一种顺序重要性采样法。粒子滤波是一种基于样本估计的贝叶斯滤波算法,通过一组带权值的粒子集来递归估计系统的后验概率分布。在粒子集[St={(sit,wit)|t=1,…,N}]中[St]表示[t]时刻的粒子集; [sit]表示第[i]个粒子状态; [wit]是第[i]个粒子的权值,且粒子集中的所有粒子权值和为1. 粒子滤波同样包括两个重要的过程:系统预测和系统更新。
假设已知[t-1]时刻及之前的观测值为[z1:t-1={z1,…,zt-1}],系统预测阶段利用系统状态转移概率模型[p(st|st-1)]来预测t时刻的后验概率,如公式(8)所示:
[p(st|z1:t-1)=p(st|st-1)p(st-1|z1:t-1)dst-1] (8)
在[t]时刻,系统的观测值[zt]已知,系统的状态可以通过贝叶斯法则进行更新,如公式(9)所示:
[p(st|z1:t)=p(zt|st)p(st|z1:t-1)p(zt|z1:t-1)] (9)
其中,[p(zt|st)]表示系统观测模型。
在粒子滤波器中,系统的后验概率[p(st|z1:t)]通过一个确定的具有[N]个带权值粒子组成的粒子集估计得出。粒子的权值计算如公式(10)所示:
[wit=wit-1p(zt|sit)p(sit|sit-1)q(st|s1:t-1,z1:t)] (10)
2 基于卡尔曼滤波的粒子滤波算法
考虑到两种目标跟踪算法的优缺点,该文提出了一种基于卡尔曼滤波的粒子跟踪算法。对于跟踪图像首先用卡尔曼滤波来快速确定目标中心位置,然后计算跟踪结果与模板的相似度,来决定是否采用卡尔曼滤波的跟踪结果。如果计算结果大于某一阈值[T],则卡尔曼跟踪结果正确;否则,在此时刻转换为粒子滤波跟踪,同样也计算粒子滤波的跟踪结果与目标模板的相似度,如果计算结果大于卡尔曼滤波的相似度,则采用粒子滤波的跟踪结果;否则依然采用卡尔曼滤波的跟踪结果。改进算法的具体过程如下:
step1:首先从第一帧图像中手工提取目标的外切矩形区域作为目标模板区域,得到目标的初始状态参数[x0=[x(0),y(0)]T],其中[x(0)],[y(0)]是矩形区域的中心位置。然后,在目标初始状态附近随机分布N个粒子,每个粒子的初始权值等分为[wi0=1N];
step2:用卡尔曼滤波算法进行跟踪。通过公示(3)计算出k时刻的先验估计[x∧k|k-1];再在以[x∧k|k-1]为中心的区域搜索,寻找最佳的匹配位置,得到观测值[zk]。再将[zk]代入到测量更新方程,最终得到测量后状态向量[x∧k];
step3:计算观测结果[x∧k]与目标模板的相似度,若大于阈值[T],则直接采用卡尔曼跟踪结果,转入step5;否则转入step4;
step4:用粒子滤波算法进行跟踪。首先根据公式(11)预测粒子状态
[x(k)=Ax(k-1)+Bw(k-1)] (11)
其中[x(k)]为[k]时刻的目标状态,[w(k-1)]为噪声,A和B是常量。
根据公式(12)计算粒子权值,并进行归一化处理
[wik=wik-1?exp(-12πσ2ρi)] (12)
式中,[ρi]表示跟踪结果与目标模板特征的相似度,[σ]为常数。
最后根据公式(13)计算目标区域的估计值
[x(k)=i=1Nwikxik] (13)
step5:获取新的一帧图像,再返回step2循环处理。
3 实验结果
采用C++编程,对本文提出的改进型粒子滤波跟踪算法进行实验,实验环境为CPU是Intel公司的E5800@3.20G 3.20G,内存为2G。视频图像分辨率为600 ×400像素,目标区域大小为80 ×80像素,粒子数目为100。同时对本文算法,卡尔曼滤波算法和粒子滤波算法进行对比实验,实验结果如表1所示。可以看出,该文的算法在准确性上要明显优于卡尔曼滤波算法,接近于粒子滤波算法,在速度上要明显优于粒子滤波算法,但稍逊于卡尔曼滤波算法。
4 结论
本文提出了一种改进型的粒子滤波算法,结合了卡尔曼滤波算法计算速度快和粒子滤波算法准确度高的优点。适用用于图像分辨率不高但跟踪速度要求较高的场合。从实验结果看,本方法具有一定的优点和价值。
参考文献:
[1] 邵文坤, 黄爱民, 韦庆. 目标跟踪方法综述[J]. 影像技术, 2006(1): 17-20.
[2] 万琴, 王耀南. 基于卡尔曼滤波器的运动目标检测与跟踪[J].湖南大学学报: 自然科学版, 2007, 34(3): 36-40.
[3] 王兆光, 王敬东, . 一种 Camshift 优化的粒子滤波跟踪算法[J]. 光电子技术, 2010, 30(001): 58-63.
[4] 杨小军, 潘泉, 王睿, 等. 粒子滤波进展与展望[J]. 控制理论与应用, 2006, 23(2): 261-267.
[5] 夏克寒, 许化龙, 张朴睿. 粒子滤波的关键技术及应用[J]. 电光与控制, 2005, 12(6): 1-4.
[6] 江宝安, 卢焕章. 粒子滤波器及其在目标跟踪中的应用[J]. 雷达科学与技术, 2003, 1(3): 170-174.
[7] 虞旦, 韦巍, 张远辉. 一种基于卡尔曼预测的动态目标跟踪算法研究[J]. 光电工程, 2009, 36(1): 52-56.
[8] 栗素娟, 王纪, 阎保定, 等. 卡尔曼滤波在跟踪运动目标上的应用[J]. 现代电子技术,2007, 13(30): 45-48.