申瑞超,柴晓冬,李立明,钟倩文
(上海工程技术大学城市轨道交通学院,上海 201620)
铁路扣件是钢轨和轨枕的连接部件,起到固定钢轨、传导钢轨所受外力的作用[1]。铁路扣件处于失效状态可能会造成列车脱轨等重大事故[2]。因此,在铁路安全中对扣件状态的检测尤为重要。近年来图像处理技术发展迅速,使用机器视觉实现铁路扣件状态自动化检测已得到大量应用[3],如通过对现有图像特征算子的改进[4]、利用[5],或将数学原理[6-7]应用到图像领域中检测扣件。但真实场景中的扣件图像背景更为复杂多样,如图1(a)、图1(b)、图1(d)因线路施工和维护原因造成扣件图像中包含电缆、钢板和油污,铁路沿线的居民和列车乘客丢弃的垃圾可能会造成图1(c)的情况。传统方法利用扣件图像的边缘特征或梯度特征检测扣件状态,图像背景中的异物会对检测结果造成较大影响。为消除背景,Hsieh[8]等运用形态学、目标搜索方法找到合适的阈值分割扣件图像,并将分割特征运用到检测扣件状态中。这种利用传统图像分割方法去除扣件背景的方法虽然提高了扣件检测的识别率,但阈值分割的效果受环境光照影响较大,如图1真实场景中各扣件图像因天气或隧道内外光照不同等原因造成图像亮度变化较大。李永波等[9]提出一种基于机器视觉和模式识别的扣件检测方法,利用经典特征算子梯度直方特征提取感兴趣区域特征,再将特征压缩后用支持向量机分类扣件图像。特征算子的应用使得该算法在光照变化较大的情况下具有鲁棒性,但其选择固定感兴趣区域提取特征检测扣件状态的方法极易受到环境中干扰物的影响,在检测复杂环境下扣件状态时有较大偏差。
图1 复杂场景中的扣件图像
计算机硬件的发展使得对运算有较大要求的深度学习也应用到扣件状态检测中。如赵鑫欣[10]使用AlexNet实现了光照差异和油污环境下的扣件状态;林菲等[11]利用VGG网络检测扣件状态,提高了扣件检测精度。但这些均基于扣件图像的全局特征,容易受到复杂环境的影响。为去除扣件图像的复杂背景,在此基础上提高扣件检测的精度,代先星[12]使用先验知识将弹条从图像中分割出来,程思柳[13]利用超像素分割得到扣件区域。
提出一种基于前景分割的方法对扣件状态进行检测。如图2所示,为消除环境因素中背景的影响,将扣件弹条和轨道边缘部分从图像中分割出来。全卷积网络(Fully Convolutional Networks,FCN)[14]是最早应用于图像分割的深度学习网络,基于FCN改进的图像分割算法已大量应用到医学[15]、农业[16]、工业[17]等方面,金字塔场景分析网络(Pyramid Scene Parsing Network,PSPNet)[18]是其中较为优秀的图像分割网络之一,本次改进了PSPNet的特征提取层,提高了算法的运行速度和分割正确率。为消除环境因素中的光照影响,通过局部二值模式(Local Binary Pattern,LBP)[19]算法计算扣件前景图的局部纹理特征。最后,将提取的特征输入支持向量机(Support Vector Machine, SVM)分类。实验证明,使用提出的方法检测复杂场景下的铁路扣件可得到较好效果。
图2 算法流程
选取扣件前景如图3所示,扣件图像中的弹条和钢轨边沿作为前景,其余为背景。在前景中弹条是面积较大的不规则连续区域,在进行图像分割时需给图像中的每个像素指定一个类别标注。全卷积网络可以分割图像中的动态对象,实现逐像素分类,但其单一的直线型结构使得对大片连续区域的对象在语义理解上有所缺陷[20]。PSPNet 通过特征提取层和金字塔池化层信息的融合,包含了图像中的上下文信息,使其在分割较大连续不规则动态对象时更有优势。
图3 扣件前景
改进的PSPNet模型的结构如图4所示,PSPNet可分为特征提取模块、金字塔池化模块和输出模块。原始PSPNet中使用ResNet提取图像特征,ResNet可以有较大的深度,能更好的提取图像深层特征,但冗赘卷积操作使得网络计算量变大,影响算法效率。为此,采用图5中的VGG[21]作改进的PSPNet为特征提取层。其中,Conv表示卷积操作,在卷积神经网络中,通过一定大小的卷积核作用于图像的一部分区域,获取这个区域的特征信息,这是卷积神经网络最具代表的特征。卷积核以特征图的左上角为起点,以规定步长“滑动”,每次滑动都会做一次卷积操作,最终得到本层的特征图,这样会使本层卷积得到的特征图与上一层的多个特征图关联起来。每个卷积核都能提取到图像信息的一种特征,形成计算机可以识别的特征图,一个卷积层可以有多个形状相同的卷积核,这样可以提取到图像的多个特征。在进行卷积操作时,同一卷积核在输入层的同一特征图中权值相同,这种权值共享方式减少了网络中的参数,在一定程度上防止网络的过拟合,减少网络训练时间。用三维张量xl∈RHlWlDl表示网络第l层的输入,Hl、Wl、Dl分别为该张量的长度、宽度和高度,yi,j,d为该张量第i行,第j列,第d通道的元素。假设该层卷积核的数量为D个,用fl表示,H和W为卷积核大小,卷积操作的公式为
图4 改进的PSPNet模型结构
图5 改进的PSPNet特征提取层
(1)
式中,0≤il+1≤Hl, 0≤jl+1≤Wl,0≤d≤D。
ReLU为激活函数,其公式如下
rectifier(x)=max{0,x}
(2)
可知,ReLU函数在x≥0导数为1,x<0导数为0。激活函数是一种非线性映射,可以增强模型的非线性表达能力。在模型利用反馈运算更新参数时,加入激活函数可防止因参数数值过小而导致的梯度消失问题。
Max polling是池化操作,设池化核大小为H×W,池化操作公式为
0≤i≤H,0≤j≤W
(3)
最大池化操作选择池化核范围内最大值代表这个区域的特征输出,因此,池化操作无需学习参数。使用池化层时只需指定池化类型、池化操作的核大小和池化操作的步长。池化层使模型更关注特征本身而不是特征位置;池化层还能有效降低特征维度,进而减小计算量和参数;池化操作在一定程度上也可防止模型过拟合的现象出现。
(4)
改进的PSPNet使用式(4)作为损失函数。式(4)为交叉熵损失,在训练过程中通过最小化损失函数求解模型。K为像素的种类;y为标签,若该像素类别为i则yi为1,否则yi为0;pi为网络输出,代表该像素点为第i类的概率。
金字塔池化模块将不同尺寸的特征图经过金字塔池化后都会转换为相同大小。将特征图划分为n×n个区域,对每个块用平均池化。为获得不同尺寸物体的特征,选用4个等级的金字塔。为减小计算量,使用1×1的卷积核对通过金字塔池化得到的特征图进行降维,一般情况下,若有N级金字塔,则把特征图的维数降为原来的1/N。
对不同尺度的特征图通过公式(5)双线性差值(上采样或反卷积)使其具有图4(b)中特征图的大小,并把这些特征图连接在一起,这些特征融合为全局先验。
f(x,y)≈[1-x]×
(5)
式中,x和y为坐标值;f(x,y)为要求的点值,其余为已知坐标点的像素值。
按图4中改进的PSPNet提取扣件前景流程,输入铁路扣件的原始图像,经过一系列的卷积池化后提取4种尺度的金字塔特征,经过特征融合最后输出扣件的前景部分。
LBP是一种用来描述图像局部纹理特征的算子,它具有旋转不变性和灰度不变性的优点[21]。设中心坐标为(xC,yC),以中心坐标为圆心,半径为R(R>0)的区域称为中心坐标的邻域,在其圆周上均匀取Q(Q>0)个采样点, 则这个半径为R的邻域局部纹理特征可表示为
(6)
(7)
式中,tC为中心像素值,tk为第k个采样点的像素值。每个局部纹理特征M共有2Q种可能。
图6为半径为3,取12个采样点圆形邻域情况,若采用点的坐标不为整数,则用线性插值法计算该采用点的像素值;若该采样点超出图像范围,则该采样点的数值为0。图7(c)、图7(d)为LBP算法的可视化结果。LBP算法在不同亮度下对铁路扣件前景图像的特征提取具有很好的鲁棒性。
图6 Q=12,R=3的圆形邻域
图7 LBP算法对不同光照环境下扣件前景处理效果
非线性支持向量可以将训练样本的特征从原始空间映射到一个更高维的空间,使得样本在这个空间中线性可分,如果样本特征在原始空间维数是有限的,即属性是有限的,那么一定存在一个高维特征空间是样本可分。令∅(x)表示将x映射后的特征向量,WT为参数矩阵的转置,于是在特征空间中,划分超平面所对应的模型可表示为
f(x)=WT∅(x)+b
(8)
该超平面模型对应的最小化函数为
(9)
其约束条件为
yi=f(Hi)≥1 (i=1,2,…,m)
(10)
式中,Hi为正样本,共m个特征,在保证正样本分类正确的前提下使得超平面模型系数的模最小。利用拉格朗日乘子法(Lagrange Multiplier)求解其对偶问题
(11)
求解时,会计算∅(xi)T·∅(xj),这是样本映射到特征空间之后的内积,由于特征空间的维数可能很高,因此直接计算难度很大,这用到高斯核函数
(12)
将LBP算法提取到的扣件前景特征用SVM进行分类,最终实现了扣件状态的检测。
实验涉及的软硬件平台及版本信息如表1所示。
表1 实验软硬件平台及版本信息
前景分割数据集中的所用图像采集自石家庄铁路段的SFC型扣件,在前景分割阶段选用LabelMe开源图像标注工具对数据集进行标注。如图8所示,轨道边缘由矩形框出轮廓,该矩形框的4个顶点是图像上轨道区域的边缘点,用rail表示。弹条部分用密集的点勾勒出轮廓,图中每个闭合轮廓区域由平均51个点组成,用stripe表示。图像其余部分为背景。
图8 数据集样例
前景分割数据集图像大小为473pixel×473pixel,共600张,其中,训练集400张,测试集200张。
文中对扣件前景分割效果使用总体精度(Overall Accuracy,OA)、F1度量(F1-Score)和kappa系数来评估算法。这些评价指标都与混淆矩阵相关。总体精度计算公式为
(13)
式中,tp为测试数据中被正确分类的像素总数;n为测试数据像素的总数;OA为总体精度,即被正确分类的像素占总测试数据像素的比例。
F1度量的计算公式为
(14)
(15)
(16)
式中,Pi为第i类的查准率;Ri为第i类别的查全率;tpi为模型预测的第i类的真正例的像素数;Ki为模型预测的第i类真正例与假正例的和;Ci为测试数据中第i类像素的数量;Cclass为总类别。F1度量结合查准率与查全率,对算法进行整体评价。0≤F1≤1,且F1越接近1,算法效果越好。
kappa系数用来衡量预测结果与标注数据的一致性,计算公式为
(17)
(18)
式中,ni1为标注数据中第i类像素总数;ni2为模型预测的真正例像素数。标注数据和预测结果是两个评价者,其中,OA为评价者之间相对观察一致性,pe为偶然一致性的假设概率。如评分者完全一致,则kappa=1,如评分者之间除偶然之外没有达成一致,kappa=0。
通过本文方法与FCN和原生PSPNet的对比,验证了本文所用前景分割方法的优越性。其中,FCN的特征提取层为VGG16,PSPNet的特征提取层选用Resnet101,各算法的评价指标如表2所示。
表2 分割算法实验结果
从实验结果可知,在整体正确率、F1度量、kappa系数等评价指标中,改进后的PSP算法都取得了较好的效果。这是因为,扣件图像语义分类相对简单,且前景为较大连续区域,PSPNet特征提取层较多,学习到了较多噪声信息,FCN没有金字塔池化模块,不能很好地理解较大连续区域的语义信息,而本文方法的特征提取层较为适用这种情况。因为精简了特征提取层,改进方法的运行速度比原始PSPNet的运行速度有明显提升,但因本文方法增加了金字塔池化层,所用速度略慢于FCN网络。
将扣件分为正常状态和异常状态两类,如图9所示,异常状态扣件包括断裂、弹出等情况。数据集中图像共600张,其中,正常状态扣件430张,异常状态扣件170张。随机选取400张图像作为训练集,200张作为测试集。测试集中正常状态扣件142张,异常状态扣件58张。
图9 扣件状态
使用式(13)总体精度、式(19)精确率(Precision)、式(20)虚警率(False alarm,FPR)和式(21)漏警率(Missing alarm,FNR)评估扣件状态检测算法。
(19)
(20)
(21)
式中,NTP为数据集中正样本数量;NFP为负样本被检测为正样本的数量;NTN为数据集中负样本的数量;NFN为正样本被检测为负样本的数量。相同的软硬件条件和数据集下,将文献[9]和文献[11]的算法与本文方法对比。实验结果如表3所示。
表3 算法分类实验结果
由实验数据可知,传统方法识别复杂环境下扣件状态有所不足,不能保证很高的正确率;VGG神经网络相对于传统方法评价指标得到较大改善,但其基于全局特征的识别方式会受到环境因素的影响;综合各个评价指标,本文提出的扣件检测算法精度最高。
表4是对算法鲁棒性检测的可视化效果。可以看出,在环境复杂、亮度变化大的情况下,本文提出的方法仍能正确检测扣件状态,具有较强的鲁棒性。
表4 鲁棒性检验
通过改进PSPNet的特征提取层,使其在分割图像中的弹条和钢轨边缘等前景部分时性能得到提升,总体精度达97.53%,F1度量为0.973 9,kappa系数为0.967 8,分割200张扣件图像耗时14.983 5 s。使用改进的PSPNet分割扣件图像,提取扣件前景,消除了复杂背景对扣件状态检测的影响;再通过LBP算法提取前景特征,去除了光照对扣件检测的影响;最后,使用支持向量机分类,为扣件状态检测问题提供了一个新的解决思路。
实验表明,在测试集中该方法的总体精度为98.50%,精确度为98.60,FPR为3.51%,FPN为0.70%,比其他方法表现更优异;本文方法具有较好的鲁棒性,解决了复杂环境下扣件检测精度不足的问题。