一种基于卷积神经网络的水表图像读数识别方法与流程

文档序号:15638659发布日期:2018-10-12 21:47阅读:459来源:国知局
本发明涉及一种水表图像读数识别方法,尤其是涉及一种基于卷积神经网络的水表图像读数识别方法。
背景技术
:在信息化发展,建设“智慧城市”的大背景下,发展“智慧水务”,能够带动水务信息化技术的全面提升,发挥信息化建设效益。管网水量精确计量和管网漏损控制等都是发展“智慧水务”的重要措施,对基础数据的收集实时性和准确性都提出了更高的要求。当前很大一部分入户水表的水量数据依靠普通人工抄读获取,容易出错,间隔时间长,难以满足发展“智慧水务”的要求,因此提高水表抄读的自动化程度可以在很大程度上减少人为疏漏,提高抄表数据的客观性和准确性,同时减少单个水表抄读的人工消耗,增加抄表频率。水表图像字符识别技术就是为了实现水表图像字符读数的自动识别,由此可见开展这方面的研究可以为快速准确的完成水表图像读数的自动识读提供有效的技术支持,并对最终获取更加高频准确的水表水量数据有着重要的现实意义。国内外有关水表图像字符识别的研究很多,以下为一些代表性的研究:1)基于tesseract的识别方法如文献:[1]:lyatej.(2011).“automatedreadingofhighvolumewatermeters”.stellenbosch:universityofstellenbosch.该类方法的主要技术措施:首先在水表表头上加装固定摄像头拍摄水表照片,然后通过图像预处理获得单个待识别字符的二值图像,最后使用经过训练的tesseract光学字符识别引擎对水表字符图像进行识别。优缺点:这类方法优势在于它不仅能够识读整字符,还能够识读半字符。但其不足之处在于:(1)半字符图像识读精度和准确率不高,图像预处理效果不稳定和tesseract对半字符识别能力的局限性是其应用于实际水表图像字符识别的最主要限制因素;(2)二值图像的获取和tesseract光学字符识别引擎的训练过程需要掌握图像预处理和相关方法的参数调整等相关专门知识技能,实现和改进的难度大。2)基于模板匹配的识别方法如文献:[2]:吴梦麟.(2006).图像式水表读数识别方法研究.南京理工大学.[3]:何道远.(2010).面向水表质量监控的图像处理系统.浙江大学.[4]:金静晓,信昆仑.(2015).改进的半字识别算法在水表读数系统中的应用.供水技术,2015(01),43-45.该类方法的主要技术措施:通过应用各种字符图像模板对待识别的单张水表字符的二值图像进行匹配,然后基于一定距离计算方法判断匹配的最佳结果,然后按最佳匹配结果获得读数。优缺点:其优点在于使用长模板匹配的方法对半字符图像的识别精度高,(1)半字符图像识读准确率不高,图像预处理效果不稳定和模板代表能力的局限性是其应用于实际水表图像字符识别的最主要限制因素;(2)模板制作和二值图像的获取过程需要掌握图像预处理和相关方法的参数调整等相关专门知识技能,实现和改进的难度大。3)基于人工提取图面特征的方法如文献:[5]:林文娅.(2007).基于神经网络的水表字符识别.南京理工大学.[6]:屠震元.(2015).基于机器视觉的嵌入式仪表读数识别系统研究.浙江理工大学.该类方法的主要技术措施:采用人工提取二值图面特征的方法,再配机器学习或模板匹配等各种方法对抽取的特征进行处理和识别。优缺点:其优点在于人工提取图像特征的过程能简化问题,缺点在于(1)字符图像识读精度和准确率不高,水表字符图像的情况复杂多变,图像预处理效果不稳定和人工提取的图面特征涵盖情况的局限性是其应用于实际水表图像字符识别的最主要限制因素;(2)二值图像的获取和人工提取图面特征的过程需要掌握图像预处理和相关方法的参数调整等相关专门知识技能,实现和改进的难度大。技术实现要素:本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于卷积神经网络的水表图像读数识别方法。本发明的目的可以通过以下技术方案来实现:一种基于卷积神经网络的水表图像读数识别方法,该方法包括如下步骤:(1)获取训练样本;(2)使用随机梯度下降法对训练样本中的数据进行训练,构建识别水表图像字符的卷积神经网络;(3)采用构建的卷积神经网络对待识别的水表图像进行识别,得到水表图像的读数。步骤(1)具体为:(11)搭建水表照片拍摄装置获取水表图像;(12)采用orb算法对水表图像进行矫正定位并分割出单张字符图像;(13)标记单张字符图像的读数。步骤(11)具体为:首先改造水表表芯使其匀速转动,然后在表芯正上方固定拍摄装置获取水表字轮匀速转动的视频,最后分割待识别视频,每隔一定帧数提取一张图像作为水表图像。步骤(12)具体为:(121)选取矫正定位模板图像,确定字轮框四个角点的坐标;(122)使用orb算法查找待矫正定位图像中的模板图像,获取待矫正图像对应于模板图像的匹配角点坐标,利用投影变换将待矫正定位图像匹配角点的坐标矫正至模板图像的坐标;(123)通过矫正定位模板图像的坐标分割出待矫正定位图像中字轮框图像,进而分割得到字轮框中每个待识别单张字符图像。步骤(13)具体为:对于单张字符图像,标记字符图像读数,标记读数的范围从0到9.9,每间隔0.1为一个类别,共100个类别。步骤(3)具体为:对待识别的水表图像矫正定位,分割出待识别的单个水表字符图像,然后将所有水表字符图像输入卷积神经网络进行识别并输出识别结果。与现有技术相比,本发明具有如下优点:(1)本发明建立具有卷积神经网络,并通过卷积神经网络进行水表读数识别,实现过程简单,识别精度高,识别准确率高;(2)本发明标记单张字符图像的读数时每间隔0.1为一个类别,共100个类别,样本分类精度为0.1个单位,训练好的卷积神经网络的识别精度也可以达到0.1个单位精度,由此大大提高了识别精度。附图说明图1为本发明基于卷积神经网络的水表图像读数识别方法的流程框图。具体实施方式下面结合附图和具体实施例对本发明进行详细说明。注意,以下的实施方式的说明只是实质上的例示,本发明并不意在对其适用物或其用途进行限定,且本发明并不限定于以下的实施方式。实施例如图1所示,一种基于卷积神经网络的水表图像读数识别方法,该方法包括如下步骤:(1)获取训练样本;(2)使用随机梯度下降法对训练样本中的数据进行训练,构建识别水表图像字符的卷积神经网络;(3)采用构建的卷积神经网络对待识别的水表图像进行识别,得到水表图像的读数。步骤(1)具体为:(11)搭建水表照片拍摄装置获取水表图像;(12)采用orb算法对水表图像进行矫正定位并分割出单张字符图像;(13)标记单张字符图像的读数。步骤(11)具体为:(111)明确识别水表种类,采用相应的表芯,改造成可以以适当速度匀速转动的状态进行视频拍摄,拍摄时长需要使得提取的图片数量足够训练卷积神经网络;(112)将拍摄的视频通过freevideotojpgconverter等软件每隔一定帧数提取一图片,获得足够数量的字轮发生转动变化的水表图像。获取水表图像后,首先需要定位和分割出字符图像。图像矫正定位是这一过程中的一个关键步骤。orb是一种基于brief描述符和fast角点检测方法的算法。可以通过opencv库的orb相关类和函数编程实现orb算法过程,最后通过模板图像的坐标分割待识别的单张字符图像。由此,步骤(12)具体为:(121)选取矫正定位模板图像,确定字轮框四个角点的坐标;(122)使用orb算法查找待矫正定位图像中的模板图像,获取待矫正图像对应于模板图像的匹配角点坐标,利用投影变换将待矫正定位图像匹配角点的坐标矫正至模板图像的坐标;(123)通过矫正定位模板图像的坐标分割出待矫正定位图像中字轮框图像,进而分割得到字轮框中每个待识别单张字符图像。获取分割的字符图像后,需要标注对应的读数,将图像与标注读数对应起来,用于后续模型的训练和测试,由此,步骤(13)具体为:对于单张字符图像,标记字符图像读数,标记读数的范围从0到9.9,每间隔0.1为一个类别,共100个类别。步骤(13)通过半自动标注程序进行读数标记,具体地:(131)首先编程实现一个具有长模板匹配功能的带标注辅助线的半自动标注程序;(132)根据标注辅助线检查自动标注的读数是否正确,正确则四舍五入保留一位小数,按从0到9.9,每间隔0.1为一个类别,共100个类别分类存储字符图像,否则修改读数再分类存储。卷积神经网络的训练和计算包括顺序的一系列处理过程,每一个处理步骤为一层,有输入层,卷积层,池化层,relu层,全连接层,softmax层和损失函数层等。其中输入层可以接受3通道彩色图像,最大输入尺寸为299×299。主要结构可以表示为:输入层->[[卷积层->relu层]*n->池化层?]*m->[全连接层->relu层]*k->全连接层->softmax层输出分类,即输入经过一系列处理后通过softmax层产生分类结果。上述表达方式中“[]”表示结构,“*”表示结构的重复,“?”表示可能使用或不使用,n,m,k≥0,n、m和k表示结构重复的次数。具体地,本实施例卷积神经网络通过如下方式获得:下载apache2.0协议授权的预训练inception-v3卷积神经网络模型进行修改,舍弃原有的分类输出,由tensorflow框架添加一个全连接层,通过水表字符图像数据集训练这个全连接层,迭代一定次数后得到训练好的卷积神经网络模型。1)首先通过tensorflow在github上的项目下载预训练inception-v3卷积神经网络模型,其结构如表1所示。表1incpetion-v3结构概况主要结构序号类型操作尺寸/步长或注记输入尺寸1卷积3×3/2299×299×32卷积3×3/1149×149×323卷积带填充3×3/1147×147×324池化3×3/2147×147×645卷积3×3/173×73×646卷积3×3/271×71×807卷积3×3/135×35×19283×inceptioninception结构(1)35×35×28895×inceptioninception结构(2)17×17×768102×inceptioninception结构(3)8×8×128011池化8×88×8×204812线性连接逻辑数1×1×204813softmax分类器1×1×10002)在表1中“主要结构序号”11所对应的池化层后,通过tensorflow框架对计算图进行修改,添加:(a)一个由字符图像标记读数和池化层输出组成的训练输入;(b)一个用于分类输出的全连接层;(c)一个交叉熵损失函数;(d)一个使用梯度下降法的优化器;(e)一个观察迭代效果的验证准确率计算函数;3)通过tensorflow框架和水表字符图像数据集自动训练模型。所有训练样本中,随机选取10%的用于验证,每100个验证样本为一个验证批次,其余用作训练。以100张随机选取的训练样本为一个迭代批次,迭代一定的次数,每10个迭代批次的训练结束后,随机选取1个批次的100个验证样本评估当前训练结果的准确率。4)达到一定的迭代次数后,随迭代次数增加交叉熵趋于稳定降低,验证准确率稳定于95%以上,视为训练完成,全连接层中的权重和偏移量参数能够较好地拟合训练样本的水表字符图像和标记读数。步骤(3)具体为:对待识别的水表图像矫正定位,分割出待识别的单个水表字符图像,然后将所有水表字符图像输入卷积神经网络进行识别并输出识别结果。具体地:卷积神经网络训练完成后,通过tensorflow框架加载训练好的模型输出的计算图文件和类别标签文件,输入待识别的单张水表字符图像文件,可以得到精度0.1的识别读数结果。在得到每个单张字符图像的读数后,对于高位字符的读数,因为误差控制0.5个单位以内时,足以判断各位读数间的进位关系,进而能确定水表图像中整个字轮的数值。在上述过程中,如果发现错误分类的水表字符图像,可以人工标记其正确读数并将字符图像分类存储到训练用的水表字符图像数据集中,通过使用扩充的训练用水表字符图像数据集定期重新自动训练卷积神经网络模型,不断迭代地改进该识别方法识别能力。上述实施方式仅为例举,不表示对本发明范围的限定。这些实施方式还能以其它各种方式来实施,且能在不脱离本发明技术思想的范围内作各种省略、置换、变更。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1