APP下载

基于图像识别的联锁系统自动测试技术研究

2022-09-22孙志科

铁路通信信号工程技术 2022年9期
关键词:测试工具控件图像识别

孙志科

(北京全路通信信号研究设计院集团有限公司,北京 100070)

1 概述

为提高列车运行控制系统中各类安全产品仿真测试的工作效率,同时保证测试质量的稳定性及测试结果的一致性,采用自动化测试技术代替人工测试,已经成为铁路信号安全产品仿真测试技术发展的必然趋势。

2 基于通信接口的联锁软件自动测试工具软件

联锁软件是计算机联锁产品的核心,它的软件功能及配置数据的正确性直接影响车站的行车安全及运输效率。因此,在研究计算机联锁产品自动化测试技术的初期,各类测试工具软件均只将联锁软件作为被测对象,基于通信接口进行数据交互,其原理如图1所示。

图1 基于通信接口的联锁软件自动测试工具Fig.1 Automatic test tool for interlocking software based on communication interface

通过控显软件与联锁软件之间的通信接口A,测试工具软件向联锁软件输入各种操作命令,例如:办理进路、单操道岔等;通过I/O接口仿真软件与联锁软件之间的通信接口B,测试工具软件可以获得信号设备的状态信息(例如:区段状态、道岔位置等),同时获得联锁软件输出的控制命令(例如:开放或关闭信号,转换道岔位置等)。通过对比联锁软件的输出与预期结果的一致性,测试工具软件即可实现对联锁软件功能及配置数据的正确性、完整性的自动化测试。

但是,除了联锁软件以外,计算机联锁产品中还包括用于提供操作显示界面的控显软件。即使联锁软件中的功能逻辑和配置数据是正确的,如果控显软件存在缺陷,导致操作显示界面的功能或显示错误,仍然会影响车站运输作业的安全和效率。因此,对于操作显示界面的显示及操作功能,以及控显软件与联锁软件之间的通信接口,也必须进行测试,确认其正确性和完整性。

但是,脱离了联锁软件的配合,控显软件无法单独实现任何显示和操作功能。因此,要想测试操作显示界面,必须同时运行联锁、控显软件,而且其测试方法和操作步骤与测试联锁软件时有很大程度的重叠。

例如:测试联锁软件中的进路数据和相关的联锁功能时,需要执行办理、取消进路等操作,而测试控显界面的区段锁闭状态显示及信号机显示功能时,也需要执行同样的操作。

在人工测试过程中,测试工程师通过一次操作,即可同时完成对联锁软件和控显软件的测试。但是很显然,基于数据通信模式的自动化测试工具软件无法对操作显示界面进行测试,这部分测试工作仍然需要测试工程师人工完成,对联锁产品整体的测试效率提升有限。而采用基于操作显示界面的自动化测试技术,则可以通过一次测试操作同时完成对联锁软件和控显软件的测试,使整体的测试效率最大化。

3 基于操作显示界面的自动化测试关键技术

3.1 概述

实现基于操作显示界面的自动化测试需要解决以下2个方面的问题:

1)计算机界面显示的自动识别,代替测试工程师完成对操作显示界面显示结果的识别;

2)远程控制控显/模拟机,代替测试工程师完成控显和模拟界面的鼠标及键盘操作。

上述2个问题中,最关键的、难度最大的是识别操作显示界面上显示的图形元素的特征,并将识别结果与标准图形进行比对,以确认操作界面的实时显示是否与预期一致。

对操作显示界面上显示的图像进行实时识别,常用的技术方案有以下3种:

1)基于控件接口的图像识别;

2)基于实时视频捕捉及模板匹配的图像识别;

3)基于显示内存映射及模板匹配的图像识别。

3.2 基于控件接口的图像识别技术

对于基于Windows操作系统的应用程序来说,通过操作系统提供的图形控件的访问接口,应用程序可以获得控件在界面上的各类显示特征及属性信息,不需要依赖任何复杂的算法就可以实现对控件状态的获取和自动操作。

