基于FPGA的转辙机表示缺口检测模块设计
2023-02-24杨云国
叶 斌,杨云国
转辙机是道岔转换的驱动设备,转辙机锁闭柱落入锁闭杆后缺口的间隙(宽度)过大或者过小,都会影响转辙机的正常锁闭,从而导致道岔无法转换到位,影响运输安全。因此必须对转辙机表示缺口的变化进行全程的在线检测。
目前已经上道使用的转辙机表示缺口检测系统大多是在转辙机内安装图像传感器,将采集到的图像压缩后,通过电力载波传输至机械室内的上位机,采用智能图像处理、数据分析、多特征模板匹配等算法和技术,检测转辙机的表示缺口[1]。这种方式是将所有传感器采集到的图像都传输到机械室的监测站机进行集中统一计算,对现场通道带宽和监测站机的计算能力要求较高。由于现场通道资源紧张,在转辙机较多且转换频繁的大站,往往会发生数据丢失情况;而站机要完成全部转辙机缺口的图像识别和实时视频的存储、展示,也会造成系统的实时性降低。为此,具备分布式计算能力就成为今后缺口监测技术发展的一个重要方向。
现场可编辑逻辑门阵列(Field Programmable Gate Array,FPGA)具有block RAM,支持实现流水线运算,可以直接与图像传感器芯片连接,将图像传感器采集到的图像数据流送入内部的block RAM进行缓存。由于block RAM是完全可控的,可实现各种灵活的运算,包括对图像进行实时处理,可以一边流入数据,一边处理数据,无需送入DDR缓存处理[2],极大地压缩了从采集到处理的延迟。因此,本文给出了基于FPGA的转辙机表示缺口检测模块设计[3],采用中值滤波技术和Sobel边缘检测算子等,实现对转辙机表示缺口图像的快速采集和实时图像处理,具有速度快、精度高的特点,且支持实现分布式计算。
1 模块结构
基于FPGA的转辙机缺口检测模块由缺口采集单元、缺口图像处理单元、显示单元及通信单元等组成,结构框图见图1。缺口采集单元实时采集转辙机表示缺口的图像,先经过缺口图像处理单元对采集到的图像数据进行处理,包括图像裁剪、图像转换、图像滤波、边缘检测等,识别出锁闭柱及锁闭杆缺口边缘;再计算边缘之间像素差,即可得到缺口间隙大小;最后将处理后的表示缺口间隙值和原始图像数据经通信单元上传给上位机,同时在显示单元显示实时的缺口值。根据转辙机的型号采用不同的安装方式,可在转辙机内获得拍摄到缺口的合适位置。
图1 检测模块结构
1.1 缺口采集单元
缺口采集单元负责采集转辙机表示缺口处的图像。图像传感器选用OV5640芯片,其最大感光阵列高达2 592×1 944(约500万)像素,能实现VGA分辨率90 fps的图像采集。同时传感器集成了自动曝光控制、自动白平衡等功能,支持LED补光、MIPI接口和DVP接口方式。Artix-7系列FPGA支持OV5640芯片的驱动,根据现场需求,可支持VGA、XGA及SXGA等分辨率的配置。图像采集单元具备2颗高亮度LED,在图像拍摄时,既可对图像传感器进行补光,也可在人工巡检转辙机时提供照明。
1.2 缺口图像处理单元
缺口图像处理单元基于Artix-7系列FPGA开发,在Vivado平台上开发软件程序,通过Verilog HDL语言进行逻辑编码与算法实现,经硬件平台与软件算法的处理后,最终实现对缺口间隙的检测。作为检测模块的核心,该处理单元主要负责驱动控制图像传感器,对采集的图像/录像等数据进行存储、识别分析、数据上传、驱动显示等。具体包括驱动模块、数据处理模块、DDR3存储器及网络通信模块。
1.2.1 驱动模块
驱动模块负责驱动CMOS传感器,配置OV5640摄像头的采集图像分辨率,控制完成传感器的初始化,并对采集图像进行裁剪;将采集到的数据写入DDR3控制器,完成数据的采集与缓存。驱动模块的结构框图见图2。
为便于人工查询缺口位置,图片分辨率配置为720×576;实际需要检测的区域为锁闭柱边缘及锁闭杆缺口位置,显然拍摄的图像中包含了大量背景元素。为了快速检测缺口间隙及提高图像识别精度,将原始图像中像素点(150,50)和(400,300)范围外的部分剪除,裁剪后的图像数据仅占原始图像的1/3[4]。将裁剪后图像和原始图像一并写入缓存中,前者用于图像识别,后者提供人工查看。
1.2.2 数据处理模块
数据处理模块选用XC7A35T-2FGG484I主控芯片,其内部的逻辑单元达到33 280个,1.8 Mbit BRAM;支持从500 Mb/s到最大速率6.25 Gb/s的收发速度,同时采用流水线结构和并行计算的方法,满足快速实时处理的要求[5]。主要功能包括对采集的图像进行缺口间隙大小识别,处理上位机发送的控制命令,将识别出的缺口间隙值和采集到的图像及视频数据发送给网络通信模块等。数据处理模块处理逻辑见图3。
图3 数据处理模块处理逻辑
基于缺口图像的特征,本设计采用边缘检测算法[6]进行图像识别。图像在边界处一般有明显的灰度变化,不同的图像灰度变化不同,边缘检测即检测出图像灰度级或者结构发生突变的像素区域。为满足边缘检测的识别,需要对原始图像进行转换,主要包括以下几步。
Step 1图像格式转换。由于原始采集的图像为RGB格式,不便于对图像边缘进行提取,需将RGB的三原色色彩空间转换为YCbCr格式。YCbCr是对YUV信号的发展和校正,主要应用在数字视频中的一种编码方法[7],表示亮度与色度的色彩空间模型。其中Y表示图像的灰阶值,Cb、Cr分别为蓝色、红色色度分量,为便于识别转化后的图像数据,只保留图像的Y数据。
Step 2图像滤波。转辙机在扳动过程中,表示杆缺口内可能会沾染油污斑点,这会影响图像的识别。因此在图像格式转化后,需要对图像进行滤波处理。采用中值滤波[8]处理改善图像质量,去除图像中的高频噪音点干扰,让图像更平滑,像素值更接近真实值。中值滤波采用非线性平滑计算方式,先将每一个像素点及该像素点的邻域作为一个滤波模块,计算出模板中所有像素点灰度值的中值,再用它代替模块中心像素点的值。
Step 3边缘检测。表示缺口图像经过图像转化、滤波后,只剩下图像的灰度数据。采用Sobel算子边缘检测技术[9],通过计算图像的梯度值来检测图像的边缘。具体实现方式为:通过参数配置,设定每一台转辙机的识别阈值参数,将经过处理后的灰度图像理解为一个二维函数,图像的一阶导数可以用梯度表示,表示某一函数在某一点处的方向导数沿着该方向取得最大值。计算梯度的大小时,首先要计算梯度关于x、y方向的分量Gy和Gx,计算梯度偏导数采用Sobel算子,Sobel算子垂直方向和水平方向的模板选用最小的奇数3×3模板,见图4。像素3×3区域的第3行与第1行的差近似为x方向的偏导数,第3列与第1列的差近似为y方向的偏导数。使用Sobel算子计算梯度分量的算术表达式为
图4 Sobel算子
式中:Gx、Gy分别为经横向和纵向边缘检测的图像灰度值;G为该像表的图像灰度值。将G与参数配置中的阈值进行比较,大于阈值则表示该像表点的边缘,将计算出的所有边缘点坐标数据放入缓存。
Step 4间隙计算。对图像边缘检测处理后,从所得到的边缘点数据中提取锁闭块的下边沿和表示杆缺口边沿的像素坐标,这二者的像素坐标相减的绝对值,即为缺口间隙大小的像素值。该像素值乘以每一个像素点代表的实际尺寸,就得出表示缺口间隙的实际大小。在实际处理中,边缘的像素点可能是2个以上。经过实际测量,对于锁闭块的下边沿和表示杆缺口边沿仅取第2排的像素点作为计算的像素边缘。
1.3 显示单元
显示单元负责实时显示识别后的缺口间隙、模块配置参数及模块状态等信息,缺口间隙可显示到小数点后2位。显示单元自带选择按钮,可在显示信息、手动测量以及修改模块配置等功能间循环切换。显示单元采用4位8段数码管,基于FPGA运算速度高的特点,采用动态驱动的方式,每隔1~2 ms驱动点亮每位数码管。
1.4 通信单元
通信单元包括PLC通信模块和电源模块,负责将接收到的图像/视频等数据,以电力载波通信(PLC)方式上传至室内站机,同时将PLC通信模块接收的命令信息下发给缺口图像处理单元。电源模块为整个检测模块提供电源,负责将AC220 V转换为各单元使用的DC12 V。PLC通信模块利用2芯备用芯线作为电力线,通过载波方式实现供电和数据传输功能[10]。采用OFDM技术,可在既有信号电缆上传输信息,传输距离不大于1 km,既可解决现场备用芯线不足的情况,同时通信速率高达2 Mbit/s,完全可以满足视频/图像等数据的传输,提高了产品在现场的可用性。
2 试验验证
灰度变化明显是边缘点的特征。通过边缘点的检测,能有效检测出图像中对象的边缘,而只保留边界信息在很大程度上能减少待处理的数据量,可有效简化图像的分析。图5展示了设计的缺口检测模块安装在ZYJ7型转辙机内,对表示杆缺口进行实时采集检测的过程。图5(a)为图像采集单元采集到的原始图片,图5(b)为经图像处理单元裁剪后的缺口特征部位图片,图5(c)为将裁剪后的图片进行转换和滤波后得到的图。再通过边缘检测得到上边缘(绿线)、下边缘(蓝线);绿线和蓝线之间的像素值乘以每一个像素点代表的实际距离,即为缺口间隙的实际大小数值,即2.1 mm。
图5 图片处理结果对比
3 结论
基于FPGA的转辙机缺口检测模块已在昆明局马龙站得到了试用。全站合计安装了63台ZYJ7型转辙机表示缺口检测模块。
1)维护人员在本地的显示单元就能看到当前缺口大小,实现了根据数值调整表示杆,交互性好,大大提高了现场维护效率。
2)可根据需要只传检测结果到缺口监测站机(在通道有限、带宽受限时),降低了对现场通道带宽的要求。
3)当有多个转辙机同时转动时,每个检测模块可同步采集和处理数据,减少了对站机计算能力的依赖,实现了分布式计算,提高了全站缺口监测站机系统的可靠性和可用性。