智能监控系统有两个重要方面,分别是目标的检测和目标的追踪。目标检测就是在一帧图像中找到感兴趣的区域,并将其标注出来。其中帧间差分法,背景建模法和光流法当前最常用的三种方法。由于帧间差分和背景建模和该课题联系不是那么紧密,在此就只提一下光流法。光流法首先假设光强在一定时空范围内是恒定的,并根据这一前提条件,可求出每个像素点的速度(速度方向未知),并由此区分背景和前景。而根据光流法还可推出基于光流法的追踪器lucas—kanade追踪器,和我们要研究的TLD算法密切相关。
至于目标追踪,其实就是对于每一帧图像都找出我们想要追踪的目标所在的区域,并记录其运动轨迹。由此可以看出,目标追踪和目标检测息息相关,且还和目标模板特征的提取关系密切。当然,即使某一目标跟踪算法的效果很好,它还要满足实时性这一基本要求。在对于目标跟踪算法的研究中,有学者尝试将滤波算法引入到追踪算法中,如卡尔曼滤波,该算法有着鲁棒性这一优点。也有学者将基于局部最优的迭代算法Mean Shift算法应用到追踪算法中,也取得了良好的效果,有着较好的实时性。
其中,卡尔曼滤波是由卡尔曼所提出的一种线性系统状态方程,该理论基于上一状态预测当前状态,并将预测值和系统对当前状态的测量值进行综合(基于预测值和测量值都服从高斯分布这一假设),找到一个最佳值,该值出现的概率最大。基于卡尔曼滤波的追踪算法即使追踪目标发生了遮挡,依然可以对目标进行正确的追踪,这是由于它对当前目标的运动状态进行了预测。
而Mean Shift算法的本质其实就是寻找局部最优点,并不断的迭代计算。Mean Shift算法原本是一个聚类算法,其原始定义为在以当前点为中心的某个区域内,对除了当前点之外的所有样本点计算和当前点的距离向量,并对其求和然后取平均。直观的来理解,就是找寻一个向量,使得该向量的方向指向点密度最大的区域。将当前点和所得向量相加得到新的点,并将其作为新的基准点,而后进行迭代运算。直到当所求的向量为0或小于阈值,则可认为当前点为最优点,即该类的中心,则算法停止。也就是说Mean Shift算法将中心分布紧密,外部较为稀疏的点统分为一类,这和目标追踪想要达到的目的一致。目标追踪其实就是想要找到一个点且以该点为中心的区域和目标模板最为接近,而这样的区域当以该区域任意点作为中心点计算相似度时,必然也会呈现出中心高周围小的趋势。将Mean Shift算法和目标追踪结合,必须得先明白一点,Mean Shift算法要求解的平均距离向量从本质上来讲就是求解点密度分布的梯度向量,这是由于梯度方向就是点密度变化最大的方向,这和平均距离向量的意义不谋而合。因此,当进行目标追踪时,以上一帧的目标区域为起始点,按照Mean Shift算法的思想,不断迭代运算,直到算法停止则可完成对目标的跟踪。当然,为了提高Mean Shift算法的鲁棒性,对相似度的计算会有一些小技巧,例如采用核函数,强调中心区域像素点的作用,忽略边缘区域像素点的贡献。这是由于对于目标区域的追踪,中心点较为可靠,而边缘点容易发生遮挡,可能会导致错误的追踪结果。
然而对于目标追踪如果仅仅使用孤立的追踪器,并不能取得足够让人满意的结果。这是由于客观环境所决定的。监控摄像头可能发生抖动,光照可能会有波动,追踪物体在图像中发生形变或扭曲,抑或是产生遮挡,导致目标区域和目标模板相似度过低或是追踪器追踪失败或是追踪器的鲁棒性不够,从而找不到目标区域。这都要求重新对该帧进行检测,找出最有可能是目标区域的多个样本并对其进行分类,而对于这些已分类的候选区域,需要对其进行学习并丰富所构造的目标模板库并更新相关分类参数。为了达到这一目的,TLD算法采用了追踪器,检测器和学习器,通过它们的相互协作和配合,可大幅提高算法的鲁棒性,获取令人满意的效果。
TLD算法的追踪器采用的就是以上所提及的lucas—kanade光流追踪器。光流法可得出像素点在x方向和y方向的速率和亮度变化的关系式,但由于有两个变量却只有一个方程,无法得出具体解。Lucas—kanade追踪器通过假设运动是小而连续的,认为在某个邻域中光流是相同的,从而构造出多个方程式,并利用最小二乘法求解最佳参数。当然现实中的运动有可能是高速的,因此lucas—kanade追踪器的准确度并非很高,需要有进一步的处理。TLD算法采用了前后误差判别法,利用光流从上一帧追踪到当前帧,再从当前帧追踪到上一帧,若从后往前所追踪到的点和上一帧的点差距过大,则表明追踪失败,此时则应启动检测器。
TLD算法的检测器采用级联检测器,分为三个级别:图像元方差分类器,随机蕨分类器和最近邻分类器。图像元方差分类器计算图像区域灰度的方差,将小于模板方差一半的区域过滤掉。通过随机蕨生成类别特征值的分布,若当前样本的特征值在某类取得的概率最大,则将其视为该类。最近邻分类器利用某一准则计算当前样本的相对相似度,若大于0.6,则认为是正样本。
TLD算法学习器需要完成候选样本的产生和对样本的学习。候选样本的产生通过扫描图像完成,而对样本的学习采用P-N学习方法。P专家检出正样本误分为负样本的样本(其实就是追踪器产生的样本,默认追踪器生成的目标区域为正样本),N专家检出负样本误分为正样本的样本,从而只剩余唯一一个正样本,也就是要追踪的目标区域。
以上三种算法各有各的优点,也各有各的不足。若想要得到更加稳定的算法,可对上述三种算法进行一定的结合,以便于适应更加复杂的环境。
参考文献:
