CN110084241B - 一种基于图像识别的电表自动读数方法 - Google Patents

一种基于图像识别的电表自动读数方法 Download PDF

Info

Publication number
CN110084241B
CN110084241B CN201910368291.2A CN201910368291A CN110084241B CN 110084241 B CN110084241 B CN 110084241B CN 201910368291 A CN201910368291 A CN 201910368291A CN 110084241 B CN110084241 B CN 110084241B
Authority
CN
China
Prior art keywords
area
state
image
digital
row
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
Application number
CN201910368291.2A
Other languages
English (en)
Other versions
CN110084241A (zh
Inventor
贲晛烨
范玉奇
任亿
刘炳勋
孟昭勇
肖瑞雪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong University
Original Assignee
Shandong University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shandong University filed Critical Shandong University
Priority to CN201910368291.2A priority Critical patent/CN110084241B/zh
Publication of CN110084241A publication Critical patent/CN110084241A/zh
Application granted granted Critical
Publication of CN110084241B publication Critical patent/CN110084241B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Character Input (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种基于图像识别的电表自动读数方法,包括:(1)对采集的电表图像进行预处理,包括依次对电表图像进行粗定位、粗裁剪和灰度化,得到灰度图像;(2)通过局部自适应阈值对灰度图像进行二值化操作,得到二值化图像;(3)进行去连通化操作,获得大致数字区域图像;(4)通过纵向投影法,选出每个数字截止位置,进而标记出精确的数字区域;(5)根据数字的位置,分割出每一个数字,七块区域扫描法进行单个数字识别,得到最后数字识别的结果。相比于已有的电表数字识别方法,本发明更加注重对图片结构特征的操作,简化了识别系统。本发明能更准确定位出数字区域,提高了识别速率,是一种鲁棒的智能电表数字识别方法。

Description

一种基于图像识别的电表自动读数方法
技术领域
本发明涉及一种基于图像识别的电表自动读数方法,属于数字图像处理、模式识别技术领域。
背景技术
随着科技的进步,电力行业发展迅速,电表作为一种重要的工具,用来记录家庭电量的使用并显示数据。传统的机械式电表正在逐步被智能数字显示电表取代,这种智能电表能够自动识别自身数字并且能传输到控制系统。一方面,因无线网络、电表箱等环境因素的不稳定性,电表的远程监控往往准确性欠佳;另一方面,由于受到区域因素以及技术因素的制约,有些电表无法实现数据的自动采集,只能安排工人手动抄表,大量的数据采集工作需要花费一定的人力,且工作人员长时间工作可能会出现读表错误的情况。
近年来,随着图像处理技术的广泛应用,降低了数据采集的要求,使得工作人员只需获得仪表图像,通过采用图像处理技术便可以实现对电表进行数字识别。这样不但有效避免了人力的浪费,还减少环境等因素对电表读数准确性的影响,一定程度上提高了读表的准确性和可靠性。但目前的采用的一些数字识别方法,因算法本身的约束存在识别率低的缺点,另外一些采用神经网络,小波变换等的识别方法,会使得识别系统变得庞大、复杂,严重拖慢了识别速度,降低了识别效率。
中国专利文献CN109344820A公开了基于计算机视觉和深度学习的数字式电表读数识别方法,包括下列操作步骤:(1)电表图像预处理过程,包括倾斜矫正、鱼眼矫正和统一图像大小;(2)数字区域检测过程,通过预先训练好的深度神经网络进行数字区域检测;(3)读数识别过程,对数字区域进行分割,并将分割后获得的图像统一分辨率,通过预先训练好的深度神经网络进行识别;但是,该专利尽管通过训练好的深度神经网络能保证数字区域检测以及读数的准确性,通过该方法识别电表液晶显示屏显示的数字会让识别系统过于庞大、复杂。
发明内容
针对现有技术的不足,本发明提供了一种基于图像识别的电表自动读数方法。
发明概述:
一种基于图像识别的电表自动读数方法,首先,对图像进行预处理,根据电表特征取出大致图像区域,并进行灰度化;其次,进行局部阈值自适应二值化算法和去连通化算法,得到大致的数字区域:通过对二值化图像无关行和无关列的标记,将图像分割成多个“边界连通”的区域,大致数字区域是面积最大(并且宽和高均为最大)的那个区域;最后,选出单个数字的位置然后逐个数字识别:基于大致图像区域进行列投影,标记出每个数字截止的列序号,然后再对每一个数字进行七块区域扫描得出识别结果。
术语解释:
1、bmpNumber:选定的大致数字区域图像。
2、bmpFinal:最终统一化的单个数字图像。
3、去连通化:对于二值化图像进行列投影,标记出大于某个阈值的列,然后逐行扫描,再标记连续黑色像素点和连续白色像素点大于某个阈值的行;最后选出相邻列间距最大,行间距最大的区域。
4、七块区域扫描:类似于七段显示数码管,选取单个数字图像的七个部分,然后逐个区域扫描,通过判断各个区域内部黑色像素点的比重,得出每个区域的状态,进而得到数字的识别结果。
本发明的技术方案为:
一种基于图像识别的电表自动读数方法,包括如下步骤:
(1)对采集的电表图像进行预处理,包括依次对电表图像进行粗定位、粗裁剪和灰度化,得到灰度图像;
(2)通过局部自适应阈值对步骤(1)得到的灰度图像进行二值化操作,得到二值化图像;
(3)基于二值化图像,进行去连通化操作,获得大致数字区域图像;
(4)通过纵向投影法,选出每个数字截止位置,进而标记出精确的数字区域;
(5)根据数字的位置,分割出每一个数字,基于数字结构特征,七块区域扫描法进行单个数字识别,得到最后数字识别的结果。
根据本发明优选的,步骤(3),包括步骤如下:
去连通化操作时基于电表液晶显示屏边框的连续性,经步骤(2)操作得到的二值化图像,待识别的数字区域被白色区域包围,白色区域外是二值化后黑色的液晶屏幕的边框;
A、纵向投影:设定阈值Threshold1,Threshold1表示黑色像素点数量的最小值,纵向投影记录每列的黑色像素点的数量,如果黑色像素点的数量大于Threshold1,则判定该列是无关区域,并标记列序号,否则,则不标记相应的列序号,进入步骤B;
B、横向扫描:记录第0行至第279行中每一行连续黑色像素点的长度和连续白色像素点的长度,设置阈值Threshold2、Threshold3,Threshold2是指连续黑色像素点长度的最小值,Threshold3是指连续白色像素长度的最小值,通过逐行横向扫描记录连续黑色像素点长度和连续白色像素点的长度,当检测到这一行连续黑色像素点的长度大于Threshold2或者连续白色像素点的长度大于Threshold3,则判定该行是无关区域,并标记行序号,进行下一行的扫描操作,直至扫描完最后一行;行序号是279;
C、标记的列序号、标记的行序号把二值化图像分为若干区域,选取这若干区域中面积最大的区域,作为大致数字区域图像,保存至图像bmpNumber中。
进一步优选的,Threshold1=170,Threshold2=100,Threshold3=295。
根据本发明优选的,步骤(4),包括步骤如下:
通过纵向投影法,能区分出图像bmpNumber中的单个数字的小区域,数字与数字之间的空白区域以及数字区域以外的干扰区域,并将单个数字的小区域的截止横坐标通过数组记录下来;
D、通过纵向投影法,消除大致数字区域图像中相邻两个数字间小数点的影响和“kwh”字母的干扰,并标记出这些无效区域;设定大致数字区域图像的宽度为w,由于数字区域的前端和后端会分别有非数字的干扰,便将投影区间设为列序号40至列序号w-20,消除小数点和“kwh”字母的操作如下:从第0列至最后一列,记图像bmpNumber的高度为h,是指:
首先,判断在中央位置(0.4*h-0.5*h)是否有黑色像素点,如果没有,扫描下一列,如果存在黑色像素点,则记录该像素点的位置,记为flag;然后,从位置flag+6至位置h,记录黑色像素点的数量,当数量为5或者6时,则判定这一列是存在两个小数点,便将这一列所有像素点全置为白色,否则,扫描下一列;接下来,进行第二次的扫描操作,将扫描到的黑色像素点的位置记为flag1,当flag1>0.65*h时,则认定是“kwh”字母的标志,将这一列所有像素点全置为白色,否则,扫描下一列;
E、选定每一个数字的截止横坐标:
这可以根据上一步标记的无效区域与有效区域的跳变以及有效区域的宽度阈值Threshold4双重条件来判定,注意到电表最多有8位数字,然后用数组Location[8]记录每一位数字截止的横坐标。
每个数字的宽度相同并将该宽度记为width:width=Location[1]-Location[0]-6,Location[1]是第2个数字截止区域的列序号,Location[0]是第1个数字截止的列序号;
第i个数字在大致数字区域图像的横坐标范围为[Location[i-1]-width,Location[i-1]];
假设共有num个数字,num≤8,则精确的数字区域的横坐标范围为[Location[0]-width,Location[num-1]]。
根据本发明优选的,步骤(5),包括步骤如下:
F、框定每个数字,框的宽度为width,框的高度根据每个数字在图像bmpNumber出现的纵坐标位置决定,具体操作如下:对第i个数字的区域,横坐标为[Location[i-1]-width,Location[i-1]],进行逐行扫描,分别统计每一行黑色像素点的数量,当该行黑色像素点的数量大于2时,则将该行记为纵向开始位置begin,否则扫描下一行,高度就是:height-begin,height;G、将框定的数字绘制到图像bmpSingle,存单个数字的图像;
H、鉴于每张图片数字的宽度不一致以及数字结构识别方法对于单个数字图像的宽度高度的要求,需要再对图像进行统一化,是指:
将图像bmpSingle存到图像bmpFinal中,设定图像bmpFinal宽度为35,高度为70;
基于图像bmpFinal,进行七块区域扫描法识别,包括:
①选出bmpFinal的七个固定位置和七个固定大小的区域,七个固定大小的区域包括区域0、区域1、区域2、区域3、区域4、区域5、区域6;七个区域(编号0-6)边界位置坐标分别为:(0,10,12,23),(10,30,0,12),(10,30,23,35),(30,40,12,23),(40,60,0,12),(40,60,23,35),(60,70,12,23),获取每个固定大小的区域内黑色像素点的数量Ni;
②通过判断Ni在所属固定大小的区域内的像素点的占比,依次记录七个固定大小的区域的状态,当占比大于0.33,状态记为1,否则,记为0;状态为0或1;
③通过判断七个固定大小的区域各自的状态,得到最终识别的数字,是指:
当区域3的状态为0,区域6的状态为1,为数字0;
当区域0的状态为0,区域3的状态为0,区域6的状态为0,为数字1;
当区域0的状态为1,区域3的状态为0,区域6的状态为0,为数字7;
当区域0的状态为0,区域3的状态为1,为数字4;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为0,为数字5;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为1,为数字6;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为1,为数字2;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为0,为数字3;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为0,为数字9;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为1,为数字8。
根据本方法发明优选的,步骤(1),依次对电表图像进行粗定位、粗裁剪和灰度化,包括步骤如下:
a、粗定位:是根据电表顶部的颜色特征:具体方法是通过横向投影判断原始图像中符合条件的像素的数量,条件是指像素点颜色的红色和绿色分量的值均大于200;若数量大于250,则将该行作为裁剪的起始行,否则扫描下一行;
b、粗裁剪:裁剪时统一裁剪成宽度为960,高度为280的图像;
c、灰度化:按照加权平均的方法,将粗裁剪得到的图像每一个像素点(x,y)的灰度值gray(x,y)设为R(x,y)*0.299+G(x,y)*0.587+B(x,y)*0.114,R(x,y)是指像素点(x,y)的红色通道分量的值;G(x,y)是指像素点(x,y)的绿色通道分量的值;B(x,y)是指像素点(x,y)的蓝色通道分量的值。
根据本方法发明优选的,所述步骤(2),通过局部自适应阈值对步骤(1)得到的灰度图像进行二值化操作,是指:
设定灰度图像中任一像素点(x,y)的灰度值记为Gray[x,y];
以该像素点为中心取一个正方形区域,该正方形区域的边长为灰度图像宽度的十六分之一,边长记为sides,如果正方形区域范围的位置坐标超出了灰度图像的范围,则取灰度图像的边缘,不再满足正方形区域的条件,得到新的区域,区域面积记为S;否则,该正方形区域上、下、左、右边界分别取y+sides、y-sides、x-sides、x+sides;
将该正方形区域内部的灰度值的和记为Sum,根据下列判断,进行二值化操作,I表示像素点(x,y)的像素值:
Figure BDA0002048984330000051
本发明的有益效果是:
1、本发明提供一种基于图像识别的电表自动读数方法,相比于已有的电表数字识别方法,更加注重对图片结构特征的操作,没有引入深度神经网络的内容,使得整个识别系统的体积大大缩减,识别方式更加简单,使系统更加简化了识别系统。
2、对于图像中无关区域的去除,本方法提出一种去连通化的操作,能准确定位出数字区域。
3、基于面积对数字结构特征识别的方法,提高了识别速率,本方法可以高效地定位和识别数字,是一种鲁棒的智能电表数字识别方法。因为电表的数字区域边界特征明显,并且电表显示的数字是七段(数码管)结构,特征明显,可以基于图像的结构特征来进行数字区域检测和读数识别。
附图说明
图1为本发明采集的智能电表的原图;
图2(a)为本发明步骤(1)的粗裁剪后图像示意图;
图2(b)为本发明步骤(1)的粗裁剪后的灰度图像示意图;
图3本发明步骤(2)区域自适应阈值的二值化图像示意图;
图4(a)为本发明步骤(3)去连通化的效果示意图;
图4(b)为本发明步骤(3)粗略数字区域示意图;
图5为本发明步骤(4)纵向投影法得到的精准数字区域示意图;
图6为本发明步骤(5)对于单个数字的分割和识别结果示意图;
图7(a)为采用本发明电表自动读数方法识别的效果图一;
图7(b)为采用本发明电表自动读数方法识别的效果图二;
图7(c)为采用本发明电表自动读数方法识别的效果图三;
图7(d)为采用本发明电表自动读数方法识别的效果图四。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种基于图像识别的电表自动读数方法,采集的电表图像如图1所示,包括如下步骤:
(1)对采集的电表图像进行预处理,包括依次对电表图像进行粗定位、粗裁剪和灰度化,得到灰度图像;包括步骤如下:
a、粗定位:是根据电表顶部的颜色特征:具体方法是通过横向投影判断原始图像中符合条件的像素的数量,条件是指像素点颜色的红色和绿色分量的值均大于200;若数量大于250,则将该行作为裁剪的起始行,否则扫描下一行;
b、粗裁剪:裁剪时统一裁剪成宽度为960,高度为280的图像;粗裁剪后图像如图2(a)所示。
c、灰度化:按照加权平均的方法,将粗裁剪得到的图像每一个像素点(x,y)的灰度值gray(x,y)设为R(x,y)*0.299+G(x,y)*0.587+B(x,y)*0.114。粗裁剪后的灰度图像如图2(b)所示。
(2)通过局部自适应阈值对步骤(1)得到的灰度图像进行二值化操作,得到二值化图像;是指:
设定灰度图像中任一像素点(x,y)的灰度值记为Gray[x,y];
对于像素点(x,y),再取与之相关的四个点:(x1,y1),(x2,y1),(x1,y2),(x2,y2),
Figure BDA0002048984330000071
Width表示灰度图像的宽度,4个点是以像素点(x,y)为中心的正方形的四个顶点,当x1,x2,y1,y2的取值超过边界时,便取为边界值;整型数组Gray[x,y]表示像素点(x,y)的灰度值,整型数组Gs[x,y]表示像素点(x,y)左上位置所有像素的像素值的和,Gs[x,y]为:
Figure BDA0002048984330000072
该区域的面积记为S:S=(x2-x1)×(y2-y1);
计算Sum,Sum是4个点((x1,y1),(x2,y1),(x1,y2),(x2,y2))围成的正方形区域内灰度值的和:
Sum=Gs[x2,y2]-Gs[x2,y1]-Gs[x1,y2]+Gs[x1,y1];
进行二值化操作,用I来表示点(x,y)的像素值,0为白色,1为黑色:
Figure BDA0002048984330000073
二值化图像如图3所示。
(3)基于二值化图像,进行去连通化操作,获得大致数字区域图像;
(4)通过纵向投影法,选出每个数字截止位置,进而标记出精确的数字区域;
(5)根据数字的位置,分割出每一个数字,基于数字结构特征,七块区域扫描法进行单个数字识别,得到最后数字识别的结果。
实施例2
根据实施例1所述的一种基于图像识别的电表自动读数方法,其区别在于:
步骤(3),包括步骤如下:
去连通化操作时基于电表液晶显示屏边框的连续性,经步骤(2)操作得到的二值化图像,待识别的数字区域被白色区域包围,白色区域外是二值化后黑色的液晶屏幕的边框;
A、纵向投影:设定阈值Threshold1,Threshold1=170,Threshold1表示黑色像素点数量的最小值,纵向投影记录每列的黑色像素点的数量,如果黑色像素点的数量大于Threshold1,则判定该列是无关区域,并标记列序号,并把这些列序号逐个存到数组RowNum[]中,否则,则不标记相应的列序号,进入步骤B;
B、横向扫描:记录第0行至第279行中每一行连续黑色像素点的长度和连续白色像素点的长度,设置阈值Threshold2、Threshold3,Threshold2=100,Threshold3=295,Threshold2是指连续黑色像素点长度的最小值,Threshold3是指连续白色像素长度的最小值,通过逐行横向扫描记录连续黑色像素点长度和连续白色像素点的长度;
具体方法:逐行扫描时,利用两个数组Con_Black[],Con_White[]来记录该行在列x处达到的连续黑色像素点或者连续白色像素点的长度,其中:
Figure BDA0002048984330000081
/>
Figure BDA0002048984330000082
当检测到这一行连续黑色像素点的长度大于Threshold2或者连续白色像素点的长度大于Threshold3,则判定该行是无关区域,并标记行序号,进行下一行的扫描操作,直至扫描完最后一行;行序号是279;
C、标记的列序号、标记的行序号把二值化图像分为若干区域,选取这若干区域中面积最大的区域,作为大致数字区域图像,保存至图像bmpNumber中。
具体方法是:把标记了的行序号逐个存到数组LineNum[]中,下一步是计算相邻标记的行或列的差值,这一步是对数组RowNum[]和数组LineNum[]的操作:分别遍历RowNum[]和LineNum[],求出后项与前一项差值的最大值,记为max1,max2,假定:
max1=RowNum[r+1]-RowNum[r]
max2=LineNum[m+1]-LineNum[m]
那么大致数字区域的在二值化图像的位置就是:从LineNum[m]行至LineNum[m+1]行,从RowNum[r]列至RowNum[r+1]列。
在实验效果中,大致数字区域图像的上边界取为LineNum[m]-5,效果会更好一点,然后就把这片区域从二值化图像绘制到图像bmpNumber。
去连通化的效果如图4(a)所示;粗略数字区域如图4(b)所示。
步骤(4),包括步骤如下:
通过纵向投影法,能区分出图像bmpNumber中的单个数字的小区域,数字与数字之间的空白区域以及数字区域以外的干扰区域,并将单个数字的小区域的截止横坐标通过数组记录下来;
D、通过纵向投影法,消除大致数字区域图像中相邻两个数字间小数点的影响和“kwh”字母的干扰,并标记出这些无效区域;设定大致数字区域图像的宽度为w,由于数字区域的前端和后端会分别有非数字的干扰,便将投影区间设为列序号40至列序号w-20,消除小数点和“kwh”字母的操作如下:从第0列至最后一列,记图像bmpNumber的高度为h,是指:
首先,判断在中央位置(0.4*h-0.5*h)是否有黑色像素点,如果没有,扫描下一列,如果存在黑色像素点,则记录该像素点的位置,记为flag;然后,从位置flag+6至位置h,记录黑色像素点的数量,当数量为5或者6时,则判定这一列是存在两个小数点,便将这一列所有像素点全置为白色,否则,扫描下一列;接下来,进行第二次的扫描操作,将扫描到的黑色像素点的位置记为flag1,当flag1>0.65*h时,则认定是“kwh”字母的标志,将这一列所有像素点全置为白色,否则,扫描下一列;纵向投影法得到的精准数字区域如图5所示。
E、选定每一个数字的截止横坐标:
这可以根据上一步标记的无效区域与有效区域的跳变以及有效区域的宽度阈值Threshold4双重条件来判定,注意到电表最多有8位数字,然后用数组Location[8]记录每一位数字截止的横坐标。
每个数字的宽度相同并将该宽度记为width:width=Location[1]-Location[0]-6,Location[1]是第2个数字截止区域的列序号,Location[0]是第1个数字截止的列序号;
第i个数字在大致数字区域图像的横坐标范围为[Location[i-1]-width,Location[i-1]];
假设共有num个数字,num≤8,则精确的数字区域的横坐标范围为[Location[0]-width,Location[num-1]]。
步骤(5),包括步骤如下:
F、框定每个数字,框的宽度为width,框的高度根据每个数字在图像bmpNumber出现的纵坐标位置决定,具体操作如下:对第i个数字的区域,横坐标为[Location[i-1]-width,Location[i-1]],进行逐行扫描,分别统计每一行黑色像素点的数量,当该行黑色像素点的数量大于2时,则将该行记为纵向开始位置begin,否则扫描下一行,高度就是:height-begin,height;G、将框定的数字绘制到图像bmpSingle,存单个数字的图像;
H、鉴于每张图片数字的宽度不一致以及数字结构识别方法对于单个数字图像的宽度高度的要求,需要再对图像进行统一化,是指:
将图像bmpSingle存到图像bmpFinal中,设定图像bmpFinal宽度为35,高度为70;
基于图像bmpFinal,进行七块区域扫描法识别,包括:
①选出bmpFinal的七个固定位置和七个固定大小的区域,七个固定大小的区域包括区域0、区域1、区域2、区域3、区域4、区域5、区域6;七个区域(编号0-6)边界位置坐标分别为:(0,10,12,23),(10,30,0,12),(10,30,23,35),(30,40,12,23),(40,60,0,12),(40,60,23,35),(60,70,12,23),获取每个固定大小的区域内黑色像素点的数量Ni;
②通过判断Ni在所属固定大小的区域内的像素点的占比,依次记录七个固定大小的区域的状态,当占比大于0.33,状态记为1,否则,记为0;状态为0或1;
③通过判断七个固定大小的区域各自的状态,得到最终识别的数字,是指:
当区域3的状态为0,区域6的状态为1,为数字0;
当区域0的状态为0,区域3的状态为0,区域6的状态为0,为数字1;
当区域0的状态为1,区域3的状态为0,区域6的状态为0,为数字7;
当区域0的状态为0,区域3的状态为1,为数字4;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为0,为数字5;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为1,为数字6;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为1,为数字2;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为0,为数字3;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为0,为数字9;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为1,为数字8。对于单个数字的分割和识别结果如图6所示。
采用实施例电表自动读数方法识别的效果图一、效果图二、效果图三、效果图四分别如图7(a)、图7(b)、图7(c)、图7(d)所示。可知,本方法可以高效地定位和识别数字,是一种鲁棒的智能电表数字识别方法。

Claims (6)

1.一种基于图像识别的电表自动读数方法,其特征在于,包括如下步骤:
(1)对采集的电表图像进行预处理,包括依次对电表图像进行粗定位、粗裁剪和灰度化,得到灰度图像;
(2)通过局部自适应阈值对步骤(1)得到的灰度图像进行二值化操作,得到二值化图像;
(3)基于二值化图像,进行去连通化操作,获得大致数字区域图像;
(4)通过纵向投影法,选出每个数字截止位置,进而标记出精确的数字区域;包括步骤如下:
D、通过纵向投影法,消除大致数字区域图像中相邻两个数字间小数点的影响和“kwh”字母的干扰,并标记出这些无效区域;设定大致数字区域图像的宽度为w,将投影区间设为列序号40至列序号w-20,从第0列至最后一列,记图像bmpNumber的高度为h,是指:
首先,判断在中央位置(0.4*h-0.5*h)是否有黑色像素点,如果没有,扫描下一列,如果存在黑色像素点,则记录该像素点的位置,记为flag;然后,从位置flag+6至位置h,记录黑色像素点的数量,当数量为5或者6时,则判定这一列是存在两个小数点,便将这一列所有像素点全置为白色,否则,扫描下一列;接下来,进行第二次的扫描操作,将扫描到的黑色像素点的位置记为flag1,当flag1>0.65*h时,则认定是“kwh”字母的标志,将这一列所有像素点全置为白色,否则,扫描下一列;
E、选定每一个数字的截止横坐标:
每个数字的宽度相同并将该宽度记为width:width=Location[1]-Location[0]-6,Location[1]是第2个数字截止区域的列序号,Location[0]是第1个数字截止的列序号;
第i个数字在大致数字区域图像的横坐标范围为[Location[i-1]-width,Location[i-1]];
假设共有num个数字,num≤8,则精确的数字区域的横坐标范围为[Location[0]-width,Location[num-1]];
(5)根据数字的位置,分割出每一个数字,基于数字结构特征,七块区域扫描法进行单个数字识别,得到最后数字识别的结果。
2.根据权利要求1所述的一种基于图像识别的电表自动读数方法,其特征在于,步骤(3),包括步骤如下:
A、纵向投影:设定阈值Threshold1,Threshold1表示黑色像素点数量的最小值,纵向投影记录每列的黑色像素点的数量,如果黑色像素点的数量大于Threshold1,则判定该列是无关区域,并标记列序号,否则,则不标记相应的列序号,进入步骤B;
B、横向扫描:记录第0行至第279行中每一行连续黑色像素点的长度和连续白色像素点的长度,设置阈值Threshold2、Threshold3,Threshold2是指连续黑色像素点长度的最小值,Threshold3是指连续白色像素长度的最小值,通过逐行横向扫描记录连续黑色像素点长度和连续白色像素点的长度,当检测到这一行连续黑色像素点的长度大于Threshold2或者连续白色像素点的长度大于Threshold3,则判定该行是无关区域,并标记行序号,进行下一行的扫描操作,直至扫描完最后一行;行序号是279;
C、标记的列序号、标记的行序号把二值化图像分为若干区域,选取这若干区域中面积最大的区域,作为大致数字区域图像,保存至图像bmpNumber中。
3.根据权利要求2所述的一种基于图像识别的电表自动读数方法,其特征在于,Threshold1=170,Threshold2=100,Threshold3=295。
4.根据权利要求1所述的一种基于图像识别的电表自动读数方法,其特征在于,步骤(5),包括步骤如下:
F、框定每个数字,框的宽度为width;
H、对图像进行统一化,是指:
将图像bmpSingle存到图像bmpFinal中,设定图像bmpFinal宽度为35,高度为70;
基于图像bmpFinal,进行七块区域扫描法识别,包括:
①选出bmpFinal的七个固定位置和七个固定大小的区域,七个固定大小的区域包括区域0、区域1、区域2、区域3、区域4、区域5、区域6;
②通过判断Ni在所属固定大小的区域内的像素点的占比,依次记录七个固定大小的区域的状态,当占比大于0.33,状态记为1,否则,记为0;状态为0或1;
③通过判断七个固定大小的区域各自的状态,得到最终识别的数字,是指:
当区域3的状态为0,区域6的状态为1,为数字0;
当区域0的状态为0,区域3的状态为0,区域6的状态为0,为数字1;
当区域0的状态为1,区域3的状态为0,区域6的状态为0,为数字7;
当区域0的状态为0,区域3的状态为1,为数字4;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为0,为数字5;
当区域0的状态为1,区域3的状态为1,区域2的状态为0,区域4的状态为1,为数字6;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为1,为数字2;
当区域0的状态为1,区域3的状态为1,区域1的状态为0,区域2的状态为1,区域4的状态为0,为数字3;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为0,为数字9;
当区域0的状态为1,区域3的状态为1,区域1的状态为1,区域2的状态为1,区域4的状态为1,为数字8。
5.根据权利要求1所述的一种基于图像识别的电表自动读数方法,其特征在于,步骤(1),依次对电表图像进行粗定位、粗裁剪和灰度化,包括步骤如下:
a、粗定位:通过横向投影判断原始图像中符合条件的像素的数量,条件是指像素点颜色的红色和绿色分量的值均大于200;若数量大于250,则将该行作为裁剪的起始行,否则扫描下一行;
b、粗裁剪:统一裁剪成宽度为960,高度为280的图像;
c、灰度化:按照加权平均的方法,将粗裁剪得到的图像每一个像素点(x,y)的灰度值gray(x,y)设为R(x,y)*0.299+G(x,y)*0.587+B(x,y)*0.114,R(x,y)是指像素点(x,y)的红色通道分量的值;G(x,y)是指像素点(x,y)的绿色通道分量的值;B(x,y)是指像素点(x,y)的蓝色通道分量的值。
6.根据权利要求1-5任一所述的一种基于图像识别的电表自动读数方法,其特征在于,所述步骤(2),通过局部自适应阈值对步骤(1)得到的灰度图像进行二值化操作,是指:
设定灰度图像中任一像素点(x,y)的灰度值记为Gray[x,y];
以该像素点为中心取一个正方形区域,该正方形区域的边长为灰度图像宽度的十六分之一,边长记为sides,如果正方形区域范围的位置坐标超出了灰度图像的范围,则取灰度图像的边缘,得到新的区域,区域面积记为S;否则,该正方形区域上、下、左、右边界分别取y+sides、y-sides、x-sides、x+sides;
将该正方形区域内部的灰度值的和记为Sum,根据下列判断,进行二值化操作,I表示像素点(x,y)的像素值:
Figure FDA0004120674660000031
/>
CN201910368291.2A 2019-05-05 2019-05-05 一种基于图像识别的电表自动读数方法 Active CN110084241B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910368291.2A CN110084241B (zh) 2019-05-05 2019-05-05 一种基于图像识别的电表自动读数方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910368291.2A CN110084241B (zh) 2019-05-05 2019-05-05 一种基于图像识别的电表自动读数方法

Publications (2)

Publication Number Publication Date
CN110084241A CN110084241A (zh) 2019-08-02
CN110084241B true CN110084241B (zh) 2023-05-30

Family

ID=67418523

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910368291.2A Active CN110084241B (zh) 2019-05-05 2019-05-05 一种基于图像识别的电表自动读数方法

Country Status (1)

Country Link
CN (1) CN110084241B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110659645B (zh) * 2019-08-05 2023-01-31 沈阳工业大学 一种数字仪表字符识别方法
CN110533003B (zh) * 2019-09-06 2022-09-20 兰州大学 一种穿线法车牌数字识别方法及设备
CN112770080B (zh) * 2019-11-01 2023-01-03 中移物联网有限公司 一种抄表方法、抄表装置及电子设备
CN111914717A (zh) * 2020-07-24 2020-11-10 安徽华速达电子科技有限公司 一种基于抄表数据智能识别的数据录入方法及装置
CN112149655A (zh) * 2020-09-28 2020-12-29 怀化建南机器厂有限公司 一种水表读数识别方法、装置、设备以及存储介质
CN113191351B (zh) * 2021-02-01 2022-04-01 青岛理工大学 数字电表的示数识别方法及装置、模型训练方法及装置
CN113449639A (zh) * 2021-06-29 2021-09-28 深圳市海亿达科技股份有限公司 一种物联网网关对仪表的无接触数据采集方法
CN113610041A (zh) * 2021-08-18 2021-11-05 山东信通电子股份有限公司 一种用于指针式仪表的读数识别方法及设备
CN113537220B (zh) * 2021-09-17 2021-12-14 济南瑞泉电子有限公司 一种基于端点射线法的摄像直读水表识别方法
CN114998887B (zh) * 2022-08-08 2022-10-11 山东精惠计量检测有限公司 一种电能计量表智能识别方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306283A (zh) * 2011-07-23 2012-01-04 浙江大学 Lcd数显仪示值的图像识别方法
CN103606220A (zh) * 2013-12-10 2014-02-26 江苏国光信息产业股份有限公司 一种基于白光图像及红外图像的支票印刷体数字识别系统及其方法
CN106709524A (zh) * 2016-12-30 2017-05-24 山东大学 一种电气工程图中的元件符号检测与识别方法
CN106778754A (zh) * 2016-11-22 2017-05-31 南京理工大学 一种鲁棒的工业电表数字识别方法
CN107808159A (zh) * 2017-11-20 2018-03-16 杭州先锋电子技术股份有限公司 一种用于计量仪表机械表盘的数字自动识别抄表方法
CN108133216A (zh) * 2017-11-21 2018-06-08 武汉中元华电科技股份有限公司 基于机器视觉的可实现小数点读取的数码管读数识别方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102306283A (zh) * 2011-07-23 2012-01-04 浙江大学 Lcd数显仪示值的图像识别方法
CN103606220A (zh) * 2013-12-10 2014-02-26 江苏国光信息产业股份有限公司 一种基于白光图像及红外图像的支票印刷体数字识别系统及其方法
CN106778754A (zh) * 2016-11-22 2017-05-31 南京理工大学 一种鲁棒的工业电表数字识别方法
CN106709524A (zh) * 2016-12-30 2017-05-24 山东大学 一种电气工程图中的元件符号检测与识别方法
CN107808159A (zh) * 2017-11-20 2018-03-16 杭州先锋电子技术股份有限公司 一种用于计量仪表机械表盘的数字自动识别抄表方法
CN108133216A (zh) * 2017-11-21 2018-06-08 武汉中元华电科技股份有限公司 基于机器视觉的可实现小数点读取的数码管读数识别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于数字图像处理的电表号码识别系统研究;刘雯雯;《中国优秀硕士学位论文全文数据库信息科技辑》;20091115(第11期);I138-1172 *

Also Published As

Publication number Publication date
CN110084241A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110084241B (zh) 一种基于图像识别的电表自动读数方法
CN112419250B (zh) 路面裂缝数字图像提取、裂缝修补及裂缝参数计算方法
CN102567300B (zh) 图片文档的处理方法及装置
CN107358627B (zh) 基于Kinect相机的果实尺寸检测方法
CN108133216B (zh) 基于机器视觉的可实现小数点读取的数码管读数识别方法
CN106468543B (zh) 一种基于图像处理的叶片面积测量方法
CN109872309B (zh) 检测系统、方法、装置及计算机可读存储介质
CN107784669A (zh) 一种光斑提取及其质心确定的方法
CN107038416B (zh) 一种基于二值图像改进型hog特征的行人检测方法
CN109409290B (zh) 一种温度表检定读数自动识别系统及方法
CN109540925B (zh) 基于差影法与局部方差测量算子的复杂瓷砖表面缺陷检测方法
CN112149543B (zh) 一种基于计算机视觉的建筑扬尘识别系统与方法
CN108133471B (zh) 一种基于人工蜂群算法的机器人导航路径提取方法及装置
CN109064479B (zh) 一种基于邻近视频帧灰度动态特征的海天线检测方法
CN111062331B (zh) 图像的马赛克检测方法、装置、电子设备及存储介质
CN116703911B (zh) 一种led灯生产质量检测系统
CN111724354B (zh) 一种基于图像处理的多株小麦穗长与小穗数的测量方法
CN113538603A (zh) 一种基于阵列产品的光学检测方法、系统和可读存储介质
CN113487563B (zh) 一种基于el图像的光伏组件隐裂自适应检测方法
CN114332041A (zh) 基于U-Net的抛釉砖表面瑕疵检测方法及装置
CN108830834B (zh) 一种爬索机器人视频缺陷信息自动提取方法
CN106886609B (zh) 街区式农村居民地遥感快速标注方法
CN108256475B (zh) 一种票据图像倒置检测方法
CN110633705A (zh) 一种低照度成像车牌识别方法及装置
CN115797327A (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