基于深度学习的分层关联多行人跟踪

2021-04-23 04:29:58卿粼波许盛宇
计算机工程与应用 2021年8期
关键词:置信度度量外观

牛 通,卿粼波,许盛宇,苏 婕

四川大学 电子信息学院,成都610065

多行人跟踪是一个非常重要的计算机视觉问题,也是姿态识别、行为分析等更高层研究的基础。例如,一些群组行为识别算法[1-4]利用多目标的轨迹先提取每个目标的时空特征,再联合多人特征实现群组行为的识别。多行人跟踪还在智能监控、自动驾驶、机器人视觉导航、人机交互等多种领域都得到了广泛应用。由于其巨大的商业价值和学术潜力,引起了越来越多研究者的关注。随着检测器精度的不断提高,基于检测的多行人跟踪已经成为主流框架。基于此框架又有离线多目标跟踪[5-6]和在线多目标跟踪两种跟踪模式[7]。其中,在线的多目标行人跟踪适用于实时的跟踪,而离线的适用于对录制好的视频进行分析,因此在线的多目标行人跟踪更符合现实要求,有更大的应用价值。其主要思路是利用检测器检测视频每一帧的行人,并通过数据关联对检测结果和轨迹进行匹配,实现逐帧的检测和跟踪。因此,检测器的性能和数据关联的方式是影响跟踪性能的主要因素。

以基于检测的跟踪为框架的在线跟踪的传统算法有MHT(Multiple Hypothesis Tracking)[8]。JPDAF(Joint Probabilistic Data Association Filter)[9]等。其中MHT为每个候选目标建立一个跟踪树,每个树保存着由不同观测产生的多个假设,新目标出现需要建立新的树,同时已有的树也要更新。JPDAF 需要计算联合事件的概率,当目标数量增大时,其联合事件呈指数增长。这些传统的跟踪方法计算复杂度高,而且对复杂场景下行人的跟踪性能并不理想。相比传统的方法,基于深度学习的多行人跟踪方法在减少了计算复杂度的同时,提高了复杂场景下的跟踪性能。其中,Sort(Simple online and realtime tracking)[10]通过卡尔曼滤波器[11]预测运动状态,并通过简单地计算预测边界框和检测边界框的重叠率得到差异度量矩阵,再利用匈牙利算法实现数据关联,整个框架非常简洁,计算复杂度低,同时达到了很好的跟踪效果。之后Wojke等人提出了Deep Sort[12],主要针对Sort ID 变换严重的问题,通过引入外观特征提高了数据关联的可靠性。在公开数据集MOT16上验证表明:与Sort 相比,引入外观特征提高了跟踪准确度并减少了ID变换的次数。

此外,为了提高数据关联的可靠性,一些研究者还提出了不同的分层数据关联方法。其中,Wojke 等人[12]提出首先利用外观特征和运动特征进行数据关联,再利用运动特征将未成功关联的轨迹与剩余检测结果关联。Bae 等人[13]提出基于轨迹置信度的分层关联方式,先关联置信度高的轨迹,再将置信度低的轨迹与剩余检测结果或高置信度轨迹关联。Alshakarji 等人[14]针对交通视频中多个车辆的跟踪问题,提出三层级联的方式:首先生成短轨迹,接着连接短轨迹得到长轨迹,最后将因为遮挡而中断的轨迹相连,减少了ID 变换的次数。Chen等人[15]提出先利用外观特征进行数据关联,再利用运动特征将未成功关联的轨迹再次关联。除了分层的关联方式,Xu等人[16]提出了时空关联模型,可以鲁棒地将外观、位置和拓扑等各种特征组合起来,并将关系网络扩展到时间域,实现跨时间的信息聚合。

本文提出了一种基于轨迹置信度的三层级联的数据关联方式,第一层将置信度最高的稳定轨迹与检测结果关联,考虑相机运动和静止两种情况下运动特征和外观特征置信度不同,分不同方式计算差异度量矩阵为数据关联提供依据;第二层将由于外观突变或遮挡严重未成功关联的稳定轨迹与剩余检测结果关联,由于其外观特征不可靠,仅利用运动特征关联;第三层将置信度最低的有可能是误检产生的轨迹与剩余检测结果关联。为了进一步提高外观特征的可靠性,本文还提出将Deep Sort 特征提取网络的过程层融合的思路,提取更具鉴别性的外观特征。在MOT16 数据集上测试表明,三层级联的数据关联方式提高了数据关联的可靠性,并且在保证跟踪准确度和精确度的情况下,减少了ID 变换的次数。过程层融合网络相对原网络以及不引入外观特征的网络,有效减少了轨迹ID变换的次数。

