粒子滤波的目标跟踪算法研究与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
粒子滤波的目标跟踪算法研究与实现
作者:韩雪王元亮
来源:《现代商贸工业》2011年第15期
摘要:通过已经获得的运动目标的先验特征点,以及基于这些特征点在各种噪声的干扰下多呈现非线性和非高斯的特点,我们可以利用粒子滤波的方法进行运动估计和跟踪。由于粒子滤波具有对非线性和非高斯的有效逼近的性质,获得粒子的后验概率分布,估计目标状态,实现目标的有效跟踪。为了有效避免粒子退化问题,采用累加权值、聚类算法并且引入高斯分布函数进行采样,保证粒子的多样性。经过程序测试,结果很有效。
关键词:粒子滤波;高斯分布;目标跟踪;先验概率分布
中图分类号:TB
文献标识码:A
文章编号:1672-3198(2011)15-0271-03
目标存在变化多样和跟踪设备对环境适应性不完善等问题,复杂环境下的运动目标跟踪是个难题。例如:由于检测结果不连续,在连续帧间,有些帧没有检测结果。为了有效跟踪运动目标,必须对运动对象进行有效的估计,利用已有的信息,获得当前运动物体估计状态,然后利用现有观察数据对运动状态进行修正。该类问题经常采用广义卡尔曼滤波方法。广义卡尔曼滤波依赖于模型的线性化和高斯假设。不过卡尔曼滤波存在许多缺点:在估计系统状态和方差时,由于线性逼近,可能导致滤波发散;如果密度函数不是高斯分布,该方法估计精度不高;在多维、多因素等复杂性的限制情况下,其结果计算量往往几何倍的增长。近年来出现一种新的最优非线性方法———粒子滤波,它源自序列蒙特卡罗方法。该方法不受动态系统各个随机变量的限制,能够有效地应用于非线性、非高斯的运动系统中。
粒子滤波的核心思想是利用一系列随即样本的加权和表示所需的后验概率密度,得到状态的估计值。当样本点数增至无穷大时,蒙特卡罗特性与后验概率密度的函数表示等价。一般都是用序贯粒子滤波算法,由于此方法会产生退化现象,随意在此基础上用重新采样方法。但这又会导致有大量重复的粒子构成,增加了计算量。而文中的方法加入了聚类算法和当前帧的特征点,进一步减少了粒子退化。
1 蒙特卡罗法基本原理
粒子滤波的理论基础是基于蒙特卡罗方法,即利用一系列随机抽取的样本,计算后验概率分布的方法。因为当这个抽样足够大的时候,这样计算的结果和实际后验分布的概率分布近似。而且粒子滤波还有一个优点,那就是它的复杂度和精度只与粒子数量相关,而与空间维度无关。这样,就算维度增加,也不会导致算法的性能和复杂度的增加。
假设所要求量x 是随机变量ζ的数学期望 E(ζ),那么近似确定 x的方法是对ζ进行 N 次重复抽样,产生相互独
根据柯尔莫哥罗夫加强大数定理[35]有式(2.15)成立:
因此,当足够大时,式(2.16)成立的概率等于1,即可以用作为所求量的估计值:
由此可以看出,当所要求解的问题是某个随机变量的期望值时,可以通过某种“试验”的方法,得到这个随机变数的平均值,并用它作为问题的解,这就是蒙特卡罗方法的基本思想。
2 粒子滤波法的基本原理和步骤
2.1 粒子滤波法的基本原理
粒子滤波器的基本思想来源于Perfect Monte Carlo(PMC)仿真,在PMC中,任意函数的数学期望:E(g(X0:k))=∫g(X0:k)P(X0:k|Z1:k)dX0:k
如果随机变量X 容易采样,则它的数学期望可进行如式:{g(X)}≈1N Ni=1g(X
但是由于P(X)很难采样,则提出重要性采样的方法,其基本思想就是从一个容易采样的密度函数q(X)采样,间接获得g(X)的数学期望。 q(X)称之为重要性密度函数,即将概率分布与P(X)相同。
所以对于q(X)进行采样获得点集X i~q(X),i = 1,2,3…,N。对于P(X)的估计可以表示为:
是第i个粒子的归一化权值。
样本的采样由难采样的 p(X)换为易采样的q(X),对函数g(X)附加了一个重要性权值
2.2 一般粒子滤波算法的步骤
粒子滤波算法的中心思想是用随机采样获得的样本集合而不是用基于状态空间的函数来表示所需的概率密度函数。当样本数量很大时,样本集合可以有效地、确切地、等同地表示所需
的概率密度函数,直接从这些样本中获得所需状态变量的概率密度函数的矩估计(例如:均值和方差)。粒子滤波一般算法包含如下几个步骤:
(1)初始化步骤:t=0。
③输出。
过程一般如下图表示:
2.3差分图像色彩加权的粒子滤波算法
2.3.1 滤波算法的重要步骤
(1)新目标点产生。
以当前帧检测到的运动目标特征点(u,v)为中心将矩形框作为检测区域。将当前帧跟踪上的目标位置的矩形框
(u-r:u+r,v-r:v+r)
作为跟踪上的目标区域。将跟踪上的目标区域以外的检测区域中的像素点作为新目标粒子点。聚类新目标粒子点生成新目标。
(2)计算粒子权值。
以粒子点为中心5*5像素矩形框区域内的补偿图灰度值的均值作为该粒子点的权值。其中补偿图是归一化的补偿图。
结点:将图像划分为10*10的格子,统计每个格子中的粒子点并计算出该格子的密度:
θ=i R w i/num 。其中R为格子包含区域,W i为第i个粒子点的权值,num为格子内包含的粒子点数。当格子密度大于某一阈值时,称该格子为结点。结点的权值为
w k=i R w i。
结点位置:KdNodes.u=i R w i(u,v)/i Rw i。
结点方差:KdNodes.v i Rw i((u,v)-KdNodes.u)2/i Rw i。
(5)聚类算法。
以结点为研究对象,聚类结点,当某一结点中心与另一结点中心之间的像素距离小于某一阈值时,将两个结点聚为一类形成目标。
该目标的位置如下表示:
for:i=1:KdNodes.mum。
(6)粒子传播。
原粒子位置:u;
新粒子速度: s;
新粒子位置:newu=u+s+normrnd(0,rp/w);
新粒子速度:news=newu-u+normrnd(0,rv/w)。
其中,w为粒子权值,rp,rv为常数。函数 normrndO为高斯分布随机数生成函数。
(7)目标分离。
将属于同一目标的粒子传播后的新粒子聚类,如果形成多个目标,说明原目标产生分离,分离后的目标中,目标面积最大的继承原目标的ID,其他目标为生成的分离出的新目标。目标面积为目标矩形框的面积。
(6)目标合并。
当两目标相交面积满足:area(O1∩O2)/min(area(O1))area(O2)>1/3,将两个目标合并为一个目标。
2.3.2 粒子滤波算法具体伪代码
4 存在的问题
(1)一个运动目标身上的粒子过于分散时,被分成多个目标。
(2)补偿图中静止立体物并未被补偿掉,因此当运动目标被立体物遮挡后离开,留在静止物体上的粒子点被加以较大权值,容易形成目标,从而造成误检测。
(3)如果见检测结果中有误检测,跟踪算法能够使误检测延时多帧以后,致使最终误识别率上升。参考文献