CN111062282B - 基于改进yolov3模型的变电站指针式仪表识别方法 - Google Patents
基于改进yolov3模型的变电站指针式仪表识别方法 Download PDFInfo
- Publication number
- CN111062282B CN111062282B CN201911236982.3A CN201911236982A CN111062282B CN 111062282 B CN111062282 B CN 111062282B CN 201911236982 A CN201911236982 A CN 201911236982A CN 111062282 B CN111062282 B CN 111062282B
- Authority
- CN
- China
- Prior art keywords
- file
- function
- data
- training
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/10—Terrestrial scenes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising information on displays, dials, clocks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Abstract
本发明公开了一种基于改进YOLOV3模型的变电站指针式仪表识别方法,首先,采集仪表图像制作数据集并标定;之后,通过Mini Batch Kmeans算法对边界框进行聚类寻找最佳的聚类坐标;再修改基础YOLOV3的框架网络DarkNet‑53为轻量级网络MobileNet,以及更好的激活函数来加速训练过程;然后修改坐标预测的损失函数使模型更好的拟合仪表数据;最后,经过训练后的模型能更好的应用于变电站巡检机器人的检测识别任务,检测过程中能快速精确的获取小目标、多目标仪表盘进行后续处理。在保证准确率的前提下,提高检测速度,实时性增强,且对小目标、多仪表盘的检测效果大大提升。
Description
技术领域
本发明涉及计算机视觉领域和目标检测技术领域,尤其涉及一种无人值守的变电站内指针式仪表的检测识别方法。
背景技术
指针式仪表制造成本低,工业上应用范围广,结构简单,而且精度高比较容易维护等特点,广泛用于科学研究与大规模工业上的生产检测。这些精密仪表都需要定期进行校准来维持仪表的高精确度。以往指针式仪表盘检测的传统方法是通过人眼观察的位置,而这种方法可能会因个人原因和环境原因而导致误差甚至发生错误,对公司企业造成较大损失。首先,不同人的眼睛之间存在差异,而且人眼分辨率有限,无法达到远距离观测,更重要的是繁琐和重复的任务会受到主观因素干扰而影响结果。传统的仪表盘自动检测都是通过Hough变换等办法,但这些方法精确率不高,实时性低,对环境的变换和噪声比较敏感,对于精密仪表的检测方面仍不具有高可靠性,漏检率、误检率较大,容易造成经济等损失。因此需要一种能自动学习,且各方面都比较优秀的方法来提取清晰准确的仪表盘,进行后续等处理。
随着近年来随着深度学习发展,已经有很多学者在用神经网络在解决目标检测识别方面类似的问题,且已经取得不错的成效。随着2012年卷积神经网络的迅猛发展,深度学习对老问题的解决提供了其他思路。在研究无人值守变电站环境下,巡检机器人对指针式仪表的识别方面,使用目标检测可以使各项指标显著提高。深度学习不但可以使检测精确度和实时性大大提高,具有更大的鲁棒性且极大提升工作效率,节约人力成本而提高自动化水平。YOLOV3算法作为目标检测算法集大成制作,到目前为止速度和精度在业界都非常拔尖,通过融合各种先进算法的优点,在目标检测中取得了令人满意的成绩。可是传统YOLOV3训练耗时过长,对硬件消耗较大,且对多目标、小目标的检测效果不佳。
发明内容
本发明要解决的技术问题是:提供一种基于改进YOLOV3模型的变电站指针式仪表识别方法,在保证准确率的前提下,提高检测速度,实时性增强,且对小目标、多仪表盘的检测效果大大提升。
为解决上述技术问题,本发明采用如下技术方案:
一种基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于包括如下步骤:
(1)利用摄像装置取得视频流数据或图像数据,建立指针式仪表数据集,并使用python网络爬虫对数据集进行扩充,使用翻转、旋转、裁剪、缩放方式进行数据增强,后再使用图像标注工具LabelImg对图像中的仪表盘进行标注;
(2)对基础YOLOV3模型的先验框anchor的Kmeans聚类方式进行改进,使用经过Kmeans++初始化后的Mini Batch Kmeans算法替代Kmeans来加速聚类时间,对原始先验框大小进行聚类,快速得到比原始先验框坐标更为精确的先验框坐标;
(3)修改基础YOLOV3模型的框架网络DarkNet-53为轻量级网络MobileNet;
(4)将修改后的网络框架中的激活函数Relu替换为Leaky Relu函数和ELU函数;
(5)改进基础YOLOV3模型中坐标误差,得到改进损失函数loss;
(6)使用改进后的YOLOV3模型对图像数据进行训练,直至日志文件中损失函数loss不再降低,得到模型重新生成的权重文件,并使用该重新生成的权重文件检测变电站指针式仪表的仪表盘,进行自动检测。
进一步,步骤(1)中,包括如下步骤:
步骤S11:制作数据集:获取实地拍摄的变电站指针式仪表图像集,并使用python网络爬虫对数据集进行扩充,并使用翻转、旋转、裁剪、缩放方式进行数据增强,得到指针式仪表数据集,最后使用LabelImg对图像进行标注,得到与图片对应的PASCAL VOC格式的.xml文件;
步骤S12:数据存放:在官方YOLOV3文件夹根目录下设有含数据集包的文件夹VOC2007,VOC2007中含有三个子文件夹分别为Annotations、ImageSets、JPEGImages,其中,JPEGImages文件夹中存放有用于训练的指针式仪表全部数据集图片;Annotations文件夹中存放通过LabelImg标注后、对应每张图片的.xml文件;ImageSets中有一个子文件夹Main,里面存放训练集、交叉验证集、测试集的图片序号信息;
步骤S13:文件格式转换:使用YOLOV3框架中自带的voc_annotation.py文件将Annotations文件夹里标注得到.xml文件转换成YOLO形式的可应用文件.txt文件存于根目录中;
步骤S14:将原数据集与Annotations文件夹里标注得到的对应图片的.xml文件和Main文件夹里的.txt文件按照PASCAL VOC数据集格式进行存放与处理,且数据集序号打乱。
进一步,步骤(2)中,Mini Batch Kmeans聚类对象为数据集中的训练集,步骤(2)具体包括如下步骤:
步骤S21:修改Kmeans函数:在根目录中的Kmeans.py文件中修改程序,使用MiniBatch Kmeans算法拟合数据快速找到大小合适且数量与数据集相匹配的先验框;
步骤S22:使用Mini Batch Kmeans算法对数据集中的训练集进行聚类,每次随机抽取练集中的子集,具体步骤如下:
1)随机拆分训练集为6份,首先抽取第一份训练集,使用Kmeans聚类算法构建出K个聚簇点的模型;
2)继续抽取训练数据集中的下一份训练集样本的数据,并将其添加到模型中;分配给距离最近的聚簇中心点;
3)更新聚簇的中心点坐标,每次更新都只用抽取出来的部分数据集;
4)循环迭代2)和3)直到中心点坐标稳定且已达到迭代次数,停止计算操作。
步骤S23:根据肘部法则得到先验框,K=9时聚类得到尺寸大小合适的精确先验框,即最后选取锚框数量为9个;使用得到的9个精确的先验框的坐标替换掉官方YOLOV3文件夹根目录下的配置文件.cfg中的原先验框,进行后续的训练操作。
进一步,步骤(3)中用MobileNet网络替换Darknet-53网络的替换方式如下:
步骤S31:修改框架的函数:修改基础YOLOV3模型的根目录下的yolo3文件夹中的model.py文件,该文件为原YOLOV3系统的Darknet-53的网络框架结构文件,在该文件中修改框架的神经网络,修改卷积操作中各层数的yolo_body函数,其中特征图feature map的尺寸提取及其处理均在函数中完成;
步骤S32:对卷积做处理:MobileNet网络框架的每个卷积层后都由Batch Norm进行归一化,抽出其中9、14、24层特征图来做训练与检测;最后一层则是用softmax进行分类。
进一步,步骤(3)中框架网络替换为MobileNet,但是总体训练检测阶段使用的特征图的大小依旧是和基础YOLOV3模型相同52×52、26×26、13×13不变。
进一步,步骤(4)中Leaky Relu函数的数学表达式为:
其中是a是(1,∞)区间内的固定参数,x为输入数据的分布点集合。
ELU函数的数学表达式为:
其中a为大于0的常数,x为输入数据的分布点集合。
进一步,步骤(4)中激活函数Relu替换为Leaky Relu和ELU函数包括如下步骤:
在model.py文件中,在批量归一化BatchNormalization后面使用写好的LeakyRelu函数和ELU函数,替换掉原来的Relu激活函数;即前半部分卷积使用ELU函数加速训练过程,后半部分使用Leaky Relu函数增加模型平稳性。
进一步,步骤(5)中,损失函数loss包括三部分之和,一部分是预测边界框与真实边框宽高部分的损失函数,一部分是真实边框和预测边框的交并比的大小,另一部分是选定目标属于某一类别预测概率值与真实概率值的二元交叉熵公式。
进一步,步骤(5)中,预测边界框与真实边框宽高部分的损失函数表示为真实坐标与预测坐标平方的差值比上真实值的平方,之后用双曲正切非线性映射函数tanh对坐标误差进行压缩,减小预测框过大而产生的误差,使预测框更加精确检测出仪表圆盘。
进一步,步骤(5)中的损失函数中边界框预测的损失部分,为避免真实值做分母会出现NAN的情况,需要在宽高损失的分母上加常数1,避免相除为无穷大。
进一步,步骤(6)包括如下步骤:
步骤S61:训练得到模型:使用GPU运行更改后的训练文件train.py,用tensorboard运行日志文件直到损失函数loss不再降低或无下降趋势时停止训练,得到模型生成的权重文件;
步骤S62:对指针式仪表进行检测:使用权重文件用来做后续的检测,使用摄像头取得的视频流数据或图像数据;输入到完整的改进后的YOLOV3模型卷积神经网络中,通过归一化和非极大值抑制筛选出唯一预测边框,最终会在检测图像中得到将指针式仪表框出的矩形预测框、仪表类型以及置信度的文字标识。
在优选的实施方案中,因指针式仪表检测模型只需要在获取的图像中检测到仪表盘,不具体划分仪表盘类别,且暂不进行后续处理。
本发明至少包括一台计算机设备,该计算机设备包含有显卡、处理器和内存条、存储器,并在显卡上批量处理图片进行训练,使用处理器运行改进YOLOV3的程序来执行变电站指针式仪表的检测任务。
与原始版本的基础YOLOV3检测算法相比较,本发明公开了一种基于改进YOLOV3的变电站指针式仪表检测与识别方法,首先,采集仪表图像制作数据集并标定;之后,通过Mini Batch Kmeans算法对边界框进行聚类寻找最佳的聚类坐标;再修改基础YOLOV3的框架网络DarkNet-53为轻量级网络MobileNet,以及更好的激活函数来加速训练过程;然后修改坐标预测的损失函数使模型更好的拟合仪表数据;最后,经过训练后的模型能更好的应用于变电站巡检机器人的检测识别任务,检测过程中能快速精确的获取小目标、多目标仪表盘进行后续处理。
本发明的有益效果是:本发明使用轻量级网络MobileNet来替代DarkNet-53网络,大大加速网络训练时间,提高精确度的同时大幅度提高实时性;使用经过Kmeans++初始化后的Mini Batch Kmeans算法替代Kmeans来加速聚类时间,来应对大量数据集的锚框anchors选择,主要作用是更快寻找到更合适的预测矩形框来检测仪表图像;使用改进的损失函数,减小损失率,提升系统对小目标、多目标仪表盘的检测效果。本发明不仅可以实现无人值守的变电站中的巡检机器人的指针式仪表自动检测任务,在各项指标都提升的同时,对小目标、多目标的检测识别效果得到提升。
附图说明
图1是本发明基于改进YOLOV3模型的变电站指针式仪表识别方法的整体流程图;
图2是本发明基于改进YOLOV3模型的变电站指针式仪表识别方法中的聚类选取先验框(锚框)例图;
图3是本发明基于改进YOLOV3模型的变电站指针式仪表识别方法中的MobileNet网络框架图;
图4是本发明基于改进YOLOV3模型的变电站指针式仪表识别方法中的训练过程流程图;
图5是本发明基于改进YOLOV3模型的变电站指针式仪表识别方法中的检测过程框架图。
具体实施方式
下面将结合附图和本发明实施例中的技术方案进行详细的描述说明。
如图1基于改进YOLOV3模型的变电站指针式仪表识别方法整体流程图所示,包括创建数据集,聚类,构建新框架网络,并使用新的损失函数训练网络进行训练,最后快速检测得到结果。
本发明基于windows10的64位系统下的Anaconda Prompt控制台环境下,以及3.6版本的python。方案中所有的辅助函数以及原版YOLOV3结构均基于2.2.1版本keras框架下运行,激活函数、机器学习算法均属于keras可调用库函数。
本发明的方法具体包括以下几个步骤:
步骤S1:利用摄像装置(如巡检机器人摄像头)取得视频流数据或图像数据,建立创建PASCAL VOC格式指针式仪表数据集;并使用python网络爬虫对数据集进行扩充,使用翻转、旋转、裁剪、缩放方式进行数据增强,后再使用图像标注工具LabelImg对图像中的仪表盘进行标注;
步骤S11:建立数据集文件夹:根目录下建立总文件夹名为VOC2007,文件夹中包含有三个子文件夹,分别为Annotations、ImageSets、JPEGImages,其中JPEGImages文件夹中存放有用于训练的指针式仪表数据集,数据集通过python网络爬虫与实地拍摄,经过数据增强为最终数据集,且数据集已经扩充和打乱,序号为乱序,图片序号只能是英文加数字,图片格式不做要求,以此避免过拟合。Annotations文件夹里存放为标注后对应每张图片的.xml格式文件,里面保存有各图片中对应的指针式仪表类别与位置坐标信息。ImageSets中有一个子文件夹,名称为Main,里面存放有4个.txt文件,其中train.txt、val.txt、test.txt为划分的训练集、交叉验证集、测试集的图片序号。
步骤S12:文件格式转换:使用YOLO框架中自带的voc_annotation.py文件将PASCAL VOC格式的文件转换成YOLO形式的可应用文件.txt文件。
步骤S2:使用Kmeans++初始化的Mini Batch Kmeans算法来进行聚类选择先验框anchors。具体操作步骤为:
步骤S21:修改Kmeans函数:在根目录中Kmeans.py文件中修改程序,使用MiniBatch Kmeans算法拟合数据,使算法能更快速找到合适大小数量的先验框。Mini Batch是指每次训练算法时随机抽取的数据子集,Mini Batch Kmeans这种聚类模型是能在保持聚类准确性下还能大幅度降低计算时间,它采用分小批量Mini Batch的方法划分数据子集,以此减少计算时间,同时仍试图优化目标函数,采用这些随机选取的数据进行训练,极大的减少了计算与聚类算法收敛的时间,这适用于当数据集量与类别数非常大的时候做聚类时,选用通过Kmeans++初始化之后的Mini Batch Kmeans算法能提升精度的情况下大大加速聚类时间。
步骤S22:Mini Batch Kmeans算法具体步骤如下:
1)随机拆分训练集为6份,首先抽取第一份训练集,使用Kmeans聚类算法构建出K个聚簇点的模型。
2)继续抽取训练数据集中的下一份训练集样本的数据,并将其添加到模型中。分配给距离最近的聚簇中心点
3)更新聚簇的中心点坐标(每次更新都只用抽取出来的部分数据集)
4)循环迭代第二步和第三步操作,直到中心点坐标稳定且已达到迭代次数,停止计算操作。
步骤S23:根据肘部法则得到先验框:由法则可知K=9时聚类得到最合适的先验框,使用得到的9个准确的先验框的坐标替换掉原yolo文件夹里的配置文件cfg中的原先验框,进行后续的训练操作。图2聚类选取先验框(锚框)例图为3种先验框的尺寸在一张特征图缩略原图上的显示,图中最外的点线虚线框为聚类得到的先验框,位于中间的黑实线框是真实边框(ground truth),最内的双线框是对象中心点所在的网格。
步骤S3:用MobileNet网络替换Darknet-53网络。具体替换方式如下:
步骤S31:修改框架的函数:在YOLOV3的根目录下的yolo3文件夹中,有model.py文件,该文件为原YOLOV3系统的Darknet-53的网络框架结构文件,在文件中修改框架的神经网络,修改卷积操作中各层数的yolo_body函数,其中特征图feature map的尺寸提取及其处理均在函数中完成。MobileNet的主要优点是基于Depthwise Separable Convolution(深度可分离卷积),它将常用的标准版卷积进行分解,变成深度卷积和1x1的逐点卷积,其中深度卷积针对每个单输入进行单滤波器滤波,后用逐点卷积的方式结合深度卷积得到的输出,这种分解方式能大幅度减小模型的大小,减少计算量。
步骤S32:对卷积做处理:图3中的MobileNet网络框架图所示是Mobilenet的框架图,共有27层卷积层,每个卷积层后都有Batch Norm进行归一化,使对仪表图像的输入变化或者噪声有更佳的鲁棒性。抽出其中9、14、24层特征图来做训练与检测。最后一层则是用softmax进行分类,MobileNet在逐点卷积上花费的计算时间占总时间的95%,并且其中的参数量占总参数量的75%,而全连接层包含了大约25%的参数。对于不同的MobileNet卷积后的特征图,本发明选用和原版YOLOV3相同的52×52、26×26、13×13三个尺寸不变,每个特征图配有3个不同尺寸的anchor box,在三种特征图尺寸中进行训练与检测。
步骤S4:激活函数Relu替换为Leaky Relu和ELU函数。具体操作为:
步骤S41:文件中激活函数修改:在model.py文件中,在批量归一化BatchNormalization后面使用写好的Leaky Relu和ELU函数,替换掉原来的Relu激活函数。两种函数,效果差异不大,本发明前半部分卷积使用ELU函数加速训练过程,后半部分使用Leaky Relu函数增加模型平稳性。这里我们选用Leaky Relu和ELU代替原来的Relu激活函数是因为:函数在左侧的负值赋予非零的斜率,这样不仅能避免或缓解梯度消失和梯度爆炸,而且能极大程度加速训练过程,使收敛速度加快。
步骤S42:两个激活函数公式:Leaky Relu的数学表达式为:
这里是为了让负数区域不在饱和死掉,且负半轴斜率都是确定的,其中是a是(1,∞)区间内的固定参数。
ELU的数学表达式为:
公式中的ELU输出均值接近零,且有负数饱和区域,从而对噪声有一些鲁棒性。不过,这个函数需要计算exp,从而计算量上比Relu更大一些。
步骤S5:改进YOLOV3中坐标误差的损失函数。具体操作为:
步骤S51:预测框损失函数修改:预测的边界框(Bounding Box)大小通常与真实边框(Ground Truth)有差距,而两者之间在位置坐标上的误差即为边界框的预测误差,预测坐标一般有4个,对于在特征图(feature map)上的预测,一副图往往被切分成S×S个网格的cell,根据坐标偏移量采用了SSE(平方和距离误差损失函数)来计算。坐标计算如式(5)所示:
由于网络规范化目标的坐标,因此生成的坐标的值都在[0,1]之间。自由场景下采集到的图像可能尺寸大小不一,使YOLOV3检测小目标的效果会受到影响,因此,本发明对于宽高部分的损失函数的改进采用了:预测值和真实值的平方和作为损失。
改进损失函数公式为(6),使用真实宽高与预测宽高平方的差值比上真实值的平方,这是由于较大目标的误差相对较小目标的误差对最终的损失值影响更小,若损失函数不变,则损失函数难以下降,对小目标检测结果较差。最后发明在loss1后分别对加上双曲正切非线性映射函数tanh来减小预测框过大而产生的误差,使预测框更加精确的检测出仪表圆盘。
式中W1是仪表类针对图像特征的参数矩阵,bi是偏差向量,其中/>取值范围为[-1,1]。
步骤S52:置信度计算(Confidence Prediction):有两个因素可以帮助计算置信度。首先,判断该区域是否具有预测目标,然后计算真实边框和预测边框的交并比(IOU)的大小。这两者的产物是置信度,置信度预测如公式(8)所示:
Ci和分别表示第i个单元格(cell)中存在目标的预测的和真实的置信度。这是每个单元格(cell)对标注的各个类别的置信度得分(class-specific confidencescores),公式中既包含了边界框的准确率,也包含了预测的类别信息等。
步骤S53:类别预测(Class Prediction):实际生活中一个目标会属于多个类别和标签,简单普通的场景可能边界框差异大,距离大,但是在一些复杂的环境下,同一个目标属于多个类的可能性是非常高的(比如多类目标重叠)。YOLOV3采用logistic回归代替softmax对每个类别做一次二分类是非常有效的,主要用sigmoid函数将输入约束在0-1之间,达到指定的约束即为该类,二元交叉熵公式如公式(9)所示:
pi(c)和分别是第i个cell中的选定目标属于某一类别预测的与真实的概率值。
三个loss相加成了最终模型的损失函数。图4训练过程流程图,修改了框架后的算法使用FPN与Mini Batch Kmeans聚类得到锚框等步骤后,可以通过多尺度训练让网络学习目标在图像的位置与类别了。依照以上方式进行模型训练,得到模型最终的各参数。
步骤S6:改进后的YOLOV3模型对数据进行训练与对变电站指针式仪表进行实地检测:
步骤S61:训练得到模型:使用GPU运行更改后的训练文件train.py,用tensorboard运行日志文件直到loss不再降低或无下降趋势时停止训练,得到模型生成的权重文件。使用权重文件用来做后续的检测,使用变电站巡检机器人摄像头取得的视频流数据或图像数据。
步骤S62:对指针式仪表进行检测:图5检测过程框架图为指针式仪表的检测流程图,其中图片尺寸为416×416,输入到完整的卷积神经网络中,通过归一化和非极大值抑制(NMS)得到最终的矩形预测边框将指针式仪表框出,预测结果即预测图象处会出现相应的仪表类型以及置信度的文字标识。
本发明提出的一种基于改进的YOLOV3算法的变电站指针式仪表检测识别有较高的精度与速度,能够满足变电站等工业上的实际需要,提高自动化水平。
以上实施例具体描述了本发明的技术构想,对于本领域的普通技术人员来说,凡是按照本发明基础上提出的技术构想,在本发明技术方案上所做的任何改动,包括替换、修改、变形,都属于本发明的保护范围之中。
Claims (7)
1.一种基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于包括如下步骤:
(1)利用摄像装置取得视频流数据或图像数据,建立指针式仪表数据集,并使用python网络爬虫对数据集进行扩充,使用翻转、旋转、裁剪、缩放方式进行数据增强,后再使用图像标注工具LabelImg对图像中的仪表盘进行标注;
(2)对基础YOLOV3模型的先验框anchor的Kmeans聚类方式进行改进,使用经过Kmeans++初始化后的Mini Batch Kmeans算法替代Kmeans来加速聚类时间,对原始先验框大小进行聚类,快速得到比原始先验框坐标更为精确的先验框坐标;
(3)修改基础YOLOV3模型的框架网络DarkNet-53为轻量级网络MobileNet;
(4)将修改后的网络框架中的激活函数Relu替换为Leaky Relu函数和ELU函数;
(5)改进基础YOLOV3模型中坐标误差,得到改进损失函数loss;
(6)使用改进后的YOLOV3模型对图像数据进行训练,直至日志文件中改进损失函数loss不再降低,得到模型重新生成的权重文件,并使用该重新生成的权重文件检测变电站指针式仪表的仪表盘,进行自动检测;
步骤(2)中,Mini Batch Kmeans聚类对象为数据集中的训练集,步骤(2)具体包括如下步骤:
步骤S21:修改Kmeans函数:在根目录中的Kmeans.py文件中修改程序,使用Mini BatchKmeans算法拟合数据快速找到大小合适且数量与数据集相匹配的先验框;
步骤S22:使用Mini Batch Kmeans算法对数据集中的训练集进行聚类,每次随机抽取练集中的子集,具体步骤如下:
1)随机拆分训练集为6份,首先抽取第一份训练集,使用Kmeans聚类算法构建出K个聚簇点的模型;
2)继续抽取训练数据集中的下一份训练集样本的数据,并将其添加到模型中;分配给距离最近的聚簇中心点;
3)更新聚簇的中心点坐标,每次更新都只用抽取出来的部分数据集;
4)循环迭代2)和3)直到中心点坐标稳定且已达到迭代次数,停止计算操作;
步骤S23:根据肘部法则得到先验框,K=9时聚类得到尺寸大小合适的精确先验框,即最后选取锚框数量为9个;使用得到的9个精确的先验框的坐标替换掉官方YOLOV3文件夹根目录下的配置文件.cfg中的原先验框,进行后续的训练操作;
步骤(3)中用MobileNet网络替换Darknet-53网络的替换方式如下:
步骤S31:修改框架的函数:修改基础YOLOV3模型的根目录下的yolo3文件夹中的model.py文件,该文件为原YOLOV3系统的Darknet-53的网络框架结构文件,在该文件中修改框架的神经网络,修改卷积操作中各层数的yolo_body函数,其中特征图feature map的尺寸提取及其处理均在函数中完成;
步骤S32:对卷积做处理:MobileNet网络框架的每个卷积层后都由Batch Norm进行归一化,抽出其中9、14、24层特征图来做训练与检测;最后一层则是用softmax进行分类;
步骤(3)中框架网络替换为MobileNet,但是总体训练检测阶段使用的特征图的大小依旧是和基础YOLOV3模型相同52×52、26×26、13×13不变。
2.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(1)中,包括如下步骤:
步骤S11:制作数据集:获取实地拍摄的变电站指针式仪表图像集,并使用python网络爬虫对数据集进行扩充,并使用翻转、旋转、裁剪、缩放方式进行数据增强,得到指针式仪表数据集,最后使用LabelImg对图像进行标注,得到与图片对应的PASCAL VOC格式的.xml文件;
步骤S12:数据存放:在官方YOLOV3文件夹根目录下设有含数据集包的文件夹VOC2007,VOC2007中含有三个子文件夹分别为Annotations、ImageSets、JPEGImages,其中,JPEGImages文件夹中存放有用于训练的指针式仪表全部数据集图片;Annotations文件夹中存放通过LabelImg标注后、对应每张图片的.xml文件;ImageSets中有一个子文件夹Main,里面存放训练集、交叉验证集、测试集的图片序号信息;
步骤S13:文件格式转换:使用YOLOV3框架中自带的voc_annotation.py文件将Annotations文件夹里标注得到.xml文件转换成YOLO形式的可应用文件.txt文件存于根目录中;
步骤S14:将原数据集与Annotations文件夹里标注得到的对应图片的.xml文件和Main文件夹里的.txt文件按照PASCAL VOC数据集格式进行存放与处理,且数据集序号打乱。
3.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(4)中Leaky Relu函数的数学表达式为:
其中是a是(1,∞)区间内的固定参数,x为输入数据的分布点集合;
ELU函数的数学表达式为:
其中a为大于0的常数,x为输入数据的分布点集合。
4.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(4)中激活函数Relu替换为Leaky Relu和ELU函数包括如下步骤:
在model.py文件中,在批量归一化BatchNormalization后面使用写好的Leaky Relu函数和ELU函数,替换掉原来的Relu激活函数;即前半部分卷积使用ELU函数加速训练过程,后半部分使用Leaky Relu函数增加模型平稳性。
5.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(5)中,损失函数loss包括三部分之和,一部分是预测边界框与真实边框宽高部分的损失函数,一部分是真实边框和预测边框的交并比的大小,另一部分是选定目标属于某一类别预测概率值与真实概率值的二元交叉熵公式。
6.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(5)中,预测边界框与真实边框宽高部分的损失函数表示为真实坐标与预测坐标平方的差值比上真实值的平方,之后用双曲正切非线性映射函数tanh对坐标误差进行压缩,减小预测框过大而产生的误差,使预测框更加精确检测出仪表圆盘。
7.根据权利要求1所述的基于改进YOLOV3模型的变电站指针式仪表识别方法,其特征在于步骤(6)包括如下步骤:
步骤S61:训练得到模型:使用GPU运行更改后的训练文件train.py,用tensorboard运行日志文件直到损失函数loss不再降低或无下降趋势时停止训练,得到模型生成的权重文件;
步骤S62:对指针式仪表进行检测:使用权重文件用来做后续的检测,使用摄像头取得的视频流数据或图像数据;输入到完整的改进后的YOLOV3模型卷积神经网络中,通过归一化和非极大值抑制筛选出唯一预测边框,最终会在检测图像中得到将指针式仪表框出的矩形预测框、仪表类型以及置信度的文字标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911236982.3A CN111062282B (zh) | 2019-12-05 | 2019-12-05 | 基于改进yolov3模型的变电站指针式仪表识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911236982.3A CN111062282B (zh) | 2019-12-05 | 2019-12-05 | 基于改进yolov3模型的变电站指针式仪表识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111062282A CN111062282A (zh) | 2020-04-24 |
CN111062282B true CN111062282B (zh) | 2023-09-29 |
Family
ID=70300074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911236982.3A Active CN111062282B (zh) | 2019-12-05 | 2019-12-05 | 基于改进yolov3模型的变电站指针式仪表识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111062282B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738072A (zh) * | 2020-05-15 | 2020-10-02 | 北京百度网讯科技有限公司 | 目标检测模型的训练方法、装置及电子设备 |
CN111832608B (zh) * | 2020-05-29 | 2023-09-12 | 上海海事大学 | 一种基于单阶段检测模型yolov3的铁谱图像多磨粒识别方法 |
CN111881718A (zh) * | 2020-06-08 | 2020-11-03 | 东北农业大学 | 一种基于Yolo v3目标检测网络的奶牛体态识别方法 |
CN111695638A (zh) * | 2020-06-16 | 2020-09-22 | 兰州理工大学 | 一种改进的YOLOv3候选框加权融合选取策略 |
CN112069886A (zh) * | 2020-07-31 | 2020-12-11 | 许继集团有限公司 | 一种变电站呼吸器状态智能识别方法及系统 |
CN112364974B (zh) * | 2020-08-28 | 2024-02-09 | 西安电子科技大学 | 一种基于激活函数改进的YOLOv3算法 |
CN112164116A (zh) * | 2020-09-27 | 2021-01-01 | 西南交通大学 | 一种基于改进fcm算法的列车定位方法及系统 |
CN112329870A (zh) * | 2020-11-11 | 2021-02-05 | 国网山东省电力公司威海供电公司 | 一种基于yolo3算法的变电站压板状态的识别方法 |
CN112419310B (zh) * | 2020-12-08 | 2023-07-07 | 中国电子科技集团公司第二十研究所 | 一种基于交并融合边框优选的目标检测方法 |
CN113076683B (zh) * | 2020-12-08 | 2023-08-08 | 国网辽宁省电力有限公司锦州供电公司 | 用于变电站行为监测的卷积神经网络模型的建模方法 |
CN112418410A (zh) * | 2020-12-14 | 2021-02-26 | 上海卓繁信息技术股份有限公司 | 多目标检测方法、装置和存储介质 |
CN112699762A (zh) * | 2020-12-24 | 2021-04-23 | 广东工业大学 | 一种适用于嵌入式设备的食材识别方法 |
CN112308054B (zh) * | 2020-12-29 | 2021-07-20 | 广东科凯达智能机器人有限公司 | 基于目标检测算法的多功能数字表自动读数方法 |
CN112712121B (zh) * | 2020-12-30 | 2023-12-05 | 浙江智慧视频安防创新中心有限公司 | 一种图像识别模型训练方法、装置及存储介质 |
CN112861867A (zh) * | 2021-02-01 | 2021-05-28 | 北京大学 | 指针式仪表盘识别方法、系统及存储介质 |
CN113065555A (zh) * | 2021-04-12 | 2021-07-02 | 中国科学院光电技术研究所 | 一种基于瑞芯微平台的轻量化改进目标检测方法和装置 |
CN113065556B (zh) * | 2021-04-16 | 2024-04-02 | 西安交通大学 | 一种数字式仪表定位和数字识别方法、装置和计算机设备 |
CN113343969A (zh) * | 2021-06-21 | 2021-09-03 | 重庆科技学院 | 一种基于GBS-YOLOv5s的指针式仪表智能数显方法 |
CN113468992B (zh) * | 2021-06-21 | 2022-11-04 | 四川轻化工大学 | 基于轻量化卷积神经网络的施工现场安全帽佩戴检测方法 |
CN113469178B (zh) * | 2021-07-05 | 2024-03-01 | 安徽南瑞继远电网技术有限公司 | 一种基于深度学习的电力表计识别方法 |
CN113553936A (zh) * | 2021-07-19 | 2021-10-26 | 河北工程大学 | 一种基于改进型YOLOv3的口罩佩戴检测方法 |
CN113673509B (zh) * | 2021-07-28 | 2023-06-09 | 华南理工大学 | 一种基于图像文本的仪表检测分类方法 |
CN113792578A (zh) * | 2021-07-30 | 2021-12-14 | 北京智芯微电子科技有限公司 | 用于变电站异常的检测方法、设备及系统 |
CN113688831B (zh) * | 2021-08-23 | 2023-11-21 | 浙江朗坤电力工程检测有限公司 | 一种基于yolov4的电力表计的故障识别方法和系统 |
CN115100492B (zh) * | 2022-08-26 | 2023-04-07 | 摩尔线程智能科技(北京)有限责任公司 | Yolov3网络训练、pcb表面缺陷检测方法及装置 |
CN115115925B (zh) * | 2022-08-29 | 2022-12-02 | 福建(泉州)哈工大工程技术研究院 | 一种基于多尺度特征信息融合的MS-YOLOv3工业仪表读数检测方法 |
CN117095412B (zh) * | 2023-10-19 | 2023-12-15 | 四川泓宝润业工程技术有限公司 | 天然气数字仪表字符检测与识别方法、装置和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492573A (zh) * | 2018-11-05 | 2019-03-19 | 四川华雁信息产业股份有限公司 | 一种指针读取方法及装置 |
CN109685152A (zh) * | 2018-12-29 | 2019-04-26 | 北京化工大学 | 一种基于dc-spp-yolo的图像目标检测方法 |
CN109948469A (zh) * | 2019-03-01 | 2019-06-28 | 吉林大学 | 基于深度学习的巡检机器人仪表自动检测识别方法 |
CN109993166A (zh) * | 2019-04-03 | 2019-07-09 | 同济大学 | 基于刻度查找的指针式仪表读数自动识别方法 |
CN109993154A (zh) * | 2019-04-19 | 2019-07-09 | 山东大学 | 变电站单指针式六氟化硫型仪表智能识别方法 |
CN110427030A (zh) * | 2019-08-08 | 2019-11-08 | 上海大学 | 一种基于Tiny-YOLOship目标检测算法的无人艇自主对接回收方法 |
CN110443208A (zh) * | 2019-08-08 | 2019-11-12 | 南京工业大学 | 一种基于YOLOv2的车辆目标检测方法、系统及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10783656B2 (en) * | 2018-05-18 | 2020-09-22 | Zebra Technologies Corporation | System and method of determining a location for placement of a package |
-
2019
- 2019-12-05 CN CN201911236982.3A patent/CN111062282B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109492573A (zh) * | 2018-11-05 | 2019-03-19 | 四川华雁信息产业股份有限公司 | 一种指针读取方法及装置 |
CN109685152A (zh) * | 2018-12-29 | 2019-04-26 | 北京化工大学 | 一种基于dc-spp-yolo的图像目标检测方法 |
CN109948469A (zh) * | 2019-03-01 | 2019-06-28 | 吉林大学 | 基于深度学习的巡检机器人仪表自动检测识别方法 |
CN109993166A (zh) * | 2019-04-03 | 2019-07-09 | 同济大学 | 基于刻度查找的指针式仪表读数自动识别方法 |
CN109993154A (zh) * | 2019-04-19 | 2019-07-09 | 山东大学 | 变电站单指针式六氟化硫型仪表智能识别方法 |
CN110427030A (zh) * | 2019-08-08 | 2019-11-08 | 上海大学 | 一种基于Tiny-YOLOship目标检测算法的无人艇自主对接回收方法 |
CN110443208A (zh) * | 2019-08-08 | 2019-11-12 | 南京工业大学 | 一种基于YOLOv2的车辆目标检测方法、系统及设备 |
Non-Patent Citations (5)
Title |
---|
Weidong Min.New approach to vehicle license plate location based on new model YOLO-L and plate pre-identification.IET Image Processing.2019,第13卷(第7期),第1041-1049页. * |
Zemin Cai.An Efficient Method for Electric Meter Readings Automatic Location and Recognition.Procedia Engineering.2011,第23卷第565-571页. * |
修瑛昌 ; 杨文静 ; .Mini Batch K-means算法在遥感影像分类中的应用.鲁东大学学报(自然科学版).2017,(第04期),第359-363页. * |
吕石磊.基于改进YOLOv3-LITE 轻量级神经网络的柑橘识别方法.农业工程学报.2019,(第17期),第205-214页. * |
方青云.基于改进YOLOv3网络的遥感目标快速检测方法.上海航天 .2019,第36卷(第5期),第21-27页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111062282A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111062282B (zh) | 基于改进yolov3模型的变电站指针式仪表识别方法 | |
CN108108751B (zh) | 一种基于卷积多特征和深度随机森林的场景识别方法 | |
CN106295613A (zh) | 一种无人机目标定位方法及系统 | |
CN113887661B (zh) | 一种基于表示学习重构残差分析的图像集分类方法及系统 | |
CN111401156B (zh) | 基于Gabor卷积神经网络的图像识别方法 | |
CN111680678B (zh) | 目标区域识别方法、装置、设备及可读存储介质 | |
CN112560967A (zh) | 一种多源遥感图像分类方法、存储介质及计算设备 | |
CN109766752B (zh) | 一种基于深度学习的目标匹配和定位方法及系统、计算机 | |
CN115984662B (zh) | 一种多模态数据预训练及识别方法、装置、设备及介质 | |
CN113298146A (zh) | 一种基于特征检测的图像匹配方法、装置、设备及介质 | |
CN116468392A (zh) | 一种电网工程项目进度监控方法、装置、设备及存储介质 | |
CN113963333B (zh) | 一种基于改进yolof模型的交通标志牌检测方法 | |
CN111523586A (zh) | 一种基于噪声可知的全网络监督目标检测方法 | |
CN113435479A (zh) | 基于区域特征表达约束的特征点匹配方法与系统 | |
CN115841557A (zh) | 基于数字孪生技术的智能起重机操作环境构建方法 | |
Wei et al. | L2-norm prototypical networks for tackling the data shift problem in scene classification | |
CN116665039A (zh) | 基于两阶段因果干预的小样本目标识别方法 | |
CN115223055A (zh) | 一种基于多源卫星遥感的碳汇估算方法 | |
CN108073934A (zh) | 近重复图像检测方法与装置 | |
CN114332473A (zh) | 目标检测方法、装置、计算机设备、存储介质及程序产品 | |
CN112307980A (zh) | 一种基于不完整多视聚类的图像识别方法 | |
Gizatullin et al. | Automatic car license plate detection based on the image weight model | |
CN114882224B (zh) | 模型结构、模型训练方法、单体化方法、设备及介质 | |
Galea et al. | TCDetect: a new method of detecting the presence of tropical cyclones using deep learning | |
Guo et al. | Fast Visual Tracking using Memory Gradient Pursuit Algorithm. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |