刘丙杰,杨继锋,史文森
(海军潜艇学院, 山东青岛 266199)
复杂装备一般具有流程繁多、状态变化频繁、数据非线性变化等特点。在复杂装备运行期间,往往需要对装备状态实时判读,用于实时监测评估装备状态。但是,由于复杂装备状态变化频繁,不同流程下装备状态变化规律不同,特别是部分状态一闪而过,人工监测和评估难度很大且容易出错,这给复杂装备状态辨识带来很大困难。
复杂装备状态辨识方法一般包括基于数据驱动的方法[1-2],基于解析模型的方法[3],基于计算机仿真的方法[4]等。但是,基于图像识别的装备状态辨识文献较少。
文中采用图像识别的方法通过采集装备图像,进行图像分割、图像识别,识别装备状态,通过与期望装备状态向量进行比较实现装备状态辨识。
装备状态识别可描述为:
(1)
(2)
式中:X为输入装备图像;h(·)为图像识别函数,文中h(·)为深度卷积神经网络;θ为h(·)的内部参数。
装备图像识别技术体系如图1所示。
图1 装备图像识别技术体系
首先对装备进行边界判定,确定识别区域,快速校对。然后根据装备部件边界对识别区域进行划分,在此基础上进行图像分割。接着识别各区域图像状态,并与装备状态进行对比,最后判定装备状态。
为了使得图像采集设备与装备能够快速匹配,提高校对效率,每台装备上安装了边界识别标签,摄像头通过识别标签位置实现装备与摄像头的快速校对。
典型复杂装备由众多部件组成,需识别的部件包括指示灯、仪表、开关、数码表等,同一个装备可能由几十甚至成百个部件组成,部件形状有圆形、方形、矩形等,每一种部件有多种状态,所有部件的状态组合就形成了装备状态。为了识别装备状态,就需要对装备进行图像分割。
复杂装备具有结构庞大、信息流程复杂、显示信息多等特点。但是复杂系统的显示信息一般都有规则形状,而且显示部件之间都有较明显的分割线。根据研究对象图像特点,文中采用基于边缘检测的图像分割方法实现复杂装备的图像分割[5]。
对于划分的区域图像,分别采用深度卷积神经网络进行状态识别。
1)部件类型识别
文中所述的复杂装备显示部件类型包括:指示灯、仪表、数字面板、开关、综合显示器等。采用K-均值算法对分割出的对象进行分类,其基本思想是:根据图像分割状态,对每个分割图像与已知图像进行对比识别,确定各分割图像类型,算法步骤如下:
Step1:根据第i个分割图像与已知图像的距离,确定图像相似度;
Step2:根据图像相似度,确定分割图像类型。
2)指示灯状态识别
装备指示灯状态分为亮、灭两种状态。HSI空间常用于彩色匹配实验,比较适合于饱和度和亮度描述。
假设待识别信号灯共有m种不同的颜色状态,HSI 空间指示灯识别算法步骤为:
Step1:选择照度不同的n个时刻,每时刻拍摄该指示灯不同颜色状态的图像各1张,采集到m×n张图像,计算出每张图像中信号灯区域的R、G、B各分量均值,归一化后的R、G、B各分量均值记为:Rij,Gij,Bij。
Step2:分别对n种颜色状态求出某段时间内的R、G、B分量均值[6]:
(3)
式中:Ri、Gi、Bi分别表示指示灯在第i种颜色状态下,某段时间内红、绿、蓝三色各分量的均值,然后按如下公式转换为HSI值,记为Ai=(Hi,Si,Ii)。
I=(R+G+B)/3
(4)
S=I-[3/(R+G+B)][min(R,G,B)]
(5)
(6)
(7)
Step3:求出待识别图像信号灯区域的R、G、B各分量均值,归一化后转化为HSI 颜色,记为B=(H,S,I)。
Step4:将每个Ai与B相匹配,求出m个相似距离值,则:
A={Ai|min(|Ai-B|)}
(8)
3)仪表状态识别
装备常用仪表如图2所示。
图2 装备仪表图示
仪表状态识别分为如下3个步骤:
①量程识别
根据装备仪表特征,仪表量程一般有两种表示方式:左起始,中间起始。
首先采用数字识别方法对面板内数字进行识别,识别最大值、中间值、零值位置为:Pmax(x,y),Pmid(x,y),Pzero(x,y),根据此3点拟合量程曲线为:
y=a0+a1x+a2x2+a3x3
(9)
②指针位置识别
采用图像识别的方法识别指针为一同色线段,线段识别为:
y=b0+b1x
(10)
③仪表状态识别
根据仪表量程曲线与指针直线的交点,可得出仪表位置以及仪表读数,从而判断仪表状态为:
(11)
式中:s为识别状态,0表示非期望状态,1表示期望状态。r为识别读数;datamin,datamax分别为标准数据的最小值和最大值。
复杂装备期望状态描述为:
K={N,b1,b2,…,bn,s1,s2,…,sm}
(12)
式中:N为装备运行流程号或序号;bi为期望指示灯状态;si为期望仪表状态。
复杂装备识别状态描述为:
(13)
式中:N为装备运行流程号或序号;b′i为识别指示灯状态;s′i为识别仪表状态。
装备状态为:
E=||K-K′||
(14)
正常状态下:E=0;故障状态下:E≠0。
以某装备为例,装备面板如图3所示。
图3 某装备面板
采用海康威视摄像头,有效像素:300万,水平清晰度:700 TVL;网络接口:TCP/IP(RJ-45)。计算机基本配置为:CPU I5-3470,3.2 GHz;内存:8 GB;显存:1 GB。
Step1:边界识别。在装备识别区域的边界设置了4个识别标志,摄像头可迅速识别边界标志。
Step2:图像分割。分别采用边缘检测方法[6]、GrubCut方法[7]对装备进行分割,效果如图4所示。
从图4中可以看出,两种方法分割正确率均为100%。边缘检测方法不仅检测出了元器件边缘,而且检测出了较小的螺丝边缘,而这些细小图像在装备识别中是冗余的;GrubCut法虽然整体分割正确率较高,但是对细小图像分割的正确率不高。两种图像分割方法所需时间均在10 ms以内。将部分矩形识别为不变量,分割后将此区域删除。
图4 某装备图像分割结果
Step3:元件状态识别。分别利用SURF[7]、FAST[7]方法对指示灯和指示仪表进行状态识别。装备分别在开机、接通电源两种状态下进行状态识别,运行100次。两种方法识别正确率对比见表1。
表1 图像识别正确率对比 %
从上表可以看出,两种方法识别正确率均较高,但是SURF在开关状态、仪表识别的正确率方面高于FAST方法。根据上述识别结果,结合式(8)、式(11)给出如下装备识别结果:
期望状态为:
Step4:装备状态辨识。
由上述识别状态可得:
E1=|K1-K′1|=0,E2=|K2-K′2|=0
即:两种状态监测结果均为正常,与实际状态一致。
装备状态识别对于实时监控装备状态、及时干预、减少安全风险具有重要作用。装备状态识别采用了图像分割、图像状态识别、装备状态辨识等多种技术。文中提出的装备状态识别技术框架可采用的方法具有一定的通用性,但是采用的具体技术与使用环境有密切关系。由于文中研究对象光线较好、干扰较少,装备状态识别难度较小。在研究中,采用了OpenCV系统中的SURF、FAST、GrubCut等函数,并进行了对比研究,对于不同的应用环境和识别对象,可采用不同的图像识别方法。