一种数字仪表读数图像识别方法转让专利

申请号 : CN201611031884.2

文献号 : CN106529537B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 葛成伟王锋林欢程敏赵伟邱显东许春山

申请人 : 亿嘉和科技股份有限公司

摘要 :

本发明提供一种数字仪表读数图像识别方法,根据事先标定的数字仪表图像,使用模板匹配方法在全景图像中提取感兴趣区域,再根据标定字符的相对位置关系提取感兴趣区域中单个字符区域和小数点待检测区域;对单个字符区域,利用事先训练好的卷积神经网络字符模型进行单个字符识别;对小数点待检测区域,利用事先训练好的基于分块LBP编码特征及Adaboost分类器的Cascade目标检测子进行小数点检测,并对检测结果进行后处理;最后根据字符、小数点及正负号识别结果获取读数。本发明具有高准确度、高鲁棒性,对0~9数字、正负号及小数点都具有很高的准确度。

权利要求 :

1.一种数字仪表读数图像识别方法,其特征在于,包括以下步骤:

(1)根据事先标定的数字仪表图像,使用模板匹配方法在全景图像中提取感兴趣区域,即,利用标定的数字仪表图像模板在全景图中进行数字仪表图像定位,数字仪表图像的标定具体包括:选择数字仪表的感兴趣区域,设感兴趣区域图像为Ic,中心像素点坐标点为p(x0,y0);其次以直线标定数字仪表字符上/下边界,直线段左右两个端点分别记为p1(x1,y1)与p2(x2,y2),则直线段p1p2与x的转角表示为以中心点p(x0,y0)为原点,转角为θ的旋转矩阵表示为

再根据旋转矩阵及中心点将数字仪表旋转到水平方向,记旋转后的图像Ic′再根据标定字符的相对位置关系提取感兴趣区域中的单个字符区域和小数点待检测区域;

(2)对单个字符区域,利用事先训练好的卷积神经网络字符模型进行单个字符识别;

(3)对小数点待检测区域,利用事先训练好的基于分块LBP编码特征及Adaboost分类器的Cascade目标检测子进行小数点检测;

(4)根据字符、小数点及正负号识别结果获取读数。

2.如权利要求1所述的数字仪表读数图像识别方法,其特征在于:所述步骤(1)中,根据标定字符的相对位置关系提取感兴趣区域中的单个字符区域是指,根据事先标定的数字仪表图像单个字符的相对位置关系获取待识别图像中单个字符的位置,字符的标定具体包括:对旋转后的图像I′c,选择包含所有字符的最小外接矩形区域,记为Lij,其中y1≤i≤yM,x1≤j≤xN,其中y1、yM、x1与xN均是相对于旋转图像I′c的坐标,M、N分别为最小外接矩形的高度与宽度;设最小外接矩形区域Lij包含的字符数为l,将旋转图像I′c进行水平方向上平均l等分,则单个字符区域图像可以表示为Ck=I′c(y1:yM,(x1+(k-1)*w):(x1+k*w-1)),其中w=N/l为单个字符的宽度,1≤k≤l。

3.如权利要求1所述的数字仪表读数图像识别方法,其特征在于:所述步骤(1)中,根据标定字符的相对位置关系提取感兴趣区域中的小数点待检测区域是指,根据事先标定的数字仪表图像包含所有字符的最小外接矩形区域获取可能包含小数点的检测区域,小数点的标定包括:对旋转后的图像I′c,选择包含所有字符的最小外接矩形区域Lij,其中y1≤i≤yM,x1≤j≤xN,其中y1、yM、x1与xN均是相对于旋转图像I′c的坐标,M、N分别为最小外接矩形的高度与宽度;通常小数点位于字符右下角,对最小外接矩形区域Lij进行竖直方向上平均n等分,取最后一等分作为小数点待检测区域,则小数点待检测区域可以表示为D=I′c((yM-h-1):yM,x1:xN),

其中h=M/n为小数点待检测区域的高度。

4.如权利要求3所述的数字仪表读书图像识别方法,其特征在于:n=4。

5.如权利要求1所述的数字仪表读数图像识别方法,其特征在于:所述步骤(2)中,通过手动标注构建样本库,采用卷积神经网络CNN进行离线模型训练得到卷积神经网络字符模型。

