Unit testing technology for railway signal safety software based on EFSM model
-
摘要: 铁路信号安全软件内部逻辑复杂,通过充分的单元测试能够更好地发现和排除软件内部的缺陷。文章分析单元测试常用方法,并结合铁路信号安全软件单元测试技术要求,提出一种基于扩展有限状态机(EFSM, Enhanced Finite State Machine)模型的黑白盒融合单元测试方法。使用自动化测试工具Cantata,以无线超时降级场景为实例,验证该方法是否可以满足测试场景的完备性,并且关注软件结构是否被完全覆盖。根据覆盖结果,对未覆盖原因进行分析,判断是否存在异常场景,并针对未覆盖分支补充测试场景,丰富了测试案例,从而保障了铁路信号系统的可靠性。Abstract: The internal logic of railway signal safety software is complex, and through sufficient unit testing, defects within the software can be better discovered and eliminated. This paper analyzed common methods of unit testing and proposed a black and white box fusion unit testing method based on the Extended Finite State Machine (EFSM) model, combined with the technical requirements of railway signal safety software unit testing. The paper used the automated testing tool Cantata as an example to verify whether the method can meet the completeness of the testing scenario and paied attention to whether the software structure was fully covered, analyzed the reasons for the lack of coverage based on the coverage results to determine whether there were abnormal scenarios, provided supplementary testing scenarios for the uncovered branches, which enriched the testing cases and ensured the reliability of the railway signal system.
-
铁路作为国家经济的动脉,承载着推动社会进步与服务经济建设的关键使命。保障铁路安全,是铁路运营的首要职责。依据《铁路安全管理条例》[1],铁路线路两侧必须设立安全保护区,确保铁路安全运营和维护。对于保护区内已存在的威胁铁路运输安全的隐患,必须采取有效防护措施或依法予以清除,以确保铁路运行安全。
彩钢瓦隐患作为铁路周边的主要隐患之一,不容忽视。鉴于我国铁路沿线环境错综复杂,铁路管理部门遵循预防为主的方针,采取定期巡检的举措,旨在及时发现并消除彩钢瓦等安全隐患。当前,铁路周边环境的巡检工作仍主要依赖人力。人工巡检不仅消耗大量的人力资源,且效率低下、周期冗长,无法实现对彩钢瓦隐患的即时发现与迅速应对。
计算机视觉技术的快速发展,使学者们找到了解决上述问题的方向,诞生了大量针对各类隐患的识别模型。黄一昕等人[2]改进了Mask R-CNN实例分割模型,用于提取铁路遥感影像中的房屋,并采用边缘提取算法自动对遥感影像进行矢量化提取,有效生成铁路周边的房屋矢量化影像;吴云鹏等人[3]采用图像增强和缺陷分割技术,通过无人机拍摄轨道图像,提出可突出和均匀化钢轨表面缺陷的图像增强技术,有效检测铁路轨道表面缺陷。
借鉴上述研究成果,本文基于改进YOLO(You Only Look Once)v8模型,结合高分辨率遥感图像技术,设计了铁路沿线彩钢瓦隐患识别方法。针对彩钢瓦结构微小、细节特征难以捕捉的难题,在YOLO(YouOnly Look Once)v8模型中添加区域损失(Area Loss)函数,从而提高彩钢瓦隐患的识别精度。
1 YOLOv8模型改进
YOLO自2015年被提出以来[4],已迭代到了YOLOv8版本。因其兼顾目标检测速度和精度的优点,越来越多研究者使用YOLOv8模型设计目标检测算法[5-7]。由于彩钢瓦在遥感图像中像素过小,本文对YOLOv8模型进行改进,在YOLOv8模型中添加一个Area Loss函数,加强对于小目标的识别性能。改进后的YOLOv8模型(简称:改进模型)网络结构如图1所示,由Backbone、Neck和Head 组成。
1.1 YOLOv8模型改进
1.1.1 Backbone
作为图像特征提取的核心组件,Backbone网络通过运用卷积与反卷积层的组合,并辅以残差连接和瓶颈结构,简化了网络规模,提高了模型的准确性。它基于CSPDarknet53主干网络,保留了跨阶段 (CSP) 模块的精髓,同时用 C2F模块替换了 YOLOv5 中的 C3 模块,使其拥有更加丰富的梯度流信息和更高的识别精度。此外,Backbone还融合了深度可分离卷积和膨胀卷积等改进技术,进一步增强了模型的特征提取能力,为后续处理环节提供了更为精准的特征输入。
1.1.2 Neck
Neck作为图像融合的核心,用于整合Backbone各阶段产出的多尺度特征图,从而显著提升特征的表达力和信息丰富度。它包含了路径聚合网络(PAN,Path Aggregation Network)和特征金字塔网络(FPN,Feature Pyramid Network),旨在克服多级卷积可能导致的特征信息衰减问题,确保模型能够全面捕捉图像细节。FPN通过自上而下与自下而上的双向路径,构建多层次的特征金字塔,有效提取图像的多层次语义信息。同时,引入的横向连接机制,促进了自下而上与自上而下路径间的信息交流,显著增强了跨层特征的融合效果。然而,FPN的融合策略在可能会导致图像特征信息的局部缺失。为此,又引入PAN,通过高效且精准的方式融合高低层次特征,从而有效弥补FPN可能存在的信息缺失问题。
1.1.3 Head
Head负责生成最终的检测结果,由3个独立的检测分支组成,每个分支都能够独立地输出目标分类的概率分布和精确的目标边界框坐标。为进一步优化检测性能并减少超参数依赖,Head采用了Anchor-free机制。该机制摒弃了传统的锚框设定,通过直接预测目标中心点的位置,显著简化了训练流程,并提升了模型的泛化能力。
Head中包含2种损失函数:本文添加的Area Loss函数和原有的分类损失(Cls Loss)函数。Area Loss函数旨在提高改进模型在识别小目标时的准确率;Cls Loss函数用于衡量模型对每个候选框预测的类别标签与真实类别的差异。
1.1.4 损失函数改进
彩钢瓦在遥感图像所占像素较小,相比于小目标物体,YOLOv8模型更容易识别一些大目标物体[8]。为此,本文添加的Area Loss函数,可以使改进模型更关注于小目标特征,从而提升彩钢瓦识别的精度。改进模型的损失函数公式为
Loss=1N(N∑i=1ωiLcls(pi,p∗i)+N∑i=1ωitiLals(gi,g∗i)) (1) 式(1)中,
i 为一张图像上的第i 个彩钢瓦目标;N 为一张图像上的彩钢瓦总数;pi 为物体被预测为是彩钢瓦的概率;p∗i 为物体真实的标签;gi 是包含4个参数的向量,表示预测的彩钢瓦坐标;g∗i 也是包含4个参数的向量,表示真实的彩钢瓦坐标;ti 表示预测彩钢瓦的框和真实框面积的重叠程度,1表示重叠面积大于50%,0表示重叠面积小于50%;Lcls 为Cls Loss函数;Lals 为本文添加的Area Loss函数;ωi 表示锚框的权重系数,为使模型提高小目标识别的准确度,其取值与锚框的面积呈反比,即锚框的面积越小,其取值越大。由于YOLO算法中对锚框的长和宽进行了归一化操作,导致锚框的面积小于1。因此本文提出了一个单调递减函数,使
ωi 的值始终大于1,其公式为ωi=esi+1 (2) 公式(2)中,
si 表示第i个锚框的面积。将公式(2)代入公式(1)可得到
Loss=1N(N∑i=1(e−si+1)Lcls(pi,p∗i)+N∑i=1(e−si+1)tiLlac(gi,g∗i)) (3) Cls Loss函数和Area Loss函数的公式分别为
Lcls=−(p∗i⋅log(pi)+(1−p∗j)⋅log(1−pi)) (4) Lals =scross isi+s∗i−scross i−OC2−c (5) 式(5)中,
Si 表示第i个锚框的真实面积;s∗i 表示预测第i个锚框的面积;scrossi 表示si 与s∗i 相交的面积;O 表示真实的锚框与预测锚框中心点之间的欧氏距离;C 表示真实的锚框与预测锚框之间外接矩形的对角线长度;c 表示真实锚框与预测锚框之间长宽比的相似程度,越相似则值越小。1.2 实验数据处理
1.2.1 数据来源
本文实验采用的遥感图像数据来自于国家遥感数据与应用平台中的高分二号遥感(GF2)图像。共下载卫星遥感图片974景,覆盖铁路的为747景。GF2的空间分辨率为1 m,共有多光谱和全色两种数据。其中,多光谱波段的空间分辨率为4 m,包含蓝光、绿光微米和近红外波段的数据;全色的分辨率为1 m,包含可见光和近红外波段的数据。
1.2.2 数据处理
由于GF2图像为波段影像,其影像数据包括多光谱数据和全色数据,需要对这两种数据进行处理,使其转变为正常的图像数据[9]。数据处理流程如图2所示。
融合GF2的两种数据前需要对其进行辐射定标,以消除传感器本身的误差,确定传感器入口处的准确辐射值;再对多光谱数据进行大气校正,获得地物反射率和辐射率、地表温度等真实物理模型参数,消除大气中的水蒸气、氧气、二氧化碳、甲烷和臭氧对地物反射的影响,同时,消除大气分子和气溶胶散射的影响;将处理后的多光谱数据与全色数据进行融合,得到更清晰、信息更丰富的图像。图3为遥感影像的处理流程示例。
1.2.3 数据标注
数据处理后,将卫星遥感影像裁剪为640×640像素的图片,一景遥感图像可裁出约800张遥感图片,对裁剪完成的图片,使用LabelImg软件进行标注,构建多数据源、多尺度的彩钢瓦数据集,共标注彩钢瓦图片
17816 张。彩钢瓦标注如图4所示。2 实验与结果分析
2.1 评估指标
本文使用平均精度均值(mAP)对彩钢瓦隐患的检测性能进行评估。mAP分为mAP50和mAP50-95两种类型[10]。mAP50表示在模型预测框与真实框交并比(IoU)大于50%时,即检测框与真实框之间的重叠程度大于50%时,检测结果正确的比例。mAP50-95为当IoU阈值从50%到95%时,检测结果正确比例的均值。由于模型准确率会随着IoU阈值的增大而降低,所以mAP50-95指标更为严格[11]。
本文利用的其他常用的评估指标包括准确度(Accuracy)和F1值等[12],计算公式为
Accuracy=TP+TNTP+TN+FP+FN (6) Precision=TPTP+FP (7) Recall=TPTP+FN (8) F1−Score=2(Precision×Recall)Precision+Recall (9) 式(6)~式(9)中,TP表示被模型预测为彩钢瓦隐患且实际是彩钢瓦隐患的个数;TN表示被模型预测为不是彩钢瓦隐患且实际上确实不是彩钢瓦隐患个数;FP表示被模型预测为彩钢瓦隐患但实际上不是彩钢瓦隐患个数;FN表示被模型预测为不是彩钢瓦隐患但实际上是彩钢瓦隐患个数。Accuracy表示模型预测的结果中,预测正确的比例;Precision表示模型预测为彩钢瓦隐患样本中,预测正确的比例;Recall表示模型预测为彩钢瓦隐患的样本,占实际上所有的彩钢瓦隐患的比例。
2.2 实验参数设置
2.2.1 硬件参数与环境配置
本文使用的CPU型号为Inter(R)-Xeon(R)-W1270 3.40 GHz;GPU型号为Nvidia GeForce RTX 3070,显存为8 GB;计算机内存为32 GB;计算机操作系统为Ubuntu20.04;Anaconda版本为23.7.3;Python版本为3.8.16;PyTorch版本为2.0.1。
2.2.2 模型参数
本文共标注遥感图片
17816 张,以8∶2的比例划分训练集和测试集,其中,训练集有15646 张,测试集有2170 张,YOLOv8模型预训练尺寸为YOLOv8x。训练参数设置:epoch设为1000, optimizer设为Adam,初始学习率设为0.001,momentum设为0.937,weight_decay设为0.0005, patience设为100,batch_size设为4。2.3 实验结果
为直观展示本文提出的Area Loss函数的有效性,将未改进的YOLOv8模型的方法和改进模型(YOLOv8+AreaLoss)的方法进行对比实验,方法评估指标如表1所示。
表 1 方法评估指标方法 F1值 mAP50 mAP50-95 YOLOv8 0.786 0.794 0.533 YOLOv8+AreaLoss 0.805 0.820 0.558 如表1所示,与采用未改进的YOLOv8模型相比,采用改进模型的铁路沿线彩钢瓦隐患识别方法,F1值、mAP50和mAP50-95检测指标分别提高了0.019、0.026和0.025。
采用未改进的YOLOv8模型与采用改进模型的实际识别效果如图5所示。图5中,第1列为待检测的原始图像,第2列为采用未改进的YOLOv8模型的识别效果,第3列为采用改进模型的识别效果。
由图5可知,本文设计的方法显著提高了对小目标的检测能力,鲁棒性和准确性得到了显著增强,有效减少了误检和漏检的情况。
3 结束语
本文基于改进YOLOv8模型,设计了铁路沿线彩钢瓦隐患识别方法。改进模型中的Area Loss函数,优化了模型的识别性能,对特征图中面积较小的彩钢瓦隐患给予更多的关注;在自建的彩钢瓦数据集上进行的实验验证了该方法的有效性与优越性;该方法已在中国铁路郑州局集团有限公司铁路工务日常巡检中应用,节约了人力成本和时间成本,为优化铁路领域传统的人工巡检流程提供了技术支撑。
下一步,将考虑改变原有YOLOv8的模型结构,如添加注意力机制等,进一步提升识别的准确性。
-
表 1 模型中各状态含义
状态 名称 含义 s1 automaticLevelFallback _idle 自动降级初始状态 s2 receive_radio_contace_loss 启动降级处理状态 s3 set_CTCS2_level 降级到C2等级状态 s4 receive_radio_contace_recover 终止降级处理状态 s5 unset_CTCS2_level 维持C3等级状态 表 2 模型中各迁移含义
迁移 内容 含义 t1 {s1,i1,g1,op1,s2} i1含义为无线丢失
g1含义为当前控制等级为C3级,模式为完全模式
op1含义为输出常用制动命令t2 {s2,i2,g2,op2,s3} i2含义为列车当前运行速度和C2允许速度
g2含义为无线超时制动10 s内,列车速度不高于160 km/h,且不高于C2等级允许速度
op2含义为执行自动降级到等级C2t3 {s2,i3,g3,op3,s5} i3含义为列车当前运行速度和C2允许速度
g3含义为无线超时制动10 s内,列车速度高于160 km/h,但低于C2等级允许速度
op3含义为不转入C2等级t4 {s2,i4,g4,op4,s3} i4含义为列车当前运行速度和C2允许速度
g4含义为无线超时制动10 s 后,列车速度不高于C2等级允许速度
op4含义为执行自动降级到等级C2t5 {s2,i5,g5,op5,s5} i5含义为列车当前运行速度和C2允许速度
g5含义为无线超时制动10 s后,列车速度高于C2等级允许速度
op5含义为不转入C2等级t6 {s2,i6,g6,op6,s4} i6含义为无线状态当前为恢复连接状态
g6含义为当前控制等级为C3级,模式为完全模式
op6含义为终止降级执行缓解常用制动表 3 黑盒测试用例
场景 全局变量 驱动参数 桩函数设置 期望输出 1 模式为完全模式
当前等级为C3等级无线丢失 -- 最大常用制动 2 模式为完全模式
当前等级为C3等级无线丢失
降级制动定时器= 9 s列车当前运行速度= 159 km/h
C2等级允许运行速度= 160 km/h降级为C2等级 3 模式为完全模式
当前等级为C3等级无线丢失
降级制动定时器= 9 s列车当前运行速度= 161 km/h
C2等级允许运行速度= 162 km/h保持C3等级 4 模式为完全模式
当前等级为C3等级无线丢失
降级制动定时器= 11 s列车当前运行速度= 161 km/h
C2等级允许运行速度= 162 km/h降级为C2等级 5 模式为完全模式
当前等级为C3等级无线丢失
降级制动定时器= 11 s列车当前运行速度= 159 km/h
C2等级允许运行速度= 158 km/h保持C3等级 6 模式为完全模式
当前等级为C3等级无线恢复 -- 缓解最大常用制动 表 4 白盒测试用例
用例 全局变量 驱动参数 桩函数设置 期望输出 1 模式为完全模式
当前等级为C2等级-- -- 不满足降级条件维持C2等级 2 模式为待机模式
当前等级为C3等级-- -- 保持C3等级 表 5 边界值分析测试用例
用例 全局变量 驱动参数 桩函数设置 期望输出 1 模式为完全模式
当前等级为C3等级无线丢失
降级制动定时器=10 s列车当前运行速度= 161 km/h
C2等级允许运行速度= 161 km/h降级为C2等级 2 同上 无线丢失
降级制动定时器= 9 s列车当前运行速度= 160 km/h
C2等级允许运行速度= 160 km/h降级为C2等级 -
[1] 杨 森,秦晓光,王 飞,等. 基于工程数据的测试脚本自动生成方案研究[J]. 铁道通信信号,2023,59(1):19-24,35. [2] 张 宇,李 昂,王 飞,等. 面向ATP车载设备的通用仿真测试平台研究[J]. 铁道通信信号,2021,57(12):1-6. [3] 杨志杰. CTCS-3级列控系统关键设备自主化研究[J]. 中国铁路,2018(7):1-6. [4] 陈慧琍,陈晓轩. 基于SmartUnit的安全通信系统单元测试用例自动生成[J]. 铁道通信信号,2020,56(6):43-47. [5] 中国国家铁路集团有限公司. 铁路信号安全软件编程暂行技术要求:TJ/DW 230-2020[S]. 北京:中国铁道出版社有限公司. 2020. [6] 中国国家铁路集团有限公司. 铁路信号安全软件测试暂行技术要求:TJ/DW 231-2020[S]. 北京:中国铁道出版社有限公司. 2020. [7] 凌 珊. 铁路信号软件单元测试研究[J]. 铁路计算机应用,2020,29(2):58-61. [8] 任丽霞. 计算机联锁软件的黑盒测试过程分析与实现[J]. 铁路计算机应用,2018,27(2):39-43. [9] European Committee for Electrotechnical Normalization. BS EN 50128: 2011 Railway applications. Communication, signalling and processing systems. Software for railway control and protection systems [S].Brussels, Belgium: European Committee for Electrotechnical Normalization, 2011.
[10] 王蒙蒙,罗 杨. 基于扩展有限状态机测试用例生成方法[J]. 电子设计工程,2020,28(6):97-100,106. [11] 中国国家铁路集团有限公司. 自主化CTCS-3级列控车载设备暂行技术条件:TJ/DW205-201912.1[S]. 北京:中国国家铁路集团,2019:78-79.