Information extraction of upper computer interface of computer interlocking software based on image analysis
-
摘要: 计算机联锁自动化测试能够节省软件测试阶段的人力成本,而实现自动化测试的前提是需要提供可靠的站场信息。文章以上位机界面显示规范为主要技术文件,提出一种基于计算机视觉图像分析与文字识别技术提取计算机联锁软件上位机界面信息的方法,该方法通过挖掘可量化的信号设备和功能按钮图元特征,以及二者在界面内名称的字符特征,实现基于上位机界面截图的站场信息提取功能。以中国铁路广州局集团有限公司连江口车站计算机联锁软件为例,验证了该方法的可行性,为自动提取站场信息提供了新思路。Abstract: Computer interlocking automatic testing can save the labor cost in the phase of software testing, while providing reliable interface layout data is the premise of realizing automatic testing. According to the upper computer interface display specification, this paper proposed a method for extracting information from the upper computer interface of computer interlocking software based on computer vision image analysis and text recognition technology. This method implemented station information extraction based on upper computer interface screenshots by mining quantifiable features of signal devices and function button entities, as well as the character features of their names in the interface. Taking the computer interlocking software of Lianjiangkou Station of China Railway Guangzhou Group Co. Ltd. as an example, the feasibility of this method is verified, which provides a new idea for automatic extraction of station yard information.
-
铁路计算机联锁(CBI,Computer Based Interlocking),就是通过计算机技术实现对信号设备联锁关系的控制,具有高可靠性、高安全性的特点[1]。而计算机联锁软件的测试需要投入大量人力物力,并且测试过程不乏大量重复性操作,因此,运用自动化测试技术是软件测试的发展方向。目前,所有自动化的测试方案都需要获取准确可靠的上位机界面站场信息才能完成对软件联锁关系和功能的测试,而自动化测试平台获取的站场信息大多来自于软件底层源码[2-4],对于软件使用单位,在很难接触源码的情况下只能通过常规的人工测试方式校验软件的联锁条件和功能。
本文提出一种基于计算机视觉图像分析与文字识别技术提取计算机联锁软件上位机界面信息的方法。通过对《车站计算机联锁操作显示技术规范》的分析[5],得到信号设备和功能按钮图元特征的量化约束条件;使用基于计算机视觉库OpenCV的图像分析方法,确定在屏幕内的坐标位置;同时,根据字符由像素点集合构成的特征,使用基于密度的噪声应用空间聚类(DBSCAN,Density-Based Spatial Clustering of Applications with Noise)算法作为文字检测算法[6],再利用光学字符识别(OCR,Optical Character Recognition) 技术进行文字识别[7],确定具体名称。以中国铁路广州局集团有限公司连江口车站DS6-K5B型计算机联锁软件为例,验证了该方法的可行性。连江口车站计算机联锁软件上位机界面如图1所示,图中,分辨率为1920×1080像素。
1 信号设备信息提取
站场的信号设备主要包括轨道电路、道岔、信号机。其中,道岔和轨道电路的有效信息为其名称所在位置,信号机的有效信息为灯位的图元位置及其名称所在位置。
使用OpenCV(版本号4.4.5)对上位机界面信号设备的图元特征进行分类并提取坐标信息[8];使用光学字符库PaddleOCR(版本号2.5.0.3)对设备名称进行识别,并确定其在界面内的坐标位置;根据设备与对应名称的距离特点将其一一对应。
1.1 基于OpenCV的信号机图元信息提取
上位机界面的站场信号机分为:列车信号机(包括出站兼调车)和调车信号机。由文献[5]可知,计算机联锁软件上位机界面的信号机灯位由像素直径为14(根据站场比例调整)的圆表示,列车信号为双灯位,在默认状态下分别为红色和背景色(通常为黑色);调车信号机由单灯位的蓝色圆圈表示。根据信号机的形状和颜色特征,其图元提取流程如图2所示。
(1)图元颜色过滤。为避免其他信号设备图元颜色的干扰,先对输入的截图进行颜色过滤,只保留进/出站信号机灯位的红色(RGB值为[255,0,0])或者调车信号机灯位的亮蓝色(RGB值为[60,66,235])的图元。
(2)图元轮廓近似预处理。轮廓可以简单地认为是连续的点连在一起的曲线,对颜色过滤后的图像进行二值化处理和Canny边缘检测[9],即可提取其中图元的轮廓;轮廓由Douglas-Peuker算法实现[10],其核心功能是把一条光滑曲线折线化,故圆形图元可以近似为多边形。
(3)信号机图元特征提取。对信号机灯位的圆形图元轮廓进行多边形近似处理,结合图元的轮廓面积,筛选出图像中信号机图元。其约束条件如式(1)所示。
s.t.{L=2481π⩾ (1) 式中,L为信号机圆形图元近似的多边形边数,S为信号机圆形图元的面积范围;根据参数设定,将信号机的圆形图元近似为24边形。考虑站场比例变化,设置信号机灯位圆形图元的像素直径范围为14~18,因此,其面积范围为49π~81π。识别结果如图3、图4所示,图中,图元上方数字为该图元重心的二维坐标。
1.2 信号设备名称提取
上位机界面内的信号设备名称提取主要涉及文字的检测和识别。根据上位机界面经过图像预处理后的独有特点,文字检测采用针对像素点的DBSCAN算法实现;文字识别采用PaddleOCR实现。信号设备名称提取流程如图5所示。
(1)文字颜色过滤。根据文献[5]可知,信号机、轨道电路、列车通过按钮、调车终端按钮等的名称在上位机界面的颜色为银白色(RGB值为[192,192,192]),道岔号字符为绿色(RGB值为[0,255,0]),根据该色度进行颜色过滤,筛除掉不必要的图元,只保留文字,可提高识别率。
(2)提取文字像素坐标。颜色过滤后所达到的效果为界面只保留信号设备名称字符,且为银白色。而界面背景为黑色(RGB值为[0,0,0]),故对于每个坐标点,像素不为黑色的RGB值即为文字像素坐标,将其统计后作为聚类的输入数据。
1.2.1 基于DBSCAN的文字检测
1.2.1.1 检测框生成
上位机界面经预处理后留下的文字属于一种特殊的图片文字识别样本,即背景统一为黑色,除去黑色后,其他颜色像素都是文字的构成之一。一个文字字符实际上为一堆银白色的像素点集合,根据像素点集合所在的坐标位置,即可标记出文字的实际位置。
\left\{ {\left( {x,y} \right)\left| {\left( {x,y} \right) \in T} \right.} \right\} (2) 式(2)为一个字符的像素点坐标集合T。
找出属于集合T的坐标中横、纵坐标的最大值和最小值,组成新坐标,如式(3)所示。
\begin{aligned} &\left\{\left( {{x_{\min }},{y_{\min }}} \right),\left( {{x_{\max }},{y_{\max }}} \right)\left| {\left( {{x_{\min }},{x_{\max }}} \right) \in {T_x},}\right. \right.\\ &\left.\left( {{y_{\min }},{y_{\max }}} \right) \in {T_y} \right\} \end{aligned} (3) 通过这两个坐标即可确定出该文字的检测框所在位置。例如,对字符S做适当调整后,其检测框生成图如图6所示。
因此,只要能将上位机界面的字符所涵盖的像素坐标聚类成{T1,T2,…,Tn},就能准确地检测出文字所在位置。
1.2.1.2 DBSCAN算法
DBSCAN算法是基于数据点密度的聚类算法,其有两个关键的参数:领域半径Eps及领域内的最小对象数
MinPts。拓展到本次聚类情景下,领域半径即为设定像素点之间距离的最大值。以某个像素点为中心,距离不超过该半径的像素点的集合称为一个领域,如式(4)所示。式中, \varepsilon 表示领域半径 Eps,q 代指与像素点 p 距离≤\varepsilon 的其他像素点,{N}_{\varepsilon } 表示与像素点 p 距离≤\varepsilon 的其他像素点总和。{N_\varepsilon }\left( p \right) = \left\{ {q\left| {dis\left( {p,q} \right) \leqslant \varepsilon } \right.} \right\} (4) 若某像素点的领域内至少包含MinPts个其他像素点,则该像素点称为这个领域内的核心对象,如式(5)所示。式中,
\left|{N}_{\varepsilon }\right| 表示与像素点p距离≤\varepsilon 的其他像素点的数量,若其数量≥最小对象数 MinPts ,则表明 p 为核心对象。\left| {{N_\varepsilon }\left( p \right)} \right| \geqslant {\rm{Min}}Pts (5) 其他关键性术语在此聚类情景下定义如下。
(1)直接密度可达:像素点存在核心对象的领域内,核心对象对其领域内的其他像素点都是直接密度可达的。如式(6)所示,表示q由p直接密度可达,满足以下约束条件:像素点q属于p的q领域;p为核心对象。
s.t.\left\{ \begin{gathered} q \in {N_\varepsilon }\left( p \right) \\ \left| {{N_\varepsilon }\left( p \right)} \right| \geqslant {\rm{Min}}Pts \\ \end{gathered} \right. (6) (2)密度可达:如果存在一个像素点群p1,…, pn,且存在两个像素点p,q满足p = p1和q = pn,pi是从pi+1直接密度可达的,则p对q是密度可达的。
(3)边界点与噪声点:边界点不是核心像素点,但落在某个核心像素点的邻域内;噪声点既不是核心像素点也不是边界点。
DBSCAN算法聚类原理即是从某像素点出发,将密度可达的像素点聚为一类,不断进行区域扩张,直至所有像素点都被访问,算法流程如图7所示。
1.2.1.3 文字检测结果
由文献[5]及实际软件设计可知,上位机界面内的字符为黑体或宋体且字体大小统一。为确定最优的参数选取,对领域半径Eps和领域内的最小对象数MinPts的各自组合进行拟合计算,同时,以噪声比为评价标准,即噪声像素点数占总像素点数的比值,结果如图8所示。
图8为选取Eps范围在[5, 10]、MinPts范围在[5, 20]的总共75种参数组合下噪声比变化图,在参数组合号50(Eps≥8,MinPts≥10)以后能达到稳定噪声比为0。考虑到不同信号设备名称检测框之间的间隔,尽量减少出现一个检测框包含多个名称的情况,故选择Eps =8,MinPts=10,检测结果如图9、图10所示,图中,检测框上面数字为检测框序号。
1.2.2 基于PaddleOCR的文字识别
采用PaddleOCR,实现文字检测和文字识别。PaddleOCR是深度学习平台PaddlePaddle结合OCR技术的开源工具库[11],使用自研且实用的超轻量PP-OCR。PP-OCR是一个两阶段的OCR系统,文字检测选用DB(Differentiable Binarization)算法[12],文字识别选用CRNN(Convolutional Recurrent Neural Network)算法[13]。由于其文字检测算法对单字识别效果不理想,故只使用PaddleOCR的文字识别算法。信号设备名称通常由数字与字母的组合命名,使用PaddleOCR的通用文字识别模型中的字库能够完全覆盖上位机界面会出现的字符,故能够达到很好的识别效果。
根据DBSCAN算法得到文字检测的识别框后,按识别框进行图片分割处理,使输入PaddleOCR模型的图片切片化,一个图片切片只包含一个需要识别的信号设备名称,有助于提高识别率,如图11所示。
将图片分割传入到识别模型后的识别结果如图12、图13所示,检测框上方字符为识别出的文字。
2 功能按钮信息提取
上位机界面的功能按钮主要包括列车进路按钮、通过进路按钮、引导进路按钮和最下方的常用功能按钮等。按钮的图元特征是特定颜色的矩形,其信息提取流程同图2。
2.1 列车按钮信息提取
列车按钮和通过按钮的填充色均为暗绿色(RGB值为[0,128,0]);引导进路按钮填充色为深蓝色(RGB值为[80,80,255]);列车按钮、通过按钮、引导按钮尺寸均相同,为14 ×14 像素的矩形,故其图元过滤的约束条件如下。
s.t.\left\{\begin{array}{c}L=4\\ 21\leqslant S\leqslant 196\end{array}\right. (7) 式(7)中,L为图元近似的多边形边数,S为图元轮廓覆盖面积。识别结果如图14、图15所示,图中,图元上方数字为该图元重心的二维坐标。
2.2 常用功能按钮信息提取
上位机界面下方的常用功能按钮为浅灰色(RGB值为[239,239,239]),其尺寸为50×32像素的矩形,根据站场比例浮动,并考虑设计误差,设置以下约束条件。
s.t.\left\{\begin{array}{l}L=4\\ 1\;500\leqslant S\leqslant 1\;700\end{array}\right. (8) 识别到常用功能按钮图元位置后,可以沿用PaddleOCR识别其按钮具体名称,识别结果如图16所示。
3 图元与名称聚类
识别并提取到所需要的信号设备信息和功能按钮信息后,需要对其整合对应,而对应的“桥梁”即为坐标。分析上位机界面特点可知,信号机和按钮的名称通常在设备图元的上方或下方且坐标距离十分相近,故可通过该距离特点将上述提取到的图元信息与名称进行一一对应,其流程如图17所示。
对图17作以下说明。
(1)轨道电路和道岔的信息即为其名称和对应的坐标,不需要与图元对应;常用功能按钮的图元位置就是其名称位置,所以,图17主要针对信号机的图元和按钮图元与名称对应。
(2)根据进路类型可将按钮分为调车进路按钮、列车进路按钮、通过进路按钮和引导进路按钮。其中,排列调车进路的按钮是将提取的调车信号机的圆形图元坐标与其名称坐标按距离进行聚类;通过进路按钮在上位机界面有其对应的按钮名称;列车进路和引导进路的按钮在上位机界面内无具体名称,则需要用主体信号机的名称来进行对应。
(3)采用欧式距离计算图元与名称的距离D,如式(9)、式(10)所示。
D = \sqrt{{{{\left( {{x_1} - {x_2}} \right)}^2} + {{\left( {{y_1} - {y_2}} \right)}^2}}} (9) \left( \begin{gathered} {M_1} \\ \vdots \\ {M_m} \\ \end{gathered} \right) \times \left( {{N_1} \ldots {N_n}} \right) = \left( {\begin{array}{*{20}{c}} {{D_{11}}}& \ldots &{{D_{1n}}} \\ \vdots & \ddots & \vdots \\ {{D_{m1}}}& \cdots &{{D_{mn}}} \end{array}} \right) \to \left( \begin{gathered} {D_{1i}} \\ {D_{2j}} \\ \vdots \\ {D_{mk}} \\ \end{gathered} \right) (10) M和N分别代表图元的坐标和名称的坐标,计算每一个图元坐标与每一个名称坐标的欧式距离,可得到一个m×n的矩阵;每行最小值对应的列索引[i, j ,…, k],表示与该图元坐标最近的名称坐标的索引。
4 实验及结果展示
本文实验中,运用面向对象的程序设计思想,使用Python语言编程,其中,Python解释器的版本号为3.8;使用的开发工具为PyCharm,版本号为2020.2.3。
以连江口车站计算机联锁软件上位机界面(图1)为输入信息,分析并获取其界面内对排列进路有关的信号设备和按钮的坐标信息,最终的结果如图18、图19所示。图18的红色检测框为提取出的信号机灯位、进路按钮及功能按钮,图19的绿色字符为识别出的道岔、轨道电路及按钮名称。
从识别结果可以看出,对连江口车站的计算机联锁软件上位机界面的信息提取完整,本文方法对符合界面显示规范的上位机界面的信息提取具有较高准确率。
5 结束语
本文通过分析文献[5]中有关计算机联锁软件上位机界面的设计特点,运用OpenCV库中常用的图像处理方法对上位机界面相关图元进行分类识别;同时,根据像素点聚集构成名称字符的特点,采用DBSACN算法实现文字检测功能;运用开源库PaddleOCR对检测的文字进行识别,从而实现对上位机界面站场信息的自动提取功能,为计算机联锁软件自动化测试提供有效的站场信息。本文使用的上位机界面截图来自于实际应用中的计算机联锁软件,该站场布置较为简单,接近于标准站场,后续需要通过更多、更复杂站场的上位机界面来挖掘更多共性特征,使算法及约束条件更加完善。
-
[1] 郭 进. 铁路信号基础[M]. 2版. 北京: 中国铁道出版社, 2017. [2] 任 芳. 基于传统测试经验的计算机联锁自动测试脚本设计研究 [J]. 铁道通信信号,2022,58(4):6-10,15. [3] 朱明玲,刘锦峰,陈晓轩. 计算机联锁处理子系统的自动化测试平台及其应用 [J]. 铁道通信信号,2017,53(9):11-13. DOI: 10.13879/j.issn1000-7458.2017-09.17142 [4] 李文涛. 计算机联锁仿真试验自动执行平台研究 [J]. 铁路通信信号工程技术,2022,19(1):1-6. DOI: 10.3969/j.issn.1673-4440.2022.01.001 [5] 中国铁路总公司. 车站计算机联锁操作显示技术规范: TJ/DW-2016[S]. 北京: 中国铁路总公司, 2016. [6] Ester M, Kriegel H P, Sander J, et al. A density-based algorithm for discovering clusters in large spatial databases with noise[C]//Proceedings of the Second International Conference on Knowledge Discovery and Data Mining, 2-4 August, 1996, Portland, Oregon. Palo Alto, USA: AAAI Press, 1999: 226-231.
[7] 张婷婷,马明栋,王得玉. OCR文字识别技术的研究 [J]. 计算机技术与发展,2020,30(4):85-88. DOI: 10.3969/j.issn.1673-629X.2020.04.016 [8] 曾舒宇,杨 扬,王 玥,等. 基于OpenCV的计算机联锁自动测试系统研究 [J]. 铁路计算机应用,2022,31(6):68-73. DOI: 10.3969/j.issn.1005-8451.2022.06.13 [9] Ziou D, Tabbone S. Edge detection techniques-an overview [J]. International Journal of Pattern Recognition & Image Analysis, 1998, 8(4): 537-559.
[10] Peucker T K, Douglas D H. Detection of surface-specific points by local parallel processing of discrete terrain elevation data [J]. Computer Graphics and Image Processing, 1975, 4(4): 375-387. DOI: 10.1016/0146-664X(75)90005-2
[11] 马艳军,于佃海,吴 甜,等. 飞桨: 源于产业实践的开源深度学习平台 [J]. 数据与计算发展前沿,2019,1(1):105-115. [12] Liao M, Wan Z, Yao C, et al. Real-time scene text detection with differentiable binarization[C]//Proceedings of the AAAI Conference on Artificial Intelligence, 7-12 February, 2020, New York, NY, USA. Palo Alto, USA: AAAI Press, 2020. 11474-11481.
[13] 张 焱,郭梦琰,王 峰,等. 基于循环卷积神经网络的模块化文字识别 [J]. 智能计算机与应用,2020,10(10):37-43. DOI: 10.3969/j.issn.2095-2163.2020.10.010 -
期刊类型引用(1)
1. 石碧波. 用户需求驱动的工业软件界面设计方法与实践. 微处理机. 2024(04): 60-64 . 百度学术
其他类型引用(0)