可能很多同道跟我一样,以前也鼓捣过单片机,焊过板子。由于以后学习方向的改变,让我不得不找一个较感兴趣的课题,快速地入门图像处理、机器视觉中来。我的第一个课题是目标跟踪,使用的经典算法Mean Shift。
目前的目标跟踪算法的研究多趋向于分类器的方法,即把视频中对运动目标的跟踪过程看做是目标和非目标二分类的过程。分类器的方法大致可以描述为:对目标和非目标的特征分别采样,作为分类器输入的正负样本,不断地训练分类器使之分类准确。Mean shift算法是传统的目标建模的方法,即对欲跟踪目标进行建模,然后通过匹配的方式寻找到下一帧中目标的位置。但它又与传统的盲搜不同,它利用相邻帧之间目标位置变化不大的特点,采用迭代逼近的方式提高算法的搜索速度。在对欲跟踪目标建模时,Mean Shift算法采用基于颜色特征的核密度估计的方式进行建模,使得跟踪过程中对目标旋转,小范围遮挡不敏感。
一、Mean Shift 实现跟踪的基本思想
当目标运动速度不是很快的时候,相邻帧之间目标与目标的位置会有重叠。如下图,是一组视频中的某些帧(貌似帧的序号写的不对,大家见谅!)。红色框是Mean Shift的跟踪结果。Mean Shift 算法就是已知上一帧跟踪框的位置要得到下一个跟踪框的位置。
Mean shift算法是怎么找到下一帧中目标的位置的呢?下面先通过一组图介绍原理。
如图