高 阳,徐长波,曹少中
(北京印刷学院 信息工程学院,北京 102600)
视觉目标跟踪技术是计算机视觉领域内的研究热点之一,已经被广泛应用到了日常生活、社会保障、军事和医疗等各个重要领域[1-2]。目前,应用视觉目标跟踪技术面临着一些挑战,如跟踪环境光照的变化、目标遮挡、目标快速移动和复杂背景等因素会影响跟踪效果。
跟踪学习检测(Tracking Learning Detection,TLD)算法[3]通过相关的训练和学习技术对跟踪目标与背景区域进行分类,以达到目标跟踪的目的,适用于长时间的目标跟踪。但是,TLD算法的特征点无法准确表达目标特征,另外,还存在检测模块计算量大,无法适应遮挡场景等问题。采用支持向量机(Support Vector Machine,SVM)技术代替TLD算法检测模块[4],能够提高算法的实时性,改善目标受到严重遮挡时算法的准确性,但是,在目标受到完全遮挡时,仍然不能准确地预测到目标位置。多实例学习(Multiple Instance Learning,MIL)算法[5]采用多个图像块作为一个样本集,若样本集中存在至少一个正样本,则设置样本集的标签为正,这种方式具有更好的灵活性。核相关滤波(Kernel Correlation Filter,KCF)算法[6]采用核函数和岭回归的方式,减小了算法复杂度,有效提升了算法速度。
已经有许多研究者对抗遮挡目标跟踪算法进行了研究。目前的主流的抗遮挡目标跟踪算法主要分为基于有效特征信息的目标跟踪算法、基于状态估计信息的目标跟踪算法和基于稳定时空信息的目标跟踪算法等3种[7],其中,基于状态信息的目标跟踪算法又包括应用卡尔曼滤波(Kalman Filter,KF)和粒子滤波(Particle Filter,PF)两种技术。采用经典Kalman滤波器对遮挡目标进行位置预测[8-9],能够有效地针对目标遮挡的场景实施跟踪,但是,在运动的场景下,该方法无法达到预期效果。采用多特征融合的粒子滤波进行短期跟踪[10],或在判定目标受到遮挡后采用粒子滤波方法进行状态预测[11],能够改善遮挡情况下的跟踪状况,但是,与经典TLD算法相比,该类算法速度较慢,实时性较差。
为提升目标跟踪算法对遮挡目标跟踪的准确性和目标跟踪过程中的精确度和实时性,本文拟在经典TLD算法的基础上进行改进,提出一种运动背景下的抗遮挡TLD改进算法。将鲁棒性较好的面向加速分段测试特征和旋转二进制鲁棒独立基本特征(Oriented FAST and Rotated BRIEF,ORB)[12]作为跟踪模块的主要特征,采用局部和全局搜索策略,并且引入Kalman滤波与特征点匹配算法,以使得改进的算法在运动背景下遇到目标遮挡时依然能够准确地跟踪,并且具有较高的运行速度。
经典TLD算法主要由跟踪模块、检测模块和学习模块等模块组成[3],特别适用于对运动目标进行长时间的跟踪。经典TLD算法框架示意图如图1所示。
图1 经典TLD算法框架示意图
跟踪模块采用Median-Flow追踪算法,该算法基本原理为,在时刻t,跟踪框中产生10×10均匀分布的特征点。将这100个点的位置作为初始位置,然后,运用卢卡斯-卡纳德(Lucas-Kanade,L-K)光流法[13]正向追踪这100个初始位置点在t+1时刻图像中的前向位置,根据前向位置反向追踪这些点在t时刻图像的后向位置,作为预测位置。
检测模块使用级联分类器,对从搜索框获得的样本进行分类,级联分类器由方差分类器、集成分类器和最近邻分类器构成。首先,使用方差分类器对样本进行方差过滤,滤除方差比较小的样本;其次,采用集成分类器对通过方差分类器的样本进行随机蕨分类,计算10棵树对该样本的编码(长度为13的0/1序列),得到10棵树对该样本的10个后验概率累加和的平均值,滤除平均值小于阈值的样本;最后,应用最近邻分类器计算剩余样本与在线模型的相关相似度,选择与在线模型中相似度最高的图像块作为最终的检测结果。
学习模块使用的方法为正负约束(Positive-Negative,P-N)学习方法[14]。P-N学习方法是一种半监督学习方法,P专家能够改正被误分为负样本的正样本,N专家能够检出被误分为正样本的负样本,并更新样本集。另外,学习模块还不断更新集成分类器和最近邻分类器的阈值,以保证检测模块的鲁棒性。
经典TLD算法跟踪模块存在的主要问题是,TLD算法的特征点无法准确地表达目标的特征,在目标受到严重遮挡时跟踪模块和检测模块都无法准确地找出目标的位置,而且,检测模块采用全局搜索策略,使得算法的计算时间较长。
提出一种新的遮挡判定方法,选择引入ORB特征点与均匀分布特征点相结合的特征点提取算法来代替经典TLD算法中提取均匀分布特征点的方法。当目标受到遮挡时,选择Kalman滤波器结合基于网格的运动统计(Grid-Based Motion Statistics,GMS)特征点匹配算法[15]对运动背景下被遮挡的目标进行运动预测。检测模块选择局部搜索与全局搜索相结合的方法,将搜索策略与遮挡判定和跟踪模块的结果相对应。改进算法的原理框架图如图2所示。
图2 改进算法原理框架示意图
特征点提取是目标跟踪过程中的关键步骤,特征点提取的质量将直接影响后续的目标跟踪效果。考虑到ORB结合了加速分段测试特征[16](Features from Accelerated Segment Test,FAST)特征点检测和二进制鲁棒独立基本特征[17](Binary Robust Independent Elementary Features,BRIEF)特征描述子算法,速度比较快,而且在一定程度上对噪声和图像变换的抵抗力较高,为此,在跟踪模块中采用ORB方法提取图像的特征点。特征点提取原理示意图如图3所示,以像素点P为中心,选取半径为3的圆上的16个像素点的像素值与点P的像素值作比较,如果圆上有连续的12个像素点的像素值比点P的像素值大或者小,则认为点P为特征点。
图3 特征点提取原理示意图
将引入的ORB特征点提取算法与经典TLD算法均匀分布特征点提取方法相结合。在ORB特征点数目超过100个时,采用ORB特征点作为跟踪模块的特征点;在ORB提取的特征点不够100个时,采用均匀分布特征点提取方法对特征点进行补足。这样做是为了保证特征点的数量足够表达目标的关键特征信息,以提升跟踪模块的鲁棒性和稳定性。
均匀分布特征点的间距为
(1)
(2)
式中:ls表示水平方向间距;lv表示垂直方向间距;P0为ORB特征点个数;w0和h0分别表示目标框的宽和高。
以David测试集第500帧为例,方法改进前后跟踪窗口的对比效果如图4所示。可以看出,选取的特征点主要集中在目标的眼睛、鼻子和嘴巴上,一方面,可以较好地表达目标的特征;另一方面,减小了无效特征点数量,有利于提高算法的准确率。
图4 方法改进前后跟踪窗口的对比效果
由于经典的Kalman滤波算法对运动背景下的目标遮挡情形的适应性较低,因此,考虑将Kalman滤波器与特征点匹配融合算法,对运动背景下被遮挡的目标位置进行预测,以改善运动背景下对受到遮挡目标的跟踪效果。
如何正确判断目标是否发生遮挡,是解决目标遮挡问题的一个关键前提。为了保证判断结果的准确性,在目标跟踪框的基础上分割出4个警戒区域,并延展出8个警戒区域,共设定12个警戒区域。改进算法的遮挡检测方法的警戒区域示意图如图5所示。
图5 遮挡检测方法警戒区域示意图
分别计算12个警戒区域的色彩-饱和度-值(Hue-Saturation-Value,HSV)直方图。以图5(a)中的右警戒区为例,采用巴氏(Bhattacharyya)距离[18]系数,分别计算t时刻的外侧警戒区域HSV直方图与t-1时刻中部警戒区域HSV直方图的匹配度ρ(Rout,t,Rmed,t-1),以及t-1时刻中部警戒区域HSV直方图与t-2时刻内侧警戒区域HSV直方图的匹配度ρ(Rmed,t-1,Rin,t-2),其计算表达式分别为
(3)
(4)
其中:Rout,t(i)表示t时刻外侧警戒区域HSV直方图第i个分区的相关数据;Rmed,t-1表示t-1时刻中部警戒区域HSV直方图第i个分区的数据;Rin,t-2(i)表示t-2时刻内侧警戒区域HSV直方图第i个分区的相关数据;n为样本分区总数。
HSV直方图的匹配度ρ的取值范围在0到1之间,ρ越接近0,代表两张图像越相似。若t时刻ρ(Rout,t,Rmed,t-1)和ρ(Rmed,t-1,Rin,t-2)小于阈值(一般为0.5),且目标框HSV直方图与目标模型的相似度大于阈值,则判定t时刻跟踪目标受到遮挡,采用Kalman滤波器与特征点匹配融合算法对被遮挡目标的位置进行预测。反之,在左警戒区,t+j-2时刻外侧警戒区域HSV直方图与t+j-1时刻中部警戒区域HSV直方图的匹配度和t+j-1时刻中部警戒区域HSV直方图与t+j时刻内侧警戒区域HSV直方图的匹配度大于阈值,则判定t+j时刻目标遮挡消失,重新采用经典TLD算法进行目标跟踪。
依据上述方法,无论目标从哪个方向受到遮挡,均能准确地判断遮挡的发生。为了保证TLD算法的跟踪准确性,当判定目标受到遮挡时,不再使用学习模块更新集成分类器和最近邻分类器的阈值。
在时刻k,改进算法所采用的Kalman滤波方法的核心方程组为
(5)
由于在目标跟踪过程中,目标背景图像大多会随着目标的移动而变化,从而导致目标框的位置和目标的运动速度难以确定。为此,以视频第一帧为基准,构建坐标系。可以将目标状态表示为
x=[x,y,w,h,dx,dy]T
(6)
其中:x,y分别表示目标框的横向、纵向位置坐标;dx,dy分别表示目标的横向、纵向移动速率;w,h分别表示目标框的宽和高。
采用ORB特征点提取方法,对视频帧图像背景区域进行特征点的提取,对相邻的两帧图像的背景区域特征点采用GMS方法进行特征匹配。以Jogging测试集第11和第12帧图像为例,相邻帧背景区域特征点匹配效果如图6所示。在对视频帧图像背景区域进行特征点提取操作之后,使用经过特征匹配的相似特征点对计算两帧间背景移动的距离。
图6 相邻帧背景区域特征点匹配效果
对匹配到的特征点对的坐标作差,累加后取平均值即为背景图像移动的距离,由此得到x,y,dx,dy分别为
(7)
(8)
(9)
(10)
式中:x′t、y′t分别表示第t帧的测量值;x′t-1、y′t-1分别为第t-1帧的测量值;Pt(x,j)和Pt-1(x,j)、Pt(y,j)和Pt-1(y,j)分别表示第t帧和第t-1帧图像匹配到的第j个特征点对的横向、纵向位置坐标;N为匹配到特征点对的个数。
如果在第t帧检测到目标受到遮挡,则使用第t-1帧Kalman滤波器的最优估计值直接作为观测值,即
(11)
直到目标遮挡消失后,调用检测模块,将检测模块的最优结果作为跟踪结果。
在经典TLD算法检测模块初始化时,产生的扫描框可能有上万个甚至十万个,其中大多扫描框中不含有前景目标。排除这些不含前景目标的扫描框对检测模块的干扰,有利于提升算法的效率和实时性。
引入感兴趣区域(Region of Interest,ROI)方法,在上一帧目标跟踪框的基础上向四周拓展20个像素,生成目标局部检测区域。当跟踪模块跟踪失败时,采用全局搜索策略;反之,当跟踪模块跟踪到目标时,则采用局部搜索策略。采用改进后的搜索策略,以有效地排除不含有前景目标搜索框的干扰,减少进入检测模块搜索框的数量,提升算法速度。以David测试集第770帧为例,算法改进前后效果对比如图7所示。可以看出不含有前景目标的搜索框相比经典TLD算法大大减少。
图7 算法改进前后效果对比
为测试改进算法的性能,对Jumping、Walking、Dog1、Jogging、Human4、Dog和Fish共7组测试序列集进行测试,并将改进算法的目标跟踪性能与KCF算法、MIL算法和经典TLD算法进行比较。
在7组测试序列集中,Jumping、Walking、Dog1、Jogging和Human4测试集来自文献[19],Dog和Fish测试集来自文献[20]。这些测试集中场景包含了光照变换,尺度变换,遮挡、形变,运动模糊,快速移动,目标在图像平面内旋转,目标在图像平面外旋转等情况。
Jumping序列描述了目标快速运动而产生目标模糊的现象,主要用来测试算法对于运动模糊以及目标快速移动的鲁棒性。Dog序列描述了小狗冲向主人的运动过程,其中包含了目标奔跑过程中身体形状与拍摄视角的变化,主要用来测试算法对尺度变化和形变的鲁棒性。Walking序列描述了目标在经过轻微遮挡后由近到远的行走过程,其中包含了目标行走过程中的姿态变化和尺度变化,主要用来测试算法对轻微遮挡、尺度变化和形变的鲁棒性。Dog1序列描述了小狗玩偶在运动过程中俯仰、倾斜、摇摆和尺度变化的情形,主要用来测试算法对物体旋转和多尺度的鲁棒性。Fish序列描述了目标物体在快速运动过程中环境光照条件发生变化的过程,主要用来测试算法对于快速运动和光照变化的鲁棒性。Jogging序列和Human4序列描述了目标经过遮挡物的过程,主要用来测试算法对运动背景下目标被完全遮挡的适应性。
实验的硬件环境为AMD Ryzen 7 3700U 2.30 GHz处理器,8 G内存。软件环境为Visual Studio 2019和OpenCV3.4.15。
选取Jumping、Dog、Walking、Dog1和Fish共5种测试集进行综合性能测试,比较改进算法与经典TLD算法、KCF算法和MIL算法在跟踪目标时的鲁棒性、准确性和实时性。4种跟踪算法的目标跟踪结果如图8所示,图中实线为改进算法的跟踪结果,点型虚线为经典TLD算法的跟踪结果,间断型虚线为MIL算法的跟踪结果,点线型虚线为KCF算法的跟踪结果。
从图8(a)中可以看出,对于Jumping测试集中快速移动的跟踪目标,相对来说,改进算法的跟踪精度和成功率均为最高,其他算法或多或少都存在目标框丢失和漂移现象。特别是MIL算法和KCF算法均产生了较严重的漂移现象,算法的鲁棒性较差。
从图8(b)中可以看出,在Dog测试集中的第86帧和第101帧,当目标发生大幅形变时,经典TLD算法的跟踪框发生了轻微漂移现象,而MIL算法和KCF算法无法对尺度变化进行检测,依旧维持初始框大小。
从图8(c)中可以看出,在Walking测试集中的第86帧,当目标在受到轻微遮挡时,经典TLD和MIL算法目标框均发生小幅偏移,KCF算法目标框则是发生漂移现象,而且在后续的目标尺度逐渐变化的过程中MIL算法无法对尺度变化进行检测,始终维持初始框大小直到跟踪结束。
从图8(d)中可以看出,对于Dog1测试集,经典TLD算法、KCF算法和改进算法对物体旋转的鲁棒性较高,而MIL算法发生了漂移现象。从对目标尺度变化的适应能力上看,经典TLD算法和改进算法表现较好,而KCF算法适应性较差。
从图8(e)中可以看出,对于Fish测试集,在初始目标发生快速运动的过程中,KCF算法的目标框发生了漂移。在第157帧,当环境光照发生突变时,改进算法和经典TLD算法目标跟踪框均丢失,而MIL算法具有良好的光照变化鲁棒性。
图8 4种跟踪算法的目标跟踪结果
3.1.1 算法的鲁棒性
从图8的实验结果可以看出,改进算法和经典TLD算法对物体模糊、旋转、形变以及尺度变化均有着良好的鲁棒性,而MIL算法和KCF算法在稳定环境下的跟踪效果较好,特别是MIL算法对于光线突变变化适应性较好。另外,当物体发生仿射变换时,改进算法的目标跟踪成功率明显高于经典TLD算法,但是,对于光照突变的鲁棒性较差。这是因为,光照突变对经典TLD算法中跟踪模块所使用的L-K光流法影响较大,会直接导致跟踪失败。
3.1.2 算法的准确性
采用准确率[20](Success Plot,SP)和平均像素误差[20](Average Pixel Error,APE)作为算法准确性的评价标准。使用TLD算法、MIL算法、KCF算法和改进算法分别对Walking、Dog、Jumping、Dog1和Fish测试集进行测试,4种算法在不同测试集中的准确率和平均像素误差测试结果分别如表1和表2所示。
表1 4种算法在不同测试集中的准确率
表2 4种算法在不同测试集中的平均像素误差
从表1可以看出,改进算法的跟踪准确率均高于经典TLD算法和KCF算法。除了对于光照变换较剧烈的Fish测试集之外,改进算法的跟踪准确率也明显高于MIL算法。从表2可以看出,改进算法的平均像素误差在多数测试集也优于其他3种算法。这是由于跟踪模块采用了更能表达出目标特征的特征点,从而导致算法跟踪准确率较高,平均像素误差较低。
但是,从表2还可以看出,在对Dog测试集和Fish测试集进行的测试中,改进算法的平均像素误差略高于经典TLD算法。这是由于,一方面,Dog测试集目标图像块较小,改进算法采集不到较优的特征点,导致跟踪框产生了小幅偏移,提高了平均像素误差。另一方面,在对Fish测试集进行的实验中,经典TLD算法丢失的帧数较多,而这些丢失的帧并不会出现在计算平均像素误差的过程中,从而导致经典TLD算法的平均像素误差略低。
3.1.3 算法的实时性
采用平均帧率作为算法准确性的评价标准。平均帧率即每秒钟算法处理帧数(Frames Per Second,FPS)的平均值。采用TLD算法、MIL算法、KCF算法和改进算法分别对Walking测试集、Dog测试集、Jumping测试集、Dog1测试集和Fish测试集进行测试,4种算法在不同测试集中的平均帧率测试结果如表3所示。
表3 4种算法在不同测试集中的平均帧率
从表3可以看出,MIL算法的检测速度相对稳定。KCF算法在跟踪过程中的速度一般,但是,在目标发生丢失时,KCF算法的速度会明显提高。整体而言,改进算法对较高分辨率和较低分辨率的视频序列均有较好的实时性。特别是,当改进算法处理目标图像块分辨率相对于视频分辨率较小的视频序列如Walking时,在目标不发生丢失的情况下检测速度明显高于经典TLD算法。这是由于,一方面,改进算法采用ROI方法动态划分检测区域,通过方差分类器剔除了大量不含有前景目标的样本,大大减少了样本数量,从而导致了算法的运行速度和实时性较高;另一方面,只有当跟踪过程中目标发生丢失时,改进算法才采用全局搜索的策略,从而运行速度较高。
但是,对Dog1测试集和Fish测试集进行测试的结果显示,改进算法整体的平均帧率略低于经典TLD算法。这是因为,而改进算法在对Dog1测试集和Fish测试集跟踪过程中,产生的正样本过多,检测模块中最近邻分类器的耗时增大,从而导致整体的平均帧率较低。
为了对比改进算法与经典TLD算法在处理严重遮挡问题上的性能差异,选取Jogging和Human4测试集进行测试和比较。
3.2.1 定性分析
使用改进算法与经典TLD算法,选取Jogging和Human4测试集中的关键帧进行定性分析。两种算法对Jogging测试集目标1和目标2跟踪结果对比分别如图9和图10所示,对Human4测试集跟踪结果对比如图11所示。
从图9、图10和图11的实验结果中可以看出,在目标受到轻度遮挡时,经典TLD算法会将含有遮挡物的目标框作为正样本进行训练,导致经典TLD算法在一定程度上能够处理目标受到轻度遮挡的情况。但是,当目标受到严重遮挡后,例如,当目标进入遮挡物并消失在视频帧中时,经典TLD算法的目标框会发生漂移现象,不能进行准确地跟踪。
图9 两种算法Jogging测试集目标1跟踪结果对比
图10 两种算法Jogging测试集目标2跟踪结果对比
图11 两种算法Human4测试集跟踪结果对比
而在判定为目标受到遮挡后,改进算法能够预测后续帧中目标的位置。当后续帧判定遮挡消失后,改进算法使用检测模块的最优结果作为该帧的跟踪结果,能够更加准确地追踪目标。
3.2.2 定量分析
采用平均重叠率[20](Average Overlap Rate,AOR)作为算法抗遮挡性能准确性的评价标准。使用经典TLD算法和改进算法分别对Jogging测试集目标1、Jogging测试集目标2和Human4测试集进行测试。两种算法对不同测试对象的平均重叠率测试结果如表4所示。
表4 两种算法对不同测试对象的平均重叠率
从表4可以看出,相比于经典TLD算法,改进算法的平均重叠率更高,说明改进算法有着更好的抗遮挡性能。这是因为,改进算法中加入了遮挡物判定机制,当判定有遮挡物时,不使用学习模块进行样本更新,调用Kalman滤波器进行运动预测,因此,当目标在重新回到视野当中时,依然能够准确地跟踪到目标。而经典TLD算法将包含遮挡物的目标框作为正样本训练之后,可能会影响后续帧的跟踪结果。
针对经典TLD跟踪算法无法准确地表达目标的特征,在目标受到严重遮挡时,跟踪不准确,以及采用全局搜索策略,导致的实时性较差等问题,引入ORB特征点与均匀分布特征点相结合的特征点作为跟踪模块的特征点集,并采用划分ROI区域的方法排除非目标图像块的干扰,以增强算法的实时性和准确性。另外,通过引入Kalman滤波器结合特征点匹配算法对目标运动轨迹进行预测,从而使得运动背景下的目标在受到严重遮挡时,算法依旧能准确地跟踪到目标。
但是,改进算法仍然存在一些问题,例如,当光照变换较剧烈时,改进算法的鲁棒性较差;当跟踪目标丢失后,帧处理时间较长等。这两个问题将是下一步的研究的关键。