基于快速区域卷积神经网络识别变形仪表图像的二次矫正方法

2023-08-06 03:39付波黄志斌权轶冯万璐
科学技术与工程 2023年21期
关键词:角点读数顶点

付波, 黄志斌, 权轶, 冯万璐

(湖北工业大学电气与电子工程学院, 武汉 430068)

目前,电网运维需要巡检,多数以人工巡检、抄表、记录、上传模式对电网的指针式电压表和电流表进行检定,存在着消耗大量的时间、人力以及误差率高等问题。在数字式仪表已经进入成熟阶段的情况下,更换数字仪表,能够缓解上述所提的问题。考虑到全面更换数字式仪表所带来的成本与时间以及数字式仪表容易受到电磁干扰、高温高压等环境因素的影响,在许多应用场合仍采用指针式仪表。

随着机器人的快速发展,电网巡检大量采用巡检机器人,对拍摄的仪表图像,利用神经网络与机器视觉识别仪表所在区域。文献[1]提出Mask-R-CNN 方法根据损失函数变化对算法优化从而达到数字仪表自动识别与读数。文献[2]改进预训练MobileNet V2网络模型与圆形 Hough变换相结合对圆形指针式仪表检测和识别。文献[3]使用YOLO v3目标检测算法,通过改进网络结构和损失函数等方式以保证网络的精度,快速检测表盘位置并将表盘从复杂环境分离。

但是现场工况复杂,巡检机器人的摄像头不能始终处于正视角度对工业仪表拍摄,且因拍摄角度的不同,存在着近大远小的视觉差异,导致仪表图像发生畸变,且其畸变程度以及方向也因拍摄角度的变化有所改变,进而严重影响对指针式仪表的精准读数。对于拍摄角度的矫正,文献[4]研究摄像头平面和仪表平面不平行导致的图像畸变问题,利用4个顶点坐标为先验知识,对其进行透视变换,得到可靠读数。文献[5]提出粗识别表盘中可能是刻度的区域,并细识别精确定位刻度,采取一种改进的圆心选取方法,适应不同角度下的计算。文献[6]将表盘特征信息编辑成信息帧并制成二维码粘贴在表盘上,从而获取表盘特征,还利用二维码的定位和校正图案,通过透视变换对图像进行倾斜校正,从而读取示数。文献[7]提出一种基于不变矩信息融合的温湿度计数字自动识别算法,利用Otsu法对图像分割并截取仪表,通过Hough变换对仪表进行校正,较好地消除实际仪表识别中的视觉误差。还有一些对于变形问题的研究,由于仪表最大量程较小,导致变形仪表与读数的准确性并没有多大关系;甚至有些研究在使用透视变换时,所需要顶点选取与定位避而不谈,导致使用透视变换时只能人工选取顶点,未能有效实现自动读数。

为此,针对上述问题展开研究。采用改进的快速区域卷积神经网络(faster region convolutional neural networks,Faster R-CNN)网络检测变形仪表图像中仪表所在的区域,对该区域进行裁剪,避免仪表畸变现象导致仪表难以识别的问题;利用图像处理技术将仪表的前景与背景进行分割;再通过矫正算法将畸变的仪表图像进行复原,提高读数准确率;最后提取细化指针并读取示数。

1 改进的Faster R-CNN的仪表识别

目标检测有许多方法,由于考虑到仪表识别过程中检测效果的问题,且无需考虑检测速度的要求,因此选择两阶段(two-stage)目标检测算法,其中检测效果较好的是Faster R-CNN算法[8-9]。

1.1 Faster R-CNN算法

Faster R-CNN算法[10]是以VGG16作为主干网络,用于提取输入图像的特征,利用区域生成网络(region proposal network,RPN)将特征图上每一个锚点固定选取9个候选感兴趣区域(region of interest,ROI),判断ROI是否包含前景,并计算与真实目标之间的偏差,将其边界回归生成建议框。通过感兴趣区域池化(ROI pooling)将综合建议框后提取建议特征图用于最后的全连接层输出的分类与回归检测框的精准坐标,如图1所示。

