朵建华,杨柏钟
(宁波市轨道交通集团有限公司运营分公司,浙江宁波 315500)
地铁列车全自动无人驾驶[1]可以在降低人为失误风险的同时大大提高运营效率,进一步提升出行质量和乘坐体验,其运行安全主要依赖信号系统的可靠性。信号系统可以实现调度规划层面的无人驾驶,但只能保证监测行进列车这种合作目标,对于轨道线路上突发性、不可预测的非合作目标侵界与异常则需要车载设备实时进行感知。对轨道识别的研究无论是对于异物入侵检测,还是对于实现列车的无人驾驶,都具有重要的意义。
可见光相机对目标的颜色和纹理比较敏感,可以完成目标分类、检测、分割、识别等任务,已经被广泛应用于汽车无人驾驶领域的道路车道线检测,但与道路车道线检测相比,对轨道交通领域的轨道检测研究并不多。目前,国内已经有一些基于图像的算法研究[2-3],主要针对火车轨道、有轨电车轨道等地面轨道,根据像素点计算曲率等特征将轨道与其他场景元素区分。然而,地铁的应用场景不仅包括高架,也包括水泥混凝土浇筑的地下隧道,环境复杂度较高,轨道的特征更加难以掌控,单一模型已无法满足轨道识别的实际需求。
随着近年来卷积神经网络CNN(Convolutional Neural Networks)[4],特别是针对于语义分割的全卷积网络(Fully Convolutional Network,FCN)[5]的发展与成熟,其超强的学习能力使其在各个领域崭露头角。例如,香港中文大学Xingang Pan等人开发的SCNN(Spatial CNN)[6],该网络适用于连续形状结构或者大型的目标,应用在道路上的车道线检测方面取得了较好的效果。
然而,用单目相机获取到的图像只有二维信息,用于检测三维场景中的物体有缺失维度的缺陷。针对这一问题,目前的研究方向有2个分支:一个分支是使用双目相机获取具有深度信息的图像,对红绿蓝深度(Red Green Blue Depth,RGBD)图像直接进行语意分割与识别,使用基于RGBD数据的深度神经网络包括CFN(Cascaded Feature Network)[7]、3DGNN(3D Graph Neural Network)[8]、ACNet(Asymmetric Convotution Network)[9]等;另一个分支是将图像识别结果与其他测距传感器,如红外测距仪、毫米波雷达、激光雷达等获取的距离数据融合。
基于车道线检测算法的研究基础,单目相机对轨道的识别采用U-Net[10]模型,这是一种由FCN发展而来的网络结构,它在使用少量数据进行训练的情况下就能获得精确的分割结果,最初用于医学图像分割。
相比于其他测距传感器,激光雷达传感器具有测距精度高、探测范围大、抗干扰力强等优点[11]。三维激光雷达可以获取周围物体在三维空间中的坐标值,提供直观的位置信息。然而激光雷达传感器的角分辨率[12]远不如视觉传感器,也不能获取物体表面的颜色信息。
通过结合单目相机和激光雷达的轨道识别方法,旨在通过融合处理2种传感器独立检测的轨道数据,避免单一传感器的局限性,使得到的轨道坐标更精确,以达到更好的识别效果。
多传感器融合的基础条件之一就是每个传感器检测到的目标需要统一到同一个坐标系下,如世界坐标系或者车身坐标系,因此需要对多个传感器进行联合标定。将激光雷达和相机的安装位置固定后,进行相机的内参标定以及相机与激光雷达的联合标定。通过使用棋盘格对相机内参进行标定[13]。在获取到相机内参后,通过张贴二维码的方式获取指定物体在相机坐标系下的坐标信息,通过对指定物体的激光点云进行处理,获取指定物体在激光坐标系下的坐标信息,从而可以建立同一个物体在激光与相机坐标系下的点对点坐标映射。在获取多组点对点映射数据后,可通过奇异值分解(Singular Value Decomposition,SVD)[14]的方式求取坐标系之间的转移矩阵。
多传感器融合的基础条件之二就是多个传感器之间的时间同步,保证同一时刻采集的传感器数据的时间戳是基本一致的。如果没做好时间同步,那么处理某个传感器的数据帧时很可能获取不到其他传感器对应时刻的数据帧,就会导致多个传感器的数据融合失效,不能实现相关功能。对于目前 AI 应用领域的多传感器、子系统之间的时间同步[15],一般只需要达到毫秒级。目前单目相机支持网络时间协议(Network Time Protocol,NTP)进行时间同步[16],而激光雷达一般都支持GPS或者精确时间协议(Precision Time Protocol,PTP)[17]进行时间同步,均能满足传感器之间时间同步的要求。
使用激光雷达和相机同时录制列车前方轨道的视频和激光点云,并以隔帧抽取的方式将获取的视频转成图片格式,避免产生大量相似度过高的数据。
利用标注工具结合手动调整,标注图片中的轨道区域,如图1所示。使用卷积神经网络框架[18](Convolutional Architecture for Fast Feature Embedd-ing,CAFFE),将经过标注的图片作为训练集输入U-Net网络进行训练,当损失函数收敛后训练结束。
图1 轨道标注
损失函数选用的是Softmax_Loss,这是CAFFE中常用的一种损失函数,计算主要分为2步。
(1)计算Softmax归一化概率:
式(1)、式(2)中,i= 1,2,…,N;m= max(z1,…,zN)。
该层共有N个神经元。zk表示第k个神经元的输入。公式(1)表示将zk的每一个元素减去m,即减去zi的最大值。公式(2)中对zk和zi都做公式(1)中的处理,减去m。这样处理是为了数值稳定性。
公式(2)中的f(zk)表示第k个神经元的输出, e 表示自然常数表示了该层所有神经元的输入之和。
Softmax函数最明显的特点在于,它把每个神经元的输入占当前层所有神经元输入之和的比值,当作该神经元的输出。这使得输出更容易被解释:神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。
(2)根据交叉熵计算损失[19]:
式(3)中,为标签值,k为标签为1的神经元所对应的序号,其余神经元所对应的标签值为0。
训练约6个Epoch(时期)后,Loss值收敛到较小的值。当Normalize(归一化)为True时,Loss值会除以样本数。实际训练过程中准备了约2万张轨道图片的训练集,Loss值在约6个Epoch后收敛到0.01左右。
融合传感器数据获得轨道方程的步骤如下。
(1)将训练后的模型放入U-Net网络,当有图像数据输入时,经过神经网络识别输出轨道区域边缘的像素点,这些像素点表示轨道的图像识别结果。根据前期标定得到的相机内参和外参,将像素点投影到激光坐标系,实现从相机坐标系到激光坐标系的转换,表示轨道的点不再是像素而是具有空间坐标的点。由于相机获取的图像提供的是二维信息,此时的轨道点仅包含水平面上的空间位置信息,没有垂直方向上的准确空间位置信息。
(2)获取与输入图像同一时刻的激光点云,由于图像识别到的轨道点与激光点云中的点并不是一一对应的,为了融合同一时刻的图像数据和激光数据,设置一个大于轨道宽度的距离阈值,根据图像识别的轨道点在水平方向上的坐标,找到轨道附近在距离阈值内的激光点集。
(3)考虑到激光雷达的运动畸变,需要对激光点云作运动补偿。运动畸变是指一帧激光点云中的点在采集时存在时间差,由于激光雷达随着载体在运动,不同激光点实际上在不同的坐标系中,记录的激光点位置与实际位置存在偏差。运动补偿过程是首先将原始点云从Lidar坐标系转到IMU坐标系下,通过IMU数据进行位置漂移估算,再将估算值和Lidar数据进行差值计算,最后再将IMU坐标系下的点云转换到Start时刻的Lidar坐标系下,从而得到一帧运动补偿后的、能更好反映出同一时刻下与轨道图像一致的真实轨道环境点云数据。
(4)由于设置的距离阈值大于实际轨道宽度,选取的激光点有冗余,不仅包含轨道,同时也包含其他无关区域,需要对激光点做进一步筛选处理。使用DoN算法对点云作过滤:以某一激光点作为中心,在某一半径r距离内的相邻激光点拟合平面,并计算得到该激光点的表面法向量的模;当r选取不同大小时,表面法向量的模不同;与平面相比,轨道边缘的表面曲率变化较大,在不同半径r下对应表面法向量的模差异性也较大。假设在较小的半径rS下计算得到的表面法向量的模为mS,在较大的半径rL下计算得到的表面法向量的模为mL,Δm= |mL-mS|,去除Δm小于阈值对应的激光点,保留边缘特征明显的点。根据点与点之间的欧式距离去除DoN过滤产生的离散点:计算剩下的每一个点到最近N个点的平均欧式距离,将距离值过大的点作为离散点去除。
(5)由于经过上一步骤的过滤会去除一部分表示轨道的激光点,剩下的激光点可能由于点数过少无法直接用于曲线拟合,需要运用生长算法选出更多表示轨道的激光点。
(6)将上一步骤得到的点云作为种子点,选取种子点最前端前后长度为d的一段点云作为生长起始段,由于在水平方向上轨道曲率的变化率较小,可认为在小距离范围内(例如1 m≤d≤3 m)轨道形状是近似直线。根据生长起始段重点激光点在水平面上的坐标(x,y)拟合直线方程y=kx,其中k表示斜率,y轴正方向是水平向前,x轴正方向是水平向左。
(7)根据轨道的宽度和高度设置阈值xM和zM,从步骤(3)所得的激光点集P中选出到种子点集的横向距离不大于xM且垂直距离不大于zM的点,并将这些点合并到种子点中,重新选取种子点最前端前后长度为d的点云拟合直线得到斜率,如果前后2次的斜率变化Δk在设定的范围内,则更新起始点并继续向前生长,否则生长结束。向后生长的算法与向前生长的算法类似,得到表示轨道的激光点云。在水平面和垂直平面上分别对轨道点云作曲线拟合从而得到轨道方程。
列车车头安装300线激光雷达和8 mm单目摄像机,在40~60 km/h条件下同步采集视频和激光点云数据。经过数据标注、训练和数据融合后,实际运行结果如图2、图3所示,结果表明,本算法可以识别出轨道的直道和弯道,并且在大约50 m内具有较好的识别效果,融合算法在一定程度上弥补了图像深度学习结果的边缘粗糙问题,并可以根据拟合结果获取轨道坡度信息,但是由于激光点云随着距离增大而稀疏的特性,对50 m以外的轨道识别只能根据拟合方程预测,会存在一定的误差。
图2 轨道图像推理结果
图3 轨道激光点云
图4a中红色的点表示根据融合算法识别的轨道点云,轨道边缘已经比较平滑;图4b是融合结果的侧视图,网格边长1 m,图4b中绿色表示轨道拟合曲线,从右端到左端呈缓慢上升趋势,融合算法使轨道坐标具有了三维坐标空间中垂直水平面方向上的信息。
图4 轨道识别融合结果
(1)相较于利用轨道的边缘特征和直线特征进行识别的传统图像处理算法和采用单一传感器的识别算法,基于深度学习U-Net网络模型的轨道识别算法,通过自动学习优化参数和权重,提取图片特征,对不同环境具有较强的鲁棒性,融合了基于深度学习网络模型和激光点云处理的轨道识别算法更能发挥不同传感器的优势,对不同环境具有较强灵活性和普适性。
(2)实验也表明,图片标注的精度以及传感器标定精度会影响到识别和融合的效果,因此提高训练图片的数量和质量,优化对传感器标定的方法,将是基于多传感器融合的轨道识别算法的改进方向。