基于YOLOv3网络的电能表示数识别方法①
2020-01-15唐永红
龚 安,张 洋,唐永红
(中国石油大学(华东),青岛 266580)
1 引言
在电力行业中,传统电能表的示数信息采集大都采用人工抄表,但人工抄表工作繁琐,效率较低,因此智能自动抄表系统的出现迎合了时代的需要.近年来,许多数字图像处理方法已经被应用于电能表示数自动识别[1–5],一类是根据人工设计的特征进行定位和识别的方法[1–4],如张宗健使用边缘检测方法定位计数器目标区域,然后根据数字的笔画和形状特征进行数字识别[1];贝澄洁使用图像阈值处理方法定位计数器目标区域,然后根据投影法和数字的笔画特征进行数字识别[2].另一类是基于深度学习自动提取特征的定位和识别方法[5],如Rayson Laroca等使用YOLOv2-Tiny[6]网络定位计数器目标区域,并进行了CR-NET[7]、CRNN[8]等网络在数字识别部分的对比实验[5].基于人工设计的特征进行目标检测存在检测准确率低、训练耗时长等缺点,而基于深度学习的目标检测能够自动提取特征,有效提升检测精度,因此目前基于深度学习的目标检测得到了广泛应用[9,10].
因为YOLO网络检测速度快、准确率较高,所以为提升电能表示数识别的准确率,本文提出一种基于YOLOv3网络的电能表示数识别新方法.首先构建基于YOLOv3-Tiny网络的计数器定位模型定位计数器区域,然后构建基于YOLOv3[11]网络的计数器识别模型进行数字识别,实验结果表明本方法对电能表示数的识别具有更高的准确率.
2 YOLO网络的相关理论
本章主要介绍了YOLO网络检测的基本流程、网络训练过程和网络的结构单元.
2.1 YOLO网络检测的基本流程
基于YOLO网络的检测方法将特征提取、目标定位、目标分类统一于一个卷积网络中,将物体检测问题作为一个回归问题来解决,将测试图像输入完成训练的网络便能得到目标物体的位置和其所属的类别及其相应的置信度.YOLO网络检测的基本流程如图1所示.
图1 YOLO网络检测流程
具体流程如下:
(1)分辨率初始化:将原始图像的分辨率初始化为a×b,图像的通道数为n.
(2)卷积网络提取特征:将resize后的图像数据输入卷积网络,输出一个S×S×[(5+N)×B]的特征图,该特征图将图像划分为S×S个网格单元,每个网格单元输出B个预测框,每个预测框将输出4种信息,包括预测框的位置(x,y)、尺寸(w,h)、 置信度c以及预测不同类别的条件概率p1,···,pN,其中类别的数量为N.
预测框的置信度c用公式表示为:
其中,p(Object)表示应的网格单元是否存在目标(Object)的中心点,若存在,那么p(Object)=1,否则p(Object)=0;表示预测框和真实框面积的交并比;area(t)表示真实框的面积,area(p)表示预测框的面积.
(3)NMS处理删除冗余框:NMS (Non-Maximum Suppression)即非极大值抑制算法,对于预测框组成的集合 A ,采用下面的计算方式:选择具有最大置信度的预测框M,将其从A 集合中移除并加入到最终的检测结果D中,将A 中剩余预测框中与M的IOU大于阈值Nt的框从 A中移除,重复这个过程,直到A 集合为空.使用NMS算法将特征图1中的冗余框的置信度设置为0,生成特征图2.
(4)计算预测类别:预测框对于第i类的置信度分数si,用公式表示为:
其中,pi表 示当前预测框对应第i类的条件概率,c表示当前预测框的置信度.
预测类别取si最大时对应的类别i,预测框对应的预测类别用公式表示为:
2.2 YOLO网络的训练过程
YOLO网络的训练过程可分为4个步骤:
(1)由2.1节中得到特征图2中每个网格单元每个预测框的x,y,w,h,c,p1,···,pN.
(2)根据损失函数计算误差.
YOLO网络的损失函数=预测框和真实框的坐标尺寸误差+预测框和真实框的置信度误差+分类误差[6,11,12].
图2 网络基本结构单元
预测框与真实框的坐标尺寸误差loss1用公式表示为:
其中,λcoord表 示预测位置的系数,该值设置为5;判断第i个网格单元中第j个预测框是否负责目标o bj,与目标obj的真实框IOU最 大的预测框负责目标o bj,若负责预测,那么该值为1,否则为0;(wi,yi),(wi,hi)表示预测框位置和尺寸;表示真实框位置和尺寸.
预测框和真实框的置信度误差loss2用公式表示为:
其中,λnoobj表示网格内没有目标时的系数,该值设置为0.5;判断第i个 网格单元中第j个预测框是否不负责目标 o bj,若不负责,那么该值为1,否则为0;ci表示预测框置信度;表示真实框置信度.
类别条件概率误差loss3用公式表示为:
其中pi(C)表示第i个网格单元预测C类的条件概率,(C)第i个网格单元是C类的真实概率.
(3)根据误差计算卷积核中每个权重的梯度.
(4)应用基于梯度的优化算法更新权重.
2.3 网络基本结构单元
(1)CBL层:指集合了卷积操作、BatchNormal[13]操作和LeakyReLU激活操作的网络层.结构如图2(a)所示,Conv2d表示卷积操作,卷积核数量为a,大小为b×b,该操作使用权重组成卷积核在数字图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,具有稀疏交互、参数共享、等变表示等优点.
BN表示批标准化操作,该操作将特征规整为均值为0、方差为1的正态分布.可以加快收敛速度,缓解训练过拟合问题,增强模型泛化能力.
LeakyReLU是激活函数,公式如下:
其中,ai是(1,+∞)区间内的固定参数.
(2)最大池化层(Maxpool):用某一位置的相邻矩形区域内的最大值来代替网络在该位置的输出,该操作能提高计算速度和所提取特征的鲁棒性.
(3)上采样层(Upsample):通过双线性插值方法实现上采样操作.
(4)残差层[14]:将浅层网络特征和深层网络特征融合,有效解决了深度网络训练过程的退化问题,结构如图2(b)所示.
(5)CBL集合层:指集合了5个CBL层的集合.结构如图2(c)所示.
2.4 YOLOv3-Tiny 和YOLOv3网络
2.4.1 机制和性能
YOLOv3-Tiny网络以Darknet-Tiny网络为特征提取网络,使用Darknet-Tiny网络前7个CBL层和6个池化层,设计了两个不同尺度的特征图输出,并且通过上采样将两个不同分辨率的特征图进行了融合;通过聚类先验框尺寸,对每个尺度的输出给定3个先验框.
YOLOv3网络以DarkNet53网络为特征提取网络,使用DarkNet53网络前52个CBL层,存在有23个残差层结构,设计了3个不同尺度的特征图输出,并且通过上采样将3个不同分辨率的特征图进行了融合;通过聚类先验框尺寸,对每个尺度的输出给定3个先验框.
在COCO图像数据集的目标检测任务中,当真实框和预测框的IOU阈值为0.5时,YOLOv3-Tiny网络的mAP为33.1,FPS为220 f/s;YOLOv3网络的mAP为55.3,FPS为35 f/s.
2.4.2 适用场景
根据YOLOv3-Tiny和YOLOv3网络的结构和在COCO数据集上的性能表现,可以得出YOLOv3-Tiny速度较快,mAP较低,适用于图像分辨率高,目标种类少的简单场景;YOLOv3速度较慢,mAP较高,适用于图像分辨率低,目标种类多的复杂场景.
3 定位和识别模型
为排除电能表图像中无关信息的干扰,首先需要对计数器目标定位,然后裁剪计数器目标区域,最后进行计数器数字识别.根据相关理论和电能表计数器图像的特点,给出计数器定位和识别模型.
电能表图像较大,且目标区域单一,因此基于YOLOv3-Tiny网络构建计数器定位模型.为了提高定位的准确率,测试时将预测框的尺寸扩大为原来的1.1.倍.计数器图像较小,目标种类相对较多,因此基于YOLOv3网络构建计数器识别模型.为了避免同一个数字位置出现多个不同类别的预测框,测试时对NMS算法进行改进,在NMS算法中添加规则:如果存在任意两个预测框的IOU>0.6,那么将保留置信度最高的预测框,将其余预测框全部删除.
计数器定位和识别的流程如图3所示.
图3 定位和识别的流程
针对电能表图像宽高比特征,将输入的分辨率初始化为416×416;网络结构如图4所示.
针对计数器图像宽高比特征,将输入的分辨率初始化为416×128;网络结构如图5所示.
综上,计数器定位和识别的整体设计思路即使用基于YOLOv3-Tiny网络的单目标检测方法实现计数器定位,使用基于YOLOv3网络的多目标检测方法实现计数器识别.定位和识别模型的速度取决于输入图片的大小,网络的参数数量和结构;准确率取决于输入图片的质量,网络的训练是否充分等.
图4 YOLOv3-Tiny网络结构
4 实验分析
4.1 实验环境
实验的计算机配置和环境如下:CPU处理器为Intel(R)Core(TM)i7-6700K CPU @ 4.00 GHz×8;GPU处理器为NVIDIA GeForce GTX TITAN X;内存(RAM)为16.00 GB;操作系统为64 bit Windows10专业版;编程语言为C++;集成开发环境为Visual Studio2017;网络模型通过基于DarkNet的深度学习框架实现.
4.2 实验数据
计数器定位数据:本文所用数据集共含有2000张图片和对应的标签文件,选取数据集中的800张电能表图片作为训练集;从剩余1200张中选取100张图片作为验证集;从剩余的1100张中选取100张图片作为测试集.
计数器识别数据:将数据集中的原始图片按计数器位置标签裁剪生成计数器图片,选取裁剪生成800张计数器图片作为训练集.从剩余1200张中选取400张计数器图片作为验证集.将剩余的800张计数器图片作为测试集.
图5 YOLOv3网络结构
4.3 评价指标
4.3.1 定位模型的的评价指标评分S用公式表示为:
其中,S1表 示预测框和真实框的交并比的平均值,S2表示当IOU阈值=0.5时每张图像的定位计数器目标的准确率,N(True)表 示定位准确的数量,N(Total)表示在总目标数量,计数器检测中的验证集和测试集中的N(Total)均为100,评分S用于选择最优权重.
4.3.2 识别模型的评价指标
单个数字识别的准确率公式如下:
其中,N1(True)表 示预测识别的数字数量,N1(Total)表示总数字数量,验证集的N1(Total)=400×5=2000,测试集的N1(Total)=800×5=4000.
整个计数器识别的准确率公式如下:
其中,N2(True)表 示正确识别的计数器数量,N2(Total)表示计数器的数量,验证集的N2(Total)=400,测试集的N2(Total)=800.
4.4 实验过程
4.4.1 定位模型的实验过程
(1)配置训练参数:图像尺寸初始化为416×416×3;采用随机梯度下降法(SGD),每次迭代使用1个样本对参数进行更新;优化方案采用动量法,参数值=0.9;权重衰减正则项值=0.0005;学习率=0.001;迭代次数共50 000次;网络需要识别的物体种类数为1,因此最后一层卷积核数量n=(1+5)×3=18;开启多尺度训练,每经10批次训练强制改变输入图像大小进行训练;使用K-means聚类方法对训练集真实框的尺寸聚类获得先验框尺寸,配置先验框尺寸参数.
(2)训练网络:根据2.2节的训练过程训练网络,每迭代1000次保存权重文件.
(3)验证网络:设置IOU阈值=0.5,计算不同权重文件对验证集验证的评分S,选取最优权重W.
(4)测试网络:选择验证步骤所得的最优权重W对测试集进行测试,获取电能表图像中计数器的位置
4.4.2 识别模型的实验过程
(1)配置训练参数:图像尺寸初始化为416×128×3;采用小批量梯度下降法(MBGD),其中batch=64,sub=4,每次迭代使用64个样本对参数进行更新;优化方案采用动量法,参数值=0.9;权重衰减正则项值=0.0005;学习率=0.001;迭代次数共20 000次;网络需要识别的物体种类数为10,因此最后一层卷积核数量n=(10+5)×3=45;使用K-means聚类方法对训练集真实框的尺寸聚类获得先验框尺寸,配置先验框尺寸参数.
(2)训练网络:根据2.2节的训练过程训练网络,每迭代1000次保存权重文件.
(3)验证网络:设置IOU阈值=0.6,计算不同权重文件对验证集验证所得的单个数字识别准确率F1和整个计数器示数识别准确率F2,用于选择最优权重W.
(4)测试网络:选择验证步骤所得的最优权重W对测试集进行测试,获取计数器图像中的示数[a1,a2,a3,a4,a5] 以及每个数字ai的位置 [xi,yi,wi,hi].
4.5 实验结果
4.5.1 计数器定位的实验结果
将基于 YOLOv3-Tiny 网络的定位模型与基于 YOLOv2-Tiny网络的定位模型进行对比实验.
(1)验证结果:选取不同迭代次数对应的权重文件,对验证集进行验证的结果如图6所示.
图6 YOLOv2-Tiny与YOLOv3-Tiny验证集对比结果
(2)测试结果:根据验证集结果,YOLOv3-Tiny和YOLOv2-Tiny网络均在迭代次数48 000处对应权重验证评分较高,因此分别选择迭代次数48 000对应的权重进行测试,对测试集进行测试的结果如表1所示.
由表1可得,相比YOLOv2-Tiny网络,基于YOLOv3-Tiny网络的计数器定位模型的精度更高,当IOU阈值为0.5时,预测准确率达到95%.将预测框的尺寸扩大为原来的1.1倍,定位准确率达到100%.
4.5.2 计数器识别的实验结果
YOLO网络存在许多变体,其中较为成功的是CR-NET (Character Recognition NETwork)字符识别网络,该网络将YOLOv2-Tiny网络中的部分池化层改为卷积层,结构简单,参数量少,本文将基于YOLOv3网络的识别模型与基于CR-NET网络的识别模型进行对比实验.
表1 YOLOv2-Tiny与YOLOv3-Tiny测试集对比结果
(1)验证结果:选取不同迭代次数对应的权重文件,对验证集进行验证的结果如图7、图8所示.
图7 对单个数字识别的准确率验证集对比结果
图8 对整个计数器示数识别准确率验证集对比结果
(2)测试结果:根据验证集结果,CR-NET、YOLOv3网络分别在迭代次数15 000、9000时对应的权重验证准确率较高,因此选择上述两个权重进行测试,IOU阈值设置为0.6,对测试集进行测试的结果如表2所示.由表2可得,修改识别模型的NMS算法后提高了计数器整体识别的准确率;基于YOLOv3网络的计数器识别模型的准确率达到92.13%,相比CR-NET网络,准确率提升2.63%.
表2 两个网络的测试集对比结果
5 效果展示
5.1 计数器定位
定位效果展示如图9所示.
图9 计数器定位图片展示
5.2 计数器识别
(1)正确识别的示例如图10所示.
图10 正确识别图片
(2)错误识别的示例如图11所示.主要原因包括:像素点缺失,电表处于跳转状态,图片模糊等.
图11 错误识别图片
6 结束语
本文为提高电能表自动识别准确率,构建了基于YOLOv3-Tiny网络的计数器定位模型和基于YOLOv3网络的计数器识别模型.实验表明基于YOLO网络的模型对数字式电表的自动识别适用性较高,后续将研究基于YOLO网络的模型对指针式电表示数识别的问题.