1 基于检测的多行人跟踪设计

1.1 基于检测的多行人跟踪算法框架设计

本文的跟踪框架如图1 所示,首先,通过检测器获取检测结果,并将检测结果和已有轨迹进行数据关联,在数据关联的基础上,更新轨迹的外观特征、轨迹状态,并根据状态信息删除、初始化轨迹或者继续跟踪。

为了减少检测和轨迹的错误匹配次数,本文充分考虑了不同情况下特征的置信度和不同状态轨迹的置信度对关联可靠度的影响,并对Deep Sort做出如下改进:(1)提出了分层关联的思路,即将轨迹状态划分为初始态、稳定态、活跃态和消失态,并且针对不同状态的轨迹采用不同的方式计算差异度量矩阵,再依照度量矩阵和轨迹的置信度实现分层关联,一定程度上提升了数据关联的可靠性。特别地,考虑相机静止或运动这两种情况,分别采用不同的方式计算差异度量矩阵,充分考虑了不同场景下特征的置信度。(2)外观特征更新,只更新置信度大于阈值的外观特征,并不是每帧都更新。这种对外观特征的筛选机制保证用于数据关联的特征只有少量噪声混入,减少了轨迹ID 变换的次数。(3)在Deep Sort特征提取网络的基础上做了改进,使得提取的外观特征更具有鉴别性。

图1 基于检测的多行人跟踪框架图

1.2 基于深度学习的外观特征提取

为了提取出更具有鉴别性的外观特征,本文基于Deep Sort 采用的特征提取网络,对不同层的特征进行融合,既没有损失颜色、形状、纹理等低层特征也包含了更具有语义化的高层特征,可以有效利用不同层次特征之间的互补性,提高网络的鲁棒性。

本文提取外观特征的网络结构如图2所示,其中三个残差块[17]的输出分别为32×64×32、64×32×16、128×16×8。在residual-block_1 和residual-block_2 后面接卷积核尺寸为3×3、步幅为2 的平均池化层以及block_层得到两个128 维的特征向量。其中block_由flatten 层、dropout 层[18]、128 维的全连接层构成。residual-block_2后面接一个flatten 层得到一个16 384 维的特征向量。再通过concat层对三个特征拼接,得到一个16 640维的特征向量。最后通过全连接层和l2 范数归一化得到一个128维的特征向量。

本文先针对不同分支单独训练,最后融合各分支特征。因此通过对不同分支的损失函数以及融合特征损失函数的求和得到特征提取网络的损失函数,如式(1):

其中,lall表示网络整体的损失函数,lbranch_i表示第i个分支提取特征的损失函数,一共三个分支,lfuse表示融合特征的损失函数。

对每一个损失函数,本文都利用cosine-softmax 损失[19]。式(2)为cosine-softmax损失函数:

其中,ri表示特征网络的输出,N表示输入的图片序列的长度,C表示类别数,yi表示标签,k是自由缩放参数,是权重。

1.3 分层数据关联过程的设计

1.3.1 轨迹状态的分类

为了更好地处理行人误检、遮挡、新目标出现以及目标消失等问题,本文按照成功关联的次数将轨迹分为四种状态:初始态、活跃态、稳定态和消失态。四种状态的状态转换图如图3所示。其中,初始态和活跃态的设定减少了误检情况对跟踪的影响,稳定态的设定增加了轨迹的完整度,消失态的设定减少了不必要的计算量。具体的状态设置情况如下:

(1)初始态

当被检测到的目标无法和已存在的任何轨迹相关联时,将其视为新的目标,并将其状态定义为初始态。初始态的目标只有检测的当前帧特征和位置信息,还没有轨迹特征池。如果在当前帧没有成功匹配则删除,如果成功匹配则状态从初始态变为活跃态。由于处于初始态和活跃态的行人有可能是误检得到的目标,所以暂时不能当作真正的目标来处理,而是让其处于一个暂定的状态,这种状态下的目标更容易因为没有成功匹配而被删除。

(2)活跃态

从活跃态开始轨迹才有特征池。处于活跃态的行人目标有1 帧未成功匹配,则该目标被删除,但是当它从成为活跃态的那一帧起,连续3 帧成功匹配,则状态可从活跃态转为稳定态。这种对不稳定目标的处理方式,可以在一定程度上帮助跟踪器筛选误检对象,提高跟踪的准确度。

图2 外观特征提取网络

图3 轨迹状态转换图