图1 Faster R-CNN结构图

1.2 改进的Faster R-CNN算法

考虑到工业生产过程中的仪表环境较为复杂,且所采集的仪表图像所占面积较小。原始的Faster R-CNN对该类仪表图像在提取纹理、边缘、轮廓等底层特征时有所损失。因此,在该网络中引入特征金字塔(feature pyramid network,FPN)[11]网络,增加了高层特征向低层融合的路径,并在多个尺度进行预测,能获取较准确的仪表信息与提高小目标检测的精准度,从而避免了图像因仪表体积较小而误检、漏检现象的发生。

该网络可分为两个过程,自下而上的过程可通过卷积网络计算提取特征(C2,C3,C4,C5);自上而下的过程是将所提取的特征P5进行上采样,再与C4连接,从而得P4,依次所得特征P3、P2(图2)。特征提取网络采用的是直接拼接的方式,在各尺度中特征权重相同,且融合的特征信息还包含背景噪声和其他干扰。随着网络层数的增加,模型将受到负面影响,模型的检测精确度将降低。而注意力机制(SENet)[12]可以在特征提取阶段中,不改变输入特征图特征结构的基础上,考虑每个通道的重要性,优化网络的学习能力与提高网络精准率。因此,将SENet模块融合Faster R-CNN框架的共享特征提取网络中,通过学习的方式自动获取每个特征通道的重要程度,并且根据该通道的重要程度突出有用的仪表特征,抑制复杂环境背景的无用特征,以此来使提取到的特征具有更强的表征能力。SENet模块利用全局平均池化压缩输入特征成一个1×1×C的向量。再利用两个全连接层(fully connected layers,FC)分别通过Relu激活函数与sigmoid激活函数对输入特征图进行降维至原来的1/16与恢复原来的维度,得到C个通道的权重,再与输入特征相乘,如图3所示。当权重较大时,该通道特征图的数值相应增大,从而调整各通道的关注度,减少无关特征对检测结果的影响,提高对仪表特征的注意力。

conv表示卷积层;UPSample表示上采样;predict表示预测特征图

H、W、C分别为特征图的高度、宽度、通道数

为提高准确性,将选取网络层次更深、计算量更少、错误率更低的深度残差网络ResNeXt50[13]代替原来的VGG16作为主干网络进行图像特征提取,如图4所示。

图4 基于 Faster R-CNN 的FPN与SENet融合的变形仪表检测模型

1.3 实验结果与分析

在自制数据及过程中,为解决数据不足和拍摄场景单一的问题,将1 028张仪表图像利用数据增强方法,包括水平翻转、旋转变换、色域变换以及Mosaic方法扩充至5 392张,其中畸变仪表图像有 4 195 张,并随机选取60%作为训练集,20%作为测试集,20%作为验证集,如图5所示。

图5 不同角度和体积较小的变形仪表部分图片

训练过程如图6所示,首先在COCO数据集上采用随机梯度法对搭建的模型进行预训练,对预训练好的模型权重初始化仪表检测模型,再利用自制仪表数据集进行训练,并在测试集上评估模型性能。

图6 模型训练流程图

学习率初始化为0.005,动量设置为0.9,权重衰减因子为0.000 5,迭代次数为100,每迭代5次以0.33倍速降低学习率值。训练时采用的batch_size大小为8,交并比(intersection over union,IoU)为0.5。

本文算法和经典Faster R-CNN算法进行检测效果对比,由图7、表1可知在分别利用ResNeXt50与加入FPN与SENet后,平均精准度(mean average precision,mAP)不断增加,由经典Faster R-CNN算法的75.51%至本文算法的94.45%,提高了18.94%。

表1 目标检测算法准确率比较

图7 变形仪表测试结果

由表2可知,本文算法因融合FPN网络,能够检测出图像中体积较小的仪表,使得漏检现象有所改善,漏检率降低至1.4%。且由于SENet模块的加入,突出仪表特征,使得误检率大大降低至0.4%。

