从贝叶斯滤波到蒙特卡洛粒子滤波
一、贝叶斯滤波
首先建立一个动态系统,用来描述跟踪目标在连续时间序列上的变换情况,我们就使用目标的位置(i,j)作为这个动态系统的状态吧。 我们使用状态来描述系统在时刻t的状态,在这个例子中,
=(it,jt);使用
表示在时刻t目标的观测值。这里请注意,
是我们建立的模型中,目标的位置,而目标的实际位置不一定与之相等。举个简单的例子就是:一部小车做匀加速直线运动,
是我们用公式计算出来的小车的位置,
是我们用GPS定位到的位置
假设有一个系统,我们知道它的状态方程,和测量方程如下:
波动线标注的相互消去。
从贝叶斯理论的观点来看,状态估计问题(目标跟踪,信号滤波)就是根据之前一系列已有数据(后验知识)递推计算出当前状态
的可信度。这个可信度就是概率公式p(
|
)。贝叶斯滤波通过预测和更新这两个步骤来递推计算
的可信度。
预测过程是利用系统模型预测状态的先验概率密度,也就是通过已有的先验知识对未来系统的状态进行猜测,
更新过程是利用新的观测值对先验概率密度进行修正,得到后验概率密度。
在推导之前,一些预备知识还是要的。贝叶斯公式(就是条件概率公式啦),全概率公式,样本空间的概念和完备事件组的概念。
还要提一下,动态系统中的状态转移问题,一般都先假设其服从一阶马尔科夫(Markov)模型,即
①当前时刻的状态只与上一时刻的状态xt-1有关;
②t时刻的观测值yt只与当前的状态有关。
贝叶斯滤波公式的推导如照片所示。
然而,当贝叶斯滤波碰到了粒子滤波,这些推导完全不重要。哭。。。
粒子滤波
粒子滤波使用N个加权的样本(即粒子)来近似表示后验概率密度p(|y1:t)。因为有些问题系统状态变换很难建模嘛,公式都没有,
没法产生啊!所以就撒样本呗,用样本的分布来近似状态
的真实分布。例如:在图像目标跟踪过程中,系统的状态就是跟踪目标的像素中心位置。
我们知道p(|
)可以描述的是状态
的分布情况(取什么值、取得这个值的概率大小)。同样的,样本也有描述概率分布的能力。若将
看作是一个随机变量,如果能取得足够多的样本值,那么这些样本完全可以描述
的分布情况。无非就是取什么值,还有取得这个值的概率大小。样本中,落在该值上的样本越多,那么取得这个值得概率就越大哩,也就是说用频率来表示概率了。
粒子滤波的思想就是如上所述的使用样本去模拟状态粒子滤波的思想就是如上所述的使用样本去模拟状态的概率分布,我们根据某个概率分布函数撒一些粒子
,然后计算这些粒子的权值,该权值表示该粒子是我们想要的状态
的可能性,即p(
|
)。粒子撒的越多,模拟结果越精确。
下面以目标跟踪为例简述一下粒子滤波的算法流程:
1. 初始化阶段:目标的特征描述,即如何表示跟踪目标(灰度值,颜色特征等等);初始化粒子,可以使用高斯分布或者均匀分布来进行初始化(在Matlab中分别是randn函数和rand函数)。
2. 对每一个粒子(每个粒子可以看做是一个候选目标):
重采样:
在过程中,存在一个退化的问题。就是经过几次迭代以后,很多粒子的权重都变得很小,可以忽略了,只有少数粒子的权重比较大。随着无效采样粒子数目的增加,使得大量的计算浪费在对估计后验滤波概率分布几乎不起作用的粒子上,使得估计性能下降。
重采样的思路是:既然那些权重小的不起作用了,那就不要了。要保持粒子数目不变,得用一些新的粒子来取代它们。找新粒子最简单的方法就是将权重大的粒子多复制几个出来,至于复制几个?那就在权重大的粒子里面让它们根据自己权重所占的比例去分配,也就是老大分身分得最多,老二分得次多,以此类推。
以一个目标跟踪为例(基于蒙特卡罗的跟踪方法中由于抽样粒子不进行迭代运算 ,故不存在退化问题 , 所以不需重抽样):
在前一帧图像中用一个矩形框选中一个目标,计算该矩形框图像的颜色直方图作为它的特征,目标跟踪就是在当前帧中搜索使得距离函数取得最小值时所对应的目标新位置 。在实际情况下,由于目标运动的灵活性和未知性 , 所以当前帧中目标可能出现在任意位置 ,但是考虑到相邻两帧中 ,目标位移不会太大, 即满足 “近邻 ”原则 , 目标应该在前一帧中的目标位置附近, 而且距离越远出现的概率越小,而且各个方向出现的概率相同 。如果用矩形框来表示跟踪目标的位置 , 那么假设当前帧中表示候选目标的矩形框的中心服从2维高斯分布是合理的 ,因此 ,在当前帧中产生 n个矩形抽样,且这些矩形中心的分布服从 2维高斯分布 , 高斯分布的均值
为前一帧中表示目标的矩形的中心,而方差大小则反映了目标的运动速度 。取得第 s个抽样 xs(位置 )后 , 即计算每一抽样的颜色直方图 ,计算每一抽样与参考目标的相似度(巴氏距离)和距离 ,并按距离大小赋予每一抽样一个权值 w,则当前帧目标的跟踪结果可由下式计算得到:
from:https://www.cnblogs.com/JunhaoWu/p/bayes_filter.html
from :https://www.cnblogs.com/JunhaoWu/p/particle_filter.html
from:https://blog.****.net/piaoxuezhong/article/details/78619150