(3)稳定态

由活跃态转换为稳定态的轨迹是已经确定的轨迹,所以当出现遮挡而导致没有成功匹配的情况出现时,不能随意地认为该目标已经消失。本文设定当处于稳定态的轨迹在连续30 帧内没有成功匹配,才认为目标消失,跟踪完成,并删除轨迹。这种处理方式,考虑到了遮挡对轨迹的影响,增加了跟踪的完整性。由于在不同阶段,不同特征的置信度有差异,所以又将稳定态分为初次关联稳定态和二次关联稳定态,两种状态的关联侧重于考虑不同的特征,增强了数据关联的可靠性。

(4)消失态

当轨迹处于消失态,也就是认定该目标已经消失,轨迹可以被删除了。轨迹在以下三种情况下会被判定为消失态:处于初始态的轨迹只要在当前帧匹配失败,则判定为消失态;处于活跃态的轨迹在3 帧内只要有1帧没有成功匹配,则判定为消失态;处于稳定态的轨迹在连续30帧中都没能成功匹配则判定为消失态。

1.3.2 分层数据关联及轨迹状态更新

基于检测的跟踪方法为实现数据关联,采用度量学习的方式,先计算轨迹和检测目标的差异度量矩阵,再利用度量矩阵实现两者的数据关联。

(1)差异度量

根据Deep Sort 计算差异度量矩阵的方法,可以通过计算卡尔曼滤波器[11]预测的边界框和检测边界框的IoU值或者马氏距离求得运动特征差异度量矩阵,通过计算轨迹特征池中的所有特征和检测外观特征的余弦距离并取最小值得到外观特征差异度量矩阵。

本文针对不同状态的轨迹,考虑特征的置信度不同,分别采用不同的方式计算出更具可靠性的差异度量矩阵,为数据关联提供依据。

①初始态。由于轨迹的外观特征池中还没有外观特征信息,所以只能利用位置信息关联,通过计算检测边界框和预测边界框的IoU值得到度量矩阵。

②活跃态。此时的轨迹已经有了外观特征,但是特征并不完备,所以如式(3),先计算检测边界框和预测边界框的IoU值得到运动差异度量矩阵,仅利用外观差异度量矩阵调整。

其中,tk表示轨迹k,di表示检测目标i,diff(tk,di)为轨迹k和检测目标i之间的差异度量值,IoU(tk,di)表示卡尔曼滤波器预测的轨迹k的边界框和检测目标i边界框的IoU 值,diffa(tk,di)为轨迹k和检测目标i之间的外观差异度量元素,利用余弦距离计算得到,τm表示外观阈值,本文设置为0.8,表示外观差异大于阈值则不是同一个目标,无法关联。

③初次关联稳定态。考虑到相机移动会对运动特征造成影响,运动特征的置信度降低,所以分相机移动和静止两种情况,采用不同的方式计算。

在相机移动的情况下,如式(4),主要考虑外观特征,仅利用运动特征进行调整。

其中,tk表示轨迹k,di表示检测目标i,diff(tk,di)为轨迹k和检测目标i之间的差异度量值,diffa(tk,di)表示轨迹k和检测目标i外观特征差异度量值,利用余弦距离计算。diffm(tk,di)为轨迹k和检测目标i之间的运动差异度量值,利用马氏距离计算,τm表示运动阈值,本文设置为9.49,表示运动差异大于阈值则不是同一个目标,无法关联。

在相机静止的情况下,如式(5),同样针对两种特征计算差异度量矩阵,再通过超参数λ融合两个矩阵得到最终的差异度量矩阵,本文设置λ为0.2。

④二次关联稳定态。由于遮挡和外观突变而没能成功关联的稳定态轨迹,考虑到外观特征的不可靠性,仅利用由IoU计算的运动差异度量矩阵实现数据关联。

(2)分层数据关联

因为数据关联成功的次数越多,轨迹越稳定,即置信度越高,所以初次关联稳定态、二次关联稳定态、活跃态、初始态的轨迹置信度依次降低。基于这种置信度的排序,如图4 所示本文采用分层关联的方式,将整个数据关联阶段分为三个层次,分别是稳定态轨迹关联、未成功匹配的稳定态轨迹关联、初始态和活跃态轨迹数据关联。

图4 分层数据关联

根据轨迹的状态,计算出相应的差异度量矩阵,并通过匈牙利算法[20]实现轨迹和检测结果的关联,得到关联成功的轨迹、关联失败的轨迹以及关联失败的检测。其中,关联成功的轨迹是成功关联的检测和轨迹的ID组成的一个列表,关联失败的轨迹是剩余轨迹的ID 组成的列表,关联失败的检测是剩余检测的ID组成的列表。

