《基于YOLOv5的指针式仪表自动读数方法研究》由会员分享,可在线阅读,更多相关《基于YOLOv5的指针式仪表自动读数方法研究(14页珍藏版)》请在金锄头文库上搜索。
1、 基于YOLOv5的指针式仪表自动读数方法研究 夏臻康,李维刚,2,田志强(1.武汉科技大学信息科学与工程学院,湖北武汉 430081;2.武汉科技大学冶金自动化与检测技术教育部工程研究中心,湖北武汉 430081)0 引言随着计算机技术的不断发展,计算机视觉等智能化技术被广泛应用到工业场景下各类仪表的检测与识别中1。其中指针式仪表以其结构简单、维护便捷和抗干扰能力强等特点,已成为工业场合下使用广泛的一类仪表2。由于该类仪表无法输出数字信号,只能通过人工进行示数读取3-4,而人工读数不但消耗大量劳动力且检测效率低5,并且由于不少工业场景中仪表所处环境复杂,存在无法通过人工进行读数的情况。因此,
2、研究指针式仪表准确、稳定的自动读数方法具有重要意义6。近年来,有大量国内外学者在指针式仪表检测与读数问题上进行了深入研究。文献7使用区域生长方法定位指针式仪表的刻度盘区域,并提出了一种改进中心点投影的方法来检测圆形比例区域,在仪表刻度不均匀时能适用。文献8提出采用随机样本一致性方法克服背景图像干扰的方案,并使用二值化阈值方法来分割指针区域以解决指针阴影问题。文献9提出了一种无先验知识的仪表自动检测与读数算法,通过椭圆检测和非极大值抑制检测表盘区域,结合分扇区选点算法、最大极值稳定区域算法等算法操作完成仪表读数,可解决对仪表先验知识不充足时无法读数的问题。上述文献所提方法虽然能实现对于指针式仪表
3、的自动识别,但主要基于传统机器视觉的检测算法与分割算法,图像在环境复杂时读数难度大,且图像处理步骤繁琐,影响读数精确度。随着深度学习的兴起,其应用显著提高了指针式仪表检测和读数的准确性。文献10提出了一种基于NiN(network in network)网络结构的仪表自动读数解决方案,能对不同模拟刻度的仪表进行高效检测,但这种方案的检测精度受环境影响较严重。文献11提出一种基于计算机视觉的指针式仪表自动检测与识别方法,该方法能根据检测到的仪表位置调整相机状态,再通过透视变换、霍夫变换等步骤得到最终仪表读数,但该方法对硬件要求较高,并且使用霍夫变换识别指针容易导致识别精度低。文献12引入Fast
4、er R-CNN检测表盘、指针位置,并使用图像分割的方法替代霍夫变换提高了检测指针的准确率,但是该方法的流程较多,在计算指针倾角的过程中容易积累误差。本文提出了一种基于目标检测的指针式仪表自动读数方法,此方法针对在指针式仪表检测困难时,读数精度会受到影响的问题,适用于仪表所处环境复杂的情形。该方法首先利用改进的YOLOv5算法对仪表表盘区域进行目标检测,提取表盘图像并进行分类;其次,针对检测到的仪表,对提取出的表盘区域做2次透视变换,以校正倾斜表盘;最后将无倾斜的表盘展开成矩形,再利用原始YOLOv5算法对指针位置进行识别,通过距离法计算结果,实现指针式仪表的自动读数。1 仪表自动读数方法本文
5、提出的指针式仪表自动读数方法的流程图如图1所示。该方法流程为:巡检机器人在进入到仪表检测模式后,相机获取存在仪表的当前视野图,通过仪表表盘检测、仪表倾斜校正、仪表指针检测及读数3个模块得到最终的仪表读数结果。图1 仪表自动读数方法流程1.1 基于改进YOLOv5算法的表盘检测目前成熟的目标检测算法有Faster-RCNN13、Mask-RCNN14、YOLO15、SSD16等,其中YOLO系列算法作为One-stage算法的典型代表,算法检测速度和精度较平衡,能够广泛地应用在各类工业场所,以解决实际问题。本文选择YOLOv5s网络进行改进,改进后的YOLOv5网络结构如图2所示。对于骨干网络,
6、在最后一个C3模块后面加上全局注意力模块(global attention mechanism,GAM)17,以强化网络提取能力;在颈部区域,新增尺寸为输入图像1/4的特征图,从而提升网络针对较小目标的特征挖掘能力18;最后,引入Decoupled-head解耦头19,以改进网络模型检测模块的分类和定位效果。图2 改进的YOLOv5网络结构图1.1.1 加入全局注意力模块在YOLOv5原始网络中,对每一层特征进行提取时给予同等的关注度,这种方法忽略了不同特征通道具有不同的重要度,将导致部分目标提取困难。针对此网络特征差异性敏感度较弱问题,本文在骨干网络中加入GAM模块,利用该模块对特征利用能力
7、强的优点,减少信息损失并且提高全局特征交互,模块概述图如图3所示。图3 全局注意力机制概述图给定输入特征图F1RCHW,中间状态F2和输出F3定义为:F2=Mc(F1)F1(1)F3=Ms(F2)F2(2)式中:Mc和Ms分别为通道注意力图和空间注意力图;表示元素乘法运算。通道注意力子模块使用三维排列来保留三维信息,并使用2层多层感知器(multi-layer perceptron,MLP)放大跨维的通道空间依赖关系。在空间注意子模块中,使用2个卷积层进行空间信息融合以关注空间信息,并删除了池化操作以进一步保留特性映射。因此,使用全局注意力模块能使网络目标提取能力更强。1.1.2 检测端优化在
8、原始YOLOv5网络中,使用3种不同尺寸的特征图检测不同大小的目标。而根据网络中使用特征金字塔网络(feature pyramid network,FPN)20的思想,经过深层次卷积后的特征图虽然拥有丰富语义信息,但在经过多次卷积会丢失掉目标的一些位置信息,影响较小目标的检测;浅层卷积后得到的特征图语义信息较少,但目标的位置信息却比较丰富。在一些工业场合中,部分仪表位置偏僻,导致采集到的仪表目标在图中占比较小。因此,本文在原始YOLOv5网络中增加一个4倍下采样过程,将通过该下采样过程后的原始图片特征送入后续特征融合网络,能得到新尺寸的特征图,此特征图具有较小感受野且位置信息较丰富。新增特征图
9、将位置信息向检测端传递,从而检测端能在4个尺度上进行目标检测,有利于提升对于较小目标的检测性能,以优化网络整体检测效果。1.1.3 引入解耦头(decoupled head)传统的YOLO系列网络在head部分采取的都是耦合头部(coupled head),而文献21表明,对于目标检测任务,分类与回归之间存在冲突,采用传统的耦合检测头会导致模型性能降低,YOLOX19算法采用解耦头方法,在目标检测任务上取得了较好效果,解耦头示意图如图4所示。本文引入解耦头替换原有耦合头部,解耦头经11卷积后,将通道维数减小至统一通道数,再接入2个平行的33卷积层,分别用于分类任务和定位、置信度任务,对于用于定
10、位和置信度任务的分支再使用2个平行的11卷积进行解耦,最终能使分类、定位和置信度检测分别采用不同的检测层。图4 解耦头示意图1.2 仪表倾斜校正利用改进YOLOv5网络可以在复杂环境下检测和提取目标表盘区域,并对仪表种类进行分类。而由于仪表表盘平面与相机平面一般存在角度偏差,所以提取出的表盘区域图像并不是圆形,而是具有倾斜角度的畸变图像。因此需要通过透视变换对待检测图像进行处理,将其修正为正面视角图像从而减小读数的误差。仪表倾斜校正模块主要包括利用AKAZE22算法进行关键点匹配后的次透视变换23和对一次透视变换后的图像进行椭圆拟合24后的二次透视变换。一次透视变换的作用是,将待检测图像校正成
11、为同模板图像一样的无倾斜图像;二次透视变换的作用是得到仪表圆心,并为展开提供中心,以及保证待检测图像校正为圆形,从而减小给后续步骤带来的误差。1.2.1 基于AKAZE算法的仪表透视变换首先,需要对每个类型的仪表,都提前获取一张居中且无倾斜的仪表表盘图像作为模板图像,且对模板图像上包括起始刻度点、终止刻度点在内的关键点进行标注并保存标注数据;接着,针对每张待读数的图像和提前获取到的模板图像,在做灰度化处理之后,经AKAZE算法进行特征点检测,并用双向匹配法匹配特征点,然后利用RANSAC25筛除图像中匹配误差较大的特征点,获得单应性矩阵M;最后,通过得到的矩阵M对待读数图像做透视变换,向模板图
12、像校正。(1)AKAZE算法。AKAZE算法包括3个步骤:构建非线性尺度空间、特征点检测及定位、M-LDB(modified-local difference binary)特征描述子生成。其中,AKAZE算法采用改进局部二值微分算法的M-LDB算法进行特征点描述,该算法利用非线性空间提取的梯度和强度信息,在旋转不变性和尺度不变性上均有较好的鲁棒性。因此,本文利用AKAZE算法能较好检测到待读数图像与模板图像中可以匹配的特征点。(2)RANSAC算法与透视变换。双向匹配后得到的匹配结果依旧存在错误匹配点,不筛除误匹配点会影响后续透视变换的效果,因此采用RANSAC算法剔除误匹配点。该算法是在已
13、得到匹配点的基础上,随机从中抽取4个点作为样本点,计算出单应性矩阵;然后计算所有匹配点与矩阵间的投影误差,若该误差小于阈值,则在剩余匹配点中选择1个点加入样本点,同时继续按此前方式进行计算比较,不断更换新的矩阵,直到找到最佳的单应性矩阵。透视变换则是利用此前找到的最佳单应性矩阵,将图像从当前平面投影至新的视平面,实现图像校正。1.2.2 基于椭圆拟合的仪表透视变换本步骤基于由AKAZE算法透视变换后得到的图像,因此将本次变换称为二次透视变换。由于通过一次透视变换是基于模板图像的透视变换,因此可用模板图像标注的关键点来拟合椭圆,利用拟合后椭圆的长短轴端点作为变换矩阵的计算依据,从而实现保证待匹配
14、图像向模板图像校正的目的,同时拟合椭圆后能得到表盘圆心,为表盘展开提供条件。椭圆拟合是用椭圆方程表示平面上点的分布,即找到一个使平面上点尽可能靠近该椭圆的圆。本文使用最小二乘法拟合表盘椭圆,求解出平面上椭圆的一般方程如式(3)所示。F(x,y)=Ax2+Bxy+Cy2+Dx+Ey+1=0(3)式中A、B、C、D、E为椭圆一般方程系数。根据透视变换原理,变换矩阵通过2个视平面中4个不同点对应的坐标值得到唯一解。因此,在得到拟合出的椭圆方程后,求解出椭圆长短轴端点作为变换矩阵计算依据,从而达到校正效果,此次变换如图5所示。图5 基于椭圆拟合的透视变换1.3 仪表指针检测及读数经过目标检测与倾斜校正
15、后,能得到圆形且无倾斜的指针仪表图像,通过获取指针位置并采用距离法就能得到仪表示数。仪表指针检测及读数主要分为表盘展开、指针目标检测和基于距离法的读数计算3个部分。1.3.1 表盘展开为了便于采用距离法进行仪表读数计算,需要利用极坐标变换26将表盘图像由圆形展开为矩形。在二次透视变换阶段,得到了表盘刻度区域的圆心,以该圆心为变换中心进行极坐标变换,将图像变换到极坐标系。极坐标变换表达式如(4)、式(5)所示:(4)(5)式中:、分别为极坐标系极半径和极角;xc、yc为变换中心;x0、y0为原坐标系中像素点的横纵坐标。得到展开图像后,由于极坐标展开的起点与圆形表盘刻度位置并不对应,通过圆形表盘刻
16、度起点、终点位置信息能得到极坐标变换后在矩形表盘上对应的位置信息,对图像进行重新拼接,获得最终只包含刻度所在区域的矩形表盘图像。1.3.2 指针目标检测和读数计算目前,对于指针位置的检测大多基于传统的图像处理技术,直接在截得的仪表表盘区域图像上或者在最原始的图像上,用传统图像处理方法定位仪表指针中轴线,此种方法往往需要对图像进行多步处理。本文得到矩形表盘图像后,则能用YOLOv5对指针进行目标检测,得到目标包围框,该包围框的中轴线则为指针尖所在的直线,此方法与常规方法相比,减少了原始图像中其他区域对指针中轴线定位过程的干扰。由于对指针的目标检测背景更加单一、目标更大,因此更好检测,本文选用原始YOLOv5网