赵 龙 王国祥 刘 畅 陈海军 郑子天
(1.中铁二院工程集团有限责任公司,成都 610031; 2.四川拓绘科技有限公司,成都 610031)
轨道的平顺性检测是高速铁路轨道精调的关键环节之一,而铁路轨道检查仪(以下简称轨检仪)是检查铁路平顺性的重要设备[1]。随着技术的发展和新设备的应用,轨检仪已经从静态测量转化为动态测量,并初步实现从理论研究到产品的转换。目前比较成熟的产品有SGJ-T型惯导轨检仪和基于惯导定位和多种传感器组合的轨道检测仪,这些惯导轨检仪的应用,大大提高了轨道测量的效率和精度。轨枕识别器是轨检仪的重要部分,可实现对病害轨道的快速查找和定位,并指导高速铁路无砟轨道的精调[2]。
轨枕识别研究方法主要分为2类:①基于图像处理和模式识别的方法;②基于轨枕或扣件本身的物理特征的方法。其中,基于图像识别的方法是根据轨枕图像的特征(如图像的灰度、直方图或边缘特征),通过模式识别或人工判读的方法对采集图像进行分析,归纳和聚类,最后将图像和里程进行关联,以实现轨枕的识别和定位[3-9];基于轨枕本身物理特性的识别方法主要利用轨枕物理特性,如利用道钉,扣件等金属的电磁特性或者轨枕的光谱特性等[10-14]。这两类方法都有其固有缺陷,其中,基于图像处理的方法对光线要求比较苛刻,在夜晚或光线比较暗的隧道无法获取清晰的轨道图片,并且图像处理速度慢,无法满足实时识别的要求;而基于物理特性的轨枕识别方法对传感器的安装位置和轨道的状态有严格要求,且电磁干扰对识别结果影响较大[15]。
由此提出一种基于激光传感器线型扫描的轨枕识别方法,利用BP神经网络对扫描数据进行处理,并利用多个样本数据对BP神经网络进行训练,提取并定位轨枕数据,该方法可大幅提高轨枕识别的效率和准确度,该方法具有不受光线影响,处理速度快等特点,并且激光不受轨枕物理特性的限制,感应距离长,不易出现因为超出感应距离而漏检的情况。
轨枕识别器的硬件包括数据采集传感器、里程编码器和数据采集板3个部分,数据采集传感器负责轨枕数据的采集,里程编码器记录当前轨检仪推行的里程,数据采集板将轨枕数据和里程数据进行汇总,并通过一定频率发送到电脑端。
传统的轨枕识别设备分为接触式和非接触式,接触式采集是指轨枕识别器通过与轨枕接触采集数据,这种设备因检测精度不稳且使用寿命低而被淘汰。非接触式测量通过激光、电磁场、声波或可见光等媒介对轨枕数据进行采集。在轨枕识别器中,常用的传感器包括激光传感器、电涡流传感器,接近开关、超声波传感器和高速摄像机。
在筛选传感器的过程中,应考虑传感器的感应距离、测量精度、输出频率和输出类型等指标。感应距离是传感器的测量范围,测量分辨率是指在测量过程中能分辨的最小距离,输出频率是指每秒传感器测量的次数。一般情况下,测量距离越小,频率越高,在距离相同的情况下,声波传输的速度要比光速和电磁波慢,所以超声波传感器的测量频率低,输出类型包括模拟量、数字量、开关量和图片,传感器指标对比见表1。
表1 各类传感器指标对比
由于激光传感器具有感应距离长,测量分辨率和输出分辨率高,且不受光源的强弱影响等优点,故选择激光传感器作为数据采集器。
里程编码器一般用于计算里程,其主轴通常和行走轮的圆心固定,或通过铰链与行走轮相连,利用行走轮带动里程编码器转动,进而记录行走轮转动的圈数。
里程编码器的输出分为A、B、Z三相脉冲,其中Z相脉冲记录编码器旋转的圈数。A,B相脉冲与编码器的分辨率相关,如果编码器的分辨率为μ,则1个A或B脉冲代表编码器旋转了μ/360°,A相和B相差90°,A相在前表示编码器正向旋转,B相在前表示编码器反向旋转。
假设A相脉冲计数为ε,Z相脉冲计数为τ,行走轮直径为φ,则当前相对里程为
其中,L0为初始里程,式(1)和式(2)为考虑因坡度变化而引起的里程异常。
数据采集板收集传感器和里程计的数据,并通过发包的形式将数据传输到电脑,数据采集板由微控制单元(MCU)、电源模块、时钟系统、串口模块基准电压和外设数据线组成,见图1。
图1 数据采集板组成结构
其中,MCU负责收集数据、处理数据和转换数据,并且将处理后的数据发送到电脑端;电源模块则负责MCU、传感器和编码器的供电,通常情况下,MCU、传感器和编码器的工作电压不一致,需要通过电源模块进行设定,基准电压则为MCU内部数模转换器提供电压基准;激光传感器模拟电压可通过该电压转换为数字信号;时钟系统用于激光传感器数据和里程编码器的同步;串口模块负责于外部电脑通讯。
硬件同步通过数据采集板的时钟系统实现,通常情况下,数据采集板收集的数据与采集传感器和里程编码器数据不一致,为了使两者对应起来,在数据采集板内部集成精密的时钟系统,并将传感器和里程计的数据统一到同一个时间坐标系统下,见图2。
图2中,假设时钟频率为H,里程编码器的数据获取时间为tn,数据采集传感器的数据获取时间为tk,通常情况下tn≠tk。假设在tn时刻得到的里程计的里程值为ln,ln的值可根据式(2)计算,tk时刻得到的数据采集传感器的值为ρk,则将<τn,tn,ln>和<τk,tk,lk>存放到时间表L中,L中的数据按时间顺序排列,τ表示传感器的类型,可取数据为0或1,0表示里程计,1表示数据采集传感器,此时,τn=0,τk=1。
图2 数据采集传感器和里程编码器数据获取时序
输出过程中,输出的频率h远小于时钟的频率H,故需要对表L中的数据重新采样,并将里程计编码器数据和数据采集传感器数据进行同步。假设在时间tk处有采样点,且距tk最近的里程编码器的数据记录时间为tn和tm,tn和tm位于tk两侧,且tm>tn,距tk最近的数据采集传感器的数据记录时间为tp和tq,tp和tq位于tk两侧,且tq>tp,见图3。
图3 数据重采样和数据同步
tk时刻里程的数据lk可通过式(3)计算,tk时刻轨枕扫描数据ρk可通过式(4)计算。
式(3)和式(4)中,可将里程和激光传感器扫描的数据归化到同一坐标轴上,见图4。
由图4可知,数据并不是均匀地呈现方波状,而是会出现很多奇点,这些奇点会严重影响轨枕识别的正确性和可靠性,而神经网络可将这些基点滤掉,实现轨枕的正确识别。
图4 里程和轨枕扫描数据
BP神经网络是人工智能中应用最广泛的神经网络,它是一种按照误差逆向传播算法训练的多层前馈
神经网络。其计算过程分为正向计算和反向计算,在正向计算中,数据从输入层录入,经过层层计算,从输出层输出,用于智能识别。反向计算用于对神经网络的训练过程中,当实际输出与期望输出不一致时,通过误差反转将误差分配给各个神经元。
BP神经网络在理论和性能上都比较成熟,具有很强的非线性映射能力和柔性的网络结构。对于轨枕识别来讲,这些优点表现如下。
(1)算法稳定可靠
轨枕识别需要稳定可靠的算法,要求识别正确率高,识别速度快,一般情况下,在轨检仪推行过程中就能实时识别和定位轨枕。
(2)具有较强的容错和纠错能力
通常情况下,轨道状态复杂,一般的算法极易漏识轨枕,BP神经网络具有学习的功能,把识别错误的数据纠正后作为新的训练样本重新训练BP神经网络,使得BP神经网络具有更强的容错能力。
一般情况下,BP神经网络分为输入层、隐藏层和输出层(见图5)。其中,输入层用于数据的输入;隐藏层可以有1层或多层,且每个隐藏层节点都有1个激励函数f(x)和1个修正值θ;输出层与隐藏层相似,唯一不同的是它没有后续节点。
图5 BP神经网络结构
针对轨枕识别规律,算法采用4层网络结构:分别为1个输入层、2个隐藏层和1个输出层。神经网络的输入层为(x,y),其中,x为里程,y是该里程下激光传感器测得的数值,但在实际情况下,x值比较大,且不具有唯一性,因此需对x值进行处理,有
式(5)中,x为当前里程;x0为与x最近且小于x的数据下降沿或上升沿起点,见图6。
图6中,由于激光传感器安装在轨检仪的底部,而轨枕一般突出在轨道面上,故激光传感器在轨枕上测出的数据比较小,当测得的数据呈“U”形时,可以初步判断该区域为轨枕。
对于一个理想数据(无奇点),激光传感器得到数据可以分为下降沿、平缓区和上升沿,而下降沿、平缓区和上升沿组成的“U”形就是要识别的轨枕(见图6)。因此,在轨枕识别的时候,只需要将这3个区域识别出来即可(见图7)。
图6 里程值的修正
图7 BP神经网络识别过程
当BP神经网络构建后,应对BP神经网络进行训练,使其在不受奇点影响的情况下仍能正确识别轨枕,设定训练误差目标为0.001,训练迭代次数不超过300,学习速率为0.05。
在选择训练样本中,应针对不同的铁路选择不同的训练样本,如无砟轨道CRTSⅢ型板的轨枕间距和承轨槽宽度与有砟轨道的轨枕间距和轨枕宽度不同,因此,针对无砟轨道CRTSⅢ型板样本训练出的网络无法应用于其他板型。
在训练过程中,为了使得训练快速达到预期目标,并将自然语言转换为计算机能识别的数字语言。算法对目标函数进行二值化处理,见图8。
图8 原始数据和二值化处理后结果函数
在图8中,将原始数据(即神经网络输入数据)和经过判读后的二值化数据(即神经网络输出数据)输入神经网络,并对神经网络训练,训练后的神经网络即可用于轨枕识别和定位。
将训练后的神经网络用于轨枕识别,将得到包含0和1的二值化数据,要定位轨枕还需要从这些数据中提取里程。不难看出,这些二值化数据的x轴正包含了扫描点里程信息,而由“下降沿”,“平缓区”和“上升沿”组成的“U”形就是要定位的轨枕。假定“U”形的“下降沿”起点和终点里程分别为d0和d1,“上升沿”的起点和终点里程分别为u0和u1,则轨枕的里程l为
其中,d和u分别表示下降沿和上升沿的里程。
轨枕误识率η(简称误识率)表示轨枕识别的错误率,其公式为
其中,e为待识别轨枕错误的数量;a为待识别轨枕的总数量;误识率是判断轨枕识别算法的重要指标,一般情况下,误识率高说明算法识别错误率高,算法性能差,误识率低说明算法识别错误率低,算法性能好,在理想状态下,误识率应为0。
为了验证该算法的正确性和实用性,该算法先后在西南某铁路进行测试,测试段详细信息见表2。
表2 实验工程段信息
由表2可知,测试1是在无砟轨道上进行的,该测试轨枕排列均匀,轨枕与轨枕间距相对固定,中间无异物,测试条件良好;测试2是在有砟轨道上进行的,该轨道轨枕间距不固定,轨枕与轨枕间有石块或杂草,对测试干扰大,测试环境复杂,且部分地段存在缺失轨枕的情况。
(1)如何保证算法收敛
保证算法收敛的关键在于使用正确的训练样本和使用较大的误差目标。如果训练样本中含有错误项,会使误识率提高或者算法不收敛;小的误差目标说明算法期望值大,这样会使程序将正确的训练样本误认为是错误的,从而造成算法难以收敛。
(2)如何提高算法效率
误差目标的选取要趋于平衡,过大会造成误识率提高,过小会造成算法效率低或算法不收敛。如在测试2中,误差目标不宜过小,因为测试2的测试环境较复杂,算法期望值小反而有利于识别轨枕。
(3)如何有效防止轨枕漏检
在测试1中,轨枕漏检的几率小,采集的数据图形呈规则的方波状,数据漏检主要是因为传感器被遮挡或主控单元电压低;而测试2轨枕漏检的几率大,主要是因为轨枕之间的异物对测试的干扰大,且轨枕的间距不均匀,容易将异物当做轨枕。
通过对实验数据进行分析,得到如下结论。
(1)误差目标与误识率成正比
误差目标越小,误识率越少,轨枕定位精度越高,在神经网络训练过程中,误差目标是轨枕识别精度的体现,一般来讲,误差目标越小,表示轨枕识别的期望值越高,轨枕识别精度越高,如图9。
由图9可知,误差目标越小,误识率就越小,当误差目标小于0.001时,误识率趋近于0,即BP神经网络识别正确率趋近100%;当误差目标逐步变大的时候,误识率的趋势也随之变大,但在某些区域由于样本的差异会出现局部最小值。
图9 误识率(百分比)和误差目标的关系
(2)误差目标越小,算法收敛越难
迭代次数是神经网络学习速度的直接体现,一般情况下,误差目标越小,迭代次数越小或者函数无法迭代,见图10,当误差目标等于0.001,可保证函数收敛,且迭代次数为28~40次。
图10 迭代次数和误差目标的关系
(3)加入轨枕缺失学习样本可以有效防止轨枕漏检
一般情况下,激光传感器以40Hz的频率采样,可以保证轨枕识别正确,但在激光传感器遮挡或主控单元低电压工作的时候,会导致激光传感器的采样频率下降,从而使得某些轨枕漏检。另外,在测试2的条件下,由于测试条件复杂也极易造成漏检,为了防止这种情况的发生,可以通过添加轨枕缺失的学习样本, BP神经网络可根据轨枕缺失学习样本重新调整网络权重,进而将缺失轨枕补齐。
阐述在运动状态下自动识别和定位轨枕的原理和基本方法,以及轨枕识别的实现方法,包括传感器选型和多传感器同步,再次构建用于轨枕识别的BP神经网络,通过训练后的神经网络识别定位轨枕,最后通过实验分析和对比得出如下结论。
(1)BP神经网络可以有效识别轨枕,降低轨枕的误识率。
(2)BP神经网络具有自我纠错的特性,当遇到识别错误的时候,可以将错误的数据当做样本重新训练网络,训练后的网络将不会出现类似识别错误。
(3)相较于传统算法,BP神经网络具有灵活性好、可自我修正等优点,能有效降低轨枕的误识率。