(3)轨迹状态更新

所有的轨迹都是由ID、运动特征、外观特征以及轨迹状态来描述的。在每次匹配结束之后,无论是成功匹配的轨迹,还是未匹配的轨迹、未成功匹配的检测都要进行状态更新。对于成功匹配的轨迹通过检测边界框和预测边界框来更新边界框的坐标;并在每条轨迹的特征池中加入当前帧检测的轨迹特征,但是目标相互遮挡时,会引入噪声导致提取的外观特征置信度低,所以选择不更新;如图3所示,还要判断当前帧轨迹是初始态、活跃态、稳定态还是消失态,并更新状态。对于未成功匹配的轨迹,如果是初始态或者活跃态的,则删除,如果是稳定态的,如果30 帧没有成功匹配则删除。对于未成功匹配的检测,表明这可能会是一条新轨迹的起始,则初始化这条新的轨迹,并分配ID。

2 实验与测试

2.1 特征提取网络的训练

本文在基于Python的深度学习框架tensorflow环境下进行实验,计算机配置为Intel Core i5-7500 @3.4 GHz×4,NVIDIA GeForce GTX 1080Ti,操作系统为Ubuntu 16.04。采用行人重识别数据集market-1501[21]对外观特征提取网络进行了训练,该数据集图片的尺寸为64×128,由6 个摄像头拍摄得到,共有1 501 个行人,32 668个检测边界框。其中,训练集有751个行人,包含12 936张图片。训练参数设置情况:batch_size 设置为128;利用Adam 优化器[22],参数为默认设置,即ε=0.001,β1=0.9,β2=0.999。训练过程中,首先以1×10-3的学习率,训练55 000 次,再将学习率降低到1×10-4,训练10 000次。

2.2 算法的有效性验证

本文在MOT16 数据集[23]上验证算法的有效性。MOT16 数据集在多行人跟踪领域,是一个非常权威的数据集,它由14 个视频序列构成,其中有7 个可以用作训练集和验证集,另外7 个用作测试集,数据集的尺寸有1 920×1 080、640×480两种,速度有30 Hz、25 Hz以及14 Hz三种。由于MOT16数据集的拍摄场景复杂、行人数量多、密度大,明暗效果不一,所以是一个非常具有挑战性的数据集。本文采用与Deep Sort 相同的检测算法,该算法是一个在公共数据集和个人数据集上训练的Faster-RCNN[24],具有很好的检测性能。

2.2.1 评估指标

本文主要针对六项跟踪指标评估算法,分别是:跟踪准确度MOTA、跟踪精度MOTP、轨迹ID 改变的次数IDS、真实轨迹被打断的次数FM、跟踪轨迹占真实轨迹80%以上的轨迹占比MT、跟踪轨迹占真实轨迹20%以下的轨迹占比ML。其中,MOTA 综合考虑了误检率(False Positive rate,FP)、漏诊率(False Negative rate,FN)和失配率(mismatch rate)体现了算法的整体跟踪效果,MOTP 体现了预测位置和真值的平均边框重叠率,FM、IDS反映了轨迹维持ID的能力,MT、ML反映了跟踪的完整程度。在表1 和表2 中,“↑”表示对应指标取值越大性能越好,反之“↓”表示对应指标取值越小性能越好。

2.2.2 特征融合网络的有效性验证

表1 列出了在本文算法的框架下,利用Deep Sort外观特征网络的跟踪性能、利用本文特征融合网络提取外观特征的跟踪性能,以及不利用深度特征的跟踪性能。其中,不利用深度特征的网络框架是在本文框架的基础上去除了深度特征的部分,即数据关联部分按照轨迹置信度依次关联,但是仅利用运动特征计算关联矩阵。

由表1 可见,在本文框架下,采用外观特征融合网络相比采用Deep Sort 外观特征提取网络,保证了跟踪准确度和精确度,同时IDS从739减少到710,减少了轨迹ID 变换的次数;FM 从1 960 减少到1 913,减少了轨迹的片段化,验证了本文特征提取网络更具有鉴别性。但是因为IDS 的下降,使得误检率下降,即将其他目标关联到本轨迹的次数下降,所以相比采用Deep Sort 特征提取网络长轨迹的数量会减少,短轨迹的数量会上升,所以跟踪完整度上相比Deep Sort 略有下降。采用外观特征融合网络相比不利用深度特征的网络,跟踪准确度MOTA 从59.9%提升到61.4%;FM 从2 219 减少到1 913;IDS从2 017减少到710,轨迹ID变换的次数大幅度减少。所以,引入深度特征,增加了数据关联的有效性,很大程度上提升了跟踪性能。

