时间:2024-07-29
周春月,颜 巧
(北京交通大学 电子信息工程学院,北京 100044)
目标追踪是计算机视觉领域中的一个基础却充满挑战的问题,通常在第1帧中给定目标的初始信息(矩形框),然后在后续帧中自动输出目标的状态.其在视频监控、自动驾驶、机器人研究等领域有着重要作用,因此吸引了大量研究人员的目光.
根据外观模型的不同,单目标追踪算法可以被分为两类:生成式算法(Generative algorithms)和判别式算法(Discriminative algorithms).
生成式算法通过生成模型描述目标的表观特征,然后在后续帧中进行相似特征搜索,逐步迭代从而实现目标定位,主要的方法包括主成分分析、稀疏表示等.生成式算法重点在于对目标本身的刻画,忽略了背景信息,在目标自身发生剧烈变化或者遮挡时容易产生追踪漂移现象.
判别式算法将目标追踪转换成一个关于前景和背景的分类问题.通过对图片中所有的样本进行一次判别,并得出所有的样本成为前景和背景的概率,最终选择前景概率最大的样本作为追踪的结果.当前主流热点包括基于相关滤波器(Correlation filter)的方法和基于孪生网络(Siamese network)的方法.
基于相关滤波器的方法将目标追踪问题建模成一个最小岭回归问题,利用HOG[1]、CN[2]、LBP[3]等算子或者神经网络提取图像特征,并将目标特征与每一帧的搜索图像特征进行相关运算,获得目标在每一帧中的位置,代表算法有KCF算法[4]、C-COT算法[5]、ECO算法[6]等.这类方法融入循环矩阵、核函数等思想,计算效率高,但需要在线学习,灵活性低,并且存在边界效应,对快速运动目标的追踪效果不好.
随着计算机性能的提升以及深度学习的复苏,基于孪生网络的目标追踪算法也成为了该领域的流行方法.其中,文献[7]提出了第1个基于孪生网络的全卷积目标追踪算法,使用五层卷积提取图片特征,将模板分支输出的特征抽象为卷积核在搜索分支的特征图上,通过卷积的方式计算相关性,输出目标的最可能位置.文献[8]在孪生网络的基础上融入的目标检测中的区域生成网络[9](Region Proposal Network,RPN)结构,将追踪问题转换为视频帧的目标检测的问题,使模型可以输出更精确的位置信息和尺寸信息.文献[10]在模型中引入了一个干扰物感知模块,并对训练数据中的正样本进行增强,提高模型对背景干扰的鲁棒性.为了解决深层孪生网络模型表现不佳的问题,文献[11]提出一种随机偏移目标位置的训练方式,并使用层数更多,结构更复杂的神经网络模型提取图片特征,以更充分利用多尺度特征.这一类基于孪生网络的目标追踪算法通过使用更深层的网络结构来提取更丰富的图片特征,使模型的精度更高,对光照、阴影等影响的鲁棒性更强,并且全卷积的结构可以使模型进行离线优化,提高模型的灵活性,使模型达到了实时的速度,满足现实场景的需求.
然而,在基于孪生网络的目标追踪算法中,孪生网络负责提取模板图片和搜索图片的特征,用于后续目标位置的生成.目前,主流的算法SiamFC[7]和SiamRPN[10]采用浅层的VGG[12]或AlexNet[13]作为孪生网络,SiamRPN++[11]算法采用更深层并广泛应用于运动目标检测的ResNet[14-15]作为孪生网络.这些算法采用的孪生网络均迁移自图像分类领域,采用了大量的下采样结构,导致输出的特征丢失了大量的细节信息,目标定位不精确.虽然SiamRPN++算法去掉了最后两个下采样来保留细节信息,并采用扩张卷积来弥补感受野的损失,但是其孪生网络的特征图依然下降为原始图片的1/8,细节信息丢失严重,并且模型真实感受野受到影响,导致表达能力下降.
为了解决这个问题,本文作者采用高分辨率网络(High-Resolution Network,HRNet)提取图片特征,在不影响模型感受野的前提下充分保留了图片的细节信息,提高目标定位的精度.本文提出的算法在孪生网络上引入基于注意力机制的SE(Squeeze-and-Exception)模块[16],突出有用的特征,抑制多余的信息,进一步精化孪生网络输出的特征.此外,判别式算法将目标追踪问题转化为一个前景和背景的分类问题,除追踪的目标样本之外,其余样本皆为背景,因此,正负样本数量极其不平衡,过多的负样本主导着模型的优化过程,使模型优化效果不佳,为了解决这个问题,本算法使用焦点损失函数(focal loss),减少简单负样本在损失函数中所占的比重,将模型注意力放在更难区分的正样本上,提升算法的性能.
孪生网络[7]最初被用来衡量两个输入样本之间的相似程度,它包含两个具有相同的结构和参数的神经网络,其中参数更新在两个子网上同时进行,孪生网络的结构见图1.
孪生网络的核心思想就是把两个输入经过映射函数映射到目标空间,然后在目标空间通过某种距离度量来比较两个输入的相似程度,具体方法为相同类别的一对输入距离最小化,不同类别的一对输入距离最大化.假设两个输入样本分别为X1和X2,映射函数是GW(X),W是网络的参数,GW(X)将输入样本X1和X2分别映射到目标空间,分别得到目标空间内的向量表示GW(X1)和GW(X2),再通过某种距离度量方式计算两个样本在目标空间中的距离(相似程度)EW.用来计算一对输入之间的距离EW的方法有欧氏距离损失,对比距离损失,余弦距离损失等,并且映射函数GW(X)必须是可微分的.
ST为了在保证模型感受野不受影响的前提下提高孪生网络特征图的精度,本算法采用HRNet作为孪生网络.2019年,文献[17]提出了高分辨率网络的概念,并在随后提出了增强版本HRNetv2.本算法采用的是增强版本的高分辨率网络.如图2所示,高分辨率网络由4条并行的支路相互交错连接而成.为了降低计算成本,在输入端采用两个步长为2的3×3卷积将特征图尺寸降低为原始图片的1/4.4条支路中A支路拥有最高的精度,为原始图片的1/4,下面几条支路分别由上面相邻的支路通过下采样生成,精度逐级减半,分别为原始图片的1/8,1/16,1/32.在感受野方面,下采样使感受野成倍增加,D支路拥有最大感受野,精度最高的A支路感受野最小.通过这种并行的设计使模型在保证感受野不受影响的前提下,将模型精度提高了一倍.本算法的孪生网络结构除去两个下采样模块还可以细分为4个stage,每一个stage包括4个串行的普通残差单元,后三个stage还分别包括1,4,3个特征融合模块.在残差单元中,支路间互不影响,均由传统瓶颈结构或层叠结构构成;而在特征融合模块中,每一条支路均由之前所有支路通过上采样或者下采样的方式融合得到.这种多尺度特征的融合,可以显著提高模型的表达能力.
为了进一步提高孪生网络提取特征的质量,本算法在孪生网络部分融入基于注意力机制的SE[14]模块,提取更多的语义特征和全局特征.SE具体结构见图3,每个SE结构首先通过全局平均池化操作Fsq把卷积层IN的每个二维的feature map压缩成一个实数ai,ai具有全局感受野,然后利用可学习的参数W为每一个实数ai生成权重,通过可学习的方式显式地建模feature map间的相关性,最后用学习后的全局特征B与原始feature map进行元素相乘,使输出(OUT)中每一个feature map的特征包含全局的信息.使用这种SE结构后,本模型可以提取全局特征来衡量feature map的重要程度,通过学习的方式提升有用的特征并抑制对当前任务用处不大的特征,从而提升主干网络的表达能力.
孪生网络模块负责提取图片的多尺度特征,而检测模块则负责利用多尺度特征生成目标的位置信息和尺度信息.本算法延续SiamRPN++算法的思路,采用3个并行的RPN结构对视频中的每一帧进行目标检测.然而在SiamRPN++算法中,每一个RPN输入的特征是相互独立的,没有进行多个stage间的特征融合.为了更充分利用深层网络的多尺度特征,本算法采用FPN[18]的融合方式,在RPN模块之前,先进行stage间的特征融合,融合方式为相加融合,使每一个RPN使用的特征既包含足够的细节特征又包含大量的语义特征.但与FPN算法不同的是,本算法融合的多尺度特征具有相同大小的尺寸,不需要再使用上采样算法来匹配尺寸,因此本模块更简单,更高效.
具体设计见图4,检测模块使用stage2、stage3、stage4的特征作为输入,将模板分支和搜索分支中的4条支路的特征图通过上采样的方式统一为A支路的大小,特征图越大,细节信息越丰富,后续目标定位越准确.之后将4条支路的特征通过叠加融合的方式进行融合,并使用一个1*1的卷积将每一个stage中的特征通道数统一为256.然后按照FPN的思想将不同stage间的特征进行融合,融合方式为相加融合.最后将特征输入到RPN中生成目标的位置信息和尺寸信息,其中RPN模块采用SiamRPN++算法中的设计,anchor数设为5,并使用组卷积(Group convolution)来平衡检测模块和孪生网络模块的参数量.这3个尺度的RPN使用相同尺寸的卷积核和特征图作为输入,其输出结果的尺寸也必然相同,因此将3个RPN输出的结果按比例相加作为模型最终的结果.
本文的单目标追踪算法整体结构见图5,上下两个结构相同,参数共享的HRNet作为孪生网络负责提取目标图像和搜索图像的多尺度特征,并且在RPN部分采用FPN的思想融合多尺度特征获取追踪目标的分类信息和位置信息,通过对3个RPN输出加权的方式,获取最终的追踪结果.
1.5.1 训练数据增强
孪生网络部分使用COCO数据集[19]进行预训练,然后使用ILSVRC-2015[20]和YouTube-BoundingBoxes数据集[21]对整个模型进行训练.其中,COCO数据集包含80个目标类别,共20万张图片;ILSVRC-2015数据集包含30个基本类别,共4 000多个序列;YouTubeBB数据集包含23个物体类别,共500万个边界框.在训练之前,首先要对数据集进行预处理,将模板分支和搜索分支的输入图片分别剪裁为127*127和256*256.另外,本算法采用深层的高分辨率网络,不可避免的导致模型的平移不变性受到影响,使模型预测的结果存在位置偏见.为了解决这个问题,本算法采用SiamRPN++中的正样本随机偏移的方式对数据集进行预处理,偏移范围为0~64.
1.5.2 基于focal loss的损失函数
SiamRPN和SiamRPN++算法均采用目标检测的损失函数进行训练,目标检测损失函数由目标类别损失和目标框回归损失构成.回归损失采用sL1函数,类别损失采用交叉熵损失函数如下
(1)
式中:y为样本的标签,正样本y=1,负样本y=-1;p∈[0,1]为模型得出的分类概率.为了便于标记,定义
(2)
则交叉熵函数可以写为
CE(p,y)=CE(pt)=-log (pt)
(3)
对于单目标追踪这种单目标检测任务,一张训练图片中绝大部分区域为容易区分的背景样本,只有小部分区域为难以分辨的正样本,因此,正负样本数量严重不平衡,造成损失函数被大量的简单负样本所主导,使模型的预测结果出现对负样本的偏移,干扰对正样本的识别.虽然已有算法采用困难样本挖掘[22]或随机抽样等手段平衡正负样本的比例,但还是存在明显的正负样本失衡,并且丢失了很多背景信息,因此,本算法采用focal loss[23]作为分类部分的损失函数.
引入权重因子αt∈[0,1],通过加权的方法来控制正负样本对总的损失函数的贡献,具体的,负样本数量多,则降低负样本的权重,正样本数量少,则提高正样本权重.
CE(pt)=-αtlog(pt)
(4)
式(4)虽然可以解决正负样本不平衡问题,但是不能解决容易分类和难分类样本不平衡问题.
FL(pt)=-(1-pt)γlog (pt)
(5)
式中:(1-pt)γ为调制系数,目的是通过减少易分类样本的权重,从而使得模型在训练时更专注于难分类的样本.γ用于调节简单样本权重降低的速率.γ=0时即为交叉熵损失函数,当γ值增加时,调整因子的影响也在增加,以减少易分类样本的损失.越容易区分的样本,pt越大,调制系数越小,对总损失影响越小;而越难以区分的样本,pt越小,对总损失的影响越大.通过这种简单的方式可以降低大量容易区分的负样本在损失函数中的比重,使模型的注意力放在更难分辨的正样本上.
同时考虑正负样本不平衡、难易样本不平衡,得出
FL(pt)=-αt(1-pt)γlog (pt)
(6)
1.5.3 多阶段训练方式
本算法先在目标检测数据集COCO上对主干网络进行预训练,然后使用增强后的ILSVRC—2015和YouTubeBB数据集进行训练,损失函数采用focal loss.本模型采用随机梯度下降(Stochastic Gradient Descent,SGD)算法进行参数优化.batch_size指每一次批处理的样本个数,设为32.一个epoch指输入所有的训练数据送入网络中完成一次前向计算及反向传播的过程,在训练时,将所有数据迭代训练多次,模型才能够收敛,epoch值设为50.基准学习率(base learning rate,base_lr)值设置为0.001并逐渐减少,学习率下降间隔(step_size)数设为9,学习率调整倍数(gamma)设为0.1,表示每训练完9个epoch对当前学习率进行调整—乘以0.1.权重衰减系数(weight_decay)值设为0.000 5,Momentum为0.9.
以Pytorch 1.0作为开发框架,系统为Linux,硬件设备包括2块NVIDIA TITAN XP GPU,显卡内存为24 G以及一块Intel i7-7800k CPU,内存为64 G.
本算法在VOT2018[24]数据集上进行模型性能的检测.VOT系列数据集是单目标追踪领域认可度很高的检测数据集,该数据集包含60个序列.VOT系列数据集每年都会更新,追踪难度也越来越大.
2.2.1 VOT实验结果
在VOT2018数据集上有3个重要指标,准确性(Accuracy)、鲁棒性(Robustness)和期望平均重叠率(Expected Average Overlap,EAO).
1)准确性是指追踪器在单个测试序列下的平均重叠率,每一帧的重叠率为
(7)
式中:SGT为人工标注的真实边界框;SDR为追踪器得出的实际的边界框.
2)鲁棒性是指单个测试序列下的追踪器追踪失败的次数,当重叠率为0,即S=0时可判定为追踪失败.
3)EAO是追踪器在一个图像序列上的非重置重叠的期望值,是VOT评估追踪算法精度的最重要指标.
此外,追踪速度为追踪器每秒处理的图像帧数,单位为FPS(Frames Per Second).
实验结果见表1,本算法的EAO分别比SiamRPN和SiamRPN++提高4.1%和1.0%,准确值分别较SiamRPN和SiamRPN++提高了2.3%和0.9%,同时,鲁棒值分别降低了5.5%和1.3%.通过实验结果的比较可知,本算法通过对SiamRPN、SiamRPN++算法的改进,提升了追踪的准确性,并且提高了模型对光照,阴影,噪声,目标尺寸等干扰因素的鲁棒性.同时,本算法的追踪速度为30 FPS,略低于SiamRPN++算法的35 FPS.
2.2.2 VOT消融实验
为了进一步验证本文提出算法各模块的改进效果,进行了相关实验,实验结果见表2.
针对孪生网络部分,对使用基于注意力机制的高分辨率孪生网络的模型与SiamRPN++算法进行对比实验.实验结果表明,将ResNet替换为基于注意力机制的高分辨率网络后,模型的EAO和准确性分别提升了0.5%和0.3%,鲁棒值降低了0.4%.由此可见,更高精度、更大感受野、更强表达能力的孪生网络可以生成更高质量的特征,提高预测的精度以及对干扰的鲁棒性.
针对检测模块,采用类似FPN的多尺度特征融合后,本算法性能也有所提升,其中,EAO和准确性均提升了0.2%,鲁棒值也降低了0.4%.这说明本算法中的融合方式可以更充分的融合多尺度特征,提高模型表达能力.
算法采用focal loss损失函数后,EAO和准确性分别提升了0.3%和0.4%,鲁棒值降低了0.5%.这说明本算法中的focal loss可以缓和正负样本不平衡的问题,使模型训练效果更理想.
1)提出了一种基于高分辨率孪生网络的单目标追踪算法.该算法延续孪生网络与RPN相结合的思想,将孪生网络部分替换成更高精度的高分辨率网络,并且融入基于注意力机制的SE模块,大大提升了孪生网络提取特征的能力,并且在RPN部分采用FPN的思想融合多尺度的特征,充分利用深层模型的多尺度特征,提高检测精度.
2)在训练过程中,使用focal loss作为损失函数,缓和正负样本及难易分类样本不平衡问题,提高模型的训练效果.实验结果表明,本算法在VOT2018数据集上3个评价指标相比SiamRPN和SiamRPN++算法均有所改进.
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!