1. 引言
复杂的工业环境中存在辐射、毒性、高温等恶劣环境,需要借助仪器对生产条件进行检查以确保安全。传统上,获取的数据通常是由人工读取的,此类方法能够从各种形状、形式和风格的复杂仪表中获得精确的读数。然而,人工方法耗时且费力。相比之下,依靠巡检机器人和计算机视觉技术进行自动抄表具有重要的现实意义[1]。目前工业用指针式仪表具有造价较低、适用于多种现实环境、便于维修更换等特点,在某些工业生产中具有广泛且不可替代的应用。然而,复杂的工业环境增加了人工读表的困难,目前语义分割和读数算法已达到较低识别误差,可直接用于指针式仪表读数,因此研究一种基于人工智能技术的指针式仪表自动读数方法迫在眉睫。
目前,指针式仪表的识别方法主要分为传统方法和深度学习方法。传统的指针式仪表识别方法主要依赖于传统的图像处理技术和特定的算法。房桦等人提出了一种用于设备仪表检测机器人的仪表识别算法[2],使用尺度不变特征变换方法来检测仪表区域,利用快速霍夫变换检测两条指针直线去除噪音干扰,定位指针精确位置和指向角度,完成指针读数。Gao J W等人利用随机样本一致性拟合仪表圆弧,通过加速稳健特征(Speeded up Robust Features, SURF)方法检测仪表区域,利用霍夫变换方法寻找指针,最终通过角度法计算仪表读数[3]。为了更好地满足实际情况下变电站的检测需求,Kucheruk V等人在ORB特征检测的基础上做了算法的改进,通过匹配特征点快速确定指针中心,并最终通过霍夫变换实现仪表指针读数的读取[4]。然而,传统的识别方法在面对复杂的自然环境时,可能会受到背景环境改变的影响,导致识别精度下降。基于深度学习的指针式仪表识别方法可以通过训练模型学习仪表的刻度分布和指针的特征,实现表盘和指针的自动定位,并根据学习到的特征计算指针的角度和读数。万吉林等人[5]在FasterR-CNN的目标检测和U-Net图像分割的基础上,对指针式仪表的读数进行了自动识别。金爱萍等人[6]结合了YOLOv5与U-Net两种深度学习模型的优点,旨在解决不同背景和距离条件下的指针识别难题。U2-Net [7]作为一种先进的语义分割模型,在医学图像分割等领域取得了显著成效。然而,直接将其应用于指针式仪表读数识别时,仍存在推理精度待提升等问题。
针对以上问题,本文提出一种基于改进U2-Net的指针式仪表读数方法。本文设计了基于加入深度可分离卷积配合ECA注意力模块的特征融合模块,自适应分割和学习指针仪表的刻度和指针等特征。为了解决模型编码过程中模型参数过多的问题,本文将部分模块的较深层次部分卷积替换为深度可分离卷积,同时在编码阶段后加入ECA注意力模块用于关注小目标区域。通过将U2-Net进行改进,将U2-Net的优点进行有效结合,从而提高指针式仪表检测识别网络的推理精度和速度。
2. 相关技术和理论
在本文研究的指针仪表提取特征过程中,更加重视细节信息和全局对比性信息。鉴于U2-Net网络是针对显著性目标检测任务提出的,能够将图像中最具有吸引力的目标提取出来[8],故本文采用U2-Net语义分割模型对指针式仪表进行识别。
U2-Net [7]的每个RSU块都是类似于U-Net [9]的网络架构,结构如图1所示。
Figure 1. Network structure diagram of U2-Net
图1. U2-Net网络结构图
网络的主体类似于U-Net的网络结构,在大的U-Net中,每一个小的block都是一个小型的类似于U-Net的结构。整体结构由一个编码器和一个解码器组成,编码器负责提取图像的特征,而解码器则负责将特征映射回原始图像尺寸在编码器阶段,每通过一个模块后都会下采样2倍,在解码器阶段,每通过一个block前会上采样2倍。
U2-Net的En_1和De_1阶段,使用RSU-7模块,RSU-7的网络结构图如图2所示。En_2和De_2阶段使用RSU-6,相对于RSU-7少了一个下采样卷积以及上采样卷积的部分,RSU-6 block只会下采样16倍,而RSU-7 block下采样了32倍。
Figure 2. Network structure diagram of RSU-7
图2. RSU-7网络结构图
图像经过En_1-En_4下采样处理后对应特征图的高与宽相对较小,如果再进行下采样操作不免会丢失有用性数据,为了保留上下文信息,En_5、En_6、De_5不再进行下采样,且RSU-4F的模块中,将下采样、上采样结构换成了膨胀卷积。
3. 仪表检测识别方法
本文提出的基于改进U2-Net的指针式仪表语义分割算法,能有效提高模型的查准度,如图3所示,模型包含2个模块,分别为:仪表语义分割模块、读数处理模块。
Figure 3. Structure diagram of this method
图3. 本文方法结构图
3.1. 基于改进U2-Net的表计识别
U2-Net基于Encode-Decode编码形式,编码过程中存在细节特征损失和模型参数过多问题,针对该问题,将编码阶段的RSU4和RSU5模块的最深层次的两个普通卷积更换为深度可分离卷积[10],降低参数数量并提升对细节特征的学习能力。
深度可分离卷积(Depthwise Separable Convolution, DSConv)由逐深度卷积和逐点卷积组成,深度卷积用于提取空间特征,逐点卷积用于提取通道特征。深度可分离卷积在特征维度上分组卷积,对每个通道进行独立的逐深度卷积,并在输出前使用一个1 × 1卷积将所有通道进行聚合。
深度可分离卷积和普通卷积的参数量和计算量对比如下:
参数量比值:
计算量比值:
其中,
表示卷积核大小,M和N分别表示逐深度卷积和逐点卷积的卷积核大小,一般N较大,故
可忽略不计。
深度可分离卷积的结构如图4所示。
Figure 4. Depth-separable convolution structure diagram
图4. 深度可分离卷积结构图
从以上公式和结构图中,可以观察到,按如上改进后的总参数量比普通卷积的总参数量更低。本次改进通过提高计算效率和优化网络结构,减少了过拟合的风险和计算资源的消耗。
为了帮助模型在特征融合时更好地关注感兴趣区域,提高指针分割精度,将各编码RSU拼接下采样时加入ECA注意力模块,以RSU-7为例,改进模型如图5所示。
Figure 5. Feature fusion combined with ECA attention module
图5. 结合ECA注意力模块的特征融合
ECANet [11]的核心思想是在卷积操作中引入通道注意力机制,以捕捉不同通道之间的关系,从而提升特征表示的能力。通道注意力机制的目标是自适应地调整通道特征的权重,使得网络可以更好地关注重要的特征,抑制不重要的特征。在每个解码阶段RSU模块后加入ECA注意力模块,可以确保模型在不增加过多参数和计算成本的情况下,有效地增强网络的表征能力。
3.2. 读数后处理
Figure 6. Flow chart of reading post-processing
图6. 读数后处理的流程图
使用改进后的U2-Net模型将训练集仪表的指针和刻度分割出来后,经过读数后处理得到最终的读数。
读数后处理的流程图如图6所示。
主要包含以下步骤:
第一步,对语义分割的预测类别图进行图像腐蚀操作,以达到刻度细分的目的。
第二步,把环形的表盘展开为矩形图像,根据图像中类别信息生成一维的刻度数组和一维的指针数组。
第三步,接着计算刻度数组的均值,用均值对刻度数组进行二值化操作。
第四步,根据刻度分割得到总体刻度格数,大于40格归类为25 MPa类型(50格),小于40格归类为1.6 MPa (32格),根据指针分割得到指针相对位置,最后将指针相对位置与分类量程做乘积得到表盘的读数。
本文在对指针仪表上标注了刻度和指针两个类别,并将指针和刻度分开输入到语义分割网络中,故将图像划分成双通道分别处理,取出掩码图第一通道的特征图,像素等于1的为指针,像素等于2的为刻度。输入图像经过模型语义分割和图像处理后的掩码图,如图7所示。
Figure 7. Mask diagram of pointer and scale
图7. 指针和刻度的掩码图
通过对比输入图像与模型推理后的图像,可以明显看出模型的推理效果相当出色。模型对于表盘内的指针和刻度等关键特征的提取非常精确,充分证明了经过改进后的U2-Net模型在仪表识别任务中展现出了卓越的处理能力,验证了模型的有效性。
3.3. 损失函数
交叉熵损失是一个常用于多分类问题的损失函数。交叉熵损失函数使用在单个类中,使得多分类任务计算损失变得更加高效和简单,如公式1所示。
(1)
xi是变量,p (x)、q (x)为x的两个概率分布,交叉熵越小,p和q两分布越相似。本文设置背景类别的权重是1,指针和刻度类别的权重为1.5。
4. 实验结果
4.1. 参数设置和数据集
本文使用的操作系统为Windows11,GPU选用NVIDIA GTX-1080,深度学习框架为Pytorch 2.2.2。表计识别网络使用工厂实拍数据图像,本次实验共包含了2种量程的仪表,分别为1.6 MPa和25 MPa,训练集为374张,测试集为37张。部分数据集图像及掩码图可视化如图8所示。
Figure 8. Data set and mask map
图8. 数据集及掩码图
4.2. 评估指标
本文采用查准率(Precision, P)、平均交并比(Mean Intersection over Union, mIoU)、召回率(Recall, R)作为评价指标,对图像分割模型结果进行分析,公式如下:
(2)
(3)
(4)
其中,n表示类别总数,pii指像素类别为i被预测为类别i的总数量,pij指像素类别为i被预测为类别j的总数量,pji指像素类别为j被预测为类别i的总数量。
为判定仪表读数的准确性,选择引用误差率来判断模型的推理效果,引用误差越小,模型推理越准确。引用误差e的表达式如下:
(5)
其中,模型推理读数为value,仪表的人眼读数为
,仪表的分类量程为l。
4.3. 消融实验
为了验证所提方法的有效性,本文对测试集进行了消融实验,并使用查准率P、平均交并比mIOU、召回率R来评价各模型,实验结果如表1所示。
1) U2-Net:U2-Net进行指针仪表数据集训练推理。
2) U2-Net + DSConv:利用DSConv改进的U2-Net进行指针仪表数据集训练推理。
3) U2-Net + ECA注意力:利用ECA注意力改进的U2-Net进行指针仪表数据集训练推理。
4) 本文方法:使用改进的U2-Net进行指针仪表数据集训练推理。
Table 1. Ablation experimental results
表1. 消融实验结果
序号 |
方法 |
P |
mIOU |
R |
1 |
U2-Net |
90.13% |
82.83% |
89.18% |
2 |
U2-Net + DSConv |
92.21% |
83.70% |
90.55% |
3 |
U2-Net + ECA注意力 |
93.62% |
85.37% |
90.26% |
4 |
本文方法 |
94.73% |
85.49% |
92.65% |
从表2可知,在U2-Net模型中引入ECA注意力特征融合方法并将部分普通卷积替换为DSConv后,本文方法相较于原始的U2-Net模型和模型单个改进方法,三项评价指标均有明显提升。相较于原始模型,本文方法的查准率P提高了4.6%,平均交并比mIOU提升了2.66%,召回率R增加了3.47%。说明模型在识别指针和刻度时,更加准确地捕捉到了目标区域,减少了误判和误识别的情况,为后续读数误差的降低打下了基础。本文改进不仅提高了模型的分割效果,还为实际应用中的指针式仪表识别带来了更加准确和稳定的解决方案。
4.4. 对比实验
为了证明本文所提方法的真实有效性,将本文方法与SegNet [12]、Deeplabv3+ [13]、U2-Net [7]等经典的语义分割模型进行了比较,具体结果见表2。
Table 2. Contrast experimental results
表2. 对比实验结果
序号 |
方法 |
p |
mIOU |
R |
1 |
SegNet |
88.23% |
80.97% |
88.60% |
2 |
Deeplabv3+ |
89.13% |
81.89% |
88.85% |
3 |
U2-Net |
90.13% |
82.83% |
89.18% |
4 |
本文方法 |
94.73% |
85.49% |
92.65% |
根据表3的对比数据可知,相较于目前常用的语义分割网络SegNet、Deeplabv3+和U2-Net相比,本文方法评价指标明显提升。在与SegNet的查准率数据比较中,两者差距为6.5%,比DeepLabv3+高出5.6个百分点,本文方法同样展现出优越的性能。与原始模型U2-Net相比,本文方法在阈值为0.01的条件下,精度比U2-Net提高了4.6个百分点。综上所述,本文提出的模型方法在指针式仪表识别的查准率、平均交并比、召回率方面均展现出显著的优势。
4.5. 模型训练效果
本实验共包含2种量程的压力仪表,分别为25 MPa和1.6 MPa,测试集共37张图片。为准确评估仪表读数的精确性,本实验采用引用误差率作为评价模型推理效果的重要指标。引用误差率通过衡量模型预测值与真实值之间差距来说明模型推理的准确性,值越小,模型的推理效果越准确,预测值与真实值之间的偏差越小。本文详细记录了部分推理结果,呈现在表3中,同时计算了用不同语义分割模型的训练权重计算平均引用误差e,结果见表4。
Table 3. Model reasoning result
表3. 模型推理结果
序号 |
人眼读数 |
推理读数 |
引用误差e (%) |
1 |
1.11 |
1.1827 |
4.544 |
2 |
6.25 |
6.3368 |
0.347 |
3 |
6.4 |
6.3559 |
0.176 |
4 |
0.63 |
0.6113 |
1.117 |
5 |
0.613 |
0.6235 |
0.656 |
6 |
6.2 |
6.0919 |
0.432 |
Table 4. Inference accuracy and average citation error of different semantic segmentation models (%)
表4. 不同语义分割模型的推理精度和平均引用误差(%)
序号 |
方法 |
P |
e (%) |
1 |
SegNet |
88.23% |
3.207 |
2 |
Deeplabv3+ |
89.13% |
3.431 |
3 |
U2-Net |
90.13% |
1.686 |
4 |
本文方法 |
94.73% |
1.012 |
由表3、表4可知,本文提出的模型展现出了较低的引用误差率,表明本文所提模型在识别指针式仪表时,能够更准确地提取出关键信息,并给出接近真实值的预测读数结果。再一次证明了本文提出的模型在仪表识别任务中具有出色的推理效果,能够准确地识别出仪表的读数,为相关领域的应用提供了可靠的技术支持。
5. 结论
针对指针式仪表在工业生产中遇到的复杂环境下人工读数难以实现和读数误差较大的问题,本文提出了一种基于人工智能的指针式仪表自动读数方法,通过改进的U2-Net语义分割模型分割指针和刻度,为了在提高识别精度的同时减少计算量,改进普通卷积并加入注意力机制。经实验验证,该模型能够高效地将各仪表的指针和刻度分割出来,并且能够通过分割效果识别仪表类型和指针相对位置从而计算读数,最终改进的U2-Net模型的查准率达到94.58%,针对两种量程25 MPa和1.6 MPa的压力仪表读数引用误差达到1.012%,相较于原U2-Net模型和目前主流语义分割模型均有显著提升。
然而,尽管本文方法在比较清晰的数据集情况下表现出色,但其读数后处理阶段仍采用传统的角度法,并且目前不能适用于更广泛的其他类型指针式仪表,在处理反光和异物遮挡等复杂图像时,可能导致处理效果不佳。为了进一步提高识别性能,我们将对仪表读数的计算方法进行深入研究,并积极探索和开发新的读数方法,以应对各种复杂的实际应用场景。