基于嵌入式GPU平台的列车运行环境检测算法

2021-09-25 10:51熊敏君张慧源彭联贴
控制与信息技术 2021年4期
关键词:列车运行卷积精度

熊敏君,李 晨,张慧源,彭联贴,苏 震

(株洲中车时代电气股份有限公司, 湖南 株洲 412001)

0 引言

随着汽车自动驾驶的快速发展,轨道交通领域也在不断开展列车辅助及自动驾驶的研究。列车,尤其是货运列车,有着载重大、运输线路长等特点,辅助及自动驾驶对保障其驾驶安全、提高驾驶效率具有重要的作用。列车运行环境的实时检测是实现列车辅助及自动驾驶的基础。

列车运行环境检测涉及列车运行过程中轨道区域检测、障碍物识别、交通信号灯识别及轨旁标识牌识别等。其中,列车前方轨道区域检测是环境检测的基础,传统方法一般是通过检测两条钢轨线位置从而确定轨道区域的。文献[1]通过改进边缘检测算子进行钢轨识别,但其识别的前提需要两条钢轨和背景存在比较明显的灰度差异,且对光照、遮挡等环境因素敏感。文献[2]针对光照因素引起的钢轨特征提取不完整的问题,提出了基于相位一致性的钢轨特征提取方法,但该方法在复杂场景下的轨道检测效果较差。文献[3]基于曲率映射图实现了近距离轨道的识别,并基于局部梯度信息实现远距离轨道识别,能够识别百米以内的轨道。此外,有研究者提出采用模板匹配的方法[4-5]提取轨道线,和通过高次曲线拟合的方法[6]实现对弯轨的识别。在轨道环境较复杂或弯道曲率较大时,基于传统算法的轨道识别漏检率及误检率较大,并受光照、部分遮挡等外界因素的影响较大,导致算法的鲁棒性较差。

基于深度学习的语义/实例分割算法近些年发展较快,在公路交通环境检测方面取得了较多应用成果。文献[7]提出了全卷积网络(fully convolutional networks, FCN),对传统的卷积神经网络进行了改进,实现了端到端的图像语义分割算法。文献[8]采用类似FCN结构实现车道线的检测,算法分割效果较好,但实时性较差。为了提高算法的执行效率,文献[9]提出了一种编码-解码结构SegNet网络,编码部分采用传统的卷积网络的池化层,解码部分进行上采样恢复原图像的特征信息。研究者们为了进一步提高算法的精度与效率,又相继提出了ENet[10],ERFNet[11],MaskRCNN[12]等分割网络结构。其中,MaskRCNN实例分割网络检测精度较高,主要用来进行目标检测和物体轮廓分割,适用于车辆自动驾驶的交通环境感知。

列车运行的轨道环境较公路交通环境来说相对简单,相应的基于视觉的环境感知算法更易落地实现。本文基于图像实例分割MaskRCNN网络,提出一种列车运行环境实时检测算法,通过样本数据图像增强、网络参数与结构的改进、深度学习加速引擎TensorRT的模型推理加速等处理,提高算法的检测精度及运行效率;并在嵌入式开发平台NVIDIA-Xavier上开展实验,验证了算法的检测精度与运行效率。

1 列车运行环境检测算法原理

基于图像实例分割的列车运行环境检测算法基于嵌入式GPU平台Xavier实现,由数据处理、模型生成及实时检测3个部分组成,本节主要介绍其框架及实例分割模型MaskRCNN的基本原理。

1.1 算法框架

图1为基于图像实例分割的列车运行环境实时检测算法框架。其中,数据处理环节通过车载摄像头对列车运行环境的视频数据进行采集与存储,并进行筛选、抽帧、标注、图像增强等处理,以获得样本数据;模型生成环节通过改进MaskRCNN网络训练、基于TensorRT的模型加速获得可推理的模型文件;实时检测环节完成模型文件在Xavier上的部署,同时对图像分割结果进行分类,以得到列车运行环境信息。

