Camshift原理 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置
分为三个部分: 1--色彩投影图(反向投影): (1)
RGB 颜色空间对光照亮度变化较为敏感,为了减少此变化对跟踪效果的影响,首先将图像从RGB 空间转换到HSV 空间
然后对其中的H 分量作直方图,在直方图中代表了不同 H 分量值出现的概率或者像素个数,就是说可以查找出H 分量大小为h 的概率或者像素个数,即得到了颜色概率查找表
将图像中每个像素的值用其颜色出现的概率对替换,就得到了颜色概率分布图
这个过程就叫反向投影,颜色概率分布图是一个灰度图像
2--meanshift meanshift算法是一种密度函数梯度估计的非参数方法,通过迭代寻优找到概率分布的极值来定位目标
算法过程为: (1)
在颜色概率分布图中选取搜索窗W (2)
计算零阶距: 计算一阶距: 计算搜索窗的质心: (3)
调整搜索窗大小 宽度为;长度为1
2s; (4)
移动搜索窗的中心到质心,如果移动距离大于预设的固定阈值,则重复 2)3)4),直到搜索窗的中心与质心间的移动距离小于预设的固定阈值,或者循环运算的次数达到某一最大值,停止计算
关于 meanshift的收敛性证明可以 google 相关文献
3--camshift 将meanshift算法扩展到连续图像序列,就是 camshift算法
它将视频的所有帧做 meanshift运算,并将上一帧的结果,即搜索窗的大小和中心,作为下一帧meanshift算法搜索窗的初始值
如此迭代下去,就可以实现对目标的跟踪
算法过程为: (1)
初始化搜索窗 (2)
计算搜索窗的颜色概率分布(反向投影) (3)
运行 mean