王向军罗 仁徐小东
(1.天津大学精密测试技术及仪器国家重点实验室,天津300072;2.天津大学微光机电系统技术教育部重点实验室,天津300072)
目标跟踪技术作为计算机视觉的一个重要部分,在精确制导、人机交互、视频监控等领域有着广泛的应用。 近年来随着目标跟踪技术的快速发展,相关滤波类与深度学习类跟踪算法成为主流[1]。 其中深度学习类算法效果好[2-3],但通常时间复杂度较高并且需要较大内存空间,而小型嵌入式平台往往计算能力有限且内存空间相对较小,因此针对小型嵌入式平台,相关滤波类算法是主流方向。 2010 年David S. Bolme 等人[4]提出平方误差最小滤波器(Minimum Output Sum of Squared Error,MOSSE),将信号处理中的相关概念引入到目标跟踪领域。 随后2012 年Henriques 等人[5]提出CSK 算法,引入循环矩阵提升样本数量,增强了相关滤波算法的性能。 针对CSK 算法灰度特征表征力不足的缺点,Joao F.Henriques 等人[6]提出利用梯度直方图特征(Histogram of Oriented Gradient,HOG)特征代替灰度特征的核化相关滤波跟踪算法(Kernelized Correlation Filters,KCF)。 Martin Danelljan 等人[7]提出基于卷积特征的空间正则化滤波算法(Convolutional Features for Correlation Filter Based Visual Tracking,DeepSRDCF)对KCF 进行改进。 针对相关滤波类算法尺度适应不足的问题,Jianke Zhu 等人[8]提出自适应尺度变化的相关滤波跟踪算法(Scale Adaptive Kernel Correlation Filter Tracker,SAMF),通过建立尺度池,取响应值最大的位置为最佳的位置与尺度。 Martin Danelljan 等人[9]提出判别式尺度跟踪算法(Discriminative Scale Space Tracking,DSST),通过构建尺度金字塔,训练尺度滤波器判别尺度。
现有研究大多基于PC 架构,主要通过使用更复杂的特征(HOG、颜色、卷积等)、构造更多的样本和使用更复杂的目标函数三个方向来提高算法性能,但是随着算法性能的提升,时间和空间复杂度也在不断增加,难以在嵌入式平台上进行算法部署和实现[1]。 因此,能够适用于小型嵌入式平台、具有高实时性和鲁棒性的目标跟踪算法是一个重要的研究方向[11]。
针对此需求,本文以STC 算法为基础模型[12],利用贝叶斯概率模型,通过寻找目标概率置信图的最大似然概率实现实时目标跟踪;针对目标尺度变化的跟踪问题,提出了低时间复杂度的灰度特征尺度池策略以实现尺度自适应更新,提高了算法的尺度适应性;针对目标遮挡以及形变问题,提出使用跟踪置信图最大似然概率值自适应更新模型,增强了算法的抗遮挡性能,提高了算法的鲁棒性。 为测试在小型嵌入式平台的适用性,本文搭建了以DSP 为核心的小型目标跟踪系统平台,完成了本文算法的移植与实现。
为提升时空上下文算法在小型嵌入式平台的跟踪性能,本文从尺度自适应和抗遮挡两个方面进行改进:针对时空上下文算法尺度适应性不强的问题,通过建立尺度池的方案,比较不同大小区域计算的置信图峰值旁瓣比对尺度进行选择。 本文尺度池仅包含三个尺度因子,不仅能适应目标的尺度变化还能够保持时空上下文模型处理速度快的特点。 针对原算法抗遮挡性能不足的问题,本文提出一种新的跟踪结果评价机制,以目标概率置信图最大似然概率为基准,在保持算法低时间复杂度特点的基础上自适应更新模型。 可有效解决原算法中采用固定学习速率更新模型时出现的遮挡目标跟踪丢失或漂移问题。
1.1.1 时空上下文模型
时空上下文算法充分利用了目标周围的空间上下文信息和帧间上下文信息,基于贝叶斯框架建立目标和周围背景的空间上下文关系,使用求得的置信图最大似然概率估计目标位置。 时空上下文模型的求解过程如下:
首先构建置信图的模型,如式(1)所示。 其中置信图表示目标所在位置的可能性,经过贝叶斯框架换算可将置信图似然函数分解为条件概率和先验概率。
式中:conf(x)定义为理想高斯函数,XC为上下文特征集合,P[x|c(z),o]表示条件概率,P[c(z)|o]是局部上下文区域的先验概率,定义为式(2)。
式中:I(z)表示图像在z处的灰度特征,ωσ(z-x*)为加权函数,目标周围局部区域里任意z点离目标中心x*越近,点z被赋予的权值越大,定义为式(3)。
式中:a是归一化常量,σ为尺度参数。 式(1)中条件概率P(x|c(z),o)定义为式(4)。
式中:hsc(x-z)表示空间上下文模型,联立式(1)~(4)得到式(5)。
对式(5)进行解算,然后通过FFT 进行加速计算,便可计算得到空间上下文模型hsc(x),如式(6)所示。
根据空间上下文模型更新时空上下文模型算法,如式(7)所示。
式中:表示第t帧的时空上下文模型,第t+1 帧的时空上下文模型根据第t帧的时空上下文模型和空间上下文模型更新,ρ表示更新速率。
1.1.2 自适应更新模型
根据式(7)可知,时空上下文模型每帧都持续更新。 当跟踪过程中出现部分遮挡,STC 算法也会根据前一帧的空间上下文模型更新当前帧的时空上下文模型,以致时空上下文模型中融入了遮挡的信息,导致跟踪丢失。 因此,提出自适应更新时空上下文模型的方法。 当判断目标被部分遮挡时,不更新时空上下文模型,维持前一帧的时空上下文模型。基于OTB2013 数据集中具有遮挡属性的视频序列进行测试,实验表明,改进算法的置信图最大似然概率能够很好的反映目标被部分遮挡的情况。 以其中的Suv 序列说明,如图1 所示。 在第33 帧时,目标有一部分出视场,此时置信图最大似然概率从均值0.007 下降到0.004,模型已经出现更新有误,但并未丢失。 在第210 帧时,目标再次被路边障碍遮挡,最大似然概率降低到0.003 5。 536 帧时目标被部分树木遮挡,最大似然概率降低到0.001 6,但是此时并没有完全丢失目标,说明算法具备一定的抗遮挡能力,但是时空上下文模型误差在不断累积。 在680帧之后,由于误差的累积与再次遮挡,导致丢失目标。 由以上分析可知,最大似然概率能够较好反映遮挡情况。 因此本文基于设定阈值的方法更新时空上下文模型,更新方法如式(8)所示,当最大似然概率小于阈值时,不更新时空上下文模型。
式中:T表示置信图最大似然概率,ρ表示更新速率,γ表示比例系数。Tthre定义为历史帧的稳定跟踪部分最大似然概率的平均值。 稳定跟踪部分指当前置信图最大似然概率以一定比例超过历史帧的最大似然概率均值时的视频帧,通过保存历史稳定跟踪帧的最大似然概率以实现Tthre的自适应更新。
图1 Suv 图像序列的最大似然概率分布和遮挡图像
尺度变化是目标跟踪过程中的常见问题,当目标尺度扩大,会造成选取图像区域中包含背景信息,目标尺度缩小时,会导致选取图像块中只包含目标的局部信息,两种情况都会导致跟踪漂移。 尺度判别方法主要有SAMF 和DSST 算法,DSST 算法在KCF 的基础上再训练一个尺度滤波器判别目标尺度,SAMF 算法采用灰度+HOG+CN 多特征融合的尺度池策略,取7 个尺度区域计算的最优值。 尽管两种方法效果较好,但算法的处理速度较低。 本文采用灰度特征的尺度池方案判别尺度,使用3 个尺度因子以适应某些小型嵌入式平台的需求。
尺度自适应更新的方法分为三个步骤,示意图如图2 所示:首先以上一帧的目标中心获取3 个不同大小区域;然后对3 个区域进行尺度统一,获取3 个不同的先验概率;最后通过先验概率与上一帧的时空上下文模型得到三个置信图,选择目标最合适的尺度与中心位置。 过程涉及到两个关键内容,分别是对尺度大小的统一和最合适的尺度的选择。 尺度统一常用方法有最近邻插值、双线性插值和双三次插值法。 其中双三次插值法选择领域内4×4 个点插值计算,效果好,但计算复杂度高,最近邻插值选择领域内最近的点作为当前值,算法简单但效果一般,双线性插值法选择领域内2×2 个点线性插值计算,效果较好并且计算较简单,综合考虑,使用双线性插值对尺度大小统一[13]。 最优尺度的选择,考虑到是对区域大小进行选择,需要结合区域内整体的值进行判断。 置信图的峰值旁瓣比(Peak Sidelobe Ratio,PSR)值反映了置信图的峰值尖锐度,因此局部区域中PSR 值越大,越有可能是目标区域。 因此,本文根据PSR 选择尺度,PSR 定义为式(9)。
式中:conf(xi)为尺度Si对应的置信图,max[conf(xi)]表示置信图最大值,其中ui和σi表示置信图峰值周围区域均值和标准差。
图2 加入尺度池的改进算法示意图
本算法基于PC 平台仿真,测试数据集采用OTB2013[14]中的50 组视频序列,以验证算法的综合性能和处理速度。
仿真实验使用的PC 平台处理器为Inter(R)Core(TM)i5-4210U CPU@ 1.70Hz-2.4G,编程环境为MATLAB R2016a,尺度因子S={0.95,1.00,1.05}。
仿真实验使用OTB2013 中的跟踪精度和成功率评价跟踪情况[14]。 跟踪精度定义为目标真实的中心位置坐标和跟踪到的目标的中心位置坐标的欧式距离。 重叠率定义为真实的目标图像与被跟踪到目标图像的交并比,用式(10)计算。
式中:Bt是跟踪算法得到的目标框,Bg为事先标记的目标框,Area(·)表示区域的面积,当R超过0.5便认为是成功的。 成功率定义为R超过0.5 的帧数除以视频的总帧数。
由于本文算法是应用在小型嵌入式平台,算法的处理速度在某种程度上比性能要优先考虑。 使用OTB2013 中,测试本文算法、STC、CSK 和SAMF 四种算法能稳定跟踪的四个视频序列的处理速度,结果如表1 所示。
表1 平均速率对比表 单位:FPS
图3 跟踪效果对比图
从表1 中可看出,在PC 平台中SAMF 算法虽然在同类算法中性能较优,但处理速度很慢,不适用于小型嵌入式平台。 本文算法的处理速度相对STC 算法有所降低,但高于CSK 算法,是一种快速的跟踪算法,适用于小型嵌入式平台。 为测试算法在复杂环境下的性能,采用OTB2013 中Dog、Suv、Woman 和Boy序列测试;Suv 序列具备遮挡、平面旋转、出视场属性;Woman 序列具有光照、遮挡、形变和运动模糊属性;Boy 序列具有快速运动和运动模糊属性;Dog 序列具有尺度变化和平面内外旋转的属性。 如图3 所示,实线、虚线、点线依次为STC、CSK、本文算法跟踪效果,Dog 序列从869 帧后不断变大,本文算法持续稳定跟踪,STC 算法随着目标的变大而逐渐漂移,到第950 帧时丢失目标。 CSK 算法虽然持续跟踪,但偏离目标中心,不适应目标的尺度变化。 对于Suv、Woman和Boy 序列,本文算法也能够稳定跟踪,而STC 和CSK 算法在后期均出现跟踪丢失的情况。
使用OTB2013 全部视频序列集测试本文算法的综合性能,从跟踪精度和成功率两个评价指标对算法进行评价。 取定位误差距离小于20 视为稳定跟踪精度,重叠率大于0.5 视为成功。 如图4 所示,本文算法的跟踪精度为58.9%,成功率为51.3%;跟踪精度相比STC 算法提高5.1%,成功率提高15.4%;比CSK 算法精度高5.9%,成功率高7.8%;所提算法综合性能优于时间复杂度相近的STC 和CSK 算法。
图4 跟踪精度和成功率
图5 系统硬件结构图
为验证算法的有效性,本文搭建了一套以DSP为核心的小型嵌入式目标跟踪平台,系统硬件结构如图5 所示。 其中,左虚线框为小型嵌入式平台,右虚线框为PC 测试平台。 整个小型嵌入式系统平台仅包含FPGA、DSP、CMOS 以及外围电路,系统体积小于4 cm×4 cm×8 cm,符合小型嵌入式平台的要求。 该DSP 是TI 达芬奇系列的DM6437 芯片,具有专用的视频处理子系统( Video Processing Subsystem,VPSS),主频仅600MHz,内部存储空间为128 KB,是一款典型用于视频图像处理的DSP 芯片[15]。 其中FPGA 负责对CMOS 图像的采集,经预处理后,将图像通过视频处理前端(Video Processing Front End,VPFE)输入到DSP,DSP 在收到PC 通过RS422 给出的初始目标坐标和大小后,便可实现持续稳定的跟踪。 整个系统中,小型嵌入式平台用于实时目标跟踪和输出目标相对小型嵌入式平台的坐标位置。 PC 平台仅用于测试,只需要给出目标的初始位置,并进行目标跟踪效果的可视化。
为提高算法在嵌入式平台的实时性,需结合DSP 的硬件结构特点进行优化。 采取的优化措施主要有软件流水线技术、存储空间的分配以及支持库的使用三个部分。
软件流水线技术用于优化循环结构的调度,使其能够并行执行多重迭代循环。 为使编译器最大化使用软件流水线技术,防止流水堵塞,在循环结构中尽量使用内联函数代替自定义函数。 针对循环结构,使用预处理指令#pragma MUST_ITERATE 告诉编译器最小循环次数,使用restrict 关键词表明指针是指向特定对象的唯一指针,消除指针之间存在的依赖性,更有利于循环展开与指令并行编码。
DM6437 具有两级缓存结构,一级缓存结构将数据和程序分开存储,两级片内存储加上片外存储。 要充分利用这样的结构,需要提高DSP 内核读取数据时的命中率,即当DSP 内核需要读取数据/代码时,能够直接从L1 或者L2 的高速缓存Cache 中获取,减少数据读取过程中的等待时间,因此需要混合配置L2 的内存,提高内核读取数据命中率。 根据实际数据和代码测试,将128Kb 的L2 分配为80KB 的Cache和48KB 的SRAM。 另外由于图像原始数据帧大小为1 280×1 024,存储所占空间近似2M,需使用指令MEM_alloc( )将其存储在外部存储DDR2 中,为了与L2 中Cache 的line 长度对应,提高访问速度,以128 byte 进行字节对齐,以一定的空间换时间效率。
DM6437 为32 位定点型DSP,计算浮点运算时会消耗更多的时钟,因此采用IQmath 库加速浮点运算。 IQmath 库相当于先将浮点数转换为整型,然后对整型计算后,再转换为浮点型。 所以在使用IQmath 库时,为提高计算精度,需要提前计算好待计算的数据值的范围,选择合适的IQmath 函数进行加速计算。
实验测试部分,首先测试本文搭建的小型嵌入式平台的跟踪稳定性。 该平台对空中客机的跟踪结果如图6 所示,从Ailrliner 序列中可以看出,整个过程能够对目标稳定跟踪。 然后利用旋翼机测试小型嵌入式平台对尺度变化的适应性,从Rotorcraft 序列可以看出,该小型旋翼机从远逐渐飞近的过程中,平台始终能够准确判断出目标的大小和位置。 接着测试平台的抗遮挡性能,Balloon 序列中, Balloon 被骑自行车的人遮挡,此时跟踪短暂丢失,当目标再次出现时,其依旧能持续跟踪目标。 最后测试小型嵌入式平台的处理速度,由于目标大小不同,平台处理帧率也不同,实际测试中,当目标波门大小为64 Pixel×64 Pixel 时,跟踪帧率为42 frame/s,能够满足实时性及工程实用性需求。
图6 嵌入式平台跟踪实验效果图
针对算力有限且实时性要求高的小型嵌入式平台的应用背景,提出一种处理速度快且鲁棒性较高的目标跟踪算法。 基于OTB2013 数据集的仿真测试结果表明,本文算法在性能和处理速度方面均优于CSK算法,跟踪精度优于STC 算法。 尽管本文算法的精度低于多特征融合的SAMF、DeepSRDCF、深度学习类算法,但处理速度远高于后者,更适用于小型化嵌入式平台。 搭建以DSP 为核心的小型目标跟踪硬件平台,完成了本文算法的移植与实现。 实际测试中,当目标波门大小为64 Pixel×64 Pixel 时,跟踪帧率可达42 frame/s,可满足实时性及应用需求。