CN113642582B - 电表读数识别方法、装置、电子设备和存储介质 - Google Patents
电表读数识别方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN113642582B CN113642582B CN202110932750.2A CN202110932750A CN113642582B CN 113642582 B CN113642582 B CN 113642582B CN 202110932750 A CN202110932750 A CN 202110932750A CN 113642582 B CN113642582 B CN 113642582B
- Authority
- CN
- China
- Prior art keywords
- reading
- ammeter
- area
- image
- text
- 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
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Image Analysis (AREA)
- Character Input (AREA)
Abstract
本申请提供一种电表读数识别方法、装置、电子设备和存储介质。该方法包括:获取待检测的电表图像;将待检测的电表图像输入训练好的YOLO模型,从待检测的电表图像中确定出读数区域;将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域;根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域;利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域;判断电表读数文本区域中是否存在小数;将电表读数文本区域的图像输入训练好的CRNN模型,确定电表读数文本区域中的数字;根据电表读数文本区域中的数字、电表读数文本区域中是否存在小数,输出电表读数识别结果。
Description
技术领域
本申请涉及图像识别技术,尤其涉及一种电表读数识别方法、装置、电子设备和存储介质。
背景技术
当前智能电表应用比较广泛,可以自行上传用电量数据。但仍有一些机械电表还在使用当中。
机械表无法实现用电量等数据的自动上传,仍需要人工抄表。抄表员不但需要定期完成电表数据的采集,还需要手动完成电表数据的填报和审核。在人工抄表过程中,还可能出现数据填报错误等问题,导致对机械电表的用电量数据采集的效率较低。
发明内容
本申请提供一种电表读数识别方法、装置、电子设备和存储介质,实现对机械电表数据的自动识别,避免人工数据填报错误等问题,提高机械电表用电量数据采集的效率。
第一方面,本申请提供一种电表读数识别方法,包括:
获取待检测的电表图像;
将所述待检测的电表图像输入训练好的YOLO模型,从所述待检测的电表图像中确定出读数区域;
将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域;
根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域;
利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域;
判断所述电表读数文本区域中是否存在小数;
将所述电表读数文本区域的图像输入训练好的CRNN模型,确定所述电表读数文本区域中的数字;
根据所述电表读数文本区域中的数字、所述电表读数文本区域中是否存在小数,输出电表读数识别结果。
可选的,所述方法还包括:
预先采集多张电表图像样本;
对每张所述电表图像样本的读数区域进行标注,构建YOLO训练数据集;
利用YOLO训练数据集,基于YOLO预训练模型进行训练,得到训练好的YOLO模型。
可选的,所述将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域,包括:
将所述待检测的电表图像的像素值缩小到1200*1200以下,得到缩放后的电表图像;
将所述缩放后的电表图像输入训练好的CTPN模型,从所述缩放后的电表图像中确定出至少一个文本区域。
可选的,所述根据所述读数区域和所述至少一个文本区域,确定读数区域内的至少一个文本区域,包括:
根据所述读数区域的坐标分布、所述至少一个文本区域的坐标分布,确定位于所述读数区域内的至少一个文本区域。
可选的,所述利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域,包括:
对所述读数区域的图像进行灰度化处理,得到所述读数区域的灰度图;
调整所述读数区域的灰度图的亮度和对比度,得到所述读数区域的灰度高亮图;
对所述读数区域的灰度高亮图进行二值化,得到所述读数区域的二值图;
针对所述读数区域的二值图,分别记录每行的黑色像素的点数和每列的黑色像素的点数;
根据黑色像素的点数最多的行和黑色像素的点数最多的列,对所述读数区域的二值图进行分割,得到完整的电表读数文本区域。
可选的,所述判断所述电表读数文本区域中是否存在小数,包括:
将电表读数文本区域的图像从RGB空间转到HSV空间,得到HSV图像;
统计HSV图像的面积和HSV图像中红色区域的面积;
若红色区域的面积占HSV图像的面积的比值大于等于预设值,则确定所述电表读数文本区域中存在小数。
可选的,所述方法还包括:
采集电表图像样本;
对每张所述电表图像样本中读数区域的数字进行标注,构建CRNN训练数据集;
利用CRNN训练数据集,进行模型训练,得到训练好的CRNN模型。
第二方面,本申请提供一种电表读数识别装置,包括:
获取模块,用于获取待检测的电表图像;
读数区域确定模块,用于将所述待检测的电表图像输入训练好的YOLO模型,从所述待检测的电表图像中确定出读数区域;
文本区域确定模块,用于将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域;
电表读数文本区域确定模块,用于根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域;利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域;
小数判别模块,用于判断所述电表读数文本区域中是否存在小数;
读数模块,用于将所述电表读数文本区域的图像输入训练好的CRNN模型,确定所述电表读数文本区域中的数字;
电表读数输出模块,用于根据所述电表读数文本区域中的数字、所述电表读数文本区域中是否存在小数,输出电表读数识别结果。
可选的,所述装置还包括YOLO模型训练模块,用于:
预先采集多张电表图像样本;
对每张所述电表图像样本的读数区域进行标注,构建YOLO训练数据集;
利用YOLO训练数据集,基于YOLO预训练模型进行训练,得到训练好的YOLO模型。
可选的,所述文本区域确定模块在将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域时,具体用于:
将所述待检测的电表图像的像素值缩小到1200*1200以下,得到缩放后的电表图像;
将所述缩放后的电表图像输入训练好的CTPN模型,从所述缩放后的电表图像中确定出至少一个文本区域。
可选的,所述电表读数文本区域确定模块在根据所述读数区域和所述至少一个文本区域,确定读数区域内的至少一个文本区域时,具体用于:
根据所述读数区域的坐标分布、所述至少一个文本区域的坐标分布,确定位于所述读数区域内的至少一个文本区域。
可选的,所述电表读数文本区域确定模块在利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域时,具体用于:
对所述读数区域的图像进行灰度化处理,得到所述读数区域的灰度图;
调整所述读数区域的灰度图的亮度和对比度,得到所述读数区域的灰度高亮图;
对所述读数区域的灰度高亮图进行二值化,得到所述读数区域的二值图;
针对所述读数区域的二值图,分别记录每行的黑色像素的点数和每列的黑色像素的点数;
根据黑色像素的点数最多的行和黑色像素的点数最多的列,对所述读数区域的二值图进行分割,得到完整的电表读数文本区域。
可选的,所述小数判别模块在判断所述电表读数文本区域中是否存在小数时,具体用于:
将电表读数文本区域的图像从RGB空间转到HSV空间,得到HSV图像;
统计HSV图像的面积和HSV图像中红色区域的面积;
若红色区域的面积占HSV图像的面积的比值大于等于预设值,则确定所述电表读数文本区域中存在小数。
可选的,所述装置还包括CRNN模型训练模块,用于:
采集电表图像样本;
对每张所述电表图像样本中读数区域的数字进行标注,构建CRNN训练数据集;
利用CRNN训练数据集,进行模型训练,得到训练好的CRNN模型。
第三方面,本申请提供一种电子设备,包括:存储器,用于存储程序指令;处理器,用于调用并执行所述存储器中的程序指令,执行第一方面所述的方法。
第四方面,本申请提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面所述的方法。
本申请提供了一种电表读数识别方法、装置、电子设备和存储介质。该方法包括:获取待检测的电表图像;将所述待检测的电表图像输入训练好的YOLO模型,从所述待检测的电表图像中确定出读数区域;将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域;根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域;利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域;判断所述电表读数文本区域中是否存在小数;将所述电表读数文本区域的图像输入训练好的CRNN模型,确定所述电表读数文本区域中的数字;根据所述电表读数文本区域中的数字、所述电表读数文本区域中是否存在小数,输出电表读数识别结果。本申请的方法通过训练好的YOLO模型和训练好的CTPN模型结合投影法确定待检测的电表图像中的电表读数文本区域,再通过训练好的CRNN模型实现文本区域的读数,从而实现电表读数的自动识别,节省人工上传数据的时间,避免人工填报错误,提高机械电表的用电量数据采集效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请提供的一种应用场景的示意图;
图2为本申请一实施例提供的一种电表读数识别方法的流程图;
图3为本申请一实施例提供的一种对电表图像进行检测得到读数区域的示意图;
图4为本申请一实施例提供的一种对电表图像进行检测得到至少一个文本区域的示意图;
图5为本申请一实施例提供的一种读数区域内的至少一个文本区域的示意图;
图6为本申请一实施例提供的一种确定出的电表读数文本区域的示意图;
图7为本申请一实施例提供的一种电表读数识别装置的结构示意图;
图8为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
传统电表抄表工作,抄表人员每季度要完成千余个电表的抄表,并人工手动完成电表数据填报和审核。手动输入读数存在填写错误可能,且同一地点可能存在多块电表,影响支付准确性,同时增加了维护人员工作量。代维单位频繁切换,手工抄表台账也容易丢失。
为了能够实现电表读数的自动识别,首先应该考虑电表读数区域的高精度定位。在准确定位出电表读数所在区域后,再对读数进行精准的识别。另外,考虑到在一些机械电表表盘上,可能存在小数,因此还要进一步对电表读数的数字结构(是否存在小数)进行判断。
基于此,本申请提出了一种电表读数识别方法、装置、电子设备和存储介质,旨在实现机械电表读数的高精度自动识别。
图1为本申请提供的一种应用场景的示意图。如图1所示,用户在现场利用终端设备对机械电表进行图像采集后获得电表的图像,通过终端将此图像传输给处理器后,处理器可以基于电表的图像,自动实现电表读数的识别,识别结果为12354。还可以进一步将识别到的电表读数按预先规定的格式进行存储,或者发送到指定设备进行后续处理。
图2为本申请一实施例提供的一种电表读数识别方法的流程图,如图2所示,本实施例的方法可以包括:
S201、获取待检测的电表图像。
如图1所描述的应用场景中所示意的,用户可以利用终端设备对机械电表进行图像采集,得到待检测的电表图像。终端设备可以为专用于图像采集的摄像机、摄影机,或者具备图像采集功能的手机、平板电脑等便携智能设备。用于执行本实施例的方法的服务器设备可从上述终端设备处获取采集的电表图像。
在另一些实施例中,本实施例的方法可以集成在一具备图像采集功能的便携智能设备中,用户可利用此设备直接对机械电表进行图像采集,获取到待检测的电表图像。
S202、将待检测的电表图像输入训练好的YOLO模型,从待检测的电表图像中确定出读数区域。
YOLO(You Only Look Once)是一种目标检测方法,“只需瞄一眼”即可识别图像中的目标物及其所对应的位置。YOLO采用单个卷积神经网络实现目标检测,相对来说目标检测准确率较高。
预先对YOLO模型进行训练,使其具备识别电表图像中的读数区域的能力。利用训练好的YOLO模型对待检测的电表图像进行检测,即可识别出图像中的读数区域。
其中,“读数区域”,指的是电表图像中包含电表读数的一个区域。区域的形状、大小等可以通过训练过程中训练样本的标注进行调整。
如图3所示,展示了一种对电表图像进行检测得到读数区域的示意图。在图3中可见两个矩形框,在这种识别出现误差导致至少两个区域被标识的情况下,选择其中面积最大的一个确定为读数区域。即图中较大的矩形框所标识的为读数区域。
S203、将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域。
CTPN(Connectionist Text Proposal Network)是一种文字检测算法,结合卷积神经网络(Convolutional Neural Networks,CNN)与长短期记忆网络(Long Short-TermMemory,LSTM),能够有效检测出复杂场景中横向分布的文字。
预先对CTPN模型进行训练,使其具备识别电表图像中的文本区域的能力。利用训练好的CTPN模型对待检测的电表图像进行检测,即可识别出图像中的文本区域。
其中,“文本区域”,指的是电表图像中包含文本信息的区域。可以理解的是,在一个电表上可能同时存在读数和表示电表品牌、型号、参数等信息的文本。这些文本可能是汉字、外文文字、数字、标号等等。
如图4所示,展示了一种对电表图像进行检测得到至少一个文本区域的示意图。
S204、根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域。
通过上述的描述可以知道,读数区域中至少包含电表读数所在的文本区域。可能同时包含其它的文本区域。
通过对S202检测出的读数区域和S203检测出的至少一个文本区域求取交集,即可确定读数区域内的至少一个文本区域,其中必定包含电表读数所在的文本区域。
如图5所示,展示了一种确定出的读数区域内的至少一个文本区域的示意图。
S205、利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域。
本申请中将电表读数所在的文本区域称为“电表读数文本区域”。
若在S204确定出了一个文本区域,则可以确定该文本区域即电表读数文本区域。
若在S204确定出了多个文本区域,则需要进一步采用投影法对多个文本区域进行区分,进而从中确定出电表读数文本区域。
如图6所示,展示了一种确定出的电表读数文本区域的示意图。图中矩形框所标识的即为电表读数文本区域。
S206、判断电表读数文本区域中是否存在小数。
为了准确识别电表读数文本区域中的数值大小,避免误读,需要确定该表的读数中是否存在有小数标记。如果有小数标记,则需要在识别出数字后增加小数点得到准确的电表读数;如果没有小数标记,则识别出的数字组合即为电表读数。
S207、将电表读数文本区域的图像输入训练好的CRNN模型,确定电表读数文本区域中的数字。
CRNN(Convolutional Recurrent Neural Network),是一种卷积循环神经网络结构,用于解决基于图像的序列识别问题,特别是场景文字识别问题。
预先对CRNN模型进行训练,使其具备识别电表图像中的数字的能力。利用训练好的CRNN模型对电表读数文本区域的图像检测,即可识别出其中包含的数字组合。
S208、根据电表读数文本区域中的数字、电表读数文本区域中是否存在小数,输出电表读数识别结果。
基于S206输出的小数标记是否存在的判断结果和S207输出的数字组合,即可确定最终的识别结果。
如果有小数标记,则需要在识别出数字组合中增加小数点得到准确的电表读数;如果没有小数标记,则识别出的数字组合即为电表读数。
本实施例提供的电表读数识别方法包括:获取待检测的电表图像;将待检测的电表图像输入训练好的YOLO模型,从待检测的电表图像中确定出读数区域;将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域;根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域;利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域;判断电表读数文本区域中是否存在小数;将电表读数文本区域的图像输入训练好的CRNN模型,确定电表读数文本区域中的数字;根据电表读数文本区域中的数字、电表读数文本区域中是否存在小数,输出电表读数识别结果。本申请的方法通过训练好的YOLO模型和训练好的CTPN模型结合投影法确定待检测的电表图像中的电表读数文本区域,再通过训练好的CRNN模型实现文本区域的读数,从而实现电表读数的自动识别,节省人工上传数据的时间,避免人工填报错误,提高机械电表的用电量数据采集效率。
在一些实施例中,上述的方法还可以包括YOLO模型训练过程,包括:预先采集多张电表图像样本;对每张电表图像样本的读数区域进行标注,构建YOLO训练数据集;利用YOLO训练数据集,基于YOLO预训练模型进行训练,得到训练好的YOLO模型。
在标注过程中,可以将读数区域标注成矩形或者其它形状,标注尺寸可以尽可能小,但又不能忽略表盘上的小数标识。这样训练好的YOLO模型对于读数区域的识别可以更为精确。
具体的,可以收集多张抄表员手机拍摄的机械电表图片,将其按照训练集、测试集、验证集为8:1:1的比例划分。然后使用深度学习标注工具LabelImage将训练集的图片的读数区域打好标注,生成PascalVoc制式的标准数据集,并将其保存至源码目录的data文件夹下。配置图形处理器GPU服务器环境为CUDA9+TeslaV100,配置沙盒环境为tensorflow-gpu_1.10。使用目标检测方法yolo3,进入沙盒环境,安装相应包,进入根目录执行编译。下载darknet53.conv.74的预训练模型至指定文件夹,设置好相应的参数,使用迁移学习的方法加载预训练的权重作为初始值开始执行训练。训练分为两个阶段,第一阶段,冻结卷积神经网络darknet前185层卷积层,通过加载模型权重文件darknet53.conv.74进行训练;第二阶段解冻darknet所有层,当第二阶段训练完成,会生成最终的模型文件。待训练完成后,取训练完成的模型文件(*.ckpt)对测试集进行测试。
在一些实施例中,将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域,包括:将待检测的电表图像的像素值缩小到1200*1200以下,得到缩放后的电表图像;将缩放后的电表图像输入训练好的CTPN模型,从缩放后的电表图像中确定出至少一个文本区域。
在利用CTPN模型进行检测前,可以先对待检测的电表图像进行缩放,对缩放后的电表图像进行检测。这样可以在一定程度上提高CTPN模型的识别速度。
在一些实施例中,根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域,包括:根据读数区域的坐标分布、至少一个文本区域的坐标分布,确定位于读数区域内的至少一个文本区域。
在利用YOLO模型和CTPN模型进行图像识别时,确定出读数区域和文本区域后,可以以区域在原始图像中的坐标分布来标示区域位置。坐标分布可以为区域的某些边界点坐标,或者区域的中心点坐标和区域的长、宽,或者区域的顶点坐标等。
具体的,可以使用迁移学习的方法,将预训练的中文CTPN模型从github利用gitclone命令复制到服务器的相应位置。然后将原始图片的尺寸缩小在1200*1200以内,再让CTPN对缩放后的整个图片进行文本检测,返回所有检测到的文本区域的左上角和右下角的坐标。
相对应的,即可根据读数区域的坐标分布和区域的坐标分布快速判断区域之间的相对位置关系,进而确定出位于读数区域内的文本区域。
在一些实施例中,判断电表读数文本区域中是否存在小数,包括:将电表读数文本区域的图像从RGB空间转到HSV空间,得到HSV图像;统计HSV图像的面积和HSV图像中红色区域的面积;若红色区域的面积占HSV图像的面积的比值大于等于预设值,则确定电表读数文本区域中存在小数。
一些电表的读数为整数,还有一些电表的读数包含小数位。在机械电表中小数位的标识方式可能为,在小数位数字周围标识红色底色。在这种情况下,可以采用本实施例的方法,通过检测电表读数文本区域中是否存在一定面积的红色区域来判断是否存在小数位。利用红色像素点占比来判断读数是否存在小数点,可以进一步提高读数精度,弥补传统算法的技术盲点。
同时,直接采集的图像大多为RGB图像,即RGB(红绿蓝)色彩模式的图像。将电表读数文本区域图像做色彩空间转化后,基于HSV图形,即HSV(Hue,Saturation,Value)色彩模式的图像,进行红色区域的面积占比测算相对在RGB空间的测算更为准确。其中,Hue为色调,Saturation为饱和度,Value为明度。
还需要说明的是,这里采用红色仅为一种示例。实际上,需要测算的是相异于电表读数文本区域的背景色的颜色的面积占比。
在另一些实施例中,在机械电表中小数位的标识方式可能为数值下方的单位。例如,在最后一个数值下方标识有“0.1”,则表示此数值为小数值,所在位为小数点后第一位。在这种情况下,可以对确定出的位于读数区域内的文本区域进行匹配识别,判断其中是否包含“0.1”等表征小数位的单位。
在一些实施例中,上述的利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域,包括:对读数区域的图像进行灰度化处理,得到读数区域的灰度图;调整读数区域的灰度图的亮度和对比度,得到读数区域的灰度高亮图;对读数区域的灰度高亮图进行二值化,得到读数区域的二值图;针对读数区域的二值图,分别记录每行的黑色像素的点数和每列的黑色像素的点数;根据黑色像素的点数最多的行和黑色像素的点数最多的列,对读数区域的二值图进行分割,得到完整的电表读数文本区域。
电表读数文本区域的定位的主要任务是从电表图像中找到读数所在的区域位置,并把含有读数图像的一块区域取出,供后端的数字识别使用。投影法就是把图像在水平方向和垂直方向上进行投影。首先将输入图像转化为灰度图,再设定一个阈值,转化为二值化的图像。再利用垂直投影和水平投影进行分析,再根据获得的投影图判别明显的波峰的部分。例如,对于读数区域背景颜色为黑色的电表,在黑色空间作垂直投影,即可找出电表读数文本区域。
在一些实施例中,上述的方法还可以包括CRNN模型训练过程,包括:采集电表图像样本;对每张电表图像样本中读数区域的数字进行标注,构建CRNN训练数据集;利用CRNN训练数据集,进行模型训练,得到训练好的CRNN模型。
具体的,可以下载谷歌街景地图门牌号SVHN数字集,共22万张数字图片,再打标电表读数3000张数字图片。将其按照训练集、测试集、验证集为8:1:1的比例划分。对训练集进行标注,整理标注的训练集至源码目录的digit_data文件夹下。使用当前应用广泛、准确性高的文字识别方法CRNN,设置好相关参数。配置GPU服务器环境为CUDA9+TeslaV100,配置沙盒环境为tensorflow-gpu_1.10。使用CTC算法计算CRNN算法训练的损失值Loss,等待训练完成的结果。待训练完成后,取训练完成的模型文件(*.ckpt)对测试集进行测试。
本申请是深度学习和图像处理相结合的电表自动读数方法,实现端到端的电表自动读数,并且可以识别读数的小数点。使用了YOLO,CTPN,CRNN+CTC算法进行建模。先定位到读数区域,进行字符分割得到需要读数的电表读数文本区域,对电表读数文本区域进行小数点识别,对电表读数文本区域进行数字识别。该方法还可延伸到其他的电表如电能表上,作为电表自动读数的方法。
图7为本申请一实施例提供的一种电表读数识别装置的结构示意图,如图7所示,本实施例的电表读数识别装置700可以包括:获取模块701、读数区域确定模块702、文本区域确定模块703、电表读数文本区域确定模块704、小数判别模块705、读数模块706、电表读数输出模块707。
获取模块701,用于获取待检测的电表图像;
读数区域确定模块702,用于将待检测的电表图像输入训练好的YOLO模型,从待检测的电表图像中确定出读数区域;
文本区域确定模块703,用于将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域;
电表读数文本区域确定模块704,用于根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域;利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域;
小数判别模块705,用于判断电表读数文本区域中是否存在小数;
读数模块706,用于将电表读数文本区域的图像输入训练好的CRNN模型,确定电表读数文本区域中的数字;
电表读数输出模块707,用于根据电表读数文本区域中的数字、电表读数文本区域中是否存在小数,输出电表读数识别结果。
可选的,装置700还包括YOLO模型训练模块708,用于:
预先采集多张电表图像样本;
对每张电表图像样本的读数区域进行标注,构建YOLO训练数据集;
利用YOLO训练数据集,基于YOLO预训练模型进行训练,得到训练好的YOLO模型。
可选的,文本区域确定模块703在将待检测的电表图像输入训练好的CTPN模型,从待检测的电表图像中确定出至少一个文本区域时,具体用于:
将待检测的电表图像的像素值缩小到1200*1200以下,得到缩放后的电表图像;
将缩放后的电表图像输入训练好的CTPN模型,从缩放后的电表图像中确定出至少一个文本区域。
可选的,电表读数文本区域确定模块704在根据读数区域和至少一个文本区域,确定读数区域内的至少一个文本区域时,具体用于:
根据读数区域的坐标分布、至少一个文本位置区域的坐标分布,确定位于读数区域内的至少一个文本。
可选的,电表读数文本区域确定模块704在利用投影法,从读数区域内的至少一个文本区域中确定电表读数文本区域时,具体用于:
对读数区域的图像进行灰度化处理,得到读数区域的灰度图;
调整读数区域的灰度图的亮度和对比度,得到读数区域的灰度高亮图;
对读数区域的灰度高亮图进行二值化,得到读数区域的二值图;
针对读数区域的二值图,分别记录每行的黑色像素的点数和每列的黑色像素的点数;
根据黑色像素的点数最多的行和黑色像素的点数最多的列,对读数区域的二值图进行分割,得到完整的电表读数文本区域。
可选的,小数判别模块705在判断电表读数文本区域中是否存在小数时,具体用于:
将电表读数文本区域的图像从RGB空间转到HSV空间,得到HSV图像;
统计HSV图像的面积和HSV图像中红色区域的面积;
若红色区域的面积占HSV图像的面积的比值大于等于预设值,则确定电表读数文本区域中存在小数。
可选的,装置700还包括CRNN模型训练模块709,用于:
采集电表图像样本;
对每张电表图像样本中读数区域的数字进行标注,构建CRNN训练数据集;
利用CRNN训练数据集,进行模型训练,得到训练好的CRNN模型。
本实施例的装置,可以用于执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
图8为本申请一实施例提供的一种电子设备的结构示意图,如图8所示,本实施例的电子设备800可以包括:存储器801、处理器802。
存储器801,用于存储程序指令;处理器802,用于调用并执行存储器801中的程序指令,执行上述任一实施例的方法,其实现原理和技术效果类似,此处不再赘述。
本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上任一实施例的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种电表读数识别方法,其特征在于,包括:
获取待检测的电表图像;
将所述待检测的电表图像输入训练好的目标检测YOLO模型,从所述待检测的电表图像中确定出读数区域;
将所述待检测的电表图像输入训练好的文字检测CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域;
根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域;
利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域;
判断所述电表读数文本区域中是否存在小数;
将所述电表读数文本区域的图像输入训练好的卷积神经网络CRNN模型,确定所述电表读数文本区域中的数字;
根据所述电表读数文本区域中的数字、所述电表读数文本区域中是否存在小数,输出电表读数识别结果。
2.根据权利要求1所述的方法,其特征在于,还包括:
预先采集多张电表图像样本;
对每张所述电表图像样本的读数区域进行标注,构建YOLO训练数据集;
利用YOLO训练数据集,基于YOLO预训练模型进行训练,得到训练好的YOLO模型。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域,包括:
将所述待检测的电表图像的像素值缩小到1200*1200以下,得到缩放后的电表图像;
将所述缩放后的电表图像输入训练好的CTPN模型,从所述缩放后的电表图像中确定出至少一个文本区域。
4.根据权利要求1或2所述的方法,其特征在于,所述根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域,包括:
根据所述读数区域的坐标分布、所述至少一个文本区域的坐标分布,确定位于所述读数区域内的至少一个文本区域。
5.根据权利要求1或2所述的方法,其特征在于,所述利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域,包括:
对所述读数区域的图像进行灰度化处理,得到所述读数区域的灰度图;
调整所述读数区域的灰度图的亮度和对比度,得到所述读数区域的灰度高亮图;
对所述读数区域的灰度高亮图进行二值化,得到所述读数区域的二值图;
针对所述读数区域的二值图,分别记录每行的黑色像素的点数和每列的黑色像素的点数;
根据黑色像素的点数最多的行和黑色像素的点数最多的列,对所述读数区域的二值图进行分割,得到完整的电表读数文本区域。
6.根据权利要求1或2所述的方法,其特征在于,所述判断所述电表读数文本区域中是否存在小数,包括:
将电表读数文本区域的图像从红绿蓝RGB空间转到色调饱和度明度HSV空间,得到HSV图像;
统计HSV图像的面积和HSV图像中红色区域的面积;
若红色区域的面积占HSV图像的面积的比值大于等于预设值,则确定所述电表读数文本区域中存在小数。
7.根据权利要求1或2所述的方法,其特征在于,还包括:
采集电表图像样本;
对每张所述电表图像样本中读数区域的数字进行标注,构建CRNN训练数据集;
利用CRNN训练数据集,进行模型训练,得到训练好的CRNN模型。
8.一种电表读数识别装置,其特征在于,包括:
获取模块,用于获取待检测的电表图像;
读数区域确定模块,用于将所述待检测的电表图像输入训练好的YOLO模型,从所述待检测的电表图像中确定出读数区域;
文本区域确定模块,用于将所述待检测的电表图像输入训练好的CTPN模型,从所述待检测的电表图像中确定出至少一个文本区域;
电表读数文本区域确定模块,用于根据所述读数区域和所述至少一个文本区域,确定所述读数区域内的至少一个文本区域;利用投影法,从所述读数区域内的至少一个文本区域中确定电表读数文本区域;
小数判别模块,用于判断所述电表读数文本区域中是否存在小数;
读数模块,用于将所述电表读数文本区域的图像输入训练好的CRNN模型,确定所述电表读数文本区域中的数字;
电表读数输出模块,用于根据所述电表读数文本区域中的数字、所述电表读数文本区域中是否存在小数,输出电表读数识别结果。
9.一种电子设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用并执行所述存储器中的程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932750.2A CN113642582B (zh) | 2021-08-13 | 2021-08-13 | 电表读数识别方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932750.2A CN113642582B (zh) | 2021-08-13 | 2021-08-13 | 电表读数识别方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113642582A CN113642582A (zh) | 2021-11-12 |
CN113642582B true CN113642582B (zh) | 2023-07-25 |
Family
ID=78421649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932750.2A Active CN113642582B (zh) | 2021-08-13 | 2021-08-13 | 电表读数识别方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113642582B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117894032A (zh) * | 2024-03-14 | 2024-04-16 | 上海巡智科技有限公司 | 水表读数识别方法、系统、电子设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999013426A1 (en) * | 1997-09-11 | 1999-03-18 | Abb Power T & D Company Inc. | Automated meter reading system |
CN106529537A (zh) * | 2016-11-22 | 2017-03-22 | 亿嘉和科技股份有限公司 | 一种数字仪表读数图像识别方法 |
CN107590498A (zh) * | 2017-09-27 | 2018-01-16 | 哈尔滨工业大学 | 一种基于字符分割级联二分类器的自适应汽车仪表检测方法 |
CN109117848A (zh) * | 2018-09-07 | 2019-01-01 | 泰康保险集团股份有限公司 | 一种文本行字符识别方法、装置、介质和电子设备 |
CN109214378A (zh) * | 2018-08-16 | 2019-01-15 | 新智数字科技有限公司 | 一种基于神经网络整体识别计量表读数的方法和系统 |
CN109858560A (zh) * | 2019-02-18 | 2019-06-07 | 广东中粤电力科技有限公司 | 一种指针式仪表图像识别读数及安全预警方法 |
CN111461121A (zh) * | 2020-05-18 | 2020-07-28 | 江苏电力信息技术有限公司 | 一种基于yolov3网络的电表示数识别方法 |
CN112990212A (zh) * | 2021-02-05 | 2021-06-18 | 开放智能机器(上海)有限公司 | 热成像温度图的读数方法、装置、电子设备和存储介质 |
-
2021
- 2021-08-13 CN CN202110932750.2A patent/CN113642582B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999013426A1 (en) * | 1997-09-11 | 1999-03-18 | Abb Power T & D Company Inc. | Automated meter reading system |
CN106529537A (zh) * | 2016-11-22 | 2017-03-22 | 亿嘉和科技股份有限公司 | 一种数字仪表读数图像识别方法 |
CN107590498A (zh) * | 2017-09-27 | 2018-01-16 | 哈尔滨工业大学 | 一种基于字符分割级联二分类器的自适应汽车仪表检测方法 |
CN109214378A (zh) * | 2018-08-16 | 2019-01-15 | 新智数字科技有限公司 | 一种基于神经网络整体识别计量表读数的方法和系统 |
CN109117848A (zh) * | 2018-09-07 | 2019-01-01 | 泰康保险集团股份有限公司 | 一种文本行字符识别方法、装置、介质和电子设备 |
CN109858560A (zh) * | 2019-02-18 | 2019-06-07 | 广东中粤电力科技有限公司 | 一种指针式仪表图像识别读数及安全预警方法 |
CN111461121A (zh) * | 2020-05-18 | 2020-07-28 | 江苏电力信息技术有限公司 | 一种基于yolov3网络的电表示数识别方法 |
CN112990212A (zh) * | 2021-02-05 | 2021-06-18 | 开放智能机器(上海)有限公司 | 热成像温度图的读数方法、装置、电子设备和存储介质 |
Non-Patent Citations (4)
Title |
---|
Text detection and recognition in raw image dataset of seven segment digital energy meter display;Karthick Kanagarathinam 等;《Energy Reports》;842-852 * |
一种机械式电表读数区域的自动定位方法;赵艳红;《计算机测量与控制》;第25卷(第3期);162-165 * |
基于深度学习的指针式仪表检测与识别研究;徐发兵 等;《高技术通讯》;第29卷(第12期);1206 -1215 * |
基于深度学习的水表读数识别及其应用.《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》.2020,C038-2141. * |
Also Published As
Publication number | Publication date |
---|---|
CN113642582A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444781B (zh) | 一种水表读数识别方法、设备及存储介质 | |
Tian et al. | Multiscale building extraction with refined attention pyramid networks | |
CN108229418B (zh) | 人体关键点检测方法和装置、电子设备、存储介质和程序 | |
CN109285181B (zh) | 用于识别图像的方法和装置 | |
CN114758249B (zh) | 基于野外夜间环境的目标物监测方法、装置、设备及介质 | |
CN110909640A (zh) | 水位线的确定方法及装置、存储介质、电子装置 | |
CN112989995B (zh) | 文本检测方法、装置及电子设备 | |
CN111950812B (zh) | 一种自动识别与预测雨量的方法及其装置 | |
CN110046617A (zh) | 一种基于深度学习的数字电表读数自适应识别方法 | |
CN111310671B (zh) | 基于深度学习的加热炉底部积水坑异常识别方法、系统及设备 | |
CN114049356B (zh) | 一种结构表观裂缝检测方法、装置及系统 | |
CN111339902A (zh) | 一种数显仪表的液晶屏示数识别方法及装置 | |
CN111860652A (zh) | 基于图像检测的动物体重测量方法、装置、设备及介质 | |
CN112560845A (zh) | 字符识别方法、装置、智能取餐柜、电子设备及存储介质 | |
CN113642582B (zh) | 电表读数识别方法、装置、电子设备和存储介质 | |
CN115272887A (zh) | 基于无人机检测的海岸带垃圾识别方法、装置以及设备 | |
CN112113638B (zh) | 水表功能自检装置及方法 | |
KR101842535B1 (ko) | 부호의 광학적 검출 방법 | |
CN111931721B (zh) | 年检标签颜色和个数的检测方法、装置及电子设备 | |
CN114049568A (zh) | 基于图像比对的标的物形变检测方法、装置、设备及介质 | |
CN113515143A (zh) | 机器人导航方法、机器人及计算机可读存储介质 | |
CN117095275A (zh) | 一种数据中心资产盘点方法、系统、装置及存储介质 | |
CN116704324A (zh) | 基于水下图像的目标检测方法、系统、设备以及存储介质 | |
CN115760854A (zh) | 基于深度学习的电力设备缺陷检测方法、装置及电子设备 | |
CN112699824B (zh) | 电能表仪表常数检测方法、设备及存储介质 |
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 |