图1 列车运行环境检测算法框架Fig. 1 Framework of the train operation environment recognition algorithm

1.2 MaskRCNN网络模型

MaskRCNN实例分割网络由主干网络、区域生成网络以及3个分支任务组成,如图2所示。其中,主干网络由标准卷积神经网络CNN(ResNet系列)及其形成的特征金字塔网络FPN组成,主要负责特征提取;区域生成网络RPN负责从不同尺寸的特征图中获得候选区域并进行特征对齐;最后,通过目标分类、框回归及掩码分支得到目标检测及分割结果。

图2 MaskRCNN网络示意图Fig. 2 Structure diagram of MaskRCNN

2 列车运行环境检测算法的实现

针对原始MaskRCNN模型在轨道环境目标检测中存在的目标检测精度低、分割边缘粗糙、算法运行速度慢等问题,本文采用图像增强、主干网络优化、特征金字塔结构优化等措施提高检测精度,并通过基于TensorRT的模型加速来满足模型的实时推理需求。

2.1 数据处理与图像增强

视频数据采集装置由多个车载摄像头组成,根据机车车型、运行环境和客户需求的不同,摄像头模组可安装于列车司机室内部或外部,但需保证能够最大视野地获取列车运行前方轨道、轨旁信号灯及标识牌等区域视频数据,且获取的视频数据覆盖列车不同运行时间段、不同运行场景的环境信息。

通过视频数据预处理,获取训练样本数据集,其主要步骤如下:

(1)视频场景分类。对采集的视频数据进行人工清洗,均衡不同场景的视频数量。

(2)关键帧抽取。采用每秒1帧的方式对视频抽取关键帧,通过图像质量检测算法筛除重复度较高的图像数据。

(3)图像标注。采用标注工具对图像数据进行像素级的标注。

(4)标注格式转换。将标注完成的标签统一转换成coco数据格式。

文献[13]验证了图像增强方法在深度学习图像识别中应用的可行性,即采用正常样本1.43%数量的样本进行图像增强后可达到与正常样本训练同样的精度。由于轨道环境训练样本数据有限,采用图像处理方法进行图像增强,可进一步扩充样本数据,主要扩充方式有随机裁剪、平移与缩放、高斯噪声、颜色及亮度变换等。图3示出图像增强(通道处理)前后图片效果对比。

图3 图像增强处理效果对比Fig. 3 Comparison of image channel processing effects

2.2 MaskRCNN模型改进

针对原始MaskRCNN实例分割模型存在的大目标分割边界粗糙、小目标检测精度低等问题,本文主要对模型进行以下3个方面的改进优化。

(1)采用混合空洞卷积优化主干网络。主干网络提取的特征图信息直接影响后续网络的检测精度。与普通卷积相比,空洞卷积有利于在保证分辨率的前提下扩大感受野,从而获得多尺度的上下文信息,非常适用于图像语义/实例分割任务。为了消除空洞卷积带来的网格效应,本文采用不同空洞率组合的卷积核——混合空洞卷积[14]对ResNet主干网络进行特征提取优化。

(2)特征金字塔的不同尺寸特征融合。特征金字塔结构可以解决不同尺度目标的检测问题,原始MaskRCNN模型采用的金字塔结构包含左侧“自底向上”和右侧“自顶向下”两条路径,通过二者相邻层的横向连接实现高层语义信息与低层位置信息的融合(图4)。为了进一步将低层位置信息融进高层特征,得到更优的目标检测精度,如图4所示,在模型的右侧增加一条“自底向上”的路径,以优化传统特征金字塔结构。

图4 金字塔结构及其优化示意图Fig. 4 Pyramid structure and its optimization diagram