表2 指针式仪表数量检测结果对比

2 矫正变形仪表图像并读取示数

为了提高变形仪表的读数精准率,采用先矫正再读数的方法,利用Harris角点检测对表盘顶点的定位,再按照所要求的顶点位置投影至新的平面,从而形成正视角度下的仪表图像,利用二次矫正对仪表精准化矫正,如图8所示。

图8 改进矫正仪表算法的流程框图

2.1 矫正仪表图像的表盘预处理

首先对已识别仪表的RGB色彩图片进行灰度化处理[14-15]得到灰度图像[图9(a)]。统计其灰度出现的频率,得灰度直方图[图9(b)]。找到直方图的第一个峰值、第二个峰值和这两个峰值之间的谷值,该谷值即该图像目标与背景分割的阈值[15],使其分割图像[图9(c)]。

图9 仪表图像预处理

2.2 表盘Harris角点检测与矫正

由于Canny边缘检测算子是一种多级检测算法,检测算法精确地找到图像中尽可能多的边缘,减少漏检和误检。

因此,首先对分割图像进行高斯滤波平滑,其次,分别在横、纵轴方向上对图片一阶求导,得到灰度值。使用非极大值抑制来寻找局部最大值,将非极大值对应的灰度值设置为0,剔除非边缘像素点。最后,使用上下阈值来检测边缘去除伪边缘,这样在双阈值的前提下,可以提高准确度。从而得到仪表的边缘图像[图10(a)]。

图10 仪表的顶点检测

角点检测算法[16]为了判断仪表图像的角点,利用卷积窗口滑动,以该点为中心的窗口在附近滑动。当滑动窗口在各个方向移动时,窗口内的像素灰度出现了较大的变化,就可能是角点。因此可以构建数学模型, 图像窗口平移(u,v)所产生的灰度变化E(u,v),计算公式为

(1)

式(1)中:w(x,y)为一种加权函数。

首先计算边缘检测图片中像素点(x,y)在水平和垂直方向上的一阶偏导数Ix和Iy,则(x,y)为目标像素点坐标;进行平滑滤波,获得像素点(x,y)的自相关矩阵M为

(2)

式(2)中:(u,v)为其他像素点相对于像素点(x,y)的偏移量;wu,v为指数加权窗口函数。

为了计算便利,利用角点相应函数R的大小来判定像素是否为角点。像素点(x,y)的角点响应值R计算公式为

R=det(M)-ktrace2(M)

(3)

式(3)中:det(M)为自相关矩阵M的行列式;trace(M)为自相关矩阵M的迹;k为常数,取值范围为 0.04≤k≤0.06。

重复以上步骤直至遍历完边缘检测所有的像素点。逐一对边缘检测图中所有像素点的角点响应值进行阈值判断,获得角点和角点位置,在角点中根据灰度变化率寻找出仪表的4个顶点,分别用红圈蓝圈黄圈绿圈表示[图10(b)]。

找到4个顶点后,进行透视变换[17],即从变形仪表图片的4个顶点(x,y)组成的四边形,获取新矩形的长h和宽w,投影到新矩形4个顶点(1,1)、(1,h)、(w,1)、(w,h)的指定平面上。

由直角坐标系下4个顶点坐标得到透视系数:即将四边形区域内所有点分别按照各自的透视系数进行透视变换。透视系数由式(4)得到。

(4)

式(4)中:m1~m8为透视系数;(xi,yi)为原图像4个顶点坐标;(Xi,Yi)为变换后图像4个顶点坐标。上述描述的将区域内的所有点分别按照各自的透视系数进行透视变换。

(5)

式(5)中:(u,v,w)为透视变换后的任意一点在直角坐标系的坐标;(x′,y′)为原图片上的灰度图中任意点在直角坐标系上的坐标;m1~m8为透视系数矩阵M的元素。最终达到对整幅图像的透视变换,得到正视角度的仪表,如图11所示。