在软件实现层面,早期可以通过调用Win32 SDK提供的一系列API函数,通过获取窗口句柄和发送消息的模式实现对标准控件的状态识别及操作。随着Windows系统的升级,微软提供了MSAA、UIA等功能更加完善的接口库,可以满足更加复杂的自动化测试需求,特别是对于自定义控件的支持得到显著的加强。

采用基于控件接口的图像识别技术,有以下几个方面的优点:

1)图像识别速度快;

2)有比较丰富的商业化工具软件可用(例如:QTP、AccExplorer),可以大幅度降低面向特定需求的测试工具软件的开发难度及成本;

3)可以同时实现对图形用户界面的自动操作。

但是,采用这种技术方案也有一些明显的缺点。

1)对于非标准控件,特别是自绘制图形的识别比较困难。而控显软件界面中恰恰包含了大量的自绘制图形(信号机、轨道区段等)。为了实现自动化测试,需要在被测软件中增加接口代码,以提供各类自定义控件及自绘制图形的特征信息接口,在实际执行过程中的风险和阻力较大。

2)需要掌握Windows操作系统的很多底层开发接口,并且需要被测软件的开发人员提供大量的技术支持,测试工具的开发难度和工作量较大。

3)这种技术方案的实现依赖于被测对象图形界面的软件设计方案,一旦被测对象所使用的控件发生变化或者操作系统版本变化,则必须修改测试工具软件,软件维护成本较高。

4)测试工具软件和被测对象必须运行在同一台计算机中,如果测试工具软件的运行出现异常,可能影响被测对象的正常运行,导致测试结果的判定出现错误。

3.3 基于实时视频捕捉的图像识别技术

用高清数字摄像机实时拍摄控显机的显示界面,通过适当的算法提取画面中各个图形元素的特征值,然后与已知的各种图形元素的特征值(模板)进行比对,从而识别出当前界面中是否存在某个已知的图形元素。

这种技术方案与目前已经广泛应用的人脸识别系统的原理比较类似。

采用基于实时视频捕捉及模板匹配的图像识别技术,有以下几个方面的优点。

1)测试主机及其外围设备独立于被测系统,不需要在被测系统中安装任何用于图像识别或自动测试的软件,不会对被测系统的正常运行产生影响。

2)图像识别算法属于通用算法,经过多年的发展,大部分常用算法已经用各种常用编程语言实现,包括一些开源、免费的代码库(例如:OpenCV库),从而降低了图像识别功能的开发难度。

但是,采用这种技术方案也有一些制约因素。

1)通过数字摄像机获取的图像质量不稳定,容易受到外界环境的影响,例如:光线强度和角度的变化、外界振动、拍摄角度变化等,导致识别结果出现偏差或错误。

2)虽然很多图像识别算法已经可以获得开源、免费的源代码,但是这些算法的调用接口比较复杂,需要掌握大量的接口参数定义及配置组合规则,才能获得较好的识别正确率和识别速度,软件开发的难度和工作量较大。

3)这种方案只解决了对界面显示的自动识别需求,不能实现对被测系统的自动操作,需要集成其他的技术方案(例如:驱动机械手完成键盘或鼠标操作),开发工作量和难度较大,且整套自动测试系统的配置成本较高。

3.4 基于显示内存映射及模板匹配的图像识别技术

通过网络通信接口(例如:TCP或UDP连接)将测试主机与被测计算机连接在一起,利用通用的远程控制工具软件(例如:VNC工具)将被测计算机显示缓冲区的内存数据完整映射到测试主机内存中,然后运用各种图像识别算法对显示缓冲区某个区域的所有像素点的颜色、排列方式等特征值进行提取,并与已知的图形元素的特征值(模板)进行比对,从而识别出当前区域是否存在某个已知的图形元素。

如图2所示,事先截取进站信号机开放各种显示的图片,采用适当的算法计算出各个图片的像素点分布、颜色、尺寸等方面的特征值,保存在图片库中。在测试过程中,办理以X信号机为始端的侧向接车进路后,截取包括X信号机图形在内的一个矩形区域内所有像素点在显示内存中的数据,包括像素点的坐标、颜色等,再利用适当的算法计算出这个矩形区域中图形元素的各种特征值,与图片库中各种信号显示图片的特征值进行比对,发现与UU灯图片的特征值一致,说明X信号机开放的是UU灯。

图2 列车信号机显示识别原理示意Fig.2 Schematic diagram of display and identification principle of train signal

采用基于显示内存映射及模板匹配的图形识别技术,有以下几个方面的优点。

1)测试主机独立于被测对象,测试工具软件的运行不会对被测对象产生影响。

2)基于显示内存映射及模板匹配的图像识别算法属于通用的基础性算法,已有成熟的商业化工具软件可以利用。在此类通用工具软件的基础上进行二次开发,即可形成满足计算机联锁产品自动测试需求的专用工具软件,从而大大降低软件开发的难度和工作量。

3)远程控制工具软件在提供被测计算机的显示内存映射的同时,还可以实现测试主机对被测计算机的键盘和鼠标的远程控制,是一种更加完整、有效的解决方案。

当然,采用这种技术方案也有一些不足之处。

1)需要在被测对象的计算机中安装远程控制工具软件,有可能对被测软件的运行产生影响。但此类工具软件往往已经有长期的应用历史,属于成熟软件,其本身对计算机及网络通信的资源占用非常少,对被测软件的运行产生的影响可以忽略不计。

2)测试主机与被测对象通过网络连接,对网络通信质量要求较高。实际使用中,可以将测试主机与被测对象连接在通信质量良好的局域网中,以保证测试的连续性和实时性。

4 基于图像识别及远程控制技术的联锁产品自动化测试工具

经过综合对比可以看出,3.4节的技术方案更适合用来开发计算机联锁产品的自动化测试工具软件。

中国铁路总公司于2016年发布《车站计算机联锁操作显示技术规范》(TJ/DW 188-2016),对计算机联锁产品的操作显示界面做出了全面、详细的规定。只要基于满足这份技术规范的车站制作的标准图片库和测试工具软件,即可适用于其他符合此规范的车站,与该站控显软件的具体实现技术细节无关,使得基于此方案开发的自动测试工具软件具有更好的通用性。

图像识别及远程控制都是成熟的基础性通用技术,有成熟的商业化工具软件可以使用。经过调研和试用,笔者选择了由英国Testplant公司开发的Eggplant Functional功能自动化测试平台作为基础,进行二次开发。

Eggplant Functional平台提供了丰富的基于显示内存映射及模板匹配的图像识别功能接口,并且通过VNC工具软件实现远程控制功能。该平台功能丰富,运行稳定。实现自动化测试所需的各类常用基础功能,该平台均提供了调用接口。例如:Excel文件读写接口、文本文件读写接口、数据库读写接口、邮件服务接口等。

该平台提供了一套自定义脚本语言SenseTalk,以及配套的集成开发环境。SenseTalk语言的语法接近英语自然语法,使得用户可以比较快速的开发出符合自身产品特点和业务需求的自动测试脚本。

笔者基于Eggplant Functional平台开发了一套计算机联锁产品工程数据自动化测试工具软件CBI_AS_PDT,实现了基于Excel格式电子联锁表的进路办理和取消测试、带动道岔测试、防护道岔测试、侵限区段测试、进路正常解锁测试等多项自动化测试功能。

经过严格的测试及大量车站的试用,并且通过由独立第三方进行的T2类工具软件的安全评估后,CBI_AS_PDT已经正式应用在计算机联锁产品集成项目的工程数据测试业务中,完成了200余个车站的测试任务,在提高测试效率,保持测试质量的稳定性方面取得了显著的成效。

5 结束语

除了面向工程数据的自动化测试,图像识别技术同样可以应用在联锁系统功能的自动化测试中,以解决应用软件或系统软件升级后难以开展全面功能测试的难题。此外,其他铁路信号安全产品同样可以借助图像识别技术实现自动化、智能化测试,从而进一步提升铁路信号产品的安全性、可靠性。这方面还有很多的课题值得研究。

猜你喜欢

测试工具控件图像识别
基于.net的用户定义验证控件的应用分析
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
关于.net控件数组的探讨
基于移动平台APP测试
手车式真空断路器回路电阻测试电流线接头研究
浅谈响应时间测试分析方法
基于嵌入式MINIGUI控件子类化技术的深入研究与应用