(3)提高全卷积掩码输出尺寸。由于原始模型掩码分支默认单个目标的输出大小为28*28,最终的分割结果图采用上采样得到,导致大目标的分割边缘不清晰,锯齿状边缘现象较严重。为了解决这一问题,考虑提升掩码分支的输出尺寸来优化分割边缘。然而,较大的掩码尺寸输出会造成算法运行效率的下降。因此,根据实验结果对精度与效率进行综合评估,提高全卷积掩码输出尺寸为56*56,在满足算法运行效率的基础上得到更加平滑的分割轮廓。

2.3 基于TensorRT的模型加速

由于车载嵌入式开发平台的算力有限,而实例分割模型资源消耗较大,因此需要对训练好的模型进行加速,从而达到车载实时运行的效果。本文采用高性能深度学习支持引擎TensorRT对模型进行加速处理,并在嵌入式开发平台NVIDIA-Xavier上实现。

TensorRT是NVIDIA公司针对深度学习网络推出的神经网络推断加速引擎,可极大提高深度学习模型在边缘设备上的推理速度。其工作原理是通过网络模型的层间合并,优化内核选择,指定模型精度(浮点型32位FP32、半精度FP16或整型INT8),执行归一化和转换,优化矩阵计算,从而减少延时、提高吞吐量和效率。

基于TensorRT的模型加速算法的主要流程如图5所示:

图5 TensorRT模型加速算法流程图Fig. 5 Algorithm flow chart of model acceleration based on TensorRT

(1)初始化模型推理相关参数,包括待加速的模型文件、engine文件、图像帧的处理批次、网络输入大小、模型的输入及输出节点等。

(2)判断是否存在本地engine文件可读取,若是,则直接进行模型的反序列化;否则,进行模型解析与engine生成。

(3)判断模型是否需要进行低精度推理参数设置,并序列化engine后保存至本地。

(4)执行模型推理,输入数据为视频流处理模块的输出数据,获得推理结果。

3 实验结果分析

为了评估模型优化及加速的效果,本文设计了模型优化实验及推理加速实验,对比了原始模型及优化后模型的检测精度与推理速度。

3.1 环境配置及评价标准

实例分割模型训练的实验环境为两张NVIDIATesla-V100显卡(显存为32 GB),实验基于TensorFlow深度学习框架进行。列车运行环境检测的样本数据约5 000张,目标类别包含行人、机车、轨道、汽车、信号灯及标识牌。从中随机选取约800张作为验证集,样本数据图像大小均为1920*1080,模型输入大小为1024*1024。为了提高训练模型的准确率,采用在ImageNet上训练好的模型进行迁移学习。文中所有实验训练步数设置均为epoch值180,每个epoch步长为1 000,batch_size值为2。模型推理加速实验环境为NVIDIA-Jetson-Xavier嵌入式处理平台。

模型优化实验分别计算目标检出的准确率P及召回率R,然后通过式(1)计算得到精度值F进行检测效果评估。

其中轨道项点只进行区域判断,不作为评估依据;其他项点检出值与真实值的交并比IoU大于0.5即视为正确检出。

推理加速试验采用模型推理时间Tinfer进行加速效果评估。

3.2 结果分析

3.2.1 模型优化实验分析

在进行模型优化实验前,对主干网络ResNet50和ResNet101进行了对比。虽然采用ResNet50训练及推理速度有所提升,但目标检测精度下降明显,因此后续实验均采用ResNet101主干网络进行训练及验证。

为了验证模型优化效果,分别对原始模型(MR)、改进空洞卷积(MRD)模型及改进金字塔结构(MRFPN)模型进行准确率验证,其中采用模型MRFPN的检测效果如图6所示。验证集共包含5类目标物体,约2 000个。为了更好地验证小目标检测准确率,将所有目标物体按照像素大小分为大、中、小3个类别。不同模型优化后得到的检测结果如表1所示,所有结果均取5类项点的平均值进行评价,其中下标大、中、小分别代表不同大小的目标的检测结果。

图6 列车运行环境检测结果图(MRFPN)Fig. 6 Segmentation results of the train operation environment by MRFPN

表1 不同模型的检测结果对比Tab. 1 Comparison of detection results (%)

