基于注意力机制的卷积神经网络指针式仪表图像读数识别方法
2022-04-14万吉林王慧芳管敏渊
张 森,万吉林,王慧芳,管敏渊,杨 斌,3,李 凡
(1. 浙江大学 电气工程学院,浙江 杭州 310027;2. 国网浙江省电力有限公司湖州供电公司,浙江 湖州 313000;3. 湖州电力设计院有限公司,浙江 湖州 313000)
0 引言
由于变电站环境中存在大量电磁干扰以及指针式仪表具有价格优势等原因,目前变电站中依然存在着大量的指针式仪表[1-4]。而巡检机器人在变电站的推广极大地方便了指针式仪表图像的获取[5-7]。为了进一步节约人力成本、提升变电站的自动化、智能化水平,提高变电站巡检图像中指针式仪表读数识别的准确率和效率是非常必要的。
目前绝大部分关于指针式仪表读数自动识别的研究都是建立在仪表指针检测基础上,其中包括文献[8-12]等都是采用霍夫变换方法检测指针获取指针倾角来识别仪表的读数。然而变电站巡检机器人拍摄的仪表图像中,表盘面往往存在较多杂质,在这种情形下以霍夫变换为代表的图形检测算法会检测到大量干扰线段。文献[13]使用图像分割的方法替代霍夫变换提高了检测指针的准确率,但是该方法的流程依然较多,因而计算指针倾角的过程中容易积累误差。通过检测指针线段计算指针倾角来获取仪表读数的方法还会受到仪表表盘校准程度、指针形状与外观等因素的影响。对于精密的指针式仪表而言,指针倾角的细微差异就会使读数识别结果偏离真实值。
近年来,以卷积神经网络CNN(Convolutional Neural Network)为代表的深度学习算法在电力图像识别领域得到了广泛的应用[14-17]。然而对指针式仪表图像直接采用卷积神经网络回归仪表读数的做法并不合理,因为指针式仪表图像中和读数识别最相关的是仪表指针附近区域,而该区域的面积占据整个表盘区域面积的比例往往很小。卷积神经网络识别仪表读数的准确率取决于提取的图像特征质量,所以目标尺寸小会增加其准确识别仪表读数的难度。此外,目前构建的基于深度学习算法的指针式仪表图像读数识别方法需要较为庞大的数据计算量,并且模型体积比较大。因此,对应用的平台算力等硬件性能有一定的要求,限制了效果优秀的深度学习算法的实际应用。
为了突破检测指针线段识别仪表读数方法的局限及弥补卷积神经网络识别仪表读数的缺陷,本文在卷积神经网络中引入注意力机制:采用双路异构卷积神经网络强化了对仪表图像特征的提取,并加入卷积注意力模块改善了提取特征的类型和分布;考虑到直接回归仪表读数的方式会大幅增加卷积神经网络的参数量,为了减少模型的空间复杂度,本文在设计卷积神经网络时采取分级回归的策略,因而构建的模型还具有体积小、易部署、效率高的优势。
1 指针式仪表图像读数识别方法概述
1.1 基于仪表指针检测的读数识别方法
目前关于指针式仪表图像读数识别的研究大多是建立在仪表指针检测的基础上,该方法的流程如图1 所示。可以发现,检测指针识别仪表读数的方法步骤较多,导致该方法识别仪表读数的速度受到限制。并且流程中的步骤2和步骤4容易积累误差,对仪表指针倾角以及读数识别结果影响较大。
图1 检测指针识别仪表读数的流程Fig.1 Meter reading recognition flowchart based on pointer detection
1)步骤2 是仪表图像进行自动校准,通常采用的方法是仿射变换或透视变换。要使用这些变换方法,需要在仪表图像中寻找合适的变换基准点。若变换基准点选择得不理想,这些变换方法甚至会增加仪表图像的倾斜程度,而很多情况下理想的变换基准点难以找到。并且这些变换方法通常会对图像造成形变和扭曲,影响后续步骤4中的指针拟合。
2)步骤4 决定了仪表读数识别的准确率。为了得到指针的倾角,需要对指针线段进行拟合,通常采用的方法为最小二乘法、梯度下降法、高斯-牛顿法等。然而指针线段拟合的效果受到指针包含的像素数量、指针的外观形状、指针的粗细大小等因素影响。尤其是对于单位角度数值较大的精密仪表而言,指针线段倾角的细微偏差也会使得读数识别结果严重偏离真实值。
而提取仪表指针检测的方法有很多,典型的如采用霍夫变换的方法提取直线段,但是霍夫变换等方法很容易受到表盘面上各种干扰条纹的影响,导致效果不佳。因此文献[13]提出了一种基于U-Net 的指针提取方法,并且取得了很好的效果,能够有效排除干扰获取指针。本文也以此作为基于指针检测的仪表读数识别方法的代表。
1.2 基于图像特征映射的读数识别方法
基于图像特征映射的读数识别方法是直接通过分析仪表图像特征来回归仪表读数,该方法没有校准表盘、显式检测仪表指针、拟合指针线段等中间过程,因而流程较短,识别效率较高。该方法直接从已经确定好表盘区域的图像中提取仪表读数结果,因此提取的图像特征质量决定了仪表读数识别的准确率。如前文所述,由于指针等关键部件占据仪表图像的比例极其有限,所以往往很难提取到与读数识别相关的特征,这也是目前该识别方法的研究迟迟未取得进展的重要原因。
早期的图像特征提取方法主要有HOG、SIFT、ORB 等,这些方法都需要依靠先验知识进行人工设计,主要差异在于角点检测、边缘计算、图像尺度空间等方面的处理细节。然而人工设计的图像特征抽象程度不足,泛化能力普遍较弱,识别准确率不稳定,难以适应仪表图像中复杂多变的环境,局限性较大。
自AlexNet 在ImageNet 图像分类比赛中取得了优异的成绩后[18],以卷积神经网络为代表的深度学习算法开始受到更加广泛的关注,并在短短数年内得到了飞速的发展,给基于图像特征映射的读数识别研究带来了新的希望。尽管大量实践证明,在图像识别领域,相比于人工设计方法,卷积神经网络的特征提取能力更强,然而这并不意味着卷积神经网络处理各种图像识别任务时都能轻易获得令人满意的结果。在指针式仪表读数识别任务中,卷积神经网络同样要面临目标特征占比少的难题。如何引导卷积神经网络将注意力集中到与读数识别最相关的特征,提高读数识别的准确率和效率,是本文研究的主要内容。
2 基于注意力机制的卷积神经网络仪表读数识别模型
2.1 强化仪表图像特征提取的双路异构卷积神经网络
卷积神经网络根据功能主要可以划分为卷积层、池化层、归一化层、全连接层等。其中卷积层是通过卷积核提取图像的局部特征,卷积核的大小和数量决定了感受野和特征类型,同时卷积核的滤波方式由于可以共享权值从而极大地减少了模型的参数量。池化层采取的常见方式有最大池化和平均池化,主要作用是进一步减少模型复杂度来缓解过拟合现象。归一化层是将特征图的数据归一化到标准正态分布,主要的作用是抑制梯度消失和梯度爆炸现象。全连接层一般处于卷积神经网络的最后阶段,通过对提取的特征进行加权的方式进行特征分类和筛选。
为了详细说明卷积神经网络识别仪表图像读数的过程,本文搭建了一个经典的9 层(不包含输入层和输出层)卷积神经网络,网络的结构如图2 所示。网络的第1 层为归一化层,作用是将仪表图像的RGB 值变换到正态分布下,使网络能够更快收敛。网络的第2—6层为卷积层,作用是提取图像的局部特征,卷积层越深则提取特征的抽象程度越高,即浅层特征反映的是纹理细节,深层特征反映的是语义状态。网络的第7—9层为全连接层,作用是将提取的图像特征映射到仪表读数。
图2 卷积神经网络结构Fig.2 Structure of CNN
为了强化对仪表图像特征的提取,本文参考文献[19]的工作设计了双路异构卷积神经网络。2 路卷积神经网络结构大体一致,但是从激活函数、池化方式、通道数等方面进行了异构化,以提取尽可能不同的特征。改进后的模型结构如图3所示。
图3 双路异构卷积神经网络结构Fig.3 Structure of two-stream heterogeneous CNN
双路异构卷积神经网络中每一路卷积神经网络的主要基本单元都包含3×3 的卷积层和池化层,但是为了提取尽可能不同的特征,对2 路卷积神经网络进行了异构:上路卷积神经网络使用了ReLu激活函数、平均池化方式,卷积层通道数为32;下路卷积神经网络使用了tanh激活函数、最大池化方式,卷积层通道数为16。
2.2 改善仪表图像特征类型和特征分布的卷积注意力模块
判断指针状态是指针式仪表读数识别的关键。然而在某些指针式仪表图像中指针区域所占比例甚至不足1%。为了提升卷积神经网络提取指针特征的能力,本文在卷积神经网络中加入卷积注意力模块CBAM(Convolutional Block Attention Module)[20]。卷积注意力模块分为通道注意力模块(channel attention module)和空间注意力模块(spatial attention module),分别能够对中间特征图的特征类型和特征分布进行优化。卷积注意力模块结构如图4 所示。图中:C为通道数;H为特征图高度;W为特征图宽度。
图4 卷积注意力模块结构Fig.4 Structure of CBAM
3 基于软区间分级回归的卷积神经网络
3.1 简化卷积神经网络的分级回归方法
第2 节构建的融合卷积注意力模块的双路异构卷积神经网络模型依然有可改进的地方。该模型结构的最后部分使用多个全连接层的方式直接回归仪表读数,而全连接层参数冗余,因此模型的参数较多、空间复杂度较大。要降低模型部署的难度,势必要减小模型体积。为了实现该目标,本文参考Yang等人的工作[21],将原卷积神经网络模型的直接回归方式替换为分级回归,极大地简化了模型的体积。
分级回归首先将回归任务转化为分类任务,用各类别的期望值来表示回归预测值。具体地,当仪表读数Y分布在区间[0,V]内时,将该区间细分为s个无重叠的子区间,每个子区间的宽度w=V/s。并且每个子区间都有1个代表值,当选取子区间的左值为其代表值时,第i个子区间的代表值μi=i(V/s)。对于输入图像,模型将输出一组向量p=(p0,p1,…,ps-1)表示预测值y~ 在各子区间分布的概率,y~ 的计算公式为:
分级回归将预测过程划分成多个层级,每一层级只对前一层级的预测结果进行微调,这种方式能够大幅减少每个层级需要预测的类别数,从而能够极大减少模型的参数量,降低模型的复杂度。
3.2 基于分级回归的软区间方法
分级回归过程可以看作是逐级地确定指针所在的区间:先粗略识别仪表读数所在的大范围,然后不断微调缩小区间最终得到更精确的仪表读数预测值。而考虑到仪表读数Y在各区间之间存在的“连续性”问题,如指针式仪表的指针落在相邻2 个刻度之间等场景,将区间划分为各个不重叠的子区间显得不够灵活,因此软区间回归网络在式(4)的基础上给各子区间加入了缩放量和平移量。加入缩放量的方式为:给各层级的sk添加一个增量Δk,即sˉk=sk(1+Δk),则相应子区间的宽度wˉ如式(5)所示。
3.3 识别指针式仪表图像读数的卷积神经网络模型
加入软区间分级回归方法后,本文最终构建的识别指针式仪表图像读数的模型结构如图5 所示。图中,PB表示分级仪表读数预测模块。
图5 融合卷积注意力模块的双路异构软区间分级回归卷积神经网络Fig.5 Structure of two-stream heterogeneous soft stagewise regression CNN fused with CBAM
图5 在图3 基础上增加了卷积注意力模块和软区间分级回归方法,模型分为2 路卷积神经网络,每路卷积神经网络的基本单元都是3×3 的卷积层、池化层、卷积注意力模块,主要区别在于卷积层数、激活函数以及池化方式。模型将读数识别回归过程分为3 个层级,层级1 预测仪表读数的大致区间,层级3预测仪表读数的精细值,融合3个层级的预测结果以回归最终仪表读数值。
4 算例分析
4.1 算例情况
实验数据集来源于由巡检机器人在不同时间、不同环境下拍摄的1 106 张某变电站内多个指针式压力表的图像,这些图像数据集包括了气象因素、角度因素等的影响。上述原始数据集首先采用文献[13]的方法进行预处理,检测并获得仪表盘区域图像,然后经过裁剪缩放后,每张表盘图像的分辨率为256×256。处理后的指针式压力表图像如附录A 图A1 所示。图像中仪表盘倾斜角度不一、指针纤细短小,若采用基于指针线段检测思路识别仪表读数,则图像校准、指针拟合等环节容易产生误差。将数据集按照约4∶1 的比例随机取884 张作为训练集和222张作为测试集。测试平台为CPU 为Core i7-9700K,GPU为单核GEFORCE RTX 3090 Ti。
单一的准确率指标难以全面反映模型的性能表现,为此定义如下3 个分指标:小偏差率为读数识别相对误差绝对值在1 个单位刻度范围内的图像数量与总图像数量之比;中偏差率为读数识别相对误差绝对值在1~2个单位刻度范围内的图像数量与总图像数量之比;大偏差率为读数识别相对误差绝对值高于2 个单位刻度的图像数量与总图像数量之比。定义平均绝对误差MAE(Mean Absolute Error)为测试集中预测值与真实值的绝对误差的平均值。
为了说明融合注意力机制的卷积神经网络识别指针式仪表读数的效果,本文设置了6 个对照组。其中,前5 个对照组是基于图像特征映射的读数识别方法,分别为基于HOG 特征的支持向量机(SVM)模型[22]、基于HOG 特征的随机森林(RF)模型[23]、基于卷积神经网络的模型(下文简称CNN 模型)、加入卷积注意力模块的卷积神经网络模型(下文简称CNN+CBAM 模型)、基于软区间分级回归方法的双路异构卷积神经网络模型(下文简称2-CNN 模型);第6 个对照组为基于仪表指针检测的深度学习方法,具体是表现优秀的基于U-Net 图像分割的模型(下文简称U-Net模型)[13]。
4.2 实验结果与分析
基于图A1 所示的仪表盘区域图像,本文模型及6个对照模型的识别结果对比如表1所示。表中,λMAE为MAE的值。
表1 指针式仪表读数识别结果对比Table 1 Comparison of reading recognition results of pointer meter
分析表中数据可以得到如下结论。
1)与其他基于图像特征映射的读数识别方法相比,本文模型的读数识别小偏差率、大偏差率、MAE指标均为最优,表明本文模型提取的图像特征质量更高,更适合映射仪表读数。其中,SVM、RF 这2 种机器学习模型的优势在于模型结构相对简单,识别消耗时间更少,但小偏差率、大偏差率、MAE 等指标均劣于以卷积神经网络为代表的深度学习模型。对比CNN+CBAM 模型与CNN 模型的识别结果可以发现,卷积注意力模块在不明显增加模型大小和识别耗时的情况下,能够提高读数识别小偏差率,降低大偏差率,减小平均绝对误差,说明了卷积注意力模块能够对模型提取的中间特征进行优化,改善了模型的整体性能。对比2-CNN 模型与CNN 模型的识别结果可以发现,由于采用分级回归方法减少了每一层级需要预测的类别数,因此大幅减少了全连接层的参数冗余,极大地简化了双路异构卷积神经网络模型体积,读数识别小偏差率、大偏差率、MAE 等指标也相对更好,说明了双路卷积神经网络的设计以及软区间分级回归的方式比堆叠全连接层直接回归的方式更优。
2)与基于仪表指针检测的读数识别方法相比,本文方法在小偏差率上虽然不如基于仪表指针检测的U-Net 深度学习算法,然而小偏差率、中偏差率的综合表现还是本文方法最优,且两者的MAE 指标非常接近,说明本文方法能够实现更高比例的仪表准确读数。同时,基于仪表指针检测的算法流程多、耗时长,识别总耗时为本文模型的26 倍,并且该算法模型体积大,约为本文模型体积的400 倍,部署难度非常大。因此,本文方法在仪表读数识别准确率、效率、部署难度中取得了较好的平衡。
5 结论
针对基于图像校准、指针拟合思路的指针式仪表图像读数识别方法存在的流程长、效率低、指针倾角计算容易存在偏差以及算法部署难度大等问题,本文提出了基于注意力的卷积神经网络模型,该模型具有以下特点:
1)构建了融合卷积注意力模块的双路异构卷积神经网络,强化了对仪表图像特征的提取,改善了提取特征的类型和分布,提高了仪表读数识别的准确率和效率;
2)采取了软区间分级回归的方式,大幅减少了模型的体积,使得模型适用性更广且容易部署在中小型机器内。
附录见本刊网络版(http://www.epae.cn)。