基于CenterNet 和DeepLabv3+的变电站指针式仪表读数识别方法
2022-08-18黄思远樊绍胜王子扬
黄思远,樊绍胜,王子扬
(长沙理工大学电气与信息工程学院,长沙 410114)
0 引言
在数字化、人工智能的发展下,大部分工业场景可以使用数字式仪表对机器的工作状态进行监测,但对于像室外变电站这种有强磁场存在的复杂环境,仍需要使用指针式仪表来监测变电设备的工作状态[1-2]。早期指针式仪表读数自动识别的研究工作主要基于传统计算机视觉技术[3-4],这些传统方法对仪表的成像质量要求比较高,再加上人工设计的特征对室外变电站场景变化的鲁棒性不高,导致指针式仪表的检测和读数识别精度普遍不高。文献[5-6]采用传统霍夫直线检测算法来检测指针直线段,对图片的质量要求高,且图像降噪预处理繁琐,但检测结果精度不高,存在多条干扰线条。文献[7]通过图像的RGB 颜色空间转换到HSV 颜色空间来定位油位计刻度环的起始、终点位置,但颜色特征受强光照影响大,可靠性低于空间特征,且鲁棒性较差。文献[8-9]采用SIFT 算法进行特征点匹配完成仪表盘的定位,SIFT 算法不仅计算量大,运行耗时长,而且对于室外变电站场景容易产生大量的误匹配,导致检测结果不理想。
目前,卷积神经网络[10]因其强大的特征表征能力,广泛应用于变电站指针式仪表检测与读数识别领域。文献[11-12]利用目标检测算法Faster-RCNN 来完成仪表盘的定位,在很大程度上提高了仪表检测的精度,但在读数识别阶段仍采用传统方法来检测指针,导致指针的识别精度不高。文献[13-14]在仪表检测阶段采用深度学习方法,但在仪表读数识别阶段仍通过自适应阈值分割算法来分割指针区域和刻度盘,根据指针与刻度之间的角度差来计算读数,该方法对阈值的调参要求高,而且小刻度之间容易产生误连通。文献[15]在仪表检测阶段采用深度学习目标检测算法来定位仪表盘和指针区域,在仪表读数识别阶段利用深度学习语义分割算法来分割仪表刻度盘和指针区域,分别进行刻度盘和指针轮廓拟合,显著提高了检测和读数识别精度,但该方法所采用的模型计算量大、冗余特征多,部署难度大。文献[16]提出了一种基于掩模区域的卷积神经网络(Mask R-CNN)的关键点检测的指针自动读数方法,该方法利用检测到的关键点进行拟合,具有较强的准确性,但关键点的检测易受光照影响,可靠性较低。
由以上文献研究可知,变电站指针式仪表读数识别存在如下待解决的难点:第一是从复杂的背景当中识别仪表并给出仪表矩形框的准确坐标信息;第二是对待检测的畸变仪表图像进行矫正,获取仪表的正立图像;第三是对仪表正立图像进行刻度盘、指针区域的分割,获取指针区域直线拟合的角度并得到读数。针对以上难点,本文采用改进的深度学习anchor-free 的目标检测算法CenterNet,从复杂的背景中获取畸变仪表图像;利用线性变换理论对畸变仪表图像进行矫正,获取仪表正立图像;采用改进的深度学习语义分割算法DeepLabv3+分割仪表正立图像的刻度盘、指针区域,获取指针的倾斜角度;结合仪表量程,通过角度法计算,实现对指针式仪表读数的自动识别。
1 仪表检测与读数识别模型
针对指针式仪表检测精度低与读数误差大的问题,通过在CenterNet 目标检测模型主干网络的残差结构上引入ECA-Net 注意力模块,提高复杂环境中指针式仪表的检测精度;通过图像线性变换理论来对畸变仪表图像进行矫正,获取仪表正立图像;通过在DeepLabv3+语义分割模型ASPP 结构上并联DAMM 双注意力模块来加强对前景像素点的上下文信息的联系,从而提高对刻度盘和指针区域分割的准确度。
本文提出的仪表检测与读数识别模型的主要思路如下:将云台摄像机采集到的图像通过CenterNet 目标检测模型,获取当前帧图像中仪表的类别和仪表矩形框的位置坐标信息,从而在复杂的背景环境中单独截取出仪表图像。由于摄像头平面与仪表的表盘平面不平行,圆形仪表表盘在当前帧图像中畸变为椭圆状。基于图像的线性变换理论和表盘分割结果,选择椭圆的长短轴与椭圆的4 个交点坐标,将其和假想圆与坐标轴的4 个顶点坐标位置对应关系进行透视变换及仿射变换,来矫正畸变仪表图像,获取仪表正立图像。通过DeepLabv3+语义分割模型来分割刻度盘、指针区域,获取指针直线角度。结合仪表量程与角度的对应关系计算仪表读数结果,从而实现对指针式圆形仪表的自动读数识别。仪表检测与读数识别流程图如图1所示。
图1 仪表检测与读数识别流程图Fig.1 Instrument inspection and reading recognition flowchart
2 基于CenterNet 的仪表目标检测
2.1 CenterNet 算法
深度学习目标检测算法大致分可为两大类:第一类是基于anchor-based 的目标检测网络,第二类是基于anchor-free 的目标检测网络。anchor-free 的目标检测算法速度快、精度高、方便部署,所以本文在仪表目标定位时采用了改进的CenterNet 模型[17]。CenterNet 的“anchor”仅仅出现在当前目标的位置,而不是整张图上,其不需要区分anchor 是前景还是背景,因为每个目标只对应一个“anchor”,这个anchor 是从heatmap 中提取出来的,所以无须进行NMS 操作来过滤冗余框。CenterNet 的输入特征图尺寸是输出特征图尺寸的4 倍,这种保持大分辨率的输出有利于系统保留边缘、纹理等细节特征,而这些浅层的物理信息更有利于物体边界框的准确位置回归。CenterNet 由特征提取主干网络、连接层和功能模块3 大组件构成,其网络结构的主要功能模块如图2 所示。
图2 CenterNet 主要功能模块Fig.2 CenterNet main functional module
2.2 引入ECA-Net 注意力机制模块
本文采用的改进CenterNet 目标检测算法的主干网络将原来的Resnet18 更改为ECA-Net50。ECANet 在SENet 的基础上进行了一些改进,是一种不降维的局部跨信道交互策略和自适应选择一维卷积核大小的方法。ECA-Net50 是在ResNet50的残差结构模块引入了ECA-Net 轻量级注意力机制模块[18]。ECA-Net50 在实现原有ResNet50 的参数量增加很少的前提下,大大提高了检测的精度。ECA-Net 模块添加在残差网络模块ResNet50 的结构图如图3 所示。
图3 加入ECA 模块的Resnet50 网络Fig.3 Join the Resnet50 network of the ECA module
3 基于DeepLabv3+的仪表刻度盘、指针分割
3.1 DeepLabv3+算法
DeepLabv3+语义分割算法通过空洞卷积[19](Atrous Convolution)来减少下采样率,同时保持了较大的感受野,降低了低层特征空间位置信息的损失。该算法采用编码-解码网络架构,在编码模块,以Xception 网络作为骨干网络进行特征提取。在Xception 中利用深度可分离卷积进行特征提取,相比标准卷积,其参数量以及计算量大幅度减小,而其性能却能够与标准卷积媲美。在解码模块,采用双线性插值逐步恢复图像的尺寸,为了保留局部细节信息,在恢复过程中融合低层特征中的细节信息,再经过线性插值处理恢复图像尺寸。针对目标的多尺度问题,该算法可利用ASPP 模块融合多尺度特征。ASPP 模块由空洞率分别为6、12、18 的3×3 空洞卷积和1×1 卷积以及全局平均池化操作共同组成。DeepLabv3+网络结构图如图4 所示。
图4 DeepLabv3+网络结构图Fig.4 DeepLabV3+ network structure diagram
3.2 引入DAMM 双注意力机制模块
在DeepLabv3+中,ASPP 模块作为编码与解码模块之间的桥梁,连接着模型中的上下文信息,并捕捉全局语义信息,因此该部分提取的特征至关重要。ASPP 通过多个分支采用不同空洞率的方式获取多尺度特征,最后对多种特征层进行融合。实际应用中,如果是一个大物体,那么其空洞率最大的分支提取到的特征应该是最重要的,对应的权重也是最大的,其余分支的权重较小;如果是一个小物体,那么其空洞率最小的分支的权值应该是最大的,其余分支的权值较小。在ASPP 模块中,仅仅是每个分支对应不同的权重,不同分支的权重之间都是独立的,没有相关性。这样就导致了DeepLabv3+网络存在刻度盘分割中类内不一致、存在空洞现象,指针边缘分割不平滑等缺陷。针对此问题,本文将双注意力机制DAMM 模块[20]与ASPP模块并行连接来弥补ASPP 模块的缺点。DAMM 模块中的位置注意力模块能够有效模拟出图像位置间的长期上下文依赖信息,将不同局部特征信息连贯起来,提高语义分割能力;DAMM 模块中的通道注意力模块利用不同通道的相关类别特征间的关联性进行不同类别特征强化,提升像素分类精度。DAMM 双注意机制模块与ASPP 模块并联结构图如图5 所示。
图5 DAMM 双注意机制模块与ASPP 模块并联图Fig.5 DAMM dual attention mechanism module and ASPP module in parallel diagram
4 基于线性变换理论的畸变仪表图像的矫正
4.1 透视变换
云台摄像机采集的图像通过CenterNet 模型截取待检仪表图像。由于摄像头采集原始仪表图像时,相机平面和仪表表盘平面存在角度偏差,圆形表盘畸变为椭圆状,此时的待检仪表图像为畸变仪表图像。通过透视变换对畸变仪表图像进行处理,将其修正为仪表正立图像,可以减小读数误差。透视变换是原图像平面中的向量在三维空间中经过线性变换矩阵T映射为新视平面中的向量,其变换规则如式(1)所示:
式中,(x,y)为待检仪表图像上的坐标,(x′,y′)为仪表正视图像上的坐标。待检仪表图像经过DeepLabv3+算法得到刻度盘和指针区域的分割图。变换前刻度盘轮廓椭圆拟合的长短轴与椭圆的4 个顶点坐标,和变换后假想圆与坐标轴的4 个交点坐标相对应,由式(1)求出透视变换矩阵T,再结合式(2)将待检仪表图像上所有点都映射到仪表正视图像上。待检仪表图像中刻度盘区域拟合的椭圆经过透视变换后将映射为仪表正视图像中圆的位置。
4.2 仿射变换
经过透视变换得到的仪表正视图像与仪表正立图像存在旋转角度偏差,在这种情况下,可以对仪表正视图像做仿射变换得到仪表正立图像。仿射变换是原图像上的所有向量经过线性变换矩阵Q映射为仪表正立图像上的所有向量,其变换规则如式(3):
式(4)中,(x″,y″)是仪表正立图像上的坐标,(x′,y′)是仪表正视图像上的坐标。过椭圆焦点坐标在待检仪表图像中画一条辅助垂线,待检仪表图像经过透视变换后,仪表正视图像上的辅助线与中心垂线存在相应的角度差,再将仪表正视图像旋转相应的角度差得到仪表正立图像。
5 实验结果与分析
5.1 引入ECA-Net 的CenterNet 仪表目标检测实验
CenterNet 的作用是从摄像头采集的仪表图像中框出仪表目标的矩形框位置并裁剪出仪表图像。本文所采用的数据集是变电站真实指针式仪表图像数据,借助开源工具Labelme 制作数据集:在仪表图像中框出表盘目标区域,并输入相应仪表类别标签(包括监测器、压力表、油位计3 类),一共1 182 张图片,其训练集∶验证集∶测试集的比例为8∶1∶1,训练集制作完成后将图像和标签输入CenterNet 网络中进行训练,epoch参数设置为100,前50 个epoch 冻结ECA-Net50 的Resnet50 预训练权重,后50 个epoch 不冻结backbone 主干网络,网络全局参数都可以进行微调。学习率的调整采用自适应衰减方法,优化器采用传统的Adam 优化器。在训练完成后,需要对引入ECA-Net 注意力机制的CenterNet 进行仪表盘定位测试。图6 展示了改进的CenterNet 对变电站不同时刻采集到的指针式仪表图像的表盘定位结果。从测试结果中可以发现,云台摄像机在不同时刻、不同角度、不同距离下采集到的变电站仪表图像,改进的CenterNet 均能以高置信度检测出表盘区域,并识别出表盘的类别结果,说明加入ECA-Net 注意力机制的CenterNet 模型训练效果理想。
图6 仪表表盘区域检测结果Fig.6 Instrument dial area test results
将本文改进的CenterNet 模型与原始Resnet50-CenterNet 模型进行对比实验分析,各类评价指标的AP值、mAP、FPS 和Model size 的对比结果如表1 所示。
表1 改进的CenterNet 模型与原始Resnet50-CenterNet 模型的对比结果Tab.1 Comparison results between the improved CenterNet model and the original Resnet50-CenterNet model
从表1 中可以看出,与传统残差结构ResNet50 相比,本文使用ECA-Net50 主干网络,对模型参数量的增加很少。对比原始Resnet50-CenterNet 模型,采用本文改进的CenterNet 模型,可使监测器的AP 值增加13%,油位计的AP 值增加7%,压力表的AP 值增加2.23%,mAP 值提高7.51%。
5.2 引入DAMM 的DeepLabv3+仪表目标分割实验
DeepLabv3+算法的作用是分割出仪表的刻度盘区域和指针区域,其输入是经过CenterNet 目标检测算法截取的仪表图像(RGB 格式),输出是带有像素类别标签的,与输入图像大小一致的分割图。训练集的制作同样用到Labelme 标注工具,制作方式为将仪表表盘区域分为3 大类(背景,刻度盘,指针),背景用像素值(0,0,0)表示,刻度盘用像素值(255,0,0)表示,指针用像素值(0,255,0)表示。训练集的原图与标签图保持命名一致,图7 展示了训练集部分样本图。
图7 训练集部分样本图Fig.7 Sample diagram of the training set part
本文所采集的变电站指针式仪表图像中,原始压力表图像仅有213 张,故对原始图像和标签图进行对应的数据增强操作。数据增强操作包括:±30°旋转、色彩抖动、噪声扰动等。经过数据增强后的训练集达到600 张左右。采用迁移学习进行训练,加载DeepLabv3+在PASCAL_VOC 数据集上预训练好的权重。损失函数在Cross-entropy 交叉熵损失函数的基础上加上Dice 损失函数。训练完成后,需要对DeepLabv3+网络的训练效果进行测试。图8 展示了DeepLabv3+分割仪表刻度盘和指针的测试结果。
图8 测试结果Fig.8 Test results
从图8 的测试结果中可以发现,当采集的指针式压力表图片分辨率较高时,原始模型基本上能够准确分割出刻度盘和指针区域,但是发现刻度盘边缘分割存在瑕疵点、指针边缘不平滑以及存在微小噪声点的问题,而引入注意力机制的本文模型基本上没有存在很明显的噪声点,分割的刻度盘、指针边缘较平滑,且刻度盘中间不会出现断层现象,说明引入注意力机制的本文所提模型能够加强对刻度盘、指针轮廓边缘像素点的特征学习,提高对刻度盘以及指针边缘分割的效果。
5.3 畸变仪表图像矫正实验
在变电站场景中,巡检机器人云台上的摄像头位置比较低,而指针式仪表的安装位置比较高,摄像头在采集仪表图像时呈仰角状态,导致采集的圆形仪表图像的表盘畸变为椭圆。为了减少这种畸变椭圆所带来的指针区域直线拟合的角度误差,需要对畸变仪表图像进行透视变换和仿射变换来获取仪表正立图像。畸变仪表图像透视变换、仿射变换的结果如图9 所示。
图9 畸变仪表图像及线性变换结果Fig.9 Distortion gauge images and Linear transformation results
同时,对分割刻度盘、指针的二值图像也做相应的透视变换和仿射变换来获取最终的指针轮廓拟合直线的倾斜角。分割二值图像的透视变换、仿射变换的结果图如图10 所示。
图10 分割二值图像及线性变换结果Fig.10 Split binary image and linear transformation results
5.4 仪表读数自动识别实验
仪表原始图像经过CenterNet 目标检测算法后会得到仪表的类别信息,进而确定了仪表的量程。然后根据仪表正立图像中指针区域直线拟合的倾斜角,由角度法计算指针式仪表的读数值。角度法的计算公式如式(5)所示:
式中,Lmax表示仪表的最大量程,Lmin表示仪表的最小量程,θmax表示仪表的最大量程对应的角度,θmin表示仪表的最小量程对应的角度,θ表示指针的倾斜角,R表示仪表的读数值。部分仪表图像矫正前和矫正后的读数结果如图11 所示。表2 统计了部分样本矫正前与矫正后的读数值与真实值大小。
由图11 和表2 可知,矫正前仪表读数预测值和仪表真实值之间的标称误差为6.0%,平均误差为4.2%,矫正后仪表读数预测值和仪表真实值之间的标称误差为2.0%,平均误差为1.3%。实验结果证明,矫正畸变仪表图像能够提高仪表读数值识别的精度。
表2 部分仪表图像矫正前与矫正后的读数结果与真实值对照表Tab.2 Comparison table between the numerical results and the real values of some instrument images before and after correction
图11 部分仪表图像矫正前和矫正后的读数识别结果Fig.11 The identification results of some instrument images before and after correction
6 结论
本文针对指针式仪表读数识别时存在检测精度低、读数误差大的问题。在仪表检测阶段,与传统残差结构ResNet50 相比,本文使用ECA-Net50 主干网络,对模型参数量的增加很少。对比原始模型,本文改进的CenterNet 模型使得监测器的AP 值增加13%,油位计的AP 值增加7%,压力表的AP 值增加2.23%,且整体mAP 提高了7.51%。在分割模型上增加DAMM 双注意力机制,DAMM 双注意力机制缓解了Deep-Labv3+收敛速度慢的情况,以及有效地去除了表盘目标分割的空洞现象,显著提高了刻度盘闭合区域轮廓拟合的精度;在仪表读数识别阶段,矫正前仪表读数预测值和仪表真实值之间的标称误差为6.0%,平均误差为4.2%,矫正后仪表读数预测值和仪表真实值之间的标称误差为2.0%,平均误差为1.3%。
所提方法有效提高了变电站巡检机器人对指针式圆形仪表的检测精度,同时也减小了仪表读数值与真实值之间的误差。但在现实场景中,如果指针式仪表的指针非常细或者存在指针遮挡现象,指针分割的精度会受到影响。未来要进一步对细指针和指针遮挡的仪表识别算法进行优化,提升复杂环境下算法的泛化能力。