从表1检测结果可以看出,采用空洞卷积优化有助于提高小目标检测的准确率,但对大、中目标的检测精度仅有轻微影响;而改进金字塔结构对不同大小的目标检测精度均有明显提升,平均检测精度提升约2个百分点。因此,基于TensorRT的模型推理加速实验采用改进金字塔结构的模型进行验证。

为了验证不同掩码尺寸输出对分割区域的影响,采用轨道项点分割结果的平均交并比mIoU作为评估指标。M28*28与M56*56分别表示掩码输出尺寸为28*28与56*56。由表2结果分析可知,提高掩码输出尺寸后,mIoU提升1.05%,有助于分割精度的提升。图7示出提高全卷积掩码输出尺寸后目标边缘锯齿化现象改进效果。从轨道边缘可以看出,边缘的锯齿状现象得到了较好的改善,输出边缘平滑,有利于轨道区域限界判定。

表2 掩码尺寸对轨道区域检测的影响Tab. 2 Influence of mask size on track area detection

图7 分割边缘改进效果对比图Fig. 7 Comparision of segmentation edge results

3.2.2 推理加速实验分析

模型推理加速实验在Xavier平台上实现,主要测试使用TensorRT加速前后模型在Xavier上的推理速度,该实验采用精度(FP16)的模型加速推理进行推理速度验证。模型加速前后的推理时间对比如表3所示,Tbefore和Tafter分别为模型加速前后的推理时间。可以看出,通过TensorRT对模型加速,可以显著提升模型的推理速度。模型输入大小为1024*1024时,模型的推理速度约为7 fps,推理加速比超过6,基本能够实现算法在车载嵌入式平台上的实时运行。

表3 模型加速前后推理时间对比Tab. 3 Comparison of inference time before and after model acceleration

为了确保基于TensorRT的模型推理加速不影响检测精度,进行了加速后的精度对比实验。如表4所示,Fbefore和Fafter分别为模型加速前后的平均检测准确率,精度差仅0.11%。由此可知模型推理加速对于检测精度无明显影响。

表4 模型加速前后精度对比Tab. 4 Comparison of model accuracy before and after acceleration (%)

综合分析实验结果可知,通过改进金字塔结构、提高掩码尺寸及模型推理加速处理,提升了原始模型的检测精度及运行速度,获得了更好的轨道分割效果;同时,在嵌入式Xavier平台上模型推理速度达到7 fps,具备在机车上进行实时环境检测应用的潜力。

4 结语

本文提出一种基于图像实例分割实现的列车运行环境实时检测算法。首先,针对轨道检测边界不清晰及目标检测精度较低的问题,采用空洞卷积、金字塔结构优化等方法改进原有网络模型,提高模型的检测精度及目标边缘分割精度,在验证集下目标检测精度达到94.75%;其次,通过TensorRT进行模型推理加速优化,推理速度达到7 fps,推理加速比超过6,并通过嵌入式平台NVIDIA-Xavier实现算法的车载实时运行。该系统主要应用于机车和城市轨道交通列车的自动驾驶的环境感知与障碍物检测,辅助机车实现对轨道区域、行人、其他机车、信号灯及标识牌等目标的实时检测。通过模型结构优化及推理加速,提高了系统的检测精度及运行效率,使其满足列车运行环境的实时检测需求。

目前该推理加速算法仅实现了一部分列车运行环境的检测,后续可通过扩充实例分割的目标类别,实现对图像中所有区域的分割;并可通过整型推理进一步提升模型加速的速度。

猜你喜欢
列车运行卷积精度
基于不同快速星历的GAMIT解算精度分析
数字化无模铸造五轴精密成形机精度检验项目分析与研究
基于全卷积神经网络的猪背膘厚快速准确测定
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
一种基于铁路调车防护系统的列车运行监控装置自动开车对标的方法
铁路调图
以工匠精神凸显“中国精度”
浅谈ProENGINEER精度设置及应用