6.如权利要求1所述的数字仪表读数图像识别方法,其特征在于:所述步骤(3)中,基于分块LBP编码特征及Adaboost分类器的Cascade目标检测框架是指,将小数点样本统一缩放到设定分辨率大小,以数字仪表的其他不包含小数点的区域作为负样本,选用分块LBP编码特征来区分正负样本,利用Adaboost特征分类器选择最具有区分度的分块LBP编码特征并组合成强分类器,将若干个强分类器串联在一起形成最终的Cascade Adaboost小数点检测子。

7.如权利要求1所述的数字仪表读数图像识别方法,其特征在于:所述步骤(3)中还包括,在小数点待检测区域中,利用小数点检测子检测到的q个矩形窗结果表示为Rk,其中k=

1,2,…,q,对小数点检测矩形窗进行后处理,排除无效的检测窗,选择置信度最高的作为最终的小数点位置。

8.如权利要求7所述的数字仪表读数图像识别方法,其特征在于:对小数点检测矩形窗进行后处理,具体包括:检测矩形窗合并:对任意两个检测矩形窗Ru与Rv其中,1≤u≤q,1≤v≤q,若满足τ∈[0,1),则将两矩形窗进行合并,合并的矩形窗为Ru∪Rv;

伪矩形窗去除:①小数点都位于字符与字符之间,若检测矩形窗在某个字符窗口之内,则排除;②正负号字符后不会紧跟小数点,若检测矩形窗之前的字符是正负号,则排除;③起始位置不会存在小数点,若检测窗之前不存在字符,则排除;④若检测窗之前的字符个数大于1并且全部为0则可排除;⑤通常情况数字仪表只包含一个小数点,若通过前述四个过滤条件后仍存在多个检测窗,则选择置信度最高的一个检测窗作为最终的小数点位置。

9.如权利要求8所述的数字仪表读数图像识别方法,其特征在于:τ=0.6。

说明书 :

一种数字仪表读数图像识别方法

技术领域

[0001] 本发明属于图像处理与模式识别领域,涉及一种数字仪表读数图像识别方法。

背景技术

[0002] LED数码表作为一种新型数显测量仪器,由于其低功耗、寿命长、体积小及读数精准等诸多优点,被广泛应用于化工、机械、电子、金融、电力等行业,如电网中的数字压力表、数字型电流表、数字型温度表等。传统的LED数码表读数需要人工肉眼识别,该方法繁琐、效率低下、劳动强度大,而且某些高危环境并不适宜人工作业,这就使得利用图像处理与模式识别算法自动识别LED数码表读数具有重要的实用价值。
[0003] LED数码表读数识别具体包括0~9数字、小数点、正负号的识别,可能还包括一些特殊字母的识别等。
[0004] 专利申请号为201510920430.X,名为《一种基于交点特征提取的数字识别方法》的中国专利申请,首先对LED数码进行字符分割,得到LED数码表二值图;其次利用两条水平线在数码表二值图像的3/4与1/4处,从左至右进行扫描,分别记录像素的变换次数;再其次利用一条垂直线在数码表二值图像的1/2处,从上至下进行列扫描,记录像素的变换次数;最后将行列像素变换次数与标准数字的变换次数进行比较,根据一定的逻辑策略进行数字判别。该方法依赖于LED二值图提取的准确度,如果二值图像存在多余的孔洞或者存在团块断裂,则识别率会大大降低,另外,该方法只针对数字0~9的识别,而没有涉及小数点与正负号的识别。
[0005] 专利申请号为201410216754.0,名为《基于视觉的数字仪表识别系统及其识别方法》的中国专利申请,公开了一种七段数码管数字仪表识别方法,首先根据二值图像的投影直方图进行数字与小数点分割并进行倾斜矫正,然后根据七段数码管的结构特征进行特征扫描;最后采用BP神经网络的方法进行字符识别并根据图像尺寸大小进行团块小数点辨识。实际情中的光线变化、表盘杂质等因素将影响二值图像的提取,进而影响数码管的特征描述,使得识别率下降;另一方面,根据图像尺寸与小数点团块大小来叛变小数点的方法不能从本质上描述小数点的特征,缺乏一定的鲁棒性。
[0006] 现有的识别方法更多的是针对0~9数字识别,而忽略了正负号及小数点的识别,LED数码表任意符号位的错误识别都是不能接受的,这就要求图像识别算法对不同符号的识别都必须具有高准确度、高鲁棒性。

发明内容

