袁 首,乔勇军,苏 航,陈青华,刘 星,2
(1.海军航空大学,山东 烟台 264001; 2.中国人民解放军91967部队, 河北 邢台 054102)
对监控探头中的目标轨迹进行预测是一个广泛关注的热点,在智能监控、安防保障、自动驾驶等领域有许多应用。而当前该方面的研究集中在单个监控探头中的轨迹预测,即在同一监控探头中预测目标的未来轨迹。这样使得在单个监控探头之外,目标接下来将出现在哪里便无从分析,不适用于一个区域的预测判断,如果组建一个包含多监控探头的系统便可以解决这类问题。这和以往的工作不一样,之前使用轨迹信息进行行人重识别或是跟踪是后置性的,而这次是先验性的,即利用轨迹来预测目标接下来会出现在哪个监控探头中,便于监视人员提前做出预警与判断。
在轨迹预测方面,近年来较为活跃。如Alahi等[1]提出了Social lstm、Gupta等[2]提出了Social gan、李琳辉等[3]在此基础上探索不同池化层带来的影响、Sadeghian等[4]提出了Sophie,均关注于通过提取社会交往的特征,来避免在群体运动中与他人的碰撞;另一方面,Liang等[5]提出的从非最低点视点提取人体姿态,或是Styles[6]提出的利用光流也考虑到了将环境约束应用于轨迹预测。但是以上研究均是在单个监控探头中使用的,无法很好地适用于当前的要求。
而当前明确用于行人轨迹预测的数据集如UCY[7]、ETH[8]、Stanford Drone[9]等,使用鸟瞰的角度来记录,但却是单监控探头下进行的;而DuckMTMC[10]等多监控探头的数据集已经不再公开提供,无法使用。因此对于构建模型的应用场景,需要自行搭建一个相关数据集进行使用。
为此,以跨监控探头轨迹预测作为应用背景,设计了一个跨监控探头轨迹预测的模型,构建了相关基线作对比。为了进行实验验证,构建了一个具有多监控探头视频的数据集,包含的视频内容复杂度高,也继而提出了一种自动手动相结合的数据标注方式,有效减少了人力消耗。实验验证证明跨监控探头轨迹预测问题被有效地解决,也为相关领域的研究做出了一些前期的贡献。
AMVS中每个监控探头使用的模型均包含三大部分,一个基于门控循环单元(GRU)和全连接层(FC)的Bounding Box处理器,用于从过去轨迹的Bounding Box中提取时间特征;一个基于Average Pooling的池化模块,用于处理交互信息;以及一个预测器,用于根据学习的特征生成未来的Bounding Box做预测。整体的AMVS模型结构如图1所示。
图1 AMVS模型结构框图Fig.1 AMVS model diagram
视频中会有人员相互影响的情况出现,使用池化模块可以对交互信息进行综合分析。
在常见的池化汇集方法Max Pooling、Gumbel Pooling和Average Pooling中进行选择。由于处理器产生的信息包含了许多的有效特征,而Max Pooling容易过度的过滤,无法有效保留有用的特征信息,进行最大池化反倒产生不好的结果。Gumbel Pooling适用于人员非常密集且杂乱的情况,但是针对人员目的性较强时就容易出现过度分析的问题。而本研究中所构建的数据集人员密集度不高但轨迹的线性强,因而采用Average Pooling即平均池化的方法可以对场景进行更好地建模。
选定好Average Pooling作为池化模块后,其接收到处理器送来的δi,总结行人下一步所需要的全部信息,输出池化向量δo,为下一步预测器的预测做准备。
此外,由于长短期记忆网络(LSTM)和GRU在时序处理方面均具有突出的表现,研究中也尝试了将模型中的GRU模块更换为LSTM模块,其余部分相同,也可以得出适用于跨监控探头轨迹预测的模型,这在3.3节的实验验证中可以得到证实,也在另一方面证明了所提出的AMVS模型具有良好的扩展性。
首先针对跨监控探头轨迹预测情景设计了模型AMVS,之后为评估所研究的内容,构建了跨监控探头轨迹预测数据集(across monitoring vidicon trajectory prediction dataset,AMVTP),并在该数据集上进行验证。实验将从AMVTP数据集的实用性以及AMVS模型的有效性两部分展开。实验运行在Windows 10操作系统,使用PyTorch 1.1.0,GPU为NVIDIA GEFORCE RTX 2080 Ti,使用Cuda10.1以及Cudnn v7.5.0进行加速。
为了实验验证上述设计方法的可行性,首先需要快速且高质量的获取一个跨监控探头轨迹预测数据集AMVTP,因此,提出了一种手动自动相结合的构建方式,数据集构建流程如图2所示。流程主要分成三大部分,下面将依次进行说明。
图2 数据集构建流程框图Fig.2 Dataset construction flowchart
3.1.1获取视频
选取了某基地在室内外架设的12个监控探头中10天360个小时的数据作为视频来源。由于需要进行跨监控探头轨迹预测,保证行人从一个监控探头出去后可以在下个探头中观测到,绘制了监控探头间的拓扑关系,如图3所示。同时为了增强适用性,视频数据选取包含室内外的场景、人群与车等。考虑到由于天气状况导致能见度不同,也会对视频监控产生影响,而大气科学对相关定义较细,与之结合这里只需做简易的分别,规定能见度在20 km(含)以上为极好,15(含)~20 km为好,10(含)~15 km为一般,1(含)~10 km为较差,0.3(含)~1 km为差,0.3(含)km为极差,继而对监控时能见度进行记录,如图4所示为监控探头2在不同能见度下拍摄的视频数据示例。因为保密要求,在一些部位打上了马赛克,下同。
图3 监控探头间的拓扑关系示意图Fig.3 Monitoring vidicon topology view
图4 监控探头2在不同能见度下拍摄的情景图Fig.4 The scene taken by monitoring vidicon 2 in different visibility
3.1.2视频过滤
在上一步获取到了相关视频数据之后,为了保证训练视频的质量,需要对其进行半自动方法予以过滤。去除掉因为读取错误而无法打开的视频文件,同时针对其中模糊不清或是因能见度过差而导致无法使用算法检测的文件予以丢弃,由于算法可能存在弃真的情况,再对舍弃的视频文件进行手动的验证,保证留下来的视频真实可用。
1) 使用python中Anaconda自带的imageio库进行视频读取处理,预先使用conda-forge命令安装编译好的ffmpeg,而且可以读取某一帧的视频,如果出现视频无法打开等读取有误的问题,则将有问题的视频迁移至“废弃”文件夹中,以便于后续手动的验证。
2) 完成步骤1后,对于那些因为各种原因而导致模糊,从而无法运用目标检测和跟踪算法标记出来的视频数据进行舍弃,使用较为先进且便捷的Mask R-CNN[14]方法进行目标检测、SORT[15]方法进行目标跟踪,予以预训练。针对于未能完成检测跟踪的视频,也将其迁移至“废弃”文件夹中,之后进行手动的核实。
3) 在“废弃”文件夹中,针对于视频无法读取的情况,看是否由于格式损坏导致,可以使用MP4视频文件修复器(HD Video Repair Utility)进行修复;由于检测算法导致无法识别的目标,对其进行手动核对判断是否有行人,后续采用识别精度更高、基于回归的YOLOv4[16]目标检测算法和Deep SORT[17]跟踪方法进行预训练标定。以上进行完成之后,对那些依旧无法读取或者识别的视频予以删除,而对于误检至“废弃”文件夹的视频予以恢复至原始文件,将视频数量进行平衡[18]。
至此,完成了视频过滤的工作,在这个过程中,采用了自动与手动相结合的方式进行,获取到过滤后的视频文件2 364份,其中自动2 013份,手动351份,占比14.8%。
3.1.3视频数据标注
由于对跨监控探头轨迹进行研究,所以轨迹需要先行在单个监控探头进行标记,之后再进行监控探头间的关联。为了保证关联信息的准确,同时降低手动消耗,继续采取半自动标注的思想,接下来将阐述所提出的方法。
3) 最后采用手动验证上述得出的匹配是否真实正确,选定IOU≥0.5,手动的验证可以保证标注的质量,去除了错误的检测和匹配。本次构建得到了一个具有1 182个匹配离入对的集合,其中1 034个正确,148个错误,手动检出的错误占总匹配数的12.5%。
3.1.4数据集概览
至此,构建得到了一个具有2 064个视频文件,1 034个离入对匹配的跨监控探头数据集,有用时长共约5 h。无论是视频过滤还是视频标注阶段,手动占比均在15%以下,比当前视频数据集构建时的平均水平降低约30%~50%,使人力资源消耗控制在低水平。
表1所示为数据集具体参数,图5所示为标定好的离入对匹配示例。
表1 AMVTP具体参数
续表(表1)
图5 不同监控探头下标定好的离入对示例图Fig.5 Examples of calibrated leaving and accessing pairs under different monitoring vidicons
3.2.1基线创建
现有的轨迹预测方法如Social-LSTM[1]、Social-GAN[2]等是依照单监控探头轨迹预测设计,用于直接比较跨监控探头是不合适的,为了进行公平有效地比较,创建了以下的基线。
1) 实际距离最短法。根据实际测量到的监控探头之间的物理距离(见图6),预测目标将出现在距离最近的探头中。
2) 转换过渡频次法。根据计算得到的转换过渡频次(见图7),预测目标将出现在对应的出现频次最高的探头中。
3) 轨迹最相似法。在训练集中找到与当前观测到的轨迹最相似的那个,并预测二者具有相同的轨迹,目标继而进入相同的下一个监控探头中。
4) Hand-crafted特征法。从Bounding Box中提取素材,构建了10维Hand-crafted特征。包含x和y方向的速度,x和y方向的加速度,最后观察到的Bounding Box的高度和宽度,以及它的4个坐标。根据监控探头捕捉到的二维坐标系统计算所有特征,并用全连接层对其进行分类。
除此以外,使用归一化的Bounding Box坐标作为输入,为每个监控探头采用一个单独的网络模型,简单设计了3种学习方法。
5) 全连接网络。具有双层结构,每层有128个隐藏单元。
6) GRU。标准GRU,每层有128个隐藏单元。
7) LSTM。标准LSTM,每层有128个隐藏单元。
图6 各监控探头间距离示意图Fig.6 Distance between monitoring vidicons
图7 监控探头间转换频次示意图Fig.7 Monitor conversion frequency between vidicons
3.2.2实验评估
1) 评价指标
为了验证数据集的实用性,使用3.2.1创建的基线方法,分别给定一个监控探头,来计算top 1和top 3的预测准确率(Accuracy),之后再将所有结果取均值。
2) 实验设置
因为数据集包含的能见度种类较多,因而实验具有挑战性。使用5-fold交叉验证来评估每个模型,验证集和测试集的记录时间与训练集不同。在每个fold中,选择10天进行训练,剩下的5 d被分成相同大小的验证集和测试集。针对基于神经网络的学习方法,每种都训练了10个epoch,batch size值选用16,学习率为1×10-3,全连接层之间的dropout系数设置为0.2。
3) 结果讨论
如表2所示为实验得到的Accuracy。在预测top1时,效果最佳的是LSTM,其实应用于学习网络的策略都较为优异,主要是有足够的数据进行训练。而除了实际距离最短法之外的基线也取得了近似70%的Accuracy,因为其获取了相当数量的数据集信息。而top3的Accuracy表现结果明显优于top1,因为从转换过渡图就可以发现,一个目标接下来最多有4个监控探头可以观测到,绝大部分是3个,其中全连接网络表现效果最好,其余的除实际距离最短法之外的效果差异不大。实际距离最短法之所以效果一般,是因为其过于理想化,没有考虑现实情况,因而评估时可以去除。
表2 Accuracy预测结果
综上,在AMVTP数据集上验证top1的平均结果为71.1%,top3的平均结果为88.5%,可以作为跨监控探头轨迹预测任务的数据支撑。
3.3.1数据集
实验采用AMVTP数据集,相关介绍已在前文叙述。
3.3.2基线创建
1) 训练集均值法。针对某一个特定监控探头所有训练集的观测值做处理,并且取其ground truth标签的均值作为结果。
2) 实际距离最短法。构建方法同3.2.1。
3) 轨迹最相似法。构建方法同3.2.1。
4) Hand-crafted特征法。构建方法同3.2.1。
5) 1D-CNN。考虑到轨迹预测涉及时间序列任务,而1D-CNN作为循环模型的实际使用便有很强的参考价值。在这里使用Yagi等[19]提出的网络体系结构,输入的信息包括Location-Scale Stream、Ego-Motion Stream、Pose Stream三个卷积与反卷积层,并将信息汇总后输入到Channel-wise Concatenation用于描述中间深度特征,最后使用一个全连层FC进行轨迹的预测。
6) 2D-1D-CNN。受到Xie等[20]提出的视频分类模型的启发,为了减少网络参数的数量,使用独立的2D和1D卷积层而不是3D层来进行特征提取与预测。输入的视频信息经过卷积层、Max Pooling层、时空卷积层、2D3D初始块、全连接层FC的处理,实现轨迹的预测。
7) CNN-GRU。借鉴Luc等[21]的思想,使用预测未来卷积特征的策略来预测未来的实例分割地图。首先训练一个卷积自动编码器,得到一个大小为128的特征向量,然后将该编码作为预测未来特征向量GRU的输入,直至收敛,对其进行解码,与GRU进行端到端训练,最后输入到全连接层FC进行轨迹预测。
8) AMVS模型法。构建方法同第二章。包含AMVS-GRU和AMVS-LSTM两种。
3.3.3实验评估
1) 评价指标
由于根据目标在单个监控探头中的轨迹预测接下来其会在哪个监控探头中出现,关注点是目标接下来出现的监控探头的正确性,因而传统评价轨迹预测的指标如平均位移误差(ADE)和最终位移误差(FDE)起到的作用并不高。在本文中,采用直观的评价方法,计算所有模型的平均精度(AP),并且绘制precision-recall曲线(PRC)。之所以不采取受试者工作特征曲线(ROC),是因为在本实验中正例(对象存在)和负例(无对象存在)样本比例悬殊较大,ROC在这种情况下表现得过于完美,而PRC则可以正确反映问题。
2) 实验设置
对于AMVS方法,为每个监控探头训练一个单独的模型。同时保持处理器和池化模块不变,并将预测器更改为大小为12的全连接输出层,即AMVTP数据集中的监控探头数量。在输出层中,使用二元交叉熵作为损失函数和sigmoid作为激活函数。sigmoid激活函数将每个Bounding Box输出映射为0~1之间的值,即目标出现在该监控探头的概率,在k个监控探头组中,将概率最大的认为是目标下一个将出现的监控探头。采用交叉验证方法,并使用Adam优化器进行训练,学习率分别1×10?3,提取的特征向量大小为128,batch size为64。
3) 结果讨论
每个模型的AP值如表3所示,PRC如图8所示。从其中可以看出,相比于创建的基线方法,提出的AMVS模型在数据集上取得了很好的效果。AMVS中的LSTM和GRU两种方法平均的AP值为0.873,比实际距离最短法提高了76.7%,比轨迹最相似法提高了26.3%,比训练集均值法提高了13.7%,比Hand-crafted特征法提高了10.5%,比1D-CNN提升了6.1%,比CNN-GRU提升了5.2%,比2D-1D-CNN提升了5.1%。可以发现,AMVS模型中的LSTM和GRU两个分支表现效果近似,因为其都提取了时序信息进行处理,而且在本数据量一般的情况下,性能差别不大,使用处理器、池化模块、预测器3部分可以很好地把相关信息输入并进行处理,同时摒弃噪声的干扰,后续继续提升效果准备在预测器前加入贝叶斯算法进行先验二分类,从而提升预测效果。训练集均值法会比Hand-crafted特征法表现效果稍好,是因为其针对本数据集进行了特定的处理,有过拟合的倾向。而轨迹最相似法也针对数据集做了专门处理但是表现不佳,认为是一个人离开某一监控探头后可能会在多个探头中出现,进而会出现多个近似轨迹,导致算法分类滞后。实际距离最短法效果最差是因为过于理想化从而忽视了行人运动时的现实情景,例如2个监控探头距离最近但是分别位于室内外从而行人不可能紧接出现。1D-CNN使用循环模型和卷积反卷积层进行处理,可以很好地把轨迹信息描述中间的深度特征,但是由于后续没有良好的支撑,所以准确度有待提升。CNN-GRU和2D-1D-CNN效果近似,是因为这里GRU块起到了和1D2D卷积层类似的提取特征并且预测的作用,但性能无法继续提升,我们考虑是因为CNN当网络层次加深之后,使用梯度下降算法使得结果收敛于局部最优解。
表3 各模型的AP值
图8 各模型的PRC曲线Fig.8 PRC of each model
提出了一种针对跨监控探头轨迹预测问题的解决方案。针对预测目标接下来会在哪个探头中出现的问题,创建了跨监控探头的系统模型AMVS,为了便于问题的研究,构建了一个跨监控探头的数据集AMVTP,并且提出了一整套手动自动结合的方式进行标注。在AMVTP数据集上的实验表明,该模型可以有效地进行预测,弥补了该领域研究的空白。
跨监控探头下的轨迹预测是一个复杂的问题,后续将对目标出现的时间与位置以及多目标轨迹不同时的预测等问题进行深入的研究。