首页 > 技术文章 > 基于颜色特征的目标跟踪常用算法

llnick 2021-03-27 15:21 原文

camshift算法原理
camshift就是利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置。
分为三个部分:
1--色彩投影图(反向投影):
(1).RGB颜色空间对光照亮度变化较为敏感,为了减少此变化对跟踪效果的影响,首先将图像从RGB空间转换到HSV空间。

(2).然后对其中的H分量作直方图,在直方图中代表了不同H分量值出现的概率或者像素个数,就是说可以查找出H分量大小为h的概率或者像素个数,即得到了颜色概率查找表。

(3).将图像中每个像素的值用其颜色出现的概率对替换,就得到了颜色概率分布图。这个过程就叫反向投影,颜色概率分布图是一个灰度图像。

2--meanshift
meanshift算法是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标。
算法过程为:
(1).在颜色概率分布图中选取搜索窗W
(2).计算零阶距:
                   

计算一阶距:

计算搜索窗的质心:

(3).调整搜索窗大小
(4).移动搜索窗的中心到质心,如果移动距离大于预设的固定阈值,则重复2)3)4),直到搜索窗的中心与质心间的移动距离小于预设的固定阈值,或者循环运算的次数达到某一最大值,停止计算。

关于meanshift的收敛性证明可以google相关文献

camshift算法:
将meanshift算法扩展到连续图像序列,就是camshift算法。它将视频的所有帧做meanshift运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧meanshift算法搜索窗的初始值。如此迭代下去,就可以实现对目标的跟踪。
算法过程为:
(1).初始化搜索窗
(2).计算搜索窗的颜色概率分布(反向投影)
(3).运行meanshift算法,获得搜索窗新的大小和位置。
(4).在下一帧视频图像中用(3)中的值重新初始化搜索窗的大小和位置,再跳转到(2)继续进行。

 

1.2meanshift算法

Mean-Shift算法,一般是指迭代寻优算法,该算法先计算当前点偏移量的平均值,然后移动该点到其该均值处,以此处位置为当前点,重新计算当前点偏移量的平均值,继续移动,直到满足一定的停止条件,收敛到最近的一个概率的稳态点。Mean Shift算法本质是一个自适应的梯度上升搜索局部峰值的方法,如图所示,Mean Shift矢量总是指向概率 f(x) 增加最大的方向。如果数据集服从概率,给定一个初始点x,Mean Shift算法就会一步步的移动,最终收敛到 f(x) 的极值处。

 

 

 

图1  Mean shift算法示意图

Mean Shift算法实现跟踪的做法是利用目标的颜色特征在序列图像中找到运动目标所在的位置和大小,在下一帧序列图像中,用运动目标当前的位置和大小初始化搜索窗口,重复这个过程就可以实现对目标的连续跟踪。该算法以目标的颜色直方图来获得颜色概率分布,当目标随时间运动时,图像的颜色概率分布也随着变化,因此可以根据图像的颜色的概率分布变化来跟踪目标。

Mean Shift 跟踪算法的具体实现:

 

 

 

图2 mean-shift 目标跟踪的算法流程图

跟踪过程如图,其中寻找中心步骤是主要的 meanshift 算法,也是整个跟踪过程的核心。总的概括起来可以分为四步。

1.我将图像序列读入 matlab 中,并在第一帧中手动找出目标;

2.将目标图像从 RGB 颜色空间转化为 HSI 颜色空间,并计算目标框内的颜色直方图;

3.读入第二帧图像,在第一帧中目标的位置将目标框扩大形成一个搜索区域;

4.按照 meanshift 算法描述方法直到收敛,并标出新目标。

Mean-shift 算法在目标跟踪中收敛性好且速度较快,但是由于算法的单峰搜索性质,使得目标跟踪系统在很多情况下表现不够稳健。

1.3粒子滤波算法

粒子滤波是用一组具有权值的粒子完全的描述后验概率分布,

粒子滤波理论描述了一种有效的目标跟踪框架,它用粒子加权和来表示目标状态的后验概率。从 0 时刻开始,系统进行初始化,确定目标状态的先验概率表示形式,给各个粒子赋予初始权值。在下一时刻,首先进行状态预测转移,各粒子遵循一定的状态转移方程进行自身的状态传播,其后得到新状态对应的观测量,通过系统测量阶段,计算各粒子的权值,这实际是粒子状态更新的过程,接下来,粒子经过重采样继续进行状态转移,构成一个递归循环框架。

 

 

 

图3 粒子滤波的跟踪框架

由于粒子滤波的多峰搜索性质,在稳健性方面优于 mean-shift 算法的目标跟踪方法,但是计算量较大,目标跟踪的实时性较差。

推荐阅读