李 娜,牒 谨,刘 颖
(1.西安邮电大学通信与信息工程学院,陕西西安710121;2.电子信息现场勘验应用技术公安部重点实验室,陕西西安710121;3.无线通信与信息处理技术国际联合研究中心,陕西西安710121)
目标跟踪是图像处理、计算机视觉、模式识别等许多学科的交叉研究课题。在生活的许多方面都有重要的理论研究意义和实际中的应用价值,比如视频监控、虚拟现实、人机交互、自主导航等领域,具有重要的理论研究意义和实际应用价值。目标在运动过程中会呈现图像上的变化,比如姿态或形状的变化、尺度的变化、光线亮度的变化或者受到遮挡和背景相似干扰等,因此目标跟踪算法的研究也围绕着解决这些变化和具体的应用展开。
跟踪算法可分为两大类:基于不同外观模型的产生式和判别式。该产生式方法的目的是能够为跟踪目标建立相对鲁棒的外观模型,并在接下来的帧中搜索出模型误差最小的一个区域作为下一帧的跟踪对象。这些方法主要包括产生式混合建模法、核跟踪法和子空间学习法[1]。因为跟踪原理有一定的局限性,所以为了处理复杂环境下的目标跟踪,生产模型需要设计一个非常复杂的外观模型,这就在一定程度上大大增加了设计的复杂性。判别法将目标跟踪视为分类问题,它的目的在于训练分类器将运动目标从背景中分离出来。这类方法主要有基于支持向量机SVM的跟踪法[2-5]、基于多示例学习MIL的跟踪法[6-10]、基于相关滤波的跟踪法[11]和基于随机学习的跟踪法。研究表明了判别式方法性能更加稳健,在目标跟踪领域应用更加广泛,判别式方法占据主导地位的原因是它能够很好地去区分前景和周围的背景信息。但它也有缺点:容易被噪声影响,通用性比较弱以及样本的选择机制还有待加强等。
文献[12]总结基于相关滤波的跟踪算法流程。相关滤波器跟踪框架如图1所示。
图1 相关滤波器跟踪框架
(1)输入:初始化,确定当前输入,训练并学习从第一帧位置获得的特征以获得相关滤波器。
(2)特征提取:对每个后续帧进行特征提取,裁剪前一个预测区域,从前一个帧目标区域获取特征,并进行检测;大部分的特征都是可以从最先输入的数据里面提取出来的,同时,研究中为了能达到平滑的效果,通常会往其中加入余弦窗口。
(3)确定最大响应值:用傅里叶变换替代卷积操作这样做的目的是提升提高计算效率。之后再与相关滤波器相乘,时域卷积等于频域相乘,目标更新后的位置既为前面的最大响应区。
(4)更新目标位置:新的位置区域被重新训练和更新,重复以上的步骤,可以获得新的相关滤波器,方便下一帧的观测。
在信号处理领域中,相关性被用来描述两个元素之间的关系。相关性有互相关和自相关之分,其中,互相关指的是两个不同信号在同一频域的关系,而自相关指的是同一个信号在不同的频域之间的相关性。现在假设有两个信号f和g,则两个信号的相关性为
式中,f*表示的是f的复共轭。相关性的概念就是用来描述两个函数在某一个固定时刻的相似程度。在目标跟踪领域中,相关性的作用就是可以用它的相似度找到与跟踪目标的最大响应项。
MOSSE算法[11]开启了相关滤波器的大门,提出以滤波器求相关的形式来获取输出响应,进而获得最大响应处的位置。最大响应处的位置就是期望跟踪的目标中心位置,即
式中F表示输入图像,G表示输出响应,H*表示训练后的滤波模板,表示为
Bolme等人提出了MOSSE模型,即误差最小平方和滤波器,这个经典算法的提出是为了提高滤波器模型的鲁棒性,在考虑到实际生活中要面临的众多目标跟踪问题,例如遮挡,外观形变等,为了模型的准确度,还要同时考虑目标的多个图像。MOSSE模型公式为
仅以第一帧给定边界框为训练样本过于单一,易产生过拟合。于是,文献通过对Ground truth中的边界框进行随机仿射变换产生8个样本进行训练,对上式进行最小值求解获得最终的H*,得
对于训练好的滤波器,可以对下一帧进行目标位置检测。对于下一帧,以第一帧的Ground truth的中心为中心在第二帧中取对应大小的待检测区域,然后用训练的H对其进行响应输出,响应最大处即为这一帧的跟踪中心,接着以这个点为中心画出边界框。第三帧再在上一帧检验出的中心位置附近重新框出待检验区域,同时更新H后进行响应输出。为了让滤波器鲁棒性能够在面对光照,外形等外界干扰下有所提高,此处将分子分母分开进行单独更新,更新的策略为
其中,η为一个经验值,Ai和Ai-1分别表示的是当前帧和上一帧的分子,Bi和Bi-1表示的是当前帧和上一帧的分母。
2.1.1 CSK
对运动物体的表示以及相关性即相似性度量的定义在决定一个跟踪算法的准确性和鲁棒性有很关键的作用,而匹配搜索算法在很大程度上可以决定跟踪算法的实时性,包括滤波预测算法。Bolme等人首次将相关滤波理论引入跟踪领域,提出了MOSSE滤波器[11],通过获得其最大响应处的位置来定位目标,该算法以像素的原始灰度值为特征,过于简单,且没有考虑目标尺度的变化,鲁棒性能差。
Henriques等人提出了 CSK 算法[13],在 MOSSE的基础上扩展了密集采样(加padding)利用循环矩阵构造训练样本。在训练分类器时,一般认为离目标位置较近的是正样本,离目标较远的是负样本,TLD[14]和 Struck[2]都会在每一帧随机地挑选一些块进行训练,学习到的特征是这些随机子窗口的特征,而CSK作者设计了密集采样的框架,能够学习到一个区域内所有图像块的特征,并通过FFT变换在频域中求解问题,从而极大地提升了算法的执行速度。
表1 密集采样和随机采样对比
CSK使用的决策函数是一个结构风险最小化的函数
其中,L(y,f(x))为损失函数,文献[13]使用的是
训练过程引入原始响应Y,可以理解为是对象的起始位置。起始位置都是第一帧的中心,故Y的图像是根据跟踪窗大小的建立的高斯函数。训练的目的则是要找出当前帧对应的α,其训练公式为
训练完成后,可接着根据下一帧的核矩阵k和α,来检测出目标中心
CSK使用像素的原始灰度值,未考虑尺度变化问题,因采用循环移位,会产生边界效应。
2.1.2 CN
Danelljan等人采用了多通道颜色特征CN[15]去强化了CSK,CN的扩展原理是:(1)首先CN空间的11个色彩通道是由RGB空间的图像对应映射过来的;(2)接着分别对每一个色彩通道进行快速傅里叶变换以及相应的核映射;(3)最后求加权和,即将所有通道的频域信号进行相加。CSK的计算,训练以及检测等就可以完成。但是CN的缺点也很明晰,就是由此原理的算法计算量过大。
经过PCA降维后,去掉了其中的冗余信息,同时,冗余信息的消除也减少了微小的跟踪信息,所以为了提高跟踪的准确性,对其中的协方差矩阵采用线性更新的方式,这样就可以使降维矩阵的变化减小。结合核函数将原来的线性空间问题映射到非线性空间,解决了低维线性不可分问题。
2.1.3 KCF
KCF算法[16]是以CSK为基础,加入了HOG特征,HOG特征是一种多通道梯度特征。利用循环矩阵可对角化的性质大大降低了运算量,并且引入高斯核函数构造非线性滤波器,解决了彩色视频序列中对目标的实时跟踪问题。KCF通过平移产生大量样本,并且给每个样本赋予一个标签,这个标签根据离中心的距离标记,使用高斯分布来描述,即为置信度。其中,样本在做平移之前需要通过cos窗口加权,这样做的目的是避免在平移过程中,边缘太过强烈,引发计算复杂度。KCF和CSK的核心算法大致相同,两者的主要差别在于特征、多尺度以及核变换。
KCF中可以用线性核,高斯核和多项式核,其中,高斯核函数相关性表示为^
x和^x'表示生成两个不同的的DFT向量,^x*表示生成向量的复共轭,kxx'表示两个向量的核相关性。
KCF准确率比Struck和TLD都高,但对尺度变化和目标遮挡、漂移不敏感。2.1.4 SAMF
尺度变化是跟踪中比较基础和常见的问题,CSK、KCF和CN的优点是它们的跟踪速度都很快,但也有很多缺点,例如没有尺度更新等。比如在目标缩小的情况下,滤波器会自动的学到大量的背景信息;而在目标突然扩大的条件下,滤波器在检测目标时只能关注到局部的纹理信息。这两种情况都会导致跟踪失败。
SAMF[17]基于 KCF,让平移滤波器在 7 个不同尺度缩放的图像块上进行目标检测,选择的最佳尺度即为检测出来的最大响应值,所以它检测出来的不仅是目标中心位置的变化,同时还有尺度变化,并结合HOG、Color Names和灰度特征描述目标,进一步提升了跟踪效果,但是算法的实时性不高。
2.1.5 DSST
基于CSK提出了 DSST算法[18],采用 HOG特征,先利用线性核的相关滤波器检测目标位置,然后利用一个一维的相关滤波器检测尺度变化,而其中尺度检测方法是独立的,可与其它跟踪算法结合,因此易于推广。该算法能检测33个尺度变化并保证跟踪的实时性。在VOT2014竞赛12中,DSST获得第一名,SAMF和KCF分别获得第二名和第三名。
Danelljan等人对 DSST进行了改进,提出了fDSST算法[19],采用PCA对特征进行降维,并且尺度由33个尺度减少为17个尺度,不仅提高了算法的鲁棒性,而且速度是的DSST的2倍,但对目标快速形变和遮挡的情况效果不够鲁棒。
为了抑制KCF中循环移位导致的边界效应,Danelljan等人提出了 SRDCF算法[20],通过在损失函数中加入惩罚项降低距目标较远的样本所产生的影响,并采用Gauss-Seidel迭代法优化目标问题的求解,提高了跟踪的精度和速度。
SAMF和DSST的对比如下。
(1)在尺度变化方面:SAMF和DSST的相同之处在于它们对于普通的目标尺度变化跟踪效果都较好;不同之处在与尺度数量不同,SAMF有7个尺度,而DSST有33个尺度,所以DSST相比来说较为准确。
(2)最优方式不同:DSST是局部最优,它先检测平移达到最优之后再检测尺度达到最优,是分步检测的;而SAMF是全局最优,它是同时检测平移和尺度,使两者同时达到最优。
(3)滤波器的数量:由于DSST是分步最优,所以需要多训练一个滤波器分别来计算特征等;而SAMF仅仅一个滤波器就足够。
在多尺度跟踪算法的选择上,速度优势:fDSST、3个尺度的SAMF。精度优势:33个尺度的DSST、7个尺度的SAMF。
类似DSST的多尺度和类似SAMF的多尺度。如果更看重速度,加速版的fDSST,和3个尺度的SAMF(如VOT2014中的KCF)就是比较好的选择;如果更看重精确,33个尺度的DSST,及7个尺度的SAMF就比较合适。
深度学习用于图像跟踪有两大要解决的问题,一是图像跟踪一般使用在线学习,很难提供大量样本集,二是深度学习使用CNN时,由于卷积池化,最后一层的输出丢失了位置信息,而图像跟踪就是要输出目标的位置。
精度和速度一直是跟踪领域的矛盾。相比而言,基于深度学习方法的模型精度更好,但基于相关滤波(可以用FFT加速)的模型速度快很多。
2.2.1 深度特征结合相关滤波
传统特征需要注意构造的尺度不变性、旋转不变性、光照不变性等特性,卷积特征已经在训练中天然集成了,而且特征的判别力很强,这也是卷积特征在CV各方向取得成功的原因,但传统特征经过多年优化,其速度优势也是卷积特征无法比拟的。解决边界效应的方法已经有了 SRDCF[20]和CFLB[21],以后还会有更高效的算法,更强表达力更适合跟踪的特征。经典Hand-craft特征以HOG+CN为代表,性能优秀而且速度优势非常突出,但也成为性能进一步提升的瓶颈。特征方面的进一步发展就是卷积特征(Convolutional Features)。
DeepSRDCF[22]是 VOT2015 的第二名,仅将SRDCF中的HOG特征替换为CNN中单层卷积层的深度特征(也就是卷积网络的激活值),其他部分都和SRDCF完全相同,效果有了极大提升。
文献[22]测试了不同卷积层在目标跟踪任务中的表现,第1层表现最好,第2和第5次之。由于卷积层数越高,语义信息越多,但纹理细节越少,论文分析从1到4层越来越差的就是由特征图的分辨率越来越低,目标定位的精度也越来越低造成的,但第5层反而很高,是因为用于图像分类,包括完整的语义信息,特征的判别力和不变性较强。每个卷积层的空间分辨率和特征维度都不同。DeepSRDCF选择第一层作为卷积特征。
HCF(或 CF2)[23]比 DeepSRDCF 的单层卷积特征更进一步,在KCF框架之上,结合多层卷积特征,高层提供语义信息,底层提供纹理信息。HCF用了VGG-Net-19的 Conv5-4、Conv4-4和 Conv3-4的激活值作为卷积特征,所有特征都调整到图像块分辨率。
SRDCFdecon[24],在 SRDCF 的基础上,改进了训练样本集和样本权重(或学习率)问题,即自适应提纯训练集,是一种通用方法,可以和任何判别类方法结合,并不局限于SRDCF框架。样本集和样本权重主要影响模型更新,SRDCFdecon的做法是连续权值,每帧都重新确定重要性,和动态样本先验。首先选择保存以往样本,最多400个图像块的特征,然后在优化目标中添加样本权重参数和正则项:优化采用ACS迭代,每次迭代优化两个子问题:固定样本权重为上一帧的样本权重和固定模型参数。实验证明SRDCFdecon所有库上都比SRDCF有提升,但缺点也很明显,需要显式保存很多样本浪费存储空间,优化问题也变得更复杂,SRDCF是5FPS,而SRDCFdecon只有3FPS。
C-COT[25]综合了SRDCF的空域正则化和SRDCFdecon的自适应样本权重,还将DeepSRDCF的单层卷积的深度特征扩展为多层卷积的深度特征(VGG的第1和5层),最重要的是为了应对不同卷积层分辨率不同的问题,提出了连续空间域插值转换操作interpolation operator,在训练之前通过频域隐式插值将特征图插值到连续空域,方便集成多分辨率特征图,并且保持定位的高精度。目标函数通过共轭梯度下降方法迭代优化,比高斯-塞德尔方法要快,自适应样本权值直接采用先验权值,没有交替凸优化过程,检测中用牛顿法迭代优化目标位置。C-COT在OTB-2015,Temple-Color和VOT2015上都非常非常高,VOT2016的冠军,但模型也很复杂,速度也相对较慢。
ECO[26]是 C-COT 的加速版,从模型大小、样本集大小和更新策略三个方面加速,速度比C-COT提升了20倍,EAO提升了13.3%。方法是:第一减少模型参数,定义了分解卷积操作,效果类似PCA,用PCA初始化,然后仅在第一帧优化这个降维矩阵,后续帧可直接使用,即监督降维,深度特征时模型参数减少了80%。第二减少样本数量,紧凑的样本集生成模型,采用GMM合并相似样本,建立更具代表性和多样性的样本集,需要保存和优化的样本集数量降到C-COT的1/8。第三改变更新策略,稀疏更新策略,每隔5帧做一次优化更新模型参数,不但提高了算法速度,而且提高了对突变,遮挡等情况的稳定性。但样本集是每帧都更新的,稀疏更新并不会错过间隔期的样本变化信息。
2.2.2 端到端的训练
除了相关滤波结合深度特征,相关滤波也可以以 End-to-end 方式在 CNN 中训练。CFNet[27]在SiamFC[28]的基础上,将相关滤波也作为CNN中的一层,最重要的是CF层的前向传播和反向传播公式推导。两层卷积层近似HOG,联合CF层端到端训练,就得到了比KCF好很多的性能,这说明特征和分类器联动非常重要,训练到的特征更适合跟踪任务,如果下一步将边界效应问题也能通过结合CNN解决,算法效果会有进一步提升。
深度学习方法不论是卷积特征还是端到端训练CNN,速度都比较慢,上述方法在跟踪过程中都不需要每帧做CNN的fine-turn,所以网络的前向传播速度的速度非常关键,CFNet中的实验表明跟踪任务对网络的深度和表达能力要求可能没那么高,CNN加速可以参考一些小网络或加速方法,如SqueezeNet22[29]、MobileNet[30]和二值 CNN[31-32]。
为了比较不同跟踪算法的性能,需要对目标跟踪的结果进行定量的评价,但是到目前为止目标跟踪领域仍然没有一个统一的评价标准。所以学者们都是同时使用多个评价指标共同评价跟踪结果。
平均重叠期望(EAO)是对每个跟踪器在一个短时图像序列上的非重置重叠的期望值;准确率(Accuracy)是指跟踪器在单个测试序列下的平均重叠率(两矩形框的相交部分面积除以两矩形框的相并部分的面积);鲁棒性(Robustness)是指单个测试序列下的跟踪器失败次数,当重叠率为0时即可判定为失败。鲁棒性的计算公式为
其中M是平均失败次数,即
N是序列的长度,F0是失败总次数,S是手工选择的参数。
应用最广泛的是 OTB-50[35]和 OTB-100[36],里面涉及到灰度图像和彩色图像,均可以免费下载,涉及到目标跟踪的11个属性,包括光照变化、尺度变化、遮挡、形变、运动模糊、快速运动、平面内旋转、平面外旋转、出视野、背景干扰、低像素。每个图像序列都对应着两个或多个属性,每个序列都对应着一个txt文件,记录着人工标注的目标中心位置和目标的大小。
VOT数据集是基于每年一次的VOT比赛的,每年都会有新的数据集产生,当然其中一部分图像序列是和OTB重合的,但是总的来说VOT数据集略难于OTB数据集,一般用VOT16,在这两个数据集上跟踪效果都好,才算确定性能好,如果只在一个数据集上效果好,那只能说明该这个算法的泛化能力还不够。
Temple Color 128[37]数据集里面包含的全是彩色序列,部分序列也是和OTB重合的,如果算法只适用于彩色序列可以在此数据集上进行测试。
VIVID Tracking数据集里面包含9个序列,均是从高空拍摄的车辆视频图像,包括灰度图像和彩色图像,相对时间都比较长,目标也比较小,遮挡情况比较多。
UAV123 Dataset数据集[38]是均是通过无人机拍摄的彩色图像,但是需要下载麻烦,如果是做无人机目标跟踪方面,此数据集一定必不可少。
为了对比不同跟踪算法的性能,总结了经典的几种算法优缺点。如下表2所示。
表2 近几年相关滤波算法对比
由表2可以看出,HOG特征是使用最多的一种特征,大部分改进方法采用原始图像灰度、HOG与颜色特征融合。除此之外,CF2中引入了CNN特征,Staple[40]同时考虑HOG与颜色直方图特征。经典方法中仅采用单一特征且未考虑目标尺度变化。经典改进方法及后续改进方法中不仅特征多样化,大部分方法还给出了目标尺度自适应策略,有利于跟踪性能的进一步提升。
经典算法CSK、KCF及其改进CN的执行速率均大于100帧/s。后续算法在此基础上改进,分别从尺度自适应、分块、特征等方面进行考虑。在提高精确度的同时,由于模型复杂度的增加,算法的实时性有所降低,不过 DSST、CCT[41]、KCFDP[42]、MTSA、Staple等仍能满足实时处理的需要。同样采用基于尺度池的方法,DSST相比于SAMF实时性更好,SRDCF和Staple也用与DSST相似的方法实现尺度估计。CF2中引入了CNN特征,相比于CN的颜色特征以及Staple的颜色直方图更复杂,降低了跟踪实时性。
在 MATLAB 上对 KCF、DSST、Staple、SiamFC、ECO、CCOT等算法在VOT2016的数据库上的跟踪性能进行研究。
由表3可知,在跟踪准确率这方面,深度学习优于相关滤波跟踪算法,但是在鲁棒性方面,还是相关滤波算法占明显优势,而且基于相关滤波的跟踪算法在速度方面一直远远领先,但是深度卷积特征和相关滤波的结合使两者的优势结合,表现出来的性能最好。
表3 仿真数据对比
目标跟踪领域目前主要有两大主流算法:基于相关滤波和深度学习的跟踪算法。而本文主要介绍的是相关滤波和两者结合的算法。相关滤波算法从MOSSE到CSK再到KCF,再有后来各种基于经典算法的尺度改进算法,特征结合算法等,已成为近几年来目标跟踪领域的主流算法。
总体上说,相关滤波系列的跟踪方法在实时性上优势明显,实际中该采用哪种改进版本需视具体应用而定。相关滤波的方法也有一些缺陷,比如目标快速移动或形状变化大会导致更多背景被学习进来,从而对CF系列方法造成影响。虽然后续的研究也有一些针对性的改进,比如改进边界效应,改善背景更新策略或提高峰值响应图的置信度等,但普适性还需要进一步研究,特别是对不同的应用针对性地调整。
(1)近期GAN[39](生成对抗网络)应用在了目标检测领域,原理是渐进增大生成器和鉴别器:从低分辨率开始,随着训练的进展,添加新的层对越来越精细的细节进行建模。为了得到更好的跟踪性能,深度学习中需要对大量的样本进行训练,故对样本有一定的依赖性,而GAN可以自动的生成辅助样本,可以有效地解决样本的获取问题。
(2)充分利用CNN。现在目标跟踪性能表现最好的应该是基于相关滤波和CNN结合的滤波器,但因所用CNN中有过多参数,其实时性较差。只有更好地利用CNN的优点,同时提高实时性和训练的便捷性,才能让CNN在目标跟踪领域发挥它的最大优势。
(3)跟踪和检测是分不开的,比如传统TLD框架使用的在线学习检测器,或KCF密集采样训练的检测器,以及当前基于深度学习的卷积特征跟踪框架。一方面,跟踪能够保证速度上的需要,而检测能够有效地修正跟踪的累计误差。另一方面,不同的应用场合对跟踪的成功率、准确度和鲁棒性要求也不一样。达到实际的跟踪要求仍然需要更好的算法实现。
(4)跟踪的另一个分支是多目标跟踪。多目标跟踪并不是简单的多个单目标跟踪,因为它不仅涉及到各个目标的持续跟踪,还涉及到不同目标之间的身份识别、自遮挡和互遮挡的处理,以及跟踪和检测结果的数据关联等。在基于深度学习的目标检测成功率大幅提高的背景下,MOT的成功率也处于快速发展的通道中。