表1 采用不同外观特征提取网络及无深度特征网络的跟踪效果

表2 不同算法在MOT16-test上的跟踪效果

2.2.3 算法的有效性验证

为验证本文算法整体的有效性,分别与Config-MOT算法[13]、MOTDT算法[15]、STRN[16]、Deep Sort[12]算法进行了对比,其中Config-MOT 算法、MOTDT 算法和Deep Sort 算法提出了不同的分层关联方法,STRN 提出了时空关联模型。由表2可见,本文算法整体的跟踪性能优于Config-MOT、MOTDT、STRN。与Deep Sort相比,在保证跟踪准确度和精确度一致的情况下,IDS 指标从781降低到了710,有效减少了轨迹ID变换的次数,提高了维持轨迹ID的能力。同时FM指标下降,表明轨迹中断的次数减少,也验证了算法维持轨迹ID 的能力提升。但是由于IDS的下降,跟踪的完整度相比Deep Sort略有下降。为了更直观地验证算法的有效性,如图5、6所示为本文算法和Deep Sort 算法在MOT16 测试数据集01上的跟踪效果:在摄像头静止的场景下,利用本文算法跟踪,ID为1、3、44的轨迹在第122帧还未相遇,在第149 帧相遇并出现遮挡情况,在第169 帧分开仍然保持ID 不变;但是对于相同的目标,利用Deep Sort 算法跟踪,ID 为1、3、38 的轨迹在第149 帧相遇并出现遮挡情况,到第169 帧分开时,ID 为1、3、38 的轨迹互换了ID。如图7、8 所示为本文算法和Deep Sort 算法在MOT16 测试数据集06 上的跟踪效果:在摄像头运动的场景下,利用本文算法跟踪,ID 为82 的轨迹在96 帧还未被遮挡,120帧被遮挡,132帧再次出现时其ID一直维持不变;利用Deep Sort算法,对于同一目标,ID为81的轨迹,在120帧被遮挡后再次出现时ID变换为已存在的轨迹ID,即70,出现了将不同目标关联到同一条轨迹的情况。由此可见,在相机静止或运动的情况下,本文算法维持轨迹ID 的性能都优于Deep Sort。出现轨迹ID变换意味着检测目标与ID 的关联出错,导致一个ID 关联了不同的目标,这种情况会严重影响目标轨迹的重建,对于利用多目标轨迹的群组行为识别算法,跟踪到短轨迹相当于提供的数据量少,但是错误的关联导致的ID变换,产生了错误的数据,会严重影响识别性能。

图5 本文算法在视频MOT16test-01上的跟踪效果

图6 Deep Sort算法在视频MOT16test-01上的跟踪效果

图7 本文算法在视频MOT16test-06上的跟踪效果

图8 Deep Sort算法在视频MOT16test-06上的跟踪效果

3 结语与展望

针对多行人跟踪问题,本文在Deep Sort 的基础上提出了分层数据关联的方法,通过分析运动特征和外观特征在不同轨迹状态以及不同跟踪场景下的置信度,利用不同的方式计算差异度量矩阵,并依据差异度量矩阵和轨迹的状态,实现分层的数据关联。同时,本文还在Deep Sort 外观特征提取网络的基础上,通过融合过程层提取出更具有鉴别性的外观特征。通过在公开数据集MOT16 上验证表明,本文提出的分层数据关联提高了数据关联的可靠度,减少了轨迹ID 变换的次数。利用本文的外观特征融合网络提取的外观特征鉴别度更高,同样减少了轨迹ID变换的次数。针对本文的研究,还可以考虑自适应地过滤检测结果,减少不可靠的检测对跟踪性能的影响。

猜你喜欢
置信度度量外观
有趣的度量
外观动作自适应目标跟踪方法
A Shopping Story to Remember
模糊度量空间的强嵌入
硼铝复合材料硼含量置信度临界安全分析研究
不论外观还是声音,它都很美 Yamaha(雅马哈)A-S3200合并功放
迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量
正负关联规则两级置信度阈值设置方法
计算机应用(2018年5期)2018-07-25 07:41:26
方外观遗迹旧照
紫禁城(2017年6期)2017-08-07 09:22:52
地质异常的奇异性度量与隐伏源致矿异常识别