【技术实现步骤摘要】
一种弱约束的水表读数识别方法
[0001]本专利技术属于人工智能领域,涉及一种弱约束的水表读数识别方法。
技术介绍
[0002]现有的基于卷积神经网络的水表读数识别方法,主要分为二阶段的水表识别方法和端到端的一个阶段的水表识别方法两大类。二阶段的水表识别方法通常是采用两个不同的神经网络,第一个网络首先检测出水表中的读数区域,然后第二个网络再对检测出的读数区域中的数字进行识别。而端到端的一个阶段的水表识别方法是指仅用一个神经网络来直接识别出水表读数区域的数字。然而,不论是二阶段的方法还是一阶段的方法,现有的水表识别方法都仅能较好地识别出拍摄角度固定或者角度变化较小、光照变化较小、表盘较为清晰等理想水表图像中的数字,而对于实际场景中出现的角度偏移较大、光照变化较大、表盘污渍较为严重等复杂、降质的水表图像就无能为力,适用范围十分有限。
技术实现思路
[0003]有鉴于此,本专利技术的目的在于提供一种弱约束的水表读数识别方法,属于二阶段的水表识别方法,通过设计一种强大的特征提取网络和一种角度预测分支,以及一种改进的loss函数,实现了对光照变化、污渍和角度/尺度很强的鲁棒性,能够在大偏移角度、大变化尺度、强光照变换和严重污渍的水表图像中准确检测和识别出其中的数字,能够达到94.5%的识别准确率,明显优于现有的水表识别方法,能够很好地应用于实际的复杂环境中。
[0004]为达到上述目的,本专利技术提供如下技术方案:
[0005]一种弱约束的水表读数识别方法,包括以下步骤:
[0006]S ...
【技术保护点】
【技术特征摘要】
1.一种弱约束的水表读数识别方法,其特征在于:包括以下步骤:S1:通过读数区域检测网络对水表读数区域进行检测;S2:通过光学字符识别网络OCR对检测出的读数区域中的数字进行识别,输出最终的读数结果。2.根据权利要求1所述的弱约束的水表读数识别方法,其特征在于:在步骤S1中,具体包括以下三个步骤:对读数区域的坐标和方向进行预测;对读数区域坐标和方向进行纠正;裁剪读数区域。3.根据权利要求2所述的弱约束的水表读数识别方法,其特征在于:步骤S1中,基于卷积神经网络CNN构建读数区域检测网络,所述读数区域检测网络由多个CBL块、残差块和一个检测块构成,所述CBL块由一个卷积层、一个批量正则化BN操作单元和一个泄漏修正线性单元Leaky ReLU依次连接组成;所述残差块包括依次连接的1
×
1卷积层、BN操作单元、Leaky ReLU单元、3
×
3卷积层、BN操作单元、残差连接和Leaky ReLU单元。4.根据权利要求3所述的弱约束的水表读数识别方法,其特征在于:所述读数区域检测网络的结构包括依次连接的第一CBL块、第二CBL块、第三CBL块、两个32通道的残差块、第四CBL块、四个64通道的残差块、第五CBL块、四个64通道的残差块、第六CBL块、八个128通道的残差块、检测块;所述第一CBL块、第二CBL块中的卷积层的卷积核为3
×
3,输出通道数为16,卷积步长为1;所述第三CBL块中的卷积层的卷积核为3
×
3,输出通道数为32,卷积步长为2;所述第四CBL块、第五CBL块中的卷积层的卷积核为3
×
3,输出通道数为64,卷积步长为2;所述第六CBL块中的卷积层的卷积核为3
×
3,输出通道数为128,卷积步长为2;所述检测块Endblock具有三个并行的卷积层:第一分支用于预测水表读数区域的概率;中间分支用于回归水表读数区域的仿射矩阵,第三分支用于预测水表读数区域的方向。5.根据权利要求4所述的弱约束的水表读数识别方法,其特征在于:还包括一个改进的多任务Loss函数来匹配EndBlock的三个分支:在每张输出特征图的每个像素点(m,n)上定义目标/非目标分类损失、仿射损失和目标方向损失,三种不同的损失来对应EndBlock中的三个分支;所述多任务Loss函数为:其中,λ
cls
、λ
aff
和λ
dire
分别是三种损失的权重参数,(m,n)表示输出特征图的像素点,M,N分别表示输出特征图的宽和高;L
cls
(p
mn
,t
mn
)为输出特征图像素点(m,n)的目标/非目标损失,t
mn
表示在像素点(m,n)的目标/非目标标签:当像素点(m,n)属于读数区域时t
mn
=1,否则为0;p
mn
表示预测像素点(m,n)是否属于读数区域的概率,具体计算公式如下:L
cls
(p
mn
,t
mn
)=
‑
(t
mn
log(p
mn
)+(1
‑
t
mn
)log(1
‑
p
mn
))
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)L
affine
(T
mn
(b),A
mn
(d))为像素点(m,n)的仿射损失,令d
i
=[x
i
,y
i
]
T
,i∈{1,2,3,4}表示
水表读数区域四个顶点的顺时针坐标,从左上角开始,d1为其左上点;令b1=[
‑
0.5,
‑
0.5]
T
,b2=[0.5,
‑
0.5]
T
,b3=[0.5,0.5]
T
,b4=[
‑
0.5,0.5]
T
代表以原点为中心的单位矩形的四个顶点;EndBlock的中间分支在通道方向输出六个仿射矩阵参数:O3,O4,O5,O6,O7,O8,用于构建仿射矩阵,然后利用该六个参数,通过公式(3)计算得到预测的水表读数区域的四个顶点的坐标,具体计算公式如下:O3和O7采用最大化来确保对角线为正;通过下式实现归一化:在公式(4)中,(m,n)代表当前像素点的位置坐标值,N表示网络下采样的倍数,d表示水表读数区域四个顶点的真实坐标值;然后使用L1损失函数来计算水表读数区域的仿射损失,T
mn
(b)是通过仿射变换预测的水表读数区域的坐标值,因此L
affine
(T
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。