猜想动机:粒子滤波器+KCF滤波器
大致流程:
初始化 根据人为标定的位置、尺寸取patch,分别随机抽取以标记的位置为中心正态分布的五十个点和以尺寸为标准随机取,代码中为addParts函数;
每一个子窗口(50个)分别用KCF滤波初始化(ps:和kcf代码一模一样)。
下一帧求取psr = (最大响应-均值)/方差;psr越大代表子窗口置信度越高(ps:方差越大说明子窗口变化大,跟踪窗口不是很好,权值越小);
运动信息:代码中说如果跟踪窗口连续五帧都在跟踪,没有删去这个粒子(粒子代表这个跟踪窗口),就可以求这个粒子的运动信息(代码中可以看到,粒子的运动信息可以增加这个粒子的权值,因为连续五帧都有这个粒子,说明置信度高),公式为
尺度变化 ,就是两个点的距离(同一帧)除以各点位移(上一帧和这一帧)的差,这一公式表示尺度变化也说的过去,取中间值
如果连续五帧都有较大的尺度变化,重新更新采样(彻底采样)
50个粒子中有几个不合格的例子(论文中有写),用表现比较好的粒子,在好的粒子周围随机取样代替表现不好的粒子;
更新 接着循环
处理帧数慢的原因就是50个粒子都需要进行KCF滤波,再加上一些别的处理,速度应该是KCF速度的60分之一。