钢轨探伤高速试验平台判伤算法
2022-07-11王克文
王克文
国能新朔铁路有限责任公司,内蒙古鄂尔多斯 010300
大准铁路线路状态复杂,钢轨状态差,伤损多发且伤损发展快,安全生产形势严峻。该线路钢轨探伤完全依赖人工手推探伤仪,利用列车间隔或天窗点进行作业,检测速度仅2 ~3 km/h,所需作业人员达100人以上,年成本高达2千多万元。同时,利用列车间隔作业存在较大的人身安全隐患。因此,亟待研制一种新型探伤设备代替大部分人工作业,改变人工探伤作业低效率、高成本、高风险的现状。本文依托重载铁路新型相控阵钢轨探伤车[1-2]进行自动判伤算法设计。
1 钢轨探伤系统简介
该钢轨探伤系统基于快速相控阵+常规超声布局,检测时速可达80 km。软件部分主要由三大模块组成。模块1 为钢轨超声探伤系统,超声探伤系统采用快速相控阵技术和常规超声技术相结合方式实现不同轨型超声全覆盖;模块2为自动判伤模块,利用自动判伤算法对伤损自动识别、分级报警;模块3为人机交互界面,实现系统配置、参数调整、检测结果A/B 型显示、轨面图像同步展示等。利用该系统可检测铺设43 ~75 kg/m 钢轨的线路。智能判伤算法要解决的关键问题是,探伤车性能稳定后,80 km/h条件下,探伤车检出总数不低于人工手推仪器对应缺陷检出总数的90%(轨头核伤不低于85%),漏报率不高于10%。
2 钢轨伤损分类
根据大型钢轨探伤车、手推钢轨探伤仪伤损分类,结合TB/T 1778—2010《钢轨伤损分类》中钢轨伤损分类方法及现场经验,对超声检测的钢轨缺陷进行整理,见表1。这些伤损类别涵盖现有状态下我国钢轨所有常见伤损类型,分为轨头、轨腰和轨底区域,其中轨头区域核伤主要有PA70°+UT70°通道检测,轨腰和轨底区域裂纹主要有37°通道检测,而轨头、轨腰等区域水平裂纹主要有0°通道检测,同时0°通道还负责底波失波监控[3]。
表1 钢轨伤损分类及监控通道
3 智能判伤算法设计
智能判伤设计方案见图1。钢轨探伤实时数据经过自适应的加框算法模块被分割为一系列的数据框,再进入智能判伤模块中进行判伤,计算出缺陷的位置、类型、长度等特征,实时显示在上位机软件中。
图1 智能判伤设计
3.1 自适应的加框算法
3.1.1 单通道数据分割/组合通道数据合并
单通道数据分割流程见图2。数据点之间按横向间距及纵向间距进行聚合,数据点与已聚合的数据群中最近的三个点之间的水平距离少于w(常数)且深度差距小于h(常数)则聚合为同一数据群。按该准则对单通道缺陷数据进行分割,分割结果记录为通道ID与初步分割框[4]。
图2 单通道数据分割流程
单通道数据分割效果见图3。红色代表未处理数据群,黑色代表已聚合数据群,黑色点中最后三个点形成的矩形框向上下扩展h、向左右扩展w后包含了下一个红点,因此将红点与前面的黑点再聚合为同一数据群。其中w=40,h=15。
图3 单通道数据分割
组合通道数据合并流程见图4,效果如图5 所示。将初步分割框按框的水平位置顺序排列,分割框的长度、宽度分别向延伸方向增加w、h,计算每个分割框与其相邻的分割框之间的重叠部分面积(图5 中黑色部分)分别占两个分割框的面积的多少,若超过5%则把两个分割框合并为一个。
图4 组合通道数据框合并流程
图5 组合通道数据框合并
3.1.2 多通道数据融合
数据分割算法总会把两个接近的缺陷合并成一个,或把同一个分隔得比较开的缺陷分割成两个,因此提出自适应策略:设置多种分割尺度操作,仍采用原来的方法,但扩展参数不同。策略A:w= 10,h=50;策略B:w=50,h=50;策略C:w=300,h=50。分别设置三种数据融合尺度,以螺孔和线孔组合识别为例,识别效果如图6所示。可以看出,策略A 是最分散的数据融合策略,策略C 完整地把螺孔和线孔标示出来,策略B介于二者之间。三种策略的参数各异,包含多种尺度范围,联合使用可提高算法的灵活度。
图6 螺孔+线孔图谱三种数据分割策略识别效果
超声人员分析数据时,只需对包含6 个连续出现螺孔和各个线孔的大框进行标记。采用这种方式,使疑似缺陷信号与其附近出现的疑似缺陷信号联系在一起形成特征,模拟了人的局部和全局的观察推理方式,更符合人的判断方式。
3.1.3 底波数据分割
由于底波数据量大,且底波检测通道数据的特征比较明显,特征为有或无。因此,对底波数据进行分割处理:底波通道按缺失的长度超过m(常数)来分割,底波缺失小于m个位置的不看做底波消失。
3.2 智能判伤算法
智能判伤算法模块的输入为上一步产生的缺陷分割框及每个框中的原始信号数据,输出为缺陷框下缺陷的类型。
3.2.1 传统判伤算法
在使用传统机器学习算法时,必须首先将数据的特征量提取出来作为算法的输入。这里数据特征的设计是一个建模的过程,特征设计的好坏将极大程度地影响算法的能力。因此自动判伤的特征设计基本上基于NDT(Non-Destructive Testing)人员的主观经验。特征量主要包括各通道数据的点数、除底波通道外所有数据的点数之和、数据框的长度、某些特定通道数据的斜率、数据框的宽度(即深度范围)、数据框的中心深度。
通过钢轨探伤平台采集测试轨数据进行验证。测试轨包含轨头核伤12 个、轨腰裂纹11 个、轨底裂纹2个,总计采集数据100次。对这些样本采用传统判伤算法进行识别率统计,结果见表2。可知,传统判伤算法能正确识别样板轨上的轨头核伤、轨腰螺孔裂纹及轨底裂纹,测试结果可实现低于10%的误报率和低于5%的漏报率。因此,传统判伤算法具有很强的适应能力,可以为算法初期的效果提供下限。
表2 传统判伤算法测试统计
3.2.2 基于卷积神经网络分类算法
卷积神经网络善于提取图像中平移不变的细节特征,适用于钢轨探伤中的缺陷细节特征提取,但将网络训练达到要求需要大量数据。卷积神经网络是一个黑箱模型,根据数据特征设计相应的网络后,需要将标记过的样本数据输入网络中进行训练,让网络自动学会提取数据中有用的特征并输出合适的结果。
在进行神经网络训练前,将数据群划分为轨头区域数据群、轨腰区域数据群、轨底区域数据群、跨区域数据群、单通道数据群、多通道数据群(图7)。针对图中每子节点训练一个卷积神经网络,判伤时根据不同的条件调取卷积网络进行预测。考虑到钢轨项目的数据与常规图像数据不同,在使用卷积网络时应充分考虑钢轨超声扫查数据的特点,采用类似一维卷积网络的方式来设计网络[5]。如表3 所示,神经网络的输入为B 扫数据群转化为250(长度)× 8(通道数)的数组,数组的值代表当前位置/通道所含数据的深度,若无数据则深度为0。数据经过第一层(Conv1)时,8 个通道的250 长度的数据按长度方向2 进行卷积组合,在组合中所有的通道融合在一起,进入下层,后面的数据层与常规一维卷积网络的组合方式相同[6]。
图7 数据群划分
表3 神经网络架构
由于试验平台产生的真实缺陷数据较少,数据种类单一,不适于直接进行深度学习的训练和判伤。为此,专门设计模拟钢轨探伤数据软件[7],采用对标准样本做随机变形的方式生成了大量的样本数据集。数据集包括轨头核伤、螺孔裂纹、轨底裂纹、鱼鳞纹及随机噪声。模拟钢轨探伤数据软件功能包括:①模拟数据生产、模拟实时检测;②内置算法可对实时对多通道回波数据群进行分割;③待分类数据以Protobuf 协议压缩,通过网络TCP 传出;④分割数据通过网络接口传送至服务程序进行缺陷识别及分类。
模拟软件共生成轨头核伤24 000 例、螺孔8 000例、螺孔裂纹 6 000 例、裂纹 10 000 例、噪声 4 000 例,并增加了4 000 例鱼鳞纹缺陷。在该数据集合上的测试结果见表4。可知:各类缺陷的准确率均达到98%以上、漏报率低于2%,这充分说明了深度学习算法对具有大量数据样本支持的样例具有很高的准确率。
表4 基于卷积神经网络理论验证 %
3.2.3 算法架构
条件判伤算法需要根据设计者对缺陷的特征进行精准定制。传统的算法架构往往采用一次定制方案,即在开发算法期间将所有判伤条件设计完毕,且无法改动或只能进行较小改动。应用期间会出现一些在算法设计阶段未考虑过的特殊缺陷形态,传统算法架构无法应对这些情况。因此,采用工厂模式设计,通过静态反射原理实现以脚本的方式灵活配置算法。算法代码一次完成,后续更改可由调试或维护人员根据新型缺陷的特征以文本形式修改输入算法的脚本,对判伤的方式、条件进行设计。另外,设计了循环可变长动态缓存的数据结构来存储数据,采用该数据结构可大幅提高内存利用率。
4 智能判伤算法应用
如图8 所示,软件界面上所有螺孔裂纹均被正确打框,且缺陷类型被正确识别并以图标的形式显示在缺陷的正下方。其中图8(a)从左到右依次为:外、中、内、内中外、内中、外中核伤;图8(b)从左到右依次为:左下、右下、左上、右上螺孔裂纹;图8(c)从左到右依次为:轨腰斜裂纹、轨底斜裂纹、轨头水平裂纹、轨腰水平裂纹。
图8 各类缺陷识别结果
该算法已应用于重载铁路新型相控阵钢轨探伤车,能正确识别钢轨对比试块上的轨头核伤、轨腰螺孔裂纹及轨底裂纹,测试结果达到了90%以上的检出率和低于10%的漏报率。
5 结语
钢轨探伤车试运行时用条件判伤算法把现场探伤经验用编程实现自动判伤,通过调整条件判伤的特征量,基本可以识别所有钢轨伤损类型,但对实际线路伤损缺乏适应性。在探伤车积累大量伤损数据后,可利用卷积神经网络对伤损数据进行训练,提取出对伤损分类有用的细节特征。鉴于算法的准确性与大量的缺陷数据训练密切相关,目前新算法的现场实际应用及数据采集仍存不足,建议在现场大量采集伤损数据,进一步加强自动识别训练和算法改进,不断提升自动识别能力。
目前该设计已应用于重载铁路新型相控阵钢轨探伤车,80 km/h 的检测速度下,算法能正确识别样板轨上的轨头核伤、轨腰螺孔裂纹及轨底裂纹,测试结果达到了90%以上的检测率和低于10%的漏报率,初步验证了该智能判伤算法的有效性。