在电力行业中, 传统电能表的示数信息采集大都采用人工抄表, 但人工抄表工作繁琐, 效率较低, 因此智能自动抄表系统的出现迎合了时代的需要. 近年来, 许多数字图像处理方法已经被应用于电能表示数自动识别[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) 分辨率初始化: 将原始图像的分辨率初始化为
(2) 卷积网络提取特征: 将resize后的图像数据输入卷积网络, 输出一个
预测框的置信度
$c = p\left( {\rm {Object}} \right){\rm{*}}IOU_{\rm {pred}}^{\rm {truth}}$ | (1) |
$IOU_{\rm pred}^{\rm truth} = \frac{{area\left( t \right) \cap area\left( p \right)}}{{area\left( t \right) \cup area\left( p \right)}}$ | (2) |
其中,
(3) NMS处理删除冗余框: NMS (Non-Maximum Suppression)即非极大值抑制算法, 对于预测框组成的集合
(4) 计算预测类别: 预测框对于第
${s_i} = {p_i} \times c$ | (3) |
其中,
预测类别取
$C = \arg\;\max\left( {{s_i}} \right)$ | (4) |
YOLO网络的训练过程可分为4个步骤:
(1)由2.1节中得到特征图2中每个网格单元每个预测框的
(2)根据损失函数计算误差.
YOLO网络的损失函数=预测框和真实框的坐标尺寸误差+预测框和真实框的置信度误差+分类误差[6,11,12].
预测框与真实框的坐标尺寸误差
$\begin{gathered} loss1 = {\lambda _{\rm{coord}}}\mathop \sum \limits_{i = 0}^{{S^2}} \mathop \sum \limits_{j = 0}^B l_{ij}^{\rm {obj}}\left( {2 - {w_i}{\rm{ \times }}{h_i}} \right) \\ \left[ {{{\left( {{x_i} - {{\hat x}_i}} \right)}^2} + {{\left( {{y_i} - {{\hat y}_i}} \right)}^2} + {{\left( {{w_i} - {{\hat w}_i}} \right)}^2} + {{\left( {{h_i} - {{\hat h}_i}} \right)}^2}} \right] \\ \end{gathered} $ | (5) |
其中,
预测框和真实框的置信度误差
$loss2 = \mathop \sum \limits_{i = 0}^{{S^2}} \mathop \sum \limits_{j = 0}^B l_{ij}^{\rm {obj}}{\left( {{c_i} - {{\hat c}_i}} \right)^2} + {\lambda _{\rm {noobj}}}\mathop \sum \limits_{i = 0}^{{S^2}} \mathop \sum \limits_{j = 0}^B l_{ij}^{\rm {noobj}}{\left( {{c_i} - {{\hat c}_i}} \right)^2}$ | (6) |
其中,
类别条件概率误差
$loss3 = \mathop \sum \limits_{i = 0}^{{S^2}} l_{ij}^{\rm {obj}}\mathop \sum \limits_{C \in classes} {\left( {{p_i}\left( C \right) - {{\hat p}_i}\left( C \right)} \right)^2}$ | (7) |
其中
(3)根据误差计算卷积核中每个权重的梯度.
(4)应用基于梯度的优化算法更新权重.
2.3 网络基本结构单元(1) CBL层: 指集合了卷积操作、BatchNormal[13]操作和LeakyReLU激活操作的网络层. 结构如图2(a)所示, Conv2d表示卷积操作, 卷积核数量为
BN表示批标准化操作, 该操作将特征规整为均值为0、方差为1的正态分布. 可以加快收敛速度, 缓解训练过拟合问题, 增强模型泛化能力.
LeakyReLU是激活函数, 公式如下:
${y_i} = \left\{ {\begin{aligned} {{x_i}}&,\;\;{{\rm {if}}\;{x_i} \ge 0}\\ {\frac{{{x_i}}}{{{a_i}}}},&\;\;{{\rm {if}}\;{x_i} < 0} \end{aligned}} \right.$ | (8) |
其中,
(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所示.
针对电能表图像宽高比特征, 将输入的分辨率初始化为416×416; 网络结构如图4所示.
针对计数器图像宽高比特征, 将输入的分辨率初始化为416×128; 网络结构如图5所示.
综上, 计数器定位和识别的整体设计思路即使用基于YOLOv3-Tiny网络的单目标检测方法实现计数器定位, 使用基于YOLOv3网络的多目标检测方法实现计数器识别. 定位和识别模型的速度取决于输入图片的大小, 网络的参数数量和结构; 准确率取决于输入图片的质量, 网络的训练是否充分等.
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张计数器图片作为测试集.
4.3 评价指标 4.3.1 定位模型的的评价指标
评分S用公式表示为:
$S = {S_1} + {S_2} \times 100$ | (9) |
${S_1} ={\rm mean}\left( \sum IOU_{\rm {{Pred}}}^{\rm{Truth}} \right)$ | (10) |
${S_2} = \frac{{N\left( {\rm{True}} \right)}}{{N\left({\rm {Total}} \right)}}$ | (11) |
其中,
单个数字识别的准确率公式如下:
${F_1} = \frac{{{N_1}\left({\rm {True}} \right)}}{{{N_1}\left( {\rm {Total}} \right)}} \times 100{\rm{\% }}$ | (12) |
其中,
整个计数器识别的准确率公式如下:
${F_2} = \frac{{{N_2}\left( {\rm {True}} \right)}}{{{N_2}\left( {\rm {Total}} \right)}} \times 100{\rm{\% }}$ | (13) |
其中,
(1)配置训练参数: 图像尺寸初始化为416×416×3; 采用随机梯度下降法(SGD), 每次迭代使用1个样本对参数进行更新; 优化方案采用动量法, 参数值=0.9; 权重衰减正则项值=0.0005; 学习率=0.001; 迭代次数共50 000次; 网络需要识别的物体种类数为1, 因此最后一层卷积核数量
(2)训练网络: 根据2.2节的训练过程训练网络, 每迭代1000次保存权重文件.
(3)验证网络: 设置
(4)测试网络: 选择验证步骤所得的最优权重
(1)配置训练参数: 图像尺寸初始化为416×128×3; 采用小批量梯度下降法(MBGD), 其中batch=64, sub=4, 每次迭代使用64个样本对参数进行更新; 优化方案采用动量法, 参数值=0.9; 权重衰减正则项值=0.0005; 学习率=0.001; 迭代次数共20 000次; 网络需要识别的物体种类数为10, 因此最后一层卷积核数量
(2)训练网络: 根据2.2节的训练过程训练网络, 每迭代1000次保存权重文件.
(3)验证网络: 设置
(4)测试网络: 选择验证步骤所得的最优权重
将基于 YOLOv3-Tiny 网络的定位模型与基于 YOLOv2-Tiny网络的定位模型进行对比实验.
(1)验证结果: 选取不同迭代次数对应的权重文件, 对验证集进行验证的结果如图6所示.
(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)验证结果: 选取不同迭代次数对应的权重文件, 对验证集进行验证的结果如图7、图8所示.
(2)测试结果: 根据验证集结果, CR-NET、YOLOv3网络分别在迭代次数15 000、9000时对应的权重验证准确率较高, 因此选择上述两个权重进行测试, IOU阈值设置为0.6, 对测试集进行测试的结果如表2所示. 由表2可得, 修改识别模型的NMS算法后提高了计数器整体识别的准确率; 基于YOLOv3网络的计数器识别模型的准确率达到92.13%, 相比CR-NET网络, 准确率提升2.63%.
5 效果展示 5.1 计数器定位
定位效果展示如图9所示.
5.2 计数器识别
(1)正确识别的示例如图10所示.
(2)错误识别的示例如图11所示. 主要原因包括: 像素点缺失, 电表处于跳转状态, 图片模糊等.
6 结束语
本文为提高电能表自动识别准确率, 构建了基于YOLOv3-Tiny网络的计数器定位模型和基于YOLOv3网络的计数器识别模型. 实验表明基于YOLO网络的模型对数字式电表的自动识别适用性较高, 后续将研究基于YOLO网络的模型对指针式电表示数识别的问题.
[1] |
张宗健. 基于数字图像识别的字轮电能表读数系统研究[硕士学位论文]. 北京: 北京交通大学, 2010.
|
[2] |
贝澄洁. 单相电表图像识别技术研究[硕士学位论文]. 南京: 南京理工大学, 2014.
|
[3] |
张晓颖. 电能表数字图像识别技术研究与实现[硕士学位论文]. 上海: 上海交通大学, 2007.
|
[4] |
凌璐. 基于图像处理的电能表示数识别技术. 中国电机工程学会电力系统自动化专业委员会2012年学术交流会论文集. 厦门, 中国. 2012. 1–5.
|
[5] |
Laroca R, Barroso V, Diniz MA, et al. Convolutional neural networks for automatic meter reading. Journal of Electronic Imaging, 2019, 28(1): 013023. |
[6] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu, HI, USA. 2017. 6517–6525.
|
[7] |
Silva SM, Jung CR. Real-time brazilian license plate detection and recognition using deep convolutional neural networks. Proceedings of 2017 30th SIBGRAPI Conference on Graphics, Patterns and Images. Niteroi, Brazil. 2017. 55–62.
|
[8] |
Shi BG, Bai X, Yao C. An end-to-end trainable neural network for image-based sequence recognition and its application to scene text recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(11): 2298-2304. DOI:10.1109/TPAMI.2016.2646371 |
[9] |
王潇天. 基于深度学习的目标检测研究与应用. 电子制作, 2018(22): 40-41, 86. DOI:10.3969/j.issn.1006-5059.2018.22.018 |
[10] |
吴帅, 徐勇, 赵东宁. 基于深度卷积网络的目标检测综述. 模式识别与人工智能, 2018, 31(4): 335-346. |
[11] |
Redmon J, Farhadi A. Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767, 2018.
|
[12] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 779–788.
|
[13] |
Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift. arXiv preprint arXiv:1502.03167, 2015.
|
[14] |
He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, NV, USA. 2016. 770–778.
|