图11 透视变换后的仪表

由于在透视变换矫正变形仪表图像中,长与宽根据的是变形仪表的变形程度确定的,导致矫正畸变后仪表长宽与正视仪表的长宽存在比例不相等,会出现拉伸现象,以及存在轻微的旋转现象。上述问题导致利用角度法计算示数时会降低精准度,因此,为了使读数更精准,进行了二次矫正。

2.3 表盘二次矫正

透视变换得到的拉伸与旋转的仪表图像,依旧导致读数存在误差。针对该问题,将利用仿射变换进行二次矫正,完成对拉伸、旋转仪表图像的复原工作,如图12所示。

图12 二次矫正逻辑框图

仿射变换是通过一系列的原子变换的复合来实现二维坐标到二维坐标之间的线性变换,现使用的是缩放、旋转变化,其约束分别如下。

(6)

(7)

对于拉伸仪表图片[式(6)],每个横纵坐标分别放大(缩小)至sx、sy倍。利用霍夫变换检测直线,获取仪表下边框直线的角度θ,通过角度判断,根据式(7)使图像绕圆点顺时针旋转θ,由此得到更为精准的正视的仪表图像,如图13所示。

图13 二次矫正后的仪表

2.4 读取示数

为利用角度法读取仪表示数,先提取指针,对图像预处理。遍历周长最大的连通区域,将表盘的外轮廓提取出来,利用Hough变换和细化算法检测直线,得到指针。

角度法需要人工预设最大刻度线Max、最小刻度线Min和最大夹角α,将指针指向最小刻度时的方向作为轴正方向,指针直线与轴正方向的夹角β,指针读数计算公式如式(8)所示,读取示数如图14所示。

图14 读取示数

(8)

2.5 实验结果与分析

在Intel Core i5 Window 10 系统下,以某工厂的电流表和电压表作为实验对象,采集任意时间段不同示数、不同倾斜角度拍摄的指针式仪表图片样本共211张,其读数对比如图15所示。由此可见,二次矫正后读数值与的示数相接近,而透视变化后的读数值则与仪表真实值存在一定的误差。最后利用对应的仪表读数真实值和采取两种方法分别得到的测试结果进行误差率计算,计算公式为

图15 211张变形仪表读数对比图

(9)

式(9)中:e为误差率;Vread为仪表读数;Vtrue为真实值。

仅用透视变化直接读数,其误差率为9.141%,而通过仪表矫正读取示数,其误差率为0.852%,极大地降低了读数误差,较精准地读取了仪表示数。

3 结论

提出了一种基于Faster R-CNN识别变形仪表图像的二次矫正方法,对于电网等现场工况复杂,仪表在图像中占据面积较小,同时摄像头会因拍摄角度的不同,导致仪表图像发生畸变难以识别的问题,利用改进的Faster R-CNN识别变形仪表,通过利用Mosaic数据增强的变形仪表数据集,以ResNeXt50作为主干网络,通过FPN使得高层特征与底层特征融合,能够识别因体积较小而出现漏检的仪表,再通过SENet模块使得共享特征层更能够突出仪表的特征,更好地检测出变形仪表。实验结果表明,对于传统的Faster R-CNN而言,本文算法在mAP性能比较上提高了18.94%。对于角度法读数因变形表盘所带来的识别率低下和读数不准确的问题,本文利用Canny边缘检测及Harris角点检测精准定位顶点与透视变换及二次矫正对变形表盘进行矫正,实验结果表明,本文方法使得变形仪表的识别与读数都得到了相应的改善,提高了自动识别与读数的精准度。

猜你喜欢
角点读数顶点
过非等腰锐角三角形顶点和垂心的圆的性质及应用(下)
关于顶点染色的一个猜想
基于FAST角点检测算法上对Y型与X型角点的检测
读数
读数
读数
读数
基于边缘的角点分类和描述算法
基于圆环模板的改进Harris角点检测算法
基于Harris角点和质量评价的图像篡改检测