[0007] 为解决现有技术存在的问题,本发明提供一种数字仪表读数图像识别方法,本发明具有高准确度、高鲁棒性,对0~9数字、正负号及小数点都具有很高的准确度。
[0008] 本发明提供的数字仪表读数图像识别方法,包括以下步骤:
[0009] (1)根据事先标定的数字仪表图像,使用模板匹配方法在全景图像中提取感兴趣区域,再根据标定字符的相对位置关系提取感兴趣区域中的单个字符区域和小数点待检测区域;
[0010] (2)在单个字符区域,利用事先训练好的卷积神经网络字符模型进行单个字符识别;
[0011] (3)在小数点待检测区域,利用事先训练好的基于分块LBP编码特征及Adaboost分类器的Cascade目标检测子进行小数点检测;
[0012] (4)根据字符、小数点及正负号识别结果获取读数。
[0013] 所述步骤(1)中,根据事先标定的数字仪表图像,使用模板匹配方法在全景图像中提取感兴趣区域是指,利用标定的数字仪表图像模板在全景图中进行数字仪表图像定位,数字仪表图像的标定具体包括:
[0014] 选择数字仪表的感兴趣区域,设感兴趣区域图像为Ic,设中心像素点坐标点为p(x0,y0);其次以直线标定数字仪表上/下边界,直线段左右两个端点分别记为p1(x1,y1)与p2(x2,y2),则直线段p1p2与x的转角表示为
[0015]
[0016] 以中心点p(x0,y0)为原点,转角为θ的旋转矩阵表示为
[0017]
[0018] 再根据旋转矩阵及中心点将数字仪表旋转到水平方向,记旋转后的图像I′c。
[0019] 所述步骤(1)中,根据标定字符的相对位置关系提取感兴趣区域中的单个字符区域是指,根据事先标定的数字仪表图像单个字符的相对位置关系获取待识别图像中单个字符的位置,字符的标定具体包括:
[0020] 对旋转后的图像I′c,选择包含所有字符的最小外接矩形区域,记为Lij,其中y1≤i≤yM,x1≤j≤xN,其中y1、yM、x1与xN均是相对于旋转图像I′c的坐标,M、N分别为最小外接矩形的高度与宽度;设最小外接矩形区域Lij包含的字符数为l,将旋转图像I′c进行水平方向上平均l等分,则单个字符区域图像可以表示为
[0021] Ck=I′c(y1:yM,(x1+(k-1)*w):(x1+k*w-1)),
[0022] 其中w=N/l为单个字符的宽度,1≤k≤l。
[0023] 所述步骤(1)中,根据标定字符的相对位置关系提取感兴趣区域中的小数点待检测区域是指,根据事先标定的数字仪表图像包含所有字符的最小外接矩形区域获取可能包含小数点的检测区域,小数点的标定包括:
[0024] 对旋转后的图像I′c,选择包含所有字符的最小外接矩形区域,记为Lij,其中y1≤i≤yM,x1≤j≤xN,其中y1、yM、x1与xN均是相对于旋转图像I′c的坐标,M、N分别为最小外接矩形的高度与宽度;通常小数点位于字符右下角,对最小外接矩形区域Lij进行竖直方向上平均n(经验值n=4)等分,取最后一等分作为小数点待检测区域,则小数点待检测区域表示为[0025] D=I′c((yM-h-1):yM,x1:xN),
[0026] 其中h=M/n为小数点待检测区域的高度。
[0027] 所述步骤(2)中,通过手动标注构建样本库,采用卷积神经网络CNN进行离线模型训练得到卷积神经网络字符模型。
[0028] 所述步骤(3)中,基于分块LBP编码特征及Adaboost分类器的Cascade目标检测框架是指,将小数点样本统一缩放到设定分辨率大小,以数字仪表的其他不包含小数点的区域作为负样本,选用分块LBP编码特征来区分正负样本,利用Adaboost特征分类器选择最具有区分度的分块LBP编码特征并组合成强分类器,将若干个强分类器串联在一起形成最终的Cascade Adaboost小数点检测子。
[0029] 所述步骤(3)中还包括,在小数点待检测区域中,利用小数点检测子检测到的q个矩形窗结果表示为Rk,其中k=1,2,…,q,对小数点检测矩形窗进行后处理,排除无效的检测窗,选择置信度最高的作为最终的小数点位置。
[0030] 优选地,对小数点检测窗进行后处理具体包括:
[0031] 检测矩形窗合并:对任意两个检测矩形窗Ru与Rv其中,1≤u≤q,1≤v≤q,若满足则将两矩形窗进行合并,合并的矩形窗为Ru∪Rv,这里τ为合并阈值,根据经验τ一般取0.6;
[0032] 伪矩形窗去除:①小数点都位于字符与字符之间,若检测矩形窗在某个字符窗口之内,则排除;②正负号字符后不会紧跟小数点,若检测矩形窗之前的字符是正负号,则排除;③起始位置不会存在小数点,若检测窗之前不存在字符,则排除;④若检测窗之前的字符个数大于1并且全部为0,则可排除;⑤通常情况数字仪表只包含一个小数点,若通过前述四个过滤条件后仍存在多个检测窗,则选择置信度最高的一个检测窗作为最终的小数点位置。
[0033] 本发明具有以下有益效果:(1)对0~9数字、正负号及小数点都具有很高的准确度,可以同时准确识别0~9数字符号、正负号符号及小数点位置。(2)能够克服光线变化、表盘杂质等因素的干扰,准确读取LED数码表的读数,具有高鲁棒性。(3)本发明可以大大增强自动化仪表及检测装置的适应性。

