基于YOLOv3算法的中低速列车在途障碍物检测方法
2021-07-27王钏文黄仁欢
王钏文,王 磊,黄仁欢,覃 锐
(通号万全信号设备有限公司,杭州 310000)
列车在自动驾驶过程中的安全性,主要依赖于列车自动保护系统(ATP)。而ATP强调的是车距与行车授权,对于行车过程中的如行人闯入等突发状况,无法做到有效的防护与应对。因此列车在途障碍物检测作为一种重要的列车安全防护手段,早已成为列车全自动运行研究过程中一个重要的分支。
对于列车在途障碍物检测的研究,始于20世纪70年代,研究初期,主要利用各类传感器,如激光雷达传感器和视觉传感器,以及各种传统图像处理算法,如HOG特征和SVM分类器等。由于硬件手段及软件算法限制,当时并未获得较为理想的检测效果。2006年深度学习理论的提出,及其后硬件条件的不断更新,为列车在途障碍物检测,尤其是中低速列车的在途障碍物检测研究注入了新的血液。2015年YOLO检测算法的提出,为列车在途障碍物检测提供了新的解决方案。YOLO检测算法亦属于卷积神经网络,但由于对传统的卷积神经网络结构进行了优化,在确保准确率的同时,极大程度上缩短了检测时间。YOLOv3作为目前较优的YOLO检测算法版本,其理论识别速率为45 F/s(YOLOv3-320),官方给出的预训练模型可识别超过100种不同物体,极为适合中低速列车在途障碍物识别使用。
本文以YOLOv3检测算法为基础,在其原有的预训练模型基础上做迁移学习,并结合freeman链码边缘检测方法,提出一种基于YOLOv3的中低速列车在途障碍物检测方法。
1 方法提出
1.1 YOLOv3介绍
YOLOv3网络由多个按特定顺序排列的1×1和3×3卷积层组成。同时,在每个卷积层之后顺序配置一个BN层和一个LeakyReLU层以实现其网络的基础功能。一般而言网络中总共包含53个卷积层,所以又被称为Darknet-53网络,其详细结构如图1所示。预测过程中,利用(4+1+c) ×k个大小为1×1的卷积核进行卷积预测,以求提高识别准确度和识别效率。其中k为预设边界框(bounding box prior)的个数(一般默认为3),c为预测目标的类别数。
图1 YOLOv3网络结构示意Fig.1 YOLOv3 network structure diagram
1.2 迁移学习与数据扩充
迁移学习的核心在于,选用已有的高效泛用模型,通过固定其基础结构,同时利用已有数据对其输出层或最后几层进行重新训练。从而针对某一特定场景建立更为高效的学习模型。由于只对部分网络进行训练,所以并不需要极大规模的样本数据作为支撑。该做法的优势在于,节省了大量数据收集、处理、标注工作,同时确保了网络的识别能力。
其主要的迁移过程如下:
训练或引用一个标准网络模型(base network);
将其前n层复制到最终需要得到的目标模型(target network)的前n层 ;
将target network剩下的其他层随机初始化;
使用自身收集的与实际使用环境相契合的数据,训练得到最终需要的目标模型。
训练过程中可以选择把迁移过来的这前n层“冻结”起来,即在训练target task的时候,不改变这n层的值。或者,不冻结这前n层,而是不断地在一定范围内调整它们的值,该过程称之为“微调”。大部分情况下,为了契合新的使用场景,都会使用到“微调”。
1.3 轨道边缘提取
弗雷曼链码(Freeman)是用曲线起始点的坐标和边界点方向代码来描述曲线或边界的方法,对于求取图片中全边界有非常优异的效果。
如图2所示,在图像上选定任意一个像素点,同时将与其相邻的8个像素点分别标记为0~7;设i为图像上某像素点索引值,目标曲线pi→b7的路径为pi→b4→b5→b6→b7,则其相应的弗雷曼链码可以表示为46000。此时,将其路径改为pi→b0→b7,那么,它的弗雷曼链码则变为06。相对于铁轨而言,若经统计发现其链码中,某一字段出现频率极高,那么,在轨道边缘提取过程中,将该字段出现频率最高的线段提取出来,即可得到准确的轨道边缘。
图2 弗雷曼链码8邻域标记方法示意Fig.2 Schematic diagram of Freeman chain code 8 neighborhood marking method
1.4 障碍物检测流程
整合以上提到的检测手段,配合现有的效果较优的图像与处理手段,结合车载视觉传感器(车载摄像头)获取到的视频信息,即可得到中低速列车在途障碍物检测的完整方案,包括如下步骤:
1)车载摄像头获取到行车画面,归一化处理后,记录原图并拷贝两个副本(副本一与副本二),副本与原图应完全一致;
2)对副本一设置感兴趣区域(ROI)标记出铁轨大致位置;
3)图像预处理、去噪;
4)使用canny算子获取图中的所有边缘信息;
5)使用Freeman链码提取轨道边缘位置,并标记至原图;
6)对副本二使用训练好的YOLOv3网络检测可识别的物体;
7)若存在可识别的物体则进行步骤8),否则直接进行步骤9);
8)将可识别物体的位置与步骤5)得到的轨道边缘做位置对比,若在轨道边缘内,则在原图上标记该物体并将报警信息上报至车载台。否则只在原图上对该物体进行标记;
9)在车载台上显示原图。
依据步骤1)至步骤9)逐帧检测车载摄像头获得的行车画面,即可实时监测列车运行过程中是否存在可能的障碍物,并及时预警。
2 实验验证
2.1 数据集准备
本文使用天水有轨电车示范线一期工程中采集的车载视频,共截取2 400张大小为1 024×768的图片样本,样本目标包括社会车辆和信号机各1 200张(由于部分图片中可能包含多种目标,故图片有复用)。使用其中2 000张(每种1 000张)作为训练集,400张作为测试集。
2.2 实验结果
试验过程中共计识别图片400张,其中误识别4张,漏识别6张,误识别率1.0%,漏识别率1.5%,漏识别率相对较高。其主要原因在于,天水项目车载摄像头安置于驾驶室内,受光线及驾驶室玻璃折射、散射影响较大,成像质量较差,严重制约识别效率。识别效果如图3所示。
图3 轨道边缘及障碍物识别效果Fig.3 Track edge and obstacle identification effect picture
3 结语
本文使用YOLOv3网络及freeman链路算法,有效识别了轨道边缘和列车运行前方障碍物,是一种适用于中低速列车的在途障碍物检测方法。