苏 烨,李 筠,杨海马,刘 瑾,江声华
(1.上海理工大学 光电信息与计算机工程学院,上海 200093;2.上海工程技术大学 电子电气工程学院,上海201620;3.上海瑞纽机械股份有限公司,上海 201314 )
近年来,不断提升的铁路速度、货物运输的重载以及行车密度对钢轨的质量提出了更高的要求。在列车安全运行中,钢轨表面是最薄弱的环节[1]。钢轨表面缺陷主要有裂缝、疤痕、划伤、磨损等,严重时会带来列车脱轨的隐患。为此,国内外专家学者采取不同的方法来检测钢轨的表面缺陷情况。
文献[2]通过超声波的反射波波形分析判断钢轨表面缺陷所在的位置以及损耗程度,但是该方法对环境有着较高的要求,且钢轨和探头需一直保持良好接触。文献[3]借助于电涡流发出的感应电流检测钢轨表面缺陷的位置,但是自身或者周围的电磁场会造成极大的干扰,易给最终结果带来极大的误差。文献[4~5]通过机器视觉来获取钢轨表面信息,利用图像处理分析铁轨表面缺陷的特征。但是该技术在检测过程中容易受到天气恶劣和复杂环境的影响,使得整体的检测效率无法保持稳定。文献[6]提出BP神经网络分析钢轨的缺陷信号,但是用于获取缺表面陷信号的超声波对于周围环境的要求较高,因此最终检测的结果也会受到不同程度的影响。文献[7]采用了卷积神经网络(Convolutional Neural Networks, CNN)模型进行钢轨表面缺陷识别的研究,检测精度有了进一步的提高,但是整体速度较慢、耗时较长,限制了适用范围。
基于以上研究所存在的问题及实际的应用需要,本文提出了基于Faster R-CNN神经网络来识别钢轨表面缺陷的方法。
当钢轨图像进行数据传输或受到外部噪声、光线等影响时,导致图像细节部分的清晰度不高,甚至整体都较为模糊,因此图像预处理的目的是去除图像中的噪声,使细节部分更加明显。图1(a)中钢轨图像经过自适应中值滤波[8]处理后,如图1(b)所示,图中钢轨缺陷处的对比度得到了增强。
Radon变换的定义为:对于一个n维函数f(x1,x2,x3,x4,x5,…,xn)在n-1维超平面上的积分[9],因此二维函数f(x,y)的Radon变换就是计算它在某一指定方向的投影变换[10]。
由图2可知,ρ0为原点至直线的距离,θ0为直线的法线与x的夹角。故直线的方程式为
ρ0=x·cosθ0+y·sinθ0
(1)
因此二维图像f(x,y)沿直线的Radon变换式为
(2)
式中,δ为
(3)
对Rθ0(ρ0)进行关于ρ0的一维傅里叶变换
(4)
将图像f(x,y)先进行Radon变换,再进行一维的傅里叶变换,其结果等于二维傅里叶变换,称为投影定理。文中通过此方法证明了Radon变换就是对图像进行投影。根据投影曲线分析图像,Radon变换不仅可以处理傅里叶变换处理的图像,而且投影出来的曲线的物理特征更加明确,有利于后续的对比分析。
进行钢轨表面缺陷研究时,获取的钢轨表面图像经过图像预处理后,信息量仍然庞大。在利用Faster R-CNN神经网络识别缺陷时,枕木、石子裂纹皆会降低钢轨表面缺陷被识别的准确率。因此,需提取钢轨表面来减少误差。
通过大量的钢轨图像发现,因经常被列车驶过,所以钢轨表面区域相较于非钢轨表面区域而言,明亮度相对较高,且两者的明亮度相差较大。因此,需要运用Radon变换对获取的钢轨图像进行投影,完成钢轨表面的提取。该方法的基本思想是:用Radon变换对预处理后的图像进行投影积分,通过积分曲线提取钢轨表面区域。
该过程一共分为3个步骤:
步骤1生成投影曲线。滤波后的图像用Radon变换在θ0=0°处进行投影,相当于计算图像每一列的灰度值,记其和为sum(x),如图3(b)所示。sum(x)的表达式为
(5)
其中,f(x,y)表示图像f在(x,y)处的灰度值;H为图像f的高;
步骤2求取定积分运算的始末位置。将反转后的图形进行预处理,钢轨表面的灰度值明显低于非钢轨表面区域,且灰度值达到整幅图像的最低值。如图3(c)所示,需要计算投影曲线的平均值实现其定积分的始末位置。投影曲线的平均值计算式为
(6)
其中,w为图像f的宽;psum为投影曲线平均值。
步骤3提取钢轨表面区域。由步骤2所知钢轨图像预处理后的表面灰度值是整幅图像的最高值,因此反转后的钢轨区域的灰度值是图像中的最低值,且钢轨的横向宽度是固定的,设其宽度值为L。因此在投影曲线中,灰度值为最小区间且长度为L的范围即钢轨表面区域。从积分开始位置x1处开始积分,以L为积分区间进行积分,到x2位置结束,期间得到的最小定积分区间即为钢轨表面区域,如图3(d)所示。其计算式表示为
(7)
以x1位置为积分起点,x2位置结束,L为积分区间。该方法减少了积分的时间,提高了获取钢轨表面的效率,避免了外界杂质误入所导致的卷积神经网络对钢轨表面缺陷识别准确性的降低。
卷积神经网络由输入层、卷积层、次采样层、全连接层、输出层组成。基于CNN的对象检测技术从Region-CNN(R-CNN)发展到Fast R-CNN再到Faster R-CNN。虽然Region-CNN取得了不错的检测成果,但是由于候选区域的选取影响检测速度,使其速度耗时过长,限制了适用范围[11]。Fast R-CNN是先进行卷积再进行裁剪[12],这样会造成不同候选区域框重复计算重叠部分图像的卷积。而且Fast R-CNN中的候选区域是通过选择性搜索得到,其计算速度和效果很普通,不能达到实时监测的速度,故而研究人员又提出了Faster R-CNN算法。该方法使用RPN网络能够很快的生成候选区域,并且在训练中实现了区域建议网络(Region Proposal Network,RPN)和Fast R-CNN网络共享参数。在本文中,钢轨表面缺陷检测也是采用Faster R-CNN算法[13]。
Faster R-CNN是由两大模块组成,即RPN候选区域框提取模块和Fast R-CNN检测模块[14]。钢轨表面缺陷检测的算法实现步骤为:
步骤1输入的图像经过VGG16网络转换为特征图;
步骤2特征图通过RPN网络得到区域建议和区域得分;
步骤3将步骤1中的的特征图和步骤2的区域得分同时输入感兴趣区域池化层(Region of Intrest,ROI pooling)并提取对应区域建议的特征;
步骤4输出该区域的分类得分以及回归后的候选框,如图4所示。
(1)卷积层。进行卷积操作即把输入的数据放入多个滤波器,实现物体特征提取的图层称为卷积层。在VGG16网络中,有13个卷积层,卷积计算后得到13个不同的特征图。因RPN网络与Fast R-CNN网络共享卷积层,13个特征图用于候选区域的提取,Faster R-CNN整体训练的时间与精度有了进一步的提升。本文用于卷积计算的激活函数为修正线形单元(Rectified Linear Unit,ReLU)激活函数
(8)
其中,α为前一层的输出;w为连接权值;
(2)感兴趣区域池化层(ROI pooling)。用R-CNN的选择性算法从原始图中提取出可能性区域。根据映射关系转化为物体特征信息,把获取的信息进行概要统计,减少输入量的规模。其本质是利用其中的局部变量特征不变的通性进行降维操作。实现降维的方法有很多,本文采用最大池化
(9)
其中,Pmax为最大池;M为特征图;k为卷积核的数量。
(3)RPN。经过卷积层后的卷积特征图作为区域建议网络的输入,多个矩形候选区域作为输出[15]。为了获取候选区域,需进行滑窗处理,卷积特征图一共有多个窗口。每个窗口建议k个目标候选区域,窗口与目标候选区域的联系用anchor表示,每个anchor的长度和比例都不同。将每个窗口输入全连接层1,即输入256维的低维向量中。该特征向量输入全连接层2,该层一共分为两个子网络层:边框分类层(cls layer)和边框回归层(reg layer)。边框分类层用于输出每个目标候选框是否为钢轨表面缺陷的概率,每个窗口一共有2k个输出。候选框用(x,y,w,h)表示位置,坐标用(x,y)表示,(w,h)分别表示宽度和高度。边框回归层输出anchor的平移缩放的量,对于每个窗口而言,一共有4k协调输出,如图5所示。
Faster R-CNN训练需要图像的候选框信息作为监督目标窗口(Ground Truth),所以需要将所有可能的目标使用框标注,之后使用labelImg对数据集的每一张图片进行标记并生成xml文件进行保存。如图6所示。
本文以60 kg·m-1钢轨作为标准轨。将Radon变换后的图像整理分为4种类别:疤痕、裂缝、划伤和磨损。每种类别有400张图片,共计400×4=1 600张照片,其中80%作为训练集,20%作为测试集,如表1所示。
表1 Faster R-CNN表面缺陷识别Table 1. Surface defect recognition of Faster R-CNN
结合表1和图7可知,钢轨表面的各个缺陷的识别率均在90%以上。利用Radon变换获取钢轨表面特征区域,减少了非钢轨表面区域的碎石或杂物带来的误差影响,同时用卷积神经网络整体提升了钢轨表面缺陷识别的准确性。但是,上文所提4种类别缺陷的识别率无法得到进一步提高,其原因可能是当钢轨表面的缺陷不容易被察觉时,其识别效果不佳。但当缺陷比较明显时,容易识别且不易被误判。
将1 600张钢轨缺陷图像输入Fast R-CNN神经网络进行实验分析,结果如表2所示。再随机抽取800张照片作为测试对象,分别输入文献[16]中的方法和BP神经网络进行试验,结果如表3所示。
表2 Fast R-CNN表面缺陷识别Table 2. Fast R-CNN surface defect recognition
表3 不同钢轨表面缺陷算法精度统计Table 3. Accuracy statistics of different rail surface defect algorithms
结合表1~表3可以得出,Fast R-CNN模型的准确率与Faster R-CNN相差较小,但是平均检测时间相对较长。而在不考虑用时的情形下,文献[16]的方法和BP神经网络对钢轨表面4种缺陷的识别准确率与采用本文方法获得的准确率相差较大。
本文先用Radon变换得到钢轨原图像的灰度投影曲线及其投影曲线的平均值,将其反转后,钢轨表面区域的灰度值小于图像的平均值,且钢轨的宽度L为定值,因此提取投影曲线中灰度值的长度为L的最小区域完成钢轨表面的提取。使用该方法可实现对钢轨表面的快速提取。随后,运用Faster R-CNN卷积神经网络识别钢轨表面缺陷,利用80%的数据进行训练,另20%的数据作为测试集得出钢轨表面的疤痕、裂缝、划伤和磨损的识别准确率均达到90%以上。但是,该方法目前仍存在许多不足。首先,精度有待进一步提高,当缺陷不明显时,识别的效果不佳,容易被误判;其次,算法改进的同时需提升神经网络训练速度,以满足钢轨在高速检测中对实时处理的更高要求。