基于YOLOv8和DeepLabv3+的指针仪表读数识别*论文

2024-07-18 10:31:06 来源: 作者:zhouxiaoyi
摘要:指针仪表作为一种重要的检测工具在核电领域中被广泛使用,针对不同类型、不同距离条件下指针仪表读数识别准确性低和检测速率低下的问题,提出了一种基于YOLOv8和DeepLabv3+的仪表读数识别方法。为了提高DeepLabv3+模型的图像输入质量,选择了推理速度快且准确的YOLOv8检测器定位仪表区域并裁剪后作为输入图像用于仪表识别。
摘要:指针仪表作为一种重要的检测工具在核电领域中被广泛使用,针对不同类型、不同距离条件下指针仪表读数识别准确性低和检测速率低下的问题,提出了一种基于YOLOv8和DeepLabv3+的仪表读数识别方法。为了提高DeepLabv3+模型的图像输入质量,选择了推理速度快且准确的YOLOv8检测器定位仪表区域并裁剪后作为输入图像用于仪表识别。针对仪表指针识别准确率低和检测速度慢的问题,在DeepLabv3+模型的基础上,将骨干网络替换为MobileNetv3,并设计ECA+模块将其SE模块替换,降低模型参数的同时提高识别精度;将解码器的4倍上采样替换为两个2倍上采样,浅层特征图与编码器相应尺寸的特征进行拼接融合,并引入CBAM模块,提高指针分割的准确性。试验阶段,采用自制核电厂指针式仪表图像数据集,实验结果表明,该方法在仪表精度为2.5的级别下达到了94%的识别准确率,平均误差为1.542%,平均总耗时为0.57s,具有较好的性能表现.
关键词:核电;指针式仪表;YOLOv8;DeepLabv3+;读数识别
引言
在核电领域,指针仪表因其结构简单、成本低、抗干扰性强、可靠性高等特点被广泛应用。然而,传统的指针仪表抄表存在效率低、无法实时监测、人力物力消耗大且高温、高压、辐射等极端环境下存在高风险等问题。同时,由于核电企业的特殊性质,一些传统的物联网手段,如NB、4G、5G、WiFi等并不适用。相较于上述手段,通过视频读表的方式就显得简单易行。
指针式仪表的模型主要依赖于传统的图像处理技术和深度学习技术两种”。传统方法包括模板特征匹配算法和基于分割扇形区域的指针定位方法”、基于Hough变换的指针检测方法”、通过SIFT和霍夫变换识别指针的方法”、基于改进SIFT和领域加权的指针检测方法6、基于EDLines直线检测算法的指针检测方法”、基于MSER提取指针区域方法”、基于ORB和改进区域生长法的倾斜指针式仪表自动读数方法”以及轮廓跟踪方法「”)等。然而,这些传统的图像处理技术对光照不均、背景复杂、指针倾斜、图像模糊等问题处理过程复杂,且精度低下,误差较大。深度学习方法基于卷积神经网络处理图像,在减少手动调参的同时提高了识别精度"-。Liu Y等[”使用FasterR-CNN定位仪表位置,从而对指针检测和读取;江涛等“基于Mask-RCNN模型完成了指针表定位,实现了高精度的抄表识别,但整个过程较为耗时。金爱萍等1提出了基于YOLOv5与U-Net的解决方案,在应对不同背景和距离条件下的指针识别问题上表现出较好的效果,但是仍存在读数误差较大的问题。
经过对指针式仪表识别领域研究成果的细致梳理,发现该领域仍存在两个问题:一是网络上相对匮乏工业仪表图像数据,二是现有的检测和识别网络不能很好地同时兼顾指针仪表自动化读数的速度和准确性。
针对以上问题,本文基于核电厂真实场景自制指针式仪表图像数据集,并提出了一种基于YOLOv8和DeepLabv3+的仪表读数识别方法。首先使用YOLOv8n检测器来检测图像中的表盘区域,并将其裁剪出来作为DeepLabv3+网络的输入图像。对DeepLabv3+网络精度较低和检测速度较慢的问题,设计了基于ECA+模块的MobileNetv3网络作为骨干网络,并在解码器中采用了基于CBAM模块的金字塔结构。最后通过细化算法和最小二乘法来拟合指针的直线,确定指针的方向和角度,根据指针的角度和仪表的量程范围,基于定位坐标系来计算仪表的最终读数。该方法增强了指针的分割能力,同时抑制仪表上其他干扰物的影响,提升了最终读数的识别精度。
1仪表检测识别方法
1.1基于YOLOv8的仪表检测
YOLOv8是一种最新的实时目标检测和图像分割模型,是YOLOv5)的重大更新版本,在速度和准确性方面都有显著的提升。YOLOv8的网络结构可以分为3个主要部分:主干网络、颈部和头部。主干网络是CSPDarknet53的改进版本,其中使用C2f模块替换了C3模块,进一步轻量化了网络参数。这个部分用来提取图像中有意义的特征,从而为后续的分类和定位提供依据。颈部部分使用了SPPF和双流FPN的结构,用来提高特征的多样性和表达能力,用于融合不同尺度的特征。这种多尺度特征融合的方法有助于提高网络的鲁棒性,使其在面对不同大小、形状和姿态的目标时都能有出色的表现。头部网络使用了Decoupled-Head网络结构,将目标位置和类别信息分别提取出来,通过不同的网络分支分别学习,最后再进行融合,其优势是有效减少参数量和计算复杂度以及增强模型的泛化能力和鲁棒性。
1.2基于DeepLabv3+的指针分割
DeepLabv3+”是Google于2018年提出的一种编码器-解码器结构的图像语义分割算法,基于DeepLabv3[18]改进,编码器包括骨干网络Xception网络和ASPP模块两个部分,骨干网络将输入图像进行下采样生成深层特征图信息,ASPP模块获取深层特征的多尺度信息。其中ASPP模块中包含一个1x1的卷积、3个不同空洞率的空洞卷积以及全局平均池化操作,将这5个维度得到的特征图进行拼接,以达到多尺度信息的充分融合。解码器在特征融合和上采样方面进行了优化,使得分割结果更加精确。
1.3示数计算
1.3.1指针细化
ZS快速并行细化算法是一种基于8邻域的并行细化算法,算法迭代次数少且效率高,但存在一定的局限性,细化过程容易因图像外围轮廓的细微变化导致像素冗余或分叉等现象,为了更好地拟合出指针的斜率,采用ZS细化改进方法”将指针细化。其基本思路为先采用ZS快速并行细化算法得到初始细化图像,通过逐行逐列搜索初始细化图像,寻找8连通域中首个像素值不为0的点,即第一个细点,采取先斜线后十字的顺序搜索相邻像素点,根据搜索像素不为0的点与当前细点的方向来确定搜索点是否应该保留,直到遍历完所有像素点。
1.3.2最小二乘法
采用最小二乘法对完全细化的指针图像中的点形成的直线进行拟合,求得直线的斜率和截距。
1.3.3角度法计算示数
首先,根据圆形指针仪表的特点,图像中心点位置可认定为指针轴心;其次,以轴心为原点,水平方向为横轴,垂直方向为纵轴,将图像分为4个象限;计算每个细化指针中的像素点到原点的欧式距离,找出最远欧式距离的像素点,确定原点到该像素点的方向即为指针所指方向;再通过斜率k和指针方向,求得指针方向与原点水平向右方向的顺时针方向夹角;结合先验信息,包括0刻度和满刻度两次指针方向的夹角、仪表的量层等已知信息,可计算出一个角度数值的变化量,最终根据当前指针位置与0刻度位置间的夹角计算出表示数。
2改进DeepLabv3+网络
2.1基于ECA+模块的MobileNetv3骨干网络
DeepLabv3+的骨干网络为Xception网络,其网络结构较为复杂,参数量较多。为了降低模型参数量,提高识别速率,本文选择更轻量的MobileNetv320]网络作为骨干网络,同时基于ECA通道注意力机制模块设计了ECA+模块用于替换SE通道注意力机制模块。ECA+模块结构如图1所示。
ECA模块通过快速一维卷积生成通道权值,高效提取通道问的依赖关系,不仅使得计算效率提高,同时避免了通道压缩降维的负面影响。但ECA模块仅采用平均池化捕获每个通道的空间信息,忽略了最大池化所能捕获的重要特征。所以为了捕获到更丰富的特征信息,ECA+模块增加最大池化分支,同样通过一个卷积核大小为k的一维卷积生成通道权值,将两个分支得到的权值相加,再通过一个Sigmoid激活函数将通道权值映射到0~1之间,最后乘以原图得到最终的结果。
2.2基于CBAM模块的解码器融合金字塔
原始DeepLabv3+的解码器部分通过4倍上采样,这种高倍上采样得到的特征会丢失一些重要像素,虽然在1/4处与编码器的特征图进行了拼接融合,但同时会将噪声融入解码块中,导致精度下降。本文将4倍上采样操作替换为连续两个2倍上采样,使其还原出的边界信息更接近原始图像。为了加强浅层图像信息的特征,借鉴特征金字塔结构,将解码器1/2处的特征图与编码器进行拼接融合,同时接入CBAM模块[2),丰富特征信息的同时也有效抑制噪声的影响。改进DeepLabv3+模型网络结构如图2所示。
CBAM模块由通道注意力模块和空间注意力模块两个模块组成。通道注意力模块使用全局平均池化和全局最大池化分别来获取每个通道的全局统计信息,并通过两层全连接层来学习通道的权重,再将处理后产生的两个结果进行相加,并使用Sigmoid激活函数,得到最终的结果。空间注意力模块使用最大池化和平均池化来获取每个空间位置的最大值和平均值,得到两个矩阵后,将两个矩阵进行拼接,并通过一个卷积层和Sigmoid函数来学习每个空间位置的权重,最终与输入特征图相乘得到结果。CBAM模块的优点是可以有效地提高模型的表示能力,同时只增加少量的计算量和参数。
3实验与分析
实验环境的服务器为Jetson Nano 4GB,平台为Ubantu18.04操作系统,所有实验都是基于Python的Pytorch深度学习库来实现的。
3.1仪表定位实验
3.1.1仪表定位训练数据集
为训练网络,本文基于核电厂构建了一个自制指针式仪表图像的数据集,图像大多数来源于现场拍摄或者从摄像头监控存储视频,小部分来自网络图像,其中设备拍摄方向与指针式仪表表盘正面角度呈90°±15°范围。对于所有收集到的图像,采用LabelImg标注工具逐一标注,得到xml格式的图像文件,执行脚本转化为YOLO支持的txt格式文件。指针仪表主要为压力表,共2000张。将数据集每类仪表图像按8:1:1的比例随机分为训练集、验证集和测试集,使用训练集并基于COCO数据集训练而来的权重文件在模型上迭代100次。
3.1.2仪表定位结果分析
本文以误检率、漏检率和检测时间作为评价指标,对Faster-RCNN、YOLOv5s和YOLOv8n模型进行比较,其中误检率为错误判断为目标的数量与所有预测结果之比,漏检率为未检测到目标的数量与所有真实目标数量之比。仪表检测结果如表1所示。从测试结果可以看出,整体指标YOLOv8n优于Faster-RCNN。在检测速度上,YOLOv8n与YOLOv5s相比仅慢0.02s,仍然满足实时性检测需求。在准确性方面,YOLOv8n与YOLOv5s相比漏检率降低了0.3%,误检率均为0。在分析仪表漏检的原因过程中发现,漏检部分主要集中在图像曝光、仪表倾角过大和大面积遮挡,在实际应用中可通过调整摄像头位置和角度来规避这些因素。
3.2指针识别实验
3.2.1指针识别训练数据集
实验的数据集是基于自制指针式仪表图像的数据集通过仪表检测将数据集中的仪表分割出后保存收集得到的新数据集,并采用Labellmg标注工具对仪表中的指针进行标注,共1000张,所有仪表盘均为圆形表盘。将数据集按8:1:1的比例分为训练集、验证集和测试集,实验在训练集上进行网络结构权重的训练。
3.2.2指针识别结果分析
实验将选用mloU指标以及检测时间作为评价指标进行实验,其中mloU指标表示语义分割模型对目标所预测的分割部分与实际该目标所在区域交并比的均值,用于评估模型的分割精度。模型改进前后评价指标对比如表2所示。
可以看出,以MobileNetv3作为骨干网络,仅对编码器改进后,使用ECA+模块替换SE模块,mloU提高了3.96%,检测时间下降了0.09s;与ECA模块相比,mIoU提高了1.95%,检测时间仅增加了0.02s。仅对解码器改进后,mIoU提高了2.81%,检测时间仅增加0.04s。当同时对编码器和解码器进行改进,mIoU提高了5.44%,检测时间下降0.07s。改进DeepLabv3+模型与原DeepLabv3+模型相比,mIoU整体增加了3.97%,检测速度提高了0.14s,展现出了良好的分割效果以及更快的检测速度。
改进DeepLabv3+模型前后指针分割部分检测结果如图3所示。由图可知,本文提出的改进DeepLabv3+网络模型可以更好地识别出指针的信息,同时抑制指针附近的刻度线、刻度数值和无关文字的影响,能够更好的完成指针识别任务,降低后续指针细化、直线拟合和示数计算提供更准确的结果,从而减少读数误差。
3.3读数识别误差实验
本文以工业过程测量和控制用检测仪表和显示仪表精确度等级作为读书识别的精度评价指标,选取0.5、1.0、1.5、2.5四个级别,误差e的计算公式为:
式中:v'为预测读数;v为实际读数;L为指针仪表量程。
为了证明本文所提方法的有效性,对100张测试集进行推理测试,同时与模板匹配、U2-Net、SegNet等经典图像分割方法进行比较,读数误差比例结果如表3所示。
由此可知,本文方法的识别精度相较于其他方法的识别率在不同精度等级下均有较大提升,在0.5的精度等级下,与U2-Net相比提高了7%,精度级数越大,提升越明显。本文方法在精度等级为2.5时可达到94%,且平均引用误差为1.542%,精度较高,可以满足实际应用对仪表读数的要求。最终读出仪表数据的平均总耗时为0.57s,检测时间基本满足实时性要求。
4结束语
本文对核电领域指针式仪表读数识别方法进行了研究,为解决指针式仪表读数准确性低和读数慢的问题,提出了一种基于YOLOv8和DeepLabv3+的仪表读数识别方法,并在自制核电厂指针式仪表数据集进行实验,结论如下。
(1)采用YOLOv8n检测器来检测和定位仪表区域,达到0.8%的误检率和零误检,检测时间达到0.18s。
(2)设计了改进DeepLabv3+模型来分割指针位置,mIoU达到86.01%,检测时间为0.19s。
(3)将分割出的指针进行ZS指针细化、最小二乘法拟合直线、确认指针方向操作,最终结合先验信息,通过角度法计算出仪表读数值,在仪表精度为2.5的级别下达到94%,读数的平均误差为1.542%,平均总耗时为0.57s,基本满足核电厂实际应用的标准。
参考文献:
[1]熊国良,肖文明,王小明,基于视觉的指针式仪表检测与识别方法综述[J].传感器与微系统,2020,39(12):1-3.
[2]李逸,王晗,王瑞洲,等,基于图像处理的细指针表盘识别方法研究[J].计算机测量与控制,2019,27(9):272-277.
[3]高天幸,姜楠,刘昶,基于透视校正的指针式仪表读数识别[J].仪表技术,2023(6):49-52.
[4]何月,王丽颖,包霞,等.多指针水表读数识别算法研究与实现[J].自动化与仪器仪表,2023(8):313-316.
[5]徐红武,赵海月,樊玉平,等,基于混合策略的指针式仪表刻度识别方法[J].机电工程技术,2023.52(10):184-188.
[6]施方展,张帅,刘得斌,等.基于邻域加权的指针式仪表识别技术[J].化工自动化及仪表,2024,51(1):32-37.
[7]孙顺远,魏志涛,基于刻度轮廓拟合的指针式仪表自动识别方法[J].仪表技术与传感器,2022(8):51-57.
[8]孙婷,马磊.巡检机器人中指针式仪表示数的自动识别方法[J].计算机应用,2019,39(1):287-291.
[9]张鹏程,吐松江·卡日,王海龙,等,基于ORB与改进区域生长法的指针式仪表读数方法[J].电气传动,2023,53(7):64-71.
[10]ZhangJ,Zhang M,Qi G,et al.Reading Recognition Method of Mechanical Pointer Meter Based on Machine Vision[J].Engineering Advances,2023,3(1):11-16.
[11]Dongjie C,Wensheng Z,Yang Y.Detection and recognition of high-speed railway catenary locator based on deep learning[J].Journal of University of Science and Technology of China,2017,47(4):320.
[12]Shuying D U,Peng DU,ShifeiD.A malicious domain name detection method based on CNN[J].Joural of University of Science and Technology of China,2020,50(7):1019.
[13]Liu Y,Liu J,Ke Y.A detection and recognition system of pointer meters in substations based on computer vision[J].Measurement,2020,152:107333-107333.
[14]江涛,陶健成,范旭.基于深度学习的集气站指针式仪表读数研究[J].自动化仪表,2022,43(2):18-22.
[15]金爱萍,袁亮,周德勤,等.基于YOLOv5和U-net的指针式仪表读数识别方法[J].仪表技术与传感器,2022(11):29-33.
[16]Redmon J,Divvala S,Girshick R,et al.You only look once:Unified,real-time object detection[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:779-788.
[17]Chen L C,Zhu Y,Papandreou G,et al.Encoder-decoder with atrous separable convolution for semantic image segmentation[C]//Proceedings of the European conference on computer vision(ECCV),2018:801-818.
[18]ChenL C,PapandreouG,Schroff F,et al.Rethinking atrous convolution for semantic image segmentation[J].arXiv preprintarXiv:1706.05587,2017.
[19]齐淑雯,陈爱军,刘磊,基于ZS细化改进算法的仪表盘指针读数方法[J].中国计量大学学报,2020,31(1):44-49.
[20]Howard A,Sandler M,Chu G,et al.Searching for mobilenetv3[C]//Proceedings of the IEEE/CVFintemational conference on computer vision,2019:1314-1324.
[21]Wang Q,Wu B,Zhu P,et al.ECA-Net:Efficient channel attention for deep convolutional neural networks[C]//Proceedings of the IEEE/CVFconference on computer vision and pattem recognition,2020:11534-11542.
[22]Woo S,Park J,Lee J Y,et al.Cbam:Convolutional block attention module[C]//Proceedings of the European conference on computer vision(ECCV),2018:3-19.