附图说明

[0034] 图1是小数点分块LBP编码特征示意图;
[0035] 图2是LED数码表的标定图;
[0036] 图3是经过旋转后的LED字符及小数点局部标定图;
[0037] 图4是任务图像LED数码表的识别结果图。

具体实施方式

[0038] 下面将结合附图阐述本发明的最优实施例:
[0039] 本发明采取的基本策略是:
[0040] (1)根据事先标定的LED数码表图像,在全景图像中利用模板匹配方法提取感兴趣(Region Of Interest,ROI)区域,再根据标定的LED数码表图像字符相对位置关系提取单个字符区域及小数点待检测区域。
[0041] (2)利用事先训练好的卷积神经网络(Convolutional Neural Network,CNN)LED字符模型进行单个字符的识别。
[0042] (3)在小数点待检测区域内,利用事先训练好的基于分块LBP编码特征及Adaboost分类器的Cascade目标检测框架进行小数点检测。
[0043] (4)对小数点检测窗进行后处理,根据检测窗与字符排列的逻辑关系排除无效的检测窗,选择置信度最高的作为最终的小数点位置。
[0044] (5)根据字符、小数点及正负号识别结果获取读数。
[0045] 以电网中数字型电流表为例,本发明提供的一种数字仪表读数图像识别方法,包括训练、标定及任务图识别三个阶段:
[0046] 1、训练阶段:训练阶段分LED字符训练及小数点检测子训练。
[0047] 1.1)LED字符训练
[0048] LED字符包括0~9数字与正负号,共计12个类别,事先通过手动标注构建样本库,将所有样本归一化到32x32的分辨率大小,采用卷积神经网络CNN进行离线模型训练。
[0049] 输入层:根据LED字符尺寸比例,将字符样本统一缩放到32x32尺寸,以RGB三通道作为输入层数据。
[0050] 卷积层1:采用大小为5x5的卷集核参数,特征图个数为12。
[0051] 池化层1:采用窗口尺寸为2x2的最大池化。
[0052] 卷积层2:采用大小为5x5的卷集核参数,特征图个数为48。
[0053] 池化层2:采用窗口尺寸为2x2的最大池化。
[0054] 全连接1:输出个数为150。
[0055] 全连接2:输出个数为100。
[0056] 输出层:采用softmax输出,输出的标签个数为12,表示12个字符类别的置信度。
[0057] 1.2)小数点训练
[0058] 小数点位置通常位于LED字符的右下端,采用基于Cascade Adaboost的目标检测框架来检测LED数码表是否包含小数点。
[0059] 将小数点样本统一缩放到32x32的分辨率大小,以LED数码表中其他不包含小数点的区域作为负样本,选用分块LBP编码特征来区分正负样本,小数点分块LBP编码特征如图1所示,以中心块的灰度均值与其八邻域块的灰度均值来表征图像,可以描述为[0060] 其中
[0061] 通过缩放与平移操作,32x32的窗口尺寸可以产生27225种分块LBP编码特征(弱分类器),利用Adaboost特征分类器选择最具有区分度的分块LBP编码特征并组合成强分类器,将若干个强分类器串联在一起形成最终的Cascade Adaboost小数点检测子。
[0062] 2、标定阶段:
[0063] 2.1)LED数码表标定
[0064] LED数码表标定如图2所示,该数码表包含三行LED字符,以第三行LED字符为待识别对象。首先,选择LED数码表ROI区域,为了增加数码表模板匹配的准确度,这里三行LED字符均包含于ROI区域中,设ROI区域图像为Ic,其中心像素点坐标点为p(x0,y0);其次,以直线标定第三行LED字符下(上)边界,直线段左右两个端点分别记为p1(x1,y1)与p2(x2,y2),则直线段p1p2与x的转角可以表示为
[0065]
[0066] 以中心点p(x0,y0)为原点,转角为θ的旋转矩阵可以描述为
[0067]
[0068] 再根据旋转矩阵及中心点将LED数码表旋转到水平方向,记旋转后的图像I′c。
[0069] 2.2)LED字符及小数点标定
[0070] LED字符及小数点标定如图3所示,选择包含第三行LED字符的最小外接矩形区域,记为Lij(y1≤i≤yM,x1≤j≤xN),其中y1、yM、x1与xN均是相对于旋转图像I′c的坐标,M、N分别为最小外接矩形的高度与宽度。
[0071] 设最小外接矩形区域Lij包含的LED字符数为l(实例中的l=4),将最小外接矩形区域Lij进行水平方向上平均l等分,则单个字符区域图像可根据旋转图像I′c表示为[0072] Ck=I′c(y1:yM,(x1+(k-1)*w):(x1+k*w-1))(1≤k≤l),
[0073] 其中w=N/l为单个字符的宽度。
[0074] 将最小外接矩形区域Lij进行竖直方向上平均n等分(实例中n=4),取最后一等分作为小数点的待检测区域,则小数点待检测区域可根据旋转图像I′c表示为
[0075] D=I′c((yM-h-1):yM,x1:xN),
[0076] 其中h=M/n为小数点待检测区域的高度。
[0077] 3、任务图识别阶段:
[0078] 任务图与标定图的最大区别即LED字符的变化,如图4所示,图4显示了任务图第三行LED字符识别结果,其底端分别叠加了单个字符定位结果、小数点定位结果及最终的识别结果。
[0079] 在任务图的识别阶段,根据事先标定的LED数码表图像,在全景图像中进行LED数码表匹配定位,若定位失败则说明不存在数码表;若定位成功,则需要进行单个字符及小数点识别。
[0080] 对比图2与图4,由于匹配的图像与模板(图2中标定的LED数码表区域)大小相同,LED字符的相对位置固定,在已知标定图像中第三行LED字符的相对位置信息后,通过一系列简单的换算即可得到任务图中第三行LED单个字符及小数点待检测区域。
[0081] 具体地,记匹配到的LED数码表图像为Ir,首先,根据标定的旋转矩阵Γ将匹配图像进行旋转矫正,得到旋转矫正后的匹配图像I′r,以确保第三行LED字符在I′r中处于水平方向;其次,由于是相对坐标,根据标定信息可以得到任务图中第三行LED字符中每个字符图像为
[0082] Ck=I′r(y1:yM,(x1+(k-1)*w):(x1+k*w-1))(1≤k≤l),
[0083] 其中w=N/l为单个字符的宽度,实例中l=4为待识别字符的个数,使用离线训练的卷积神经网络模型对所有字符进行识别,最终得到l个字符的识别结果;再其次,根据标定信息得到任务图中第三行小数点待检测区域为
[0084] D=I′r((yM-h-1):yM,x1:xN),
[0085] 其中h=M/n为小数点待检测区域的高度,实例中n=4,利用离线训练的Cascade Adaboost小数点检测子在区域D内进行小数点检测,并对检测结果进行后处理,获得小数点定位结果;最后,合并字符、小数点识别结果获取读数,实例中LED字符读数为8.320。
[0086] 利用Cascade Adaboost检测子检测到的小数点会存在误检的情况,因而需要进行小数点检测后处理过程,具体包括:
[0087] (1)检测矩形窗合并:对任意两个检测矩形窗Ru与Rv其中,1≤u≤q,1≤v≤q,若满足 则将两矩形窗进行合并,合并的矩形窗为Ru∪Rv;
[0088] (2)伪矩形窗去除:①小数点都位于字符与字符之间,若检测矩形窗在某个字符窗口之内,则排除;②正负号字符后不会紧跟小数点,若检测矩形窗之前的字符是正负号,则排除;③起始位置不会存在小数点,若检测窗之前不存在字符,则排除;④若检测窗之前的字符个数大于1并且全部为0,如为00或000或0000,……,则可排除;⑤通常情况数字仪表只包含一个小数点,若通过前述四个过滤条件后仍存在多个检测窗,则选择置信度最高的一个检测窗作为最终的小数点位置。本发明还可以有其它实施方法,凡采用同等替换或等效变换形成的技术方案,均落在本发明要求保护的范围之内。