基于FPGA和DSP的高速实时轨道巡检图像采集处理系统
2021-02-04杜馨瑜顾子晨李海浪
程 雨,杜馨瑜,顾子晨,戴 鹏,李海浪,王 昊
(1.中国铁道科学研究院集团有限公司 基础设施检测研究所,北京 100081;2.北京铁科英迈技术有限公司,北京 100081)
随着我国铁路高速发展,高铁总里程已跃居世界第1位,维修养护压力也日益凸显。在高速铁路的日常维护中,线路上的钢轨、扣件、应答器、轨腰塞钉等轨道设施需要大量的人工进行检测。然而,由于人工巡道作业存在检测条件差、耗时、低效、主观性强等缺点,在一些检测环境危险和短时间内需要完成大批量检测作业的情况下,人工巡检的方式已无法满足相关需求。随着机器学习技术的快速发展,基于机器视觉的巡检系统是未来的主要发展方向。
当前的巡检系统主要是基于“光学系统—工控图像采集机—处理系统”的系统结构,通过处理系统中的智能识别算法完成异常识别工作[1-3]。采集系统主要采用工控机加通用图像采集卡搭配软件开发套件(Software Development Kit,SDK),这种方式可以缩短开发采集系统周期,但无法实时灵活处理采集的数据,需将数据存储在采集机上,在检测结束后人工拷贝至地面服务器进行处理;处理系统主要采用高性能显卡所带的图形处理单元(Graphics Processing Unit,GPU),利用GPU 强大的图像处理能力完成图像分析工作。
巡检系统智能识别算法方面,早期,系统主要采用传统机器学习算法,如变尺度Retinex(VSR)算法[4],实现对轨道设施图像的增强处理;采用基于Adaboost 的算法[5]、基于线路局部二值特征Line-LBP(Local Binary Pattern,LBP)的算法[6]以及基于模板匹配的算法[7]等实现特征提取及识别;目前,系统主要采用深度学习算法[8-9]完成图像分析,相比于传统的机器学习算法,深度学习算法在扣件异常识别方面准确率更高。
现有巡检系统在铁路检测工作中发挥了重要的作用,减少了人工巡道定员数量和工作量,提升了铁路检测效率。
然而,以上所述系统也存在一些优化的空间,主要为以下几个方面。
(1)系统占据空间较大,对于一些空间约束较大的情况,加装系统不灵活。
(2)图像分析过程是离线的。这种方式会导致检测结果报告滞后,可能存在安全隐患。
(3)采集图像的清晰度较低。在选用较高清晰度的相机时,现有系统无法保证采集频率达到要求,影响检测车行驶速度,进而影响检测效率。
(4)目前搭载在专业检测车上,需要人工参与,无法满足一些人工参与度低的平台加装。
(5)系统升级困难。由于现有的采集处理机制在特定的平台下进行操作,升级系统就意味着升级软件,系统对个别动态链接库的依赖性较强,导致软件升级需要的工作量较大。
随着嵌入式技术的不断发展,基于嵌入式的图像采集处理系统将成为未来巡检系统研发的方向,基于嵌入式机制的巡检系统能够大大提升系统集成度、适合于高清高速场景下的图像采集,提升系统整体性能。
基于嵌入式的图像采集处理系统主要分为:基于ARM 方式、基于DSP方式、基于FPGA 方式以及上述方式的组合。采取ARM 和DSP 方式的优势是各接口驱动及应用比较完善且适用于网络接口的相机,但ARM 在实时处理高速数据量巨大的连续帧图像时性能并不突出,不适合单独应用;DSP虽然具备很强的计算能力,且通用接口驱动、协议完善,但是高速大数据量采集控制方面尤其是并行处理数据不是其擅长所在,一般用在数据处理端较多;FPGA的优势是擅长处理并行流水数据,其数据处理复杂性方面受到一些制约,且在开发方面难度较大,周期较长,因此适宜在采集控制方面应用。虽然目前最新的FPGA 在内部嵌入ARM 或DSP 核,但是这些芯片往往会影响芯片整体的针脚排布,占据一定的资源,增加开发难度。
本文进行基于FPGA 和DSP 的高速实时轨道巡检图像采集处理系统研究。针对系统图像采集设备的高帧率、高带宽和对图像质量清晰度要求高等特点,结合系统实际应用场景,提出并设计CMOS 线阵相机加激光光源的组合光学系统及其相应的配置方法;在巡检系统的图像采集及预处理方面,采用FPGA+DSP 的嵌入式架构,该架构在图像采集处理领域应用较多[10-11],利用DSP 快速准确的数据处理能力和FPGA 强大的可编程逻辑资源,与上位机搭配实现图像实时数据采集、逻辑控制和图像传输和图像处理功能。
1 总体方案设计
本文设计的轨道巡检图像采集处理系统从结构上主要分为成像模块、采集控制模块和图像处理模块,系统有2 个成像模块和2 个采集控制模块,每个采集控制模块控制1个成像模块。成像模块采用高清线阵相机与红外激光器的光学组合,根据实际需求设计并配置相关成像参数;采集控制模块采用FPGA+DSP 的嵌入式板卡,实现图像采集控制、预处理和压缩等功能,结构上,FPGA 板卡与DSP 板卡分离,通过高速连接器连接,FPGA 板卡主要实现图像采集控制功能,DSP 板卡主要实现数据预处理与压缩功能。图像处理模块采用带有GPU 的工控机,实现图像数据接收、存储和进一步分析。总体技术方案如图1所示。
系统工作流程为:系统经过脉冲信号触发后,成像模块进行成像,并将采集的图像数据发送至图像采集控制模块,采集控制模块利用FPGA 的可编程逻辑资源,设计相应采集机制,获取高清线阵相机的图像数据。通过图像接收单元将图像归集,并通过高速接口Serial RapidIO(SRIO)发送到DSP 板卡。DSP 板卡接收到数据后,立刻将接收到的数据分配到处理核进行处理,处理完成后将数据通过网络上传到工控机进行再次处理、存储和显示。在板卡运行过程中,高清相机可通过RS422/RS232协议与上位机进行通信参数调整,脉冲信号可通过FPGA进行信号控制。
2 关键技术
2.1 光学成像
本系统的成像要求如下:
(1)采集速度不低于160 km·h-1;
(2)横、纵向分辨率不大于1 mm·pixel-1;
(3)工作距离为750 mm;
(4)成像范围为1 650 mm;
(5)留有不少于80 mm的景深。
基于以上成像要求,进行光学器件选型,并计算相应参数,主要分为相机、镜头选型及景深等参数计算。
2.1.1 成像原理
通过大量的实验室试验和动态试验,本系统采用CMOS 线阵相机+激光光源的成像方案,成像原理如图2所示。
图1 基于FPGA和DSP的高速实时轨道巡检图像采集处理系统总体技术方案
图2 线阵相机+激光光源成像原理框图
在脉冲信号的触发作用下,相机与激光器同步工作,激光器射出波长808 nm 激光线,通过透镜将激光束散射为1条形区域,拍摄区域被照亮,同时,相机捕捉激光线照射的区域,采用滤光片获取固定波长的光线,滤除太阳光或其他波段的光干扰,拍摄图像。采用此方案获取的图像,照度均匀,抗干扰性强,图像质量高。
基于上述成像原理,设计了一体化成像组件,将线阵相机与激光光源集成在一起,内部使用电路板控制激光光源,实现高速运行状态下高清成像,一体化成像组件实物如图3所示。
图3 一体化成像组件实物图
2.1.2 相机选型
考虑到系统需动态连续扫描,图像不可重复且视场范围较大,因此选择线阵相机,相机横向像素需满足2 048 pixel(含)以上,且满足1 mm·pixel-1分辨率。从帧频,感光性和易于后期拓展的角度考虑,选用Dalsa P4 CameraLink 接口相机,传感器横向像素为4 096 pixel。该相机感光性较好,支持双线曝光,像元分辨率为10.56 µm,最高扫描频率可达到100 kHz。
2.1.3 镜头选型
镜头选型主要选镜头焦距,可按照下式计算。
式中:f为镜头焦距;D为传感器分辨率;L为工作距离;WFOV为视场范围。
按照式(1)计算系统所需焦距,线阵相机的传感器分辨率为像元分辨率与横向像素数的乘积,以上述选型相机为例,像元分辨率为10.56 µm,横向像素为4 096 pixel,工作距离为750 mm;视场范围为1 650 mm。将参数带入式(1),计算出镜头焦距约为20 mm。综合考虑,系统采用Nikon品牌AF NIKKOR 20 mm f/2.8D 型镜头,光圈范围2.8~22。
2.1.4 景深计算
根据拍摄距离、光圈值、镜头焦距、像元分辨率及相机与拍摄物体角度等参数可以计算景深极限值Δ[12],即
其中,
式中:ωcd为像元分辨率;F为光圈F 数;β为放大倍率;θ为相机与拍摄物体的夹角。
采用上述参数进行计算,ωcd为10.56 µm;F数设为5.6;f为20 mm;θ为0°。将以上参数带入式(2),计算得景深极限值约为81 mm,在工作距离的高度上下81 mm处可以清晰成像。
2.1.5 最佳焦距确定
采用一体化成像组件,可以提升系统的可靠性,但是在系统安装完成后,不便于焦距调节,同时,通过理论计算的焦距值有一定偏差,因此设计一种线阵相机对焦方法,在固定拍摄距离和光圈下,根据压缩后的图像数据量判断是否达到最佳焦距。
压缩后的图像数据量与图像的焦距、光圈及压缩质量是密切相关的,光圈值设的越小时,进光量越高,通过焦距调节,观察压缩后的数据量,选择数据量峰值点,即为最佳的焦距位置。
2.1.6 压缩Q值确定
固定成像模块参数,设置压缩Q值分别为40,50 和60 进行测定,调节焦距,采集图像,采用峰值信噪比(PSNR)进行评价[13]。表1 为不同压缩Q值与峰值信噪比对应关系。
表1 不同压缩Q值与峰值信噪比对应关系
通过缺陷识别算法测试,表明峰值信噪比在40 dB 以上智能识别效果较好,因此可将压缩Q值设置为50以上。
2.2 图像采集
本系统采用基于FPGA+DSP 的嵌入式模块实现采集控制功能,模块结构上由FPGA 板卡和DSP板卡组成。
FPGA 板卡主要实现CameraLink 接口相机图像采集、脉冲信号控制及高速数据通信等功能,如图4所示。成像模块接入FPGA 板卡,在脉冲信号的触发下,成像模块产生线数据并通过CameraLink接口发送至FPGA 板卡的传感器接入单元,接入单元累积线图像数据,待形成1帧图像后,发送至图像转换单元,将图像转为SRIO 模块传输需要的模式,并以帧为单位通过SRIO 模块将图像数据发送至DSP板卡,FPGA 板卡传输完1帧图像会产生1个中断,提醒DSP进行处理。
图4 FPGA模块
FPGA 板卡还具备消抖、分频、倍频及信号使能功能,消抖功能是避免外部信号误触发;分频和倍频功能是将外部输入脉冲信号频率改变,触发相机工作,以满足系统采集分辨率的不同需求;信号使能功能控制外部脉冲信号的通断,外部脉冲信号发生装置可通过总开关控制信号同步采集。分频、倍频以及信号使能等可通过参数选择使其生效。
DSP 板卡主要实现图像数据接收、并行处理图像、图像上传的功能,如图5所示。
图5 DSP模块
本系统根据应用需求基于TI的SYSBIOS实时系统实现,采用主核、从核并行处理模式,完成3个任务,即网络协议栈任务、图像并行处理任务和网络应用任务。其中,网络协议栈任务主要实现网络传输协议;图像并行处理任务主要是将处理执行FPGA板卡的图像转换单元的参数初始化、并行处理初始化、接收图像,并实现钢轨区域识别、扣件定位与JPEG 压缩处理;网络应用任务实现Socket管理、参数接收与响应、处理后图像上传等功能。
处理流程:FPGA 板卡发送完1 帧图像后,产生中断,DSP 板卡接收到中断后,进行响应,以核0作为主核调度,多个从核作为处理核,按顺序执行图像并行处理任务,主核通过消息通知从核进行处理,从核对图像数据进行处理,待处理完成通过消息通知主核图像处理已完成,主核接到从核已完成图像处理消息后,执行网络应用任务,将处理后的图像数据发送至上位机进行处理。DSP 板卡与上位机通过网络协议双向通信,实现DSP 板卡处理后的图像数据上传以及FPGA 和DSP 板卡参数调整功能。
2.3 钢轨区域分割
为了满足钢轨区域分割的实时性要求,必须综合考虑算法的时间和存储复杂度,以尽可能小的计算资源损耗完成轨道图像处理任务。
考虑到轨道区域内存在大面积而且连通的高亮度区域,而非钢轨区域黑白像素分布杂乱,钢轨区域和非钢轨区域的分界处存在明显的像素灰度值突变等纹理区别特征,因此,针对实际应用场景,考虑到基于DSP 的工程实际,采用图像投影积分算法快速实现钢轨区域分割。单幅图像的钢轨区域分割算法的基本步骤如下。
步骤1:运用灰度投影理论计算行投影和列投影,即
式中:G(i,j)为图像在(i,j)处的像素灰度值;W和H分别为图像宽度和高度;Gcol(j)为图像第j列的灰度值总和;Grow(i)为图像第i行的灰度值总和。
步骤2:根据式(5)计算反向灰度投影G′col(j),采用垂向差分算子处理图像计算梯度列投影,将图像的反向灰度投影和梯度投影进行加权求和,得到加权投影P(j),具体按式(6)计算。
式中:Gd(j)为图像第j列的梯度列投影;α1和α2分别为梯度投影和反向灰度投影的权值。
步骤3:为消除图像中高频噪声的干扰,通过引入窗函数遍历投影曲线获得平滑的面积积分投影。
本文采用矩形窗函数,即
式中:Wc为窗口宽度;Hc为窗口高度。
步骤4:计算加权投影的面积积分投影。
式中:C(m)为第m个矩形区域的面积积分投影;Wr为钢轨区域宽度。
用投影值除以窗口面积获得投影的归一化值,确定C(m)的最小值,即为轨道左边缘,再结合钢轨区域宽度Wr,可得到钢轨区域右边缘。采用上述方法的单幅图像钢轨区域分割结果如图6所示。
图6 钢轨区域分割结果
在上述的钢轨分割时,若考虑到钢轨在空间结构上表现为刚性延续长梁的结构特征,在通过光学系统沿钢轨线路动态扫描获取的图像序列中,钢轨区域在图像序列中的位置坐标会表现出近似一致性。这一特征为图像序列处理建立自适应的修正模型提供了先验信息。针对以上特征,基于区间置信度统计的方法,设计一种轨道区域定位的自学习统计模型。
假设采集的总图像序列为Q(I),考虑到计算的实时性,通过对Q(I)抽样获得数量为Nq的新图像序列Q(I′)。运用上述分割方法对序列Q(I′)中的所有图像进行处理,得到轨道位置记为I′(R)。统计学习模型以图像空间坐标作为特征参数,通过设定步长等分空间建立备选特征集。运用直方图统计分析方法,确定最大置信区间,从而自适应获取到图像序列中轨道位置的特征参数。
统计学习步骤如下。
步骤1:设定步长h,以h均分图像横轴Nd等份,获得对应Q(I′)的区间序列集Si,i=1,2,…,Nd。
步骤2:定义并计算区间置信值A(Si)为
其中,
步骤3:取区间置信值最大的区间序列集ST,i。
步骤4:取置信值最大的区间序列横轴位置平均值作为轨道位置的特征参数PT,i,即
运用统计学习模型可以快速获得整条轨道的位置特征参数。
在算法总体性能分析上,设定评判原则:将预报位置与真实位置的差定义为定位偏差,当定位偏差大于统计学习模型设定的步长h,确认为定位失效。
基于以上原则定义错误率E为
式中:Ne为定位失准数量;Na为全部样本数量。
2.4 扣件定位与缺陷判断
经过上述步骤,得到了序列图像中钢轨的准确位置后,根据扣件区域位置与钢轨区域位置距离固定的先验信息,在钢轨左右两侧可以得到包含有扣件位置的感兴趣区域。在该区域内,通过模板匹配的方法,利用经典的方向梯度直方图(Histogram of Oriented Gradient,HOG)特征,定位到1 个扣件。由于序列图像的相似性,在该扣件位置横向和纵向的特定距离都应该搜索到扣件,若在某一位置附近搜索不到扣件,则可以快速判断该位置扣件丢失,从而简捷有效解决了单纯用目标检测网络不易进行部分丢失目标定位的问题,扣件定位图如图7所示。
图7 扣件定位
扣件定位完成后,将数据发送至工控机进行识别。针对扣件区域图像的特点,设计了扣件异常识别算法网络。由于扣件区域图像的尺寸较小,图像内容相对单一,根据扣件区域尺寸,将网络输入尺度设为120 pixel×80 pixel。之后,以卷积(Con⁃volution), SEnet (Squeeze-and-Excitation Net⁃works)[14]和批量归一化(Batch Normalization)组成CSB 模块作为基本处理单元,进行多层网络处理。通过卷积得到多个特征图像(Feature map),采用全局平均池化操作对每层特征进行降维,然后,采用全连接网络,对降维后的输出对象做非线性变换,为每个特征通道生成权重,通过施加该权重到输入特征通道,把重要的特征增强,不重要的特征减弱,从而让提取的特征指向性更强。经过CSB 模块处理后,再通过池化层进行降维处理,最后通过全连接层输出正常及异常扣件的类别。图8 为CSB 模块图。图9 为针对扣件伤损识别设计的基于CSB模块的网络结构。
图8 CSB模块
图9 扣件伤损识别模型网络结构
训练扣件缺陷识别网络需要大量的标注数据,对综合巡检车以及钢轨探伤车实际使用时采集的图像数据进行整理及标注,将所有异常(有缺陷)扣件作为一类,每种正常类型扣件作为一类。由于无砟轨道和有砟轨道扣件存在较大的差异,需要分别进行标注,具体如下。
针对无砟轨道扣件收集了多个路局的无砟扣件数据,将无砟轨道扣件分为4个类型,分别为异常扣件(abnormal),5 型7 型W 扣件(W7_5),300型扣件(W300),以及其他扣件(others),每个类型中收集了10万张以上扣件图片,其中后3个扣件类型为正常扣件,如图10所示。
图10 无砟轨道扣件各分类标注
针对有砟轨道扣件收集了多个路局的有砟扣件数据,将有砟轨道扣件分为5个类型,分别为异常扣件(abnormal),5 型7 型W 扣件(W7_5),2 型扣件(normal2),FC 及3 型扣件(sp),以及其他扣件(others),每个类型中收集了20 万张以上扣件图片,其中后4种类型为正常扣件。如图11所示。
图11 有砟轨道扣件各分类标注
不论无砟轨道扣件还是有砟轨道扣件,异常扣件类型包含扣件丢失、扣件移位、扣件断裂以及扣件变形,如图12 所示。在标注时都归为一类,即异常类。
将图片放入不同文件夹的形式标注之后,由于扣件整体拍摄亮度较暗,不利于模型的训练以及人工确认,所以将所有的扣件图片进行1/1.6 的伽马(gamma)亮度变换,变换后的图片亮度明显提高,如图13 所示。由图13 可见:图片内容更加清晰,有利于定位和识别。
对定位到的扣件,采用图9 所示深度神经网络进行识别,可以识别出异常扣件,图14 给出了识别出的扣件异常图。
图12 扣件异常类型
图14 扣件异常
由图14可见:(a)图中钢轨左侧从上至下第3个扣件为扣件丢失异常,(b)图中钢轨左侧从上至下第1个扣件为弹条移位异常,以上异常均可被智能识别模型有效识别。
2.5 上位机软件设计
上位机软件是巡检系统的关键部分,需要完成与用户数据交互、异常数据识别与管理以及数据存储等工作。本检测系统上位机软件设计成设备层、数据层和用户层3部分,设备层主要是完成成像模块,采集处理模块的控制工作,完成图像采集控制,脉冲信号控制、图像处理和图像编码,控制成像模块图像获取,光源启停等;数据层主要是对采集处理的图像进行进一步分类,识别异常,同时分别保存源数据和异常数据。用户控制层主要完成对图像显示以及设备层、数据层的参数控制。
3 系统测试验证
3.1 试验装置
系统的采集控制部分已在检测速度160 km·h-1的综合巡检车上部署安装,采集频率不低于50 kHz。
为了验证系统总体性能,在北京环形铁道试验线,采用电动试验小车对图像采集效果、识别效果分别进行试验,最高时速20 km·h-1。
3.2 光学成像与图像采集
本文采用横向像素为4 096 pixel 的线阵一体化成像组件,使用基于FPGA 和DSP 的轨道巡检系统进行数据采集,在试验过程对相关参数进行了配置,成像模块的安装高度距轨面670 mm,曝光值为18 µs,压缩Q值为60,相机的视场约为1 670 mm。图15 为采集到的轨道图像。由图15 可见,图像清晰完整,轨道区域成像均匀,无阳光干扰,钢轨表面未出现过曝现象。改系统可为扣件异常识别提供质量较好的基础数据。
3.3 轨道区域识别试验
图15 轨道图像
检测系统通过轨道区域识别算法实现钢轨区域的识别,通过网络协议将定位结果上传至上位机端。试验以分割错误率和处理时间为指标评价识别算法的性能。统计学习模型的样本集按1 000 帧图像统计1 次,共3 次。系统对钢轨区域定位的统计分析结果见表2。
表2 轨道区域识别算法性能统计
从表2 可以看出:轨道区域识别算法单帧处理时间为16~17 ms,速度较快,可以保证系统的整体实时性;从定位错误率来看,本文算法对钢轨定位的准确率高于99.5%,出现的算法失效是由试验车在过曲线时因车身倾斜造成的钢轨位置发生偏移所致,但完全在允许的误差范围之内。
采用激光光源后,图像整体亮度分布相对统一,有效抑制了阳光干扰,同时在算法中通过统计学习后,剔除错误信息,进一步提升了钢轨区域定位准确性。
3.4 扣件定位与缺陷识别试验
在环形铁道试验线进行轨道图像扣件定位与缺陷识别试验,扣件的定位准确率与扣件缺失判断准确率为100%。每帧处理时间约为30 ms,采用多核并行处理,可以满足实时性要求。图16 为扣件定位效果图。
采用上文标注数据对扣件缺陷识别网络进行训练,对环形铁道试验线采集的图像进行跨数据集扣件缺陷识别测试,样本量为20 000 个,每帧图像处理时间约为15 ms,识别率高于80%,可有效检出异常扣件。
图16 扣件定位效果图
选取[0.2,1.0]范围内不同阈值进行测试,得到扣件缺陷识别精确率—召回率(P-R)曲线,如图17 所示。从图17 可以看出:在召回率80%的情况下,精确率可以达到约88%,算法性能较好。
图17 扣件缺陷识别精确率—召回率曲线
4 结 语
本文设计了基于FPGA 和DSP 的高速实时图像采集处理系统:基于轨道设施的成像需求,设计了光学成像系统,并在嵌入式平台下完成了高分辨率轨道图像采集;基于数字图像处理技术和机器学习算法设计了钢轨区域识别、扣件定位及缺陷识别算法,实现了对轨道区域和扣件的自动定位,通过进一步分类实现了扣件异常的识别;完成了上位机软件的设计。本文所述系统通过采用嵌入式技术,提高了图像采集速度,在图像未压缩前进行图像预处理,对扣件异常进行了识别,提高了系统的实时性,提升了检测效率。目前,该系统已在综合巡检车应用,且系统运行稳定,系统的最高检测速度可达160 km·h-1。
本文所研究的系统通过将轨道设施图像进行压缩、预处理,提高了系统的采集处理实时性,FP⁃GA+DSP 图像处理平台为实时轨道区域识别、扣件缺失定位和扣件缺陷识别提供了高效的计算资源。有效利用其多核流水线结构和大数据吞吐能力,尤其在影响算法执行效率的关键环节,尽量降低机器的执行指令周期,进一步提高算法的性能是下一步的改进目标。另外,随着AI 模块的发展,具有更高并行能力的小型化处理平台可以提供更强的计算性能,因此基于FPGA+小型化AI 模块的嵌入式实时图像采集处理平台也是一个值得探索的新方向。