基于卷积神经网络的列车检测算法研究
2021-04-06张永鹏王一力宋亚京
祁 颖,赵 辉,张永鹏,王一力,宋亚京
(1. 北京市地铁运营有限公司 通信信号分公司,北京 100082;2. 北京市地铁运营有限公司 地铁运营技术研发中心,北京 100044;3. 交控科技股份有限公司 交控研究院,北京 100070)
列车检测作为列车自动驾驶的核心技术,可以有效地降低列车追尾等事故造成的人身危险和财产损失。随着我国地铁首条无人驾驶的自主化全自动运行系统(Fully Automatic Operation,FAO)开通[1-3],对列车检测精准性要求提高。现有的自动驾驶列车完全依赖于通信系统,不具备前向列车识别能力,只能通过信号系统获取前向列车的距离。然而,当信号系统出现故障时,列车间距就无法精准地获取,容易引发列车碰撞等交通事故,因而需要增强列车对周边运行环境的自主识别能力,有效地进行列车识别[4-6]。研究基于图像的列车检测方法,采用卷积神经网络对车载图像中前向列车进行识别,以判断列车前向的一定范围内是否存在有列车。当列车信号系统故障时,采用信号系统的备用方式,通过基于卷积神经网络的列车检测方法识别出前方列车,从而实现前向列车安全防护,提升列车的行车安全水平,保护乘客的出行安全。
1 基于卷积神经网络的列车检测算法
1.1 算法框架
基于卷积神经网络的列车检测算法主要包括特征提取、列车定位及列车分类3 部分,各部分概述如下。①特征提取。采用一种改进的卷积神经网络,对输入图像进行特征提取,卷积生成的特征包含物体的位置信息,并且提高了处理速度。此网络由多个卷积层与池化层组建,可以从图像中提取更有效的特征,用于候选区域检测与分类。②列车定位。采用候选区域网络从特征图里滑动搜索,判断出可能为列车的区域位置,将位置信息映射到输入图像中,粗略定位列车区域的位置,并将其作为候选区域。③列车分类。采用快速区域卷积神经网络对每个候选区域进行分类,并计算其所属类别的置信度,精确定位列车,实现列车检测。基于卷积神经网络的列车检测算法框架示意图如图1 所示。
1.2 列车特征提取
为实现对图像中列车的识别,从特征提取结构及特征图级联2 个部分对列车区域进行特征提取。
1.2.1 特征提取结构
特征提取结构主要用于在单个网络层中提取图像特征,主要包括有C.ReLU激活函数和Inception[7]结构。C.ReLU激活函数应用在低层的网络中,先将上一层网络的通道数减少一半,然后将下一层网络神经元激活前的输出和其相反数进行级联使输出变成双倍,计算速度提升一倍[8]。Inception 结构应用在高层的网络中,通过控制卷积核尺寸来提升对小目标检测的性能。
1.2.2 特征图级联
特征图级联主要用于将多层特征进行融合,结合高层特征的语义信息和低层特征的细节纹理信息,将不同网络层提取的特征进行融合,从而实现在最终的网络输出中既包含有高层特征语义信息,也包含有低层细节纹理信息。特征图级联网络结构如表1 所示。卷积3_4 层使用最大值池化,卷积层5_4 使用双线性插值算法进行上采样,再将两者与卷积层4_4 结合,经过1×1 的卷积后生成512 通道的多尺度输出特征作为候选区域网络的输入。这种方法有利于提高目标检测的正确率和定位精度。
图1 基于卷积神经网络的列车检测算法框架示意图Fig.1 Framework of train detection algorithm based on convolutional neural network
1.3 列车定位
为实现列车在图像中的坐标位置输出,需要对列车在图像中的位置进行精准检测,研究应用候选区域网络,并通过设计候选区域网络损失函数实现列车的精准定位。
1.3.1 候选区域网络
候选区域网络主要在特征图上滑动窗口,获得特征向量,并将其输出给2 个同级的全连接的层:包围盒回归层和包围盒分类层,实现分类和回归。分类分出目标和非目标;回归给出包围盒的位置。对每一个滑动窗口采用多尺度的候选框机制,得到多种尺度和多种长宽比的k个候选框。回归层有4k个输出,即k个候选框的坐标编码。分类层通过对每k个候选框使用softmax函数进行目标与非目标的概率估计输出2k个得分。
softmax函数将多个标量映射为一个概率分布。对于k个候选框x1,x2,…,xk,softmax函数定义为
表1 特征图级联网络结构表Tab.1 Table of the feature map Cascade network
通过候选区域网络,得到一系列被框选的、带有目标得分的候选区域,此区域即为列车候选区域。
1.3.2 候选区域网络的损失函数
给每个候选框分配一个二进制的标签,也可称为正标签和负标签。为2 类候选框分配正标签:与某个真实区域包围盒有最大IoU值(2 个区域的交集面积与并集面积之比);与任意真实区域包围盒的IoU值大于0.7。为所有与真实区域IoU值低于0.3 的候选框分配负标签。候选区域网络的损失函数定义为
式中:C(pi,ti)为候选区域网络的总体损失;Ncls为小批量数据的个数,取256;Nreg为归一化回归损失的参数,取2 400;λ为平衡分类损失和回归损失的权重,取10;i为一次批量迭代中选取的候选框索引;pi为候选框是目标的概率;为候选框对应的真实区域标签;ti为预测的包围盒的4 个参数化坐标向量;为相对应的真实区域包围盒的坐标向量;为2 个类别的对数损失;为回归损失;为预测的列车框坐标与真实的列车框坐标的差值。
1.4 列车分类
为了判断每个候选区域是否为真实的列车,需要通过列车分类进行进一步验证。研究采用快速卷积神经网络列车分类算法实现列车分类,具体包括列车分类算法及损失函数设计。
1.4.1 列车分类算法
采用一种与候选区域网络共享特征提取网络的快速区域卷积神经网络算法进行列车分类。训练时,将标注的数据集输入特征提取网络,生成卷积特征图。将候选区域映射到特征图中,获取特征信息,并对该信息进行池化运算,得到一个大小为7×7 的特征池化图,全连接获取一个4 096 维的特征向量,该向量即候选区域的最终特征。将此特征向量分别输入到分类与回归中,利用非极大值抑制法判断出候选区域的目标类别与位置。利用判断值与实际标注值之间的差别得到损失函数,利用反向传播算法与随机梯度下降法对网络参数结构进行优化,得到输出网络。测试时,将待测图像输入到网络,输出列车的分类和定位结果。
1.4.2 损失函数设计
快速区域卷积神经网络可以对候选区域输出k+ 1 类目标(包含背景)的概率及回归后的包围盒坐标。对每一个候选区域定义损失函数为
式中:L(p,u,t u,t*)为列车分类的损失函数,p为预测的目标类别,u为真实的目标类别,t u为预测的包围框坐标,t*为候选区域对应的真实目标包围盒的参数坐标向量;Lcls(p,u)为候选区域对应的真实目标类别u的对数损失,Lcls(p,u) = -logpu;Lloc(t u,t*)为包围盒坐标的回归损失,Lloc(t u,t*)为所有的目标坐标差值,
2 实例分析
以北京地铁10 号线列车为例,在对列车特征提取、列车定位、列车分类进行分析的基础上,验证基于卷积神经网络列车检测算法在不同场景下对前向列车的检测性能。
2.1 列车特征提取
为证明所提出的特征提取算法的有效性,在特征提取网络中分别通过增加特征图级联和删除特征图级联来进行模型训练,从而对比特征图级联对列车特征提取的影响。
通过对比试验发现,增加特征图级联后模型的收敛时间较没有增加特征图级联前缩短2/3,有效地证明了特征图级联可提升模型训练速度。此外,通过对比增加特征图级联前后的效果发现,增加特征图级联后,模型的精度提升2 个百分点,有效地证明了特征图级联网络对列车提取的精度影响。
2.2 列车定位
为证明所应用的候选区域网络对列车定位的影响,在列车定位中通过在候选区域网络中设置不同的候选框进行模型训练,从而对比候选区域网络中候选框的大小设置对列车定位的影响,同时确定最优的候选框设置个数。候选区域网络示意图如图2所示,对输入的图像首先生成k个候选框,并通过滑动窗口在特征图中生成对应的特征向量,从而分别输出给分类层和回归层。在实验中,通过设置不同尺度和不同大小的候选框进行对比试验,设置候选框的个数分别为3 个、6 个、9 个及12 个,即基础候选框的个数为3 个,基于3 个基础候选框,后续在不同尺度特征图上进行候选框扩增,从而生成6 个、9 个及12 个候选框。
通过对比试验结果发现,候选框的个数越多,列车的定位效果越好,但候选框个数增加到一定个数后,即候选框的个数增加到9 个后,列车定位效果基本趋于饱和。也说明当候选框的个数达到9个后,基本覆盖了列车可能的姿态信息,即在候选区域网络中选用9 个候选框即可达到最优效果。
图2 候选区域网络示意图Fig.2 Network of region proposal networks
2.3 列车分类
为证明所应用的快速区域卷积神经网络对列车分类的影响,在列车分类网络中通过选取不同的分类网络进行模型训练并进行列车分类测试,从而验证提出的列车检测算法中快速区域卷积神经网络对列车分类效果的影响。
在对比测试中,通过增加快速区域卷积神经网络和将快速区域卷积神经网络替换为常见的分类网络即全卷积神经网络进行模型对比,通过实验结果可发现,快速区域卷积神经网络对列车分类效果较好,可有效地区分出背景与列车。
2.4 算法验证
在列车挡风玻璃处安装工业相机,相机的分辨率为1280×720 pt,相机采集帧率为10 Hz,基于此相机采集真实列车运行视频,并对采集的视频数据提取出图像中有列车的场景图片。对采集的真实场景图片按照行驶环境进行进一步分类,主要分为正常光线场景图像、逆光场景图像、弱光线场景图像3 类场景,每一类场景均采集1 000 张包含有列车的数据图像。测试过程中,将标注好的图像输入至测试环境所应用的Nvidia TITAN X 显卡中,通过随机生成的权重参数获得输入图像对应的检测结果。在此基础上,通过标注的结果与输入的结果进行对比,并通过损失函数及反向传播算法对模型参数进行更新,从而完成一次模型训练。通过不断的训练与更新,从而得到最终的优化模型。
获取优化后的模型后,将正常光线场景图像、逆光场景图像、弱光线场景图像(每一类场景提供包含有列车的1 000 张数据图像)输入至训练好的模型中进行列车检测。在检测过程中,先通过Inception 结构进行特征提取,再通过特征图级联结构对不同网络层提取的特征进行融合,即将Inception 结构输出的信息进行池化、上采样及多尺度融合,从而获取包含融合信息的特征图,在此基础上进行列车定位,即确定列车在图像中的具体位置。通过候选区域网络对生成的融合特征图进行滑动,获取每个滑动窗口的特征向量,对获取的每个特征向量,进一步地输出至包围盒回归层及包围盒分类层,从而确定每个特征图的精准边界,以获取最终的前向列车检测结果。
此外,在进行前向列车检测过程中,不需要开展反向传播运算,即前向检测时只关心实时检测结果而不需要进行模型参数优化,从而保证了列车前向检测算法的实时性。此外,在测试过程中,每一类图像中检测列车会输出一个检测的置信度,为保证列车检测结果的有效性,选取0.5 置信度作为是否存在列车的判断阈值,将大于0.5 的部分认为前向存在列车,小于0.5 的部分认为前向不存在列车。
2.5 应用效果
根据列车检测结果对基于卷积神经网络列车检测算法的应用效果进行分析。由于损失函数可用于衡量列车检测网络模型的预测能力,分别对列车定位及列车分类进行损失函数设计,分析基于真实列车数据进行模型训练时损失函数情况,统计列车检测模型迭代训练过程中损失值的变化情况。模型训练过程中损失值曲线如图3 所示。
由图3 可以发现模型训练损失值下降速度较快,且训练后期的平均损失较低,可知列车候选区域网络及分类网络能够快速收敛,进而学习到图像中的特征。基于此测试环境,采用基于卷积神经网络的列车检测算法对真实环境下的运行列车数据图像进行应用效果测试。前向列车识别应用效果测试如表2 所示。
图3 模型训练过程中损失值曲线Fig.3 Loss curve of model training
表2 前向列车识别应用效果测试表 张Tab.2 Table of testing results for forward train detection
通过表2 可知,基于卷积神经网络的列车检测方法在正常光线场景、逆光场景及弱光线场景均能较好地检测出列车,因而对光强度有一定的适应性。此外,对不同朝向的列车均可以较好地实现列车检测。实验结果证明基于卷积神经网络的列车检测方法对环境光强和列车朝向的变化不敏感,适应范围广,鲁棒性高。此外,基于卷积神经网络的列车检测算法可部署于嵌入式GPU 平台,可实现实时地进行前向列车检测,因而可以用于列车前向主动防撞系统及列车驾驶前向预警系统。
3 结束语
现阶段列车自动驾驶系统不具备列车检测功能,当列车运行线路环境中存在有列车时,容易引发列车事故。基于改进的卷积神经网络的列车检测算法通过设计卷积网络架构,在不同光照环境下及对不同朝向的列车图片测试结果表明,对正常光线场景图像、逆光场景图像及弱光线场景图像均有较好的检测效果,可应用于自动驾驶列车及现有的非自动驾驶列车系统中,实现对运行过程中列车的自动识别、防撞预警及列车制动,从而提升自动驾驶列车安全性。