铁路计算机联锁站场数据自动提取方法研究
2022-10-10王玥,杨扬
王 玥,杨 扬
(西南交通大学 信息科学与技术学院,成都 611756)
计算机联锁系统是保障行车安全和提高运输效率的车站信号控制系统之一[1],联锁软件作为系统核心,在投入使用前需经过严格的审核和测试。关于软件测试通常有人工测试和自动测试2 种方式。
文献[2—5]在已知站场数据的情况下,分别基于脚本驱动生成测试用例,采用形式化工具编制测试脚本,应用等价类划分与故障树分析法编写测试用例,采用I/O 接口仿真技术,从不同方面对提高计算机联锁软件测试自动化程度进行了研究。但以上方法中,站场数据依赖人工手动输入,自动化水平不高。文献[6—8]提出了基于信号平面布置图提取站场数据的方法,但应用于计算机联锁软件测试时,又需要将上位机界面转换为平面布置图,过程繁琐、耗时耗力。
为了更好地解决以上问题,本文提出了基于OpenCVSharp 对上位机界面进行识别来自动提取站场数据的方法。该方法以《车站计算机联锁操作显示技术规范》[9]为准则,以图像识别相关理论为依据,应用OpenCVSharp 图像识别技术对上位机界面进行识别处理,准确识别出信号机、道岔与轨道区段,从而自动提取相关铁路站场数据。
1 研究思路
铁路站场数据自动提取方法整体研究思路,如图1 所示。计算机联锁上位机界面将站场信息通过图形化方式显示,作为图像识别系统的输入;分析信号设备显示特征,提炼关键信息并构建站场数据模型;研究学习图像识别相关算法,对不同类型的信号设备进行识别试验;结合设备的显示特征,设计流程识别信号设备,并将提取的站场数据保存在数据模型中。
2 信号设备显示特征与数据模型
2.1 显示特征分析
铁路信号设备主要包括信号机、道岔和轨道电路,文献[9]对各信号设备在计算机联锁上位机界面中的绘制特点作了明确规定。
(1)列车信号机(包括出站兼调车)采用双灯位,即用2 个圆圈表示;调车信号机采用单灯位,即1 个圆圈表示;信号机基座采用1 段短竖线表示;高柱信号机在基座和圆圈之间增加1 段短横线来表示灯柱;信号机名称用银白色表示。
(2)道岔斜线在屏幕中的倾斜角度宜一致,应提供道岔的状态信息,如表示道岔开通位置的短线在道岔定位时显示绿色,反位时显示黄色等。
(3)轨道区段线条不能有明显锯齿,表示到发线的线条间距统一,应提供轨道区段空闲、占用等状态信息,轨道区段名称采用银白色。
文献[10]对道岔的凸包形状进行了分析:单动道岔的凸包形状为三角形和梯形,双动道岔为斜直线,交叉渡线为菱形。
根据上述内容,本文对信号设备主要类型及显示特征进行了分析总结,如表1 所示。
表1 信号设备主要显示特征
2.2 数据模型构建
站场数据主要描述铁路信号设备的属性信息,定义各类数据模型如下。
定义1:信号机数据模型Signal 由一个五元组
定义2:道岔数据模型Switch 由一个四元组
定义3:轨道区段数据模型Section 由一个六元组
在完成信号设备的识别后,设备属性信息存储在各类数据模型中,方便其他程序的调用。
3 图像识别算法与试验
C#相比于C++而言在对图形用户界面(GUI,Graphical User Interface)中的开发更具有便捷性。针对C#的计算机视觉库主要有2 种:EmguCV 和OpenCVSharp,二者都提供了计算机视觉函数接口和一系列界面控件接口,但由于EmguCV 在使用时需要将C++封装成动态链接库在C#中调用,增加了软件开发的难度,而OpenCVSharp 具有界面开发快、库文件调用方便、安装包小、商业应用友好等优点,因此本文采用OpenCVSharp 计算机视觉库将图像识别相关算法应用于联锁上位机界面,其中包括图像预处理、形态学处理、HSV(Hue,Saturation,Value)颜色分割及模板匹配。
3.1 图像预处理
为了克服界面图像中可能存在的模糊、噪声等问题,需要对界面图像进行预处理操作。联锁上位机界面图像的预处理过程包括灰度变换、二值化和图像滤波等。为了增强有关信息的可检测性,本文对上位机界面采用加权平均值法进行灰度变换,可以将图像的三通道转换为单通道,进而将像素值限定在[0,255];采用固定阈值法进行二值变换,可以直接消除不满足阈值条件的干扰信息;采用中值滤波法进行降噪处理可以消除图像中的椒盐噪声。经过预处理后的界面图像,如图2 所示。
图2 界面预处理后图像
3.2 形态学处理
形态学处理的基础是膨胀(Dilate)与腐蚀(Erode)的合理结合。其中,膨胀的作用就是在结构元素(Kernel)的约束下将与目标区域相接触的背景合并到该目标物中。而腐蚀是膨胀的对偶运算,其作用是在结构元素的约束下消除目标区域的部分边界点,使其边界向内部收缩。由于界面设计人员绘制风格的不同,可能会出现信号机圆圈之间,或圆圈与灯柱之间存在间隙的情况。而间隙的存在会影响信号机的识别效果,因此本文提出用形态学运算对信号机进行连通处理,解决间隙问题,便于信号机的识别,信号机连通效果,如图3 所示。
图3 信号机连通处理
3.3 HSV 颜色分割
HSV 颜色分割要基于HSV 色彩空间,引入HSV 空间对图像进行分析可以将亮度从色彩中分解出来,在图像增强算法中用途很广泛。在联锁上位机界面中,各信号设备的显示都是由3 种基色红(R)、绿(G)、蓝(B)相互以一定的比例复合而成,每像素颜色有256×256×256 个取值,对于颜色相近的图元来说,很难在RGB 空间中进行准确的分割。但在HSV 色彩空间中,彩色图像主要由色调(Hue)、饱和度(Saturation)和明度(Value)3 部分组成,如图4 所示。
图4 HSV 色彩空间
其中,H 值将色域范围限定在0~360°,每一种颜色均有确定的色域值,S 与V 值仅改变了颜色的饱和度与明亮度。因此本文提出用HSV 颜色分割技术来初筛颜色特征明显的信号设备。
由表1 可知,道岔和轨道区段的线条颜色均为浅蓝色,在用HSV 颜色分割技术进行提取时,可以减少界面中其余颜色相近图元的干扰。道岔和轨道区段的HSV 提取效果,如图5 所示。
图5 道岔与轨道区段HSV 提取效果
3.4 模板匹配
模板匹配算法[11]在图像处理中通常被应用于字符识别,而字符识别算法也不仅限于模板匹配,应用较为广泛的还有人工神经网络(ANN,Artificial Neural Network)与支持向量机(SVM,Support Vector Machine)算法,这2 种算法在识别率和识别时间上均优于模板匹配算法,但都需提前进行大量样本字符的训练,更适合对复杂文本进行识别。在上位机界面中,设备名称通常仅由字母和数字组成,构成简单,从软件设计成本考虑无需采用ANN 或SVM,因此本文采用模板匹配算法对信号设备名称进行识别。
3.4.1 算法原理
匹配原理示意,如图6 所示,用模板图像在输入图像中从左到右,从上到下进行遍历,并在遍历过程中实时计算匹配度,匹配度越大则模板图像与输入图像相同的可能性越大。
图6 模板匹配示意
3.4.2 归一化相关系数匹配
OpenCVSharp 中提供了cv::matchTemplate()函数来实现匹配度计算,归一化相关系数匹配法是该函数所支持的匹配方式之一,当模板图像与输入图像完全匹配时结果为1,完全负相关匹配时结果为-1,完全不匹配则结果为0。
相关系数匹配使用原图像与其均值的差、模板图像与其均值的差二者之间的相关性进行匹配,并在该基础上做了归一化处理,匹配度R(x,y)的计算,如式(1)所示。
式中:
T与I分别为模板图像与原图像的矩阵;
R(x,y)为匹配度;
(x,y)为当前遍历区域在I矩阵中左上角元素坐标;
T(x’,y’)为T矩阵中对应坐标的元素值;
I(x’,y’)为I矩阵中对应坐标的元素值;
w与h分别为模板图像的宽与高。
对于T覆盖在I上的每个位置,将产生一个匹配度R(x,y),并保存在结果矩阵R中。当I被T遍历完毕时,需要使用cv::minMaxLoc()寻找R中的最大值,该值越接近于1,匹配效果越好。应用模板匹配算法实现信号机名称识别示例,如图7 所示。
图7 信号机名称模板匹配示例
4 自动提取站场数据
4.1 流程设计
综合上述内容,现设计信号机、道岔和轨道区段的识别与数据提取流程,如图8 所示。向图像识别系统输入上位机界面图像后,通过图像预处理,对图像进行灰度变换、二值变换和中值滤波;针对不同信号设备分别进行识别处理,提取相关属性数据并进行保存。
图8 信号设备识别与数据提取流程
其中,不同的信号设备,识别算法的应用也有所不同。
(1)信号机(包含基座、灯柱、灯位)整体而言对颜色敏感度不高,且由于灯位之间的间隙问题,在对其进行识别时:①需要应用形态学处理实现连通化,随后对连通区域进行轮廓检测与面积计算,筛选出符合条件的连通域,此时由于列车信号机与调车信号机面积的差异性可确定出信号机类型属性SigType;②由于信号机基座与禁止灯光的颜色特征较为明显,可采用HSV 颜色分割技术提取基座中心与禁止灯光中心坐标,并对二者加以判断可确定出信号机朝向SigDirection 与坐标属性SigPosition,再通过轮廓检测计算连通域长度便可确定高柱、矮型属性SigTallLow;③利用模板匹配算法提取信号机名称属性SigName。
(2)道岔在界面中的颜色特征明显,对其进行识别时:①采用HSV 颜色分割技术将道岔从界面中分离出来,可减少其他图元信息的干扰;②运用形态学处理实现道岔线段的修复,再使用凸包提取与多边形拟合可确定出道岔类型SwiType、开口方向SwiDirection 与坐标属性SwiPosition;③利用模板匹配算法提取道岔名称属性SwiName。
(3)轨道区段部分处理同道岔:①采用HSV颜色分割技术将轨道区段与绝缘节从界面中分离出来,运用形态学处理将断连直线段合并为长轨条,并将绝缘节重绘至长轨条实现轨道区段的正确划分;②设计处理逻辑实现轨道区段类型SecType 与坐标属性SecPosition 的提取;③利用模板匹配算法提取轨道区段名称属性SecName。
4.2 软件实现结果与分析
根据上述站场数据自动提取方法,在Visual Studio 2017 环境下,采用C#语言开发了铁路站场数据自动提取软件。软件输入原图像,如图9 所示。信号设备识别与站场数据提取结果,如图10、图11所示。通过识别测试,获得软件识别率,如表2 所示。从识别效果来看,当设备名称与设备本体相连时,由于粘连问题,识别结果会产生较大误差。此时可考虑进一步分割图像,增加识别准确性。
表2 信号设备识别率
图9 上位机界面原图
图10 信号设备识别结果
图11 站场数据提取结果
5 结束语
本文提出了一种铁路站场数据自动提取方法,基于图像识别技术,实现了联锁上位机界面中信号机、道岔以及轨道区段的识别与属性数据提取。经实验验证,该方法可解决计算机联锁自动测试软件所需的站场数据依赖人工手动输入的问题,但当设备名称与设备本体相粘连时,软件识别结果会产生较大误差,此时还应根据实际情况做进一步调整。