一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种端到端的车牌矫正及识别方法与流程

2022-02-20 23:35:45 来源:中国专利 TAG:


1.本发明涉及图像处理技术领域,特别涉及一种端到端的车牌矫正及 识别方法。


背景技术:

2.车牌识别是智慧城市的核心技术之一,在出入口计费、违章抓拍、 车辆追踪等场景有着广泛的应用。
3.近年来,车牌识别算法发展势头良好,深度学习方法全面普及,使 得识别精度有了较大的提升。然而,由于卷积网络缺乏旋转不变性,同 时,常用的车牌识别网络在模型设计时,默认车牌方向是水平的,如ctc 系列方法,使得现有车牌识别方法在处理严重畸变、大角度倾斜等困难 车牌时,识别性能会显著降低。而通用的解决方法是引入额外的车牌矫 正步骤。
4.目前车牌矫正的主流算法包括两种:一种是基于颜色分割、边缘检 测、直线检测等传统图像处理的方法,确定车牌图像的矫正矩阵;这类 方法对简单样本处理效果较好,但对困难样本鲁棒性较差。另一种是基 于深度学习的方法,通过卷积网络直接预测车牌图像的矫正矩阵;这种 方法性能较好,且泛化能力较强,但需要大量的车牌角点标注图像,且 会增加额外的算力要求。


技术实现要素:

5.本发明的目的在于克服上述背景技术中的不足,在保证困难车牌识 别精度的同时,简化车牌架矫正步骤。
6.为实现以上目的,采用一种端到端的车牌矫正及识别方法,包括:
7.获取车牌图像,并作为车牌矫正及识别融合模型的输入,所述车牌 矫正及识别融合模型包括基干网络、车牌矫正头和车牌字符识别头,车 牌矫正头和车牌字符识别头共享基干网络;
8.基干网络对于车牌图像进行多尺度低级及高级特征提取并融合,得 到车牌特征图f;
9.车牌矫正头基于车牌特征图f进行车牌矫正,得到矫正车牌;
10.车牌字符识别头基于车牌特征图f,识别出车牌字符。
11.进一步地,所述基干网络包括下采样层、特征金字塔层、上采样层 和两卷积块cbl,下采样层用于提取不同尺寸的车牌特征图,特征金字 塔层用于对下采样层提取的不同尺寸的车牌特征图进行增强,一卷积块 cbl对特征金字塔层输出的特征图进行增强后作为上采样层的输入,上 采样层基于特征金字塔层的输出和一卷积块cbl的输出,恢复出车牌特 征,另一卷积块cbl对上采样层输出的特征图进行增强,得到所述车牌 特征图f。
12.进一步地,所述车牌矫正头包括车牌生成器和车牌判别器,车牌生 成器用于仿真生成真实矫正车牌图像,车牌判别器用于判断车牌生成器 所生成的矫正车牌是真实矫正车牌图像还是仿真矫正车牌图像。
13.进一步地,所述车牌字符识别头包括残差网络、resize函数、softmax 函数和ctc解网络,其中:
14.残差网络用于对所述车牌特征图f特征进行压缩,得到压缩特征;
15.将压缩特征按列进行通道合并resize操作,得到顺序特征图;
16.采用全连接结构将顺序特征图按列进行压缩至n维,并使用 softmax操作对每一列进行置信度激活,得到每一列位置各识别字符的 执行度;
17.对每一列位置各识别字符的执行度进行ctc解码,得到车牌字符识 别结果。
18.进一步地,在所述获取车牌图像,并作为车牌矫正及识别融合模型 的输入之前,还包括:
19.获取车牌数据集合,所述数据集合包括真实车牌图像、标注得到的 车牌号标签以及通过仿真生成的矫正图像;
20.利用车牌数据集合对所述车牌矫正及识别融合模型进行训练,学习 模型参数。
21.进一步地,还包括:采用识别损失函数loss
ctc
、生成损失函数lossg以及判别损失函数lossd对所述模型参数进行优化,其中,识别损失函 数用于优化所述基干网络和所述车牌字符识别头的模型参数,生成损失 函数用于优化所述基干网络和所述车牌生成器的模型参数,判别损失函 数用于优化所述车牌判别器的模型参数。
22.进一步地,所述识别损失函数loss
ctc
用于衡量模型输入的真实车牌 图像i对应的车牌字符标签l和模型推理得到的预测标签l
pred
之间的误 差,公式表示如下:
[0023][0024]
其中,t为标签长度,p
t
表示在真实标签l的条件下,预测标签的第 t维为的概率。t=[1,14]维的连乘即为输入标签l,推理得到预 测标签l
pred
的概率。
[0025]
进一步地,所述生成损失函数lossg用于衡量模型生成的车牌矫正图 像t
pred
与仿真矫正图像t之间的误差,公式表示如下:
[0026]
lossg=||t-t
pred
||-logy
pred
[0027]
其中,||t-t
pred
||为l2损失,作为正则项,-logy
pred
为交叉熵损 失,y
pred
表示判别器对输入图像预测的类别。
[0028]
进一步地,所述判别损失函数lossd用于衡量车牌判别器对输入图像 是否为模型生成的矫正图像,公式表示如下:
[0029]
lossd=-y log y
pred-(1-y)log(1-y
pred
)
[0030]
其中,y
pred
表示判别器对输入图像预测的类别,y为判别器标签, y=0表示判别器认为输入图像为生成图像,y=1表示判别器认为输入图 像为仿真矫正图像。
[0031]
进一步地,所述融合模型的整个网络的优化损失loss
sum
公式表示如 下:
[0032]
loss
sum
=lossd lossg αloss
ctc
[0033]
其中,α为车牌识别损失倍率。
[0034]
与现有技术相比,本发明存在以下技术效果:本发明通过将车牌矫 正和车牌识别步骤融合到一个深度学习模型中,能够同时矫正车牌图像 并识别车牌信息。该方法不依赖
额外的车牌角点标注图像,在保证困难 车牌识别精度的同时,简化了车牌矫正步骤。
附图说明
[0035]
下面结合附图,对本发明的具体实施方式进行详细描述:
[0036]
图1是一种端到端的车牌矫正及识别方法的流程图;
[0037]
图2是融合模型的结构图;
[0038]
图3是基干网络的结构图;
[0039]
图4是车牌矫正头的结构图;
[0040]
图5是车牌字符识别头的结构图;
[0041]
图6是图像矫正示意图;
[0042]
图7是模型参数优化示意图。
具体实施方式
[0043]
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说 明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围 加以限制。
[0044]
如图1所示,本实施例公开了一种端到端的车牌矫正及识别方法, 包括如下步骤s1至s4:
[0045]
s1、获取车牌图像,并作为车牌矫正及识别融合模型的输入,所述 车牌矫正及识别融合模型包括基干网络、车牌矫正头和车牌字符识别头, 车牌矫正头和车牌字符识别头共享基干网络;
[0046]
s2、基干网络对于车牌图像进行多尺度低级及高级特征提取并融合, 得到车牌特征图f;
[0047]
s3、车牌矫正头基于车牌特征图f进行车牌矫正,得到矫正车牌;
[0048]
s4、车牌字符识别头基于车牌特征图f,识别出车牌字符。
[0049]
作为进一步优选的技术方案,本实施例中车牌矫正及识别融合模型 的设计结构如图2所示,融合模型由一个基干网络(backbone)和两个输 出头(车牌矫正头gan head和车牌字符识别头ctc head)组成。网 络的输入为车牌图像,两个输出头的输出分别为矫正图像和车牌号识别 结果。
[0050]
所述基干网络包括下采样层、特征金字塔层、上采样层和两卷积块 cbl,下采样层用于提取不同尺寸的车牌特征图,特征金字塔层用于对 下采样层提取的不同尺寸的车牌特征图进行增强,一卷积块cbl对特征 金字塔层输出的特征图进行增强后作为上采样层的输入,上采样层基于 特征金字塔层的输出和一卷积块cbl的输出,恢复出车牌特征,另一卷 积块cbl对上采样层输出的特征图进行增强,得到所述车牌特征图f。
[0051]
如图3所示,本实施例中的基干网络主要包括4个下采样层 (downlayer)、3个特征金字塔层(fpn)、3个上采样层(uplayer)和2个 卷积块cbl。在本实施例中,为了便于表述,以w
×h×
c(即宽
×

×ꢀ
通道数)的格式表示特征图尺寸,并以c
in
和c
out
分别表示网络的输入和输 出通道数。
[0052]
图3中所示的卷积块cbl包括卷积conv、批归一化bn和激活函数 relu三个基本操作。以cbl(k,s,c
in
,c
out
)表示卷积核尺寸为k
×
k, 步长为s,输入通道数为c
in
,输出通道数
为c
out
的cbl操作。
[0053]
基干网络的工作过程为:利用4个下采样层,依次提取4个不同尺 寸的车牌特征图。具体的,所述4个下采样层,即downlayeri,i=1,2,3,4, 分别由两个卷积块cbl结构和一个步长为2的最大池化层maxpooling 组成,用于逐步提取输入车牌图像的车牌特征。在本实施例中,对于每 个下采样层downlayeri,其输入通道数分别为3、16、32、64, 对应的输出通道数分别为16、32、64、128,则各下采样层的 两个cbl结构具体为:cbl(3,1,)和cbl(3, 1,)。因此,对分辨率为440
×
140的输入车牌图像 经过4次下采样操作后,分别得到尺寸为220
×
70
×
16、110
×
35
×
32、 55
×
18
×
64、28
×9×
128的车牌特征图,记作
[0054]
特征金字塔层用于对提取的车牌特征图进行增强。具体的,3个特 征金字塔层,即fpnj,j=1,2,3,分别由上采样结构和加和操作组成。在 本实施例中,设每个特征金字塔层fpnj的输出特征图为其尺寸分 别为220
×
70
×
8、110
×
35
×
16、55
×
18
×
32。那么如图3所示,对于 每个特征金字塔层fpnj,其输入为两部分,分别为前序特征金字塔层 fpn
j 1
的输出和同尺度的下采样层车牌特征图具体的在 fpnj结构中,对输入进行2倍线性插值(upsample)和通道降维(cbl) 处理,对输入进行通道降维,将两处理后的特征图进行逐元素求和 后,得到加和特征图,最后使用1个cbl操作对该特征进行增强。其中, 如图3所示,由于最顶层fpn3无前序特征金字塔层,将进行cbl 操作增强后,作为fpn3的替代输入。
[0055]
上采样层用于逐步恢复车牌特征。具体的,如图3所示,上采样结 构包含3个上采样层uplayerk,k=1,2,3。对于uplayerk,其两个输入 分别为前序uplayer
k 1
输出和同尺度特征金字塔层fpnj输出。具体的, 在上采样层结构uplayerk中,对输入uplayer
k 1
进行2倍尺度反卷积 (dconv)恢复并通道降维,对输入uplayer
k 1
进行通道降维,并将处理 后的两个特征图拼接(concate),并使用cbl结构进行增强。最终得到尺 寸为220
×
70
×
16的车牌特征图f。
[0056]
需要说明的是,本实施例中的基干网络,能够有效的学习多尺度低 级及高级特征。其中,下采样层能够有效提取困难车牌特征,而特征金 字塔能够有效增强多尺度车牌特征,最后各尺度特征通过上采样层进行 融合,能够有效复原并矫正车牌,同时保留车牌字符特征。
[0057]
作为进一步优选的技术方案,所述车牌矫正头包括车牌生成器和车 牌判别器,车牌生成器用于仿真生成真实矫正车牌图像,车牌判别器用 于判断车牌生成器所生成的矫正车牌是真实矫正车牌图像还是仿真矫 正车牌图像。
[0058]
如图4所示,车牌矫正头和车牌字符识别头的输入均为基干网络输 出的车牌特征图f。其中车牌矫正头,用于矫正真实车牌图像,获得规 范的正向车牌;车牌字符识别头用于识别车牌字符,即车牌号。
[0059]
具体的,如图4所示,所述车牌矫正头,即gan-head,由车牌生成 器和车牌判别器组成。其中,车牌生成器用于尽可能的仿真生成更加真 实的矫正车牌,而车牌判别器用于尽可能的判断出所生成的矫正车牌是 真实图像还是仿真图像。通常,在实际端到端的预测矫正车牌时(即正 向传播),所述车牌矫正头只需使用车牌生成器进行矫正图像的生成即 可,而车牌判别器通常仅在优化所述融合模型的参数时使用(即反向传 播训练模型)。
[0060]
进一步的,车牌生成器结构如图4所示,对输入尺寸为220
×
70
×
16 的车牌特征图f,先使用1个卷积核尺寸为1
×
1、步长为1的卷积操作 conv1
×
1进行特征细化;然后再用2倍线性插值upsample将特征图尺 寸放大2倍至440
×
140
×
16;接着再用一个卷积核尺寸为3
×
3、步长为 1的卷积操作将放大的特征图进行增强;最后再使用卷积核尺寸为1
×
1、 步长为1的卷积操作conv1
×
1将特征图恢复为3通道,即生成矫正图像。 上述卷积操作均包含了批归一化和relu激活。
[0061]
进一步的,车牌判别器采用预训练的残差网络resnet,在本实施例 中,该网络为resnet18,输出类别数为2,分别表示输入车牌是真实图 像或仿真图像。
[0062]
作为进一步优选的技术方案,所述车牌字符识别头包括残差网络、 resize函数、softmax函数和ctc解网络,其中:
[0063]
残差网络用于对所述车牌特征图f特征进行压缩,得到压缩特征;
[0064]
将压缩特征按列进行通道合并resize操作,得到顺序特征图;
[0065]
采用全连接结构将顺序特征图按列进行压缩至n维,并使用 softmax操作对每一列进行置信度激活,得到每一列位置各识别字符的 执行度;
[0066]
对每一列位置各识别字符的执行度进行ctc解码,得到车牌字符识 别结果。
[0067]
具体地,如图5所示,所述车牌识别头,即ctc-head,用于识别 对应的车牌字符(即车牌号)。对输入尺寸为220
×
70
×
16的车牌特征 图f,首先,使用常规的残差网络,如resnet18,进一步压缩特征至尺 寸为14
×5×
128;然后,将压缩特征按列(即w)进行通道合并(resize) 得到尺寸为14
×
640的顺序特征图;接着,使用一个全连接结构将顺序 特征图按列进行压缩至n维,并使用softmax对每一列进行置信度激活, 得到每一列位置各识别字符的执行度,在本实施例中,字符共65种, 因此n=65;最后,对上述结果进行ctc解码,具体的,对得到的14 个n维的softmax编码进行独热处理(one-hot)得到长度维14的字符序 列,完成ctc去重后,最终得到长度为7的车牌字符,即完成车牌字符 识别。
[0068]
需要说明的是,本实施例中车牌矫正头和车牌字符识别头能够同时 从车牌特征图f中学习到矫正信息和字符信息,多任务的网络结构,在 完成单一矫正和识别任务的同时,能够有效的相互促进学习。即由于两 个任务头共享基础网络,在车牌矫正头学习矫正信息时,车牌识别头的 分类信息,能够有效的辅助车牌矫正头的参数更新,保证其所生成的矫 正车牌字符与对应的真实车牌图像的字符相同,避免了传统生成对抗网 络(gan)对生成图像信息的不可控性(传统的gan网络生成车牌, 无法指定想要的车牌号);同时,在车牌识别头学习识别信息时,由于 参数共享,车牌矫正头能够有效给予网络正向车牌信息,使得车牌识别 头在识别严重畸变、大角度倾斜等困难车牌时,能够有效的使用矫正信 息,将困难车牌识别任务简化为常规车牌识别任务,有效的提升了困难 车牌识别精度。
[0069]
作为进一步优选的技术方案,在上述步骤s1:获取车牌图像,并作 为车牌矫正及识别融合模型的输入之前,还包括:
[0070]
获取车牌数据集合,所述数据集合包括真实车牌图像、标注得到的 车牌号标签以及通过仿真生成的矫正图像;
[0071]
利用车牌数据集合对所述车牌矫正及识别融合模型进行训练,学习 模型参数。
[0072]
具体地,所述真实车牌图像i为单个完整车牌的外接矩形区域图像。
[0073]
在本实施例中,将图像缩放至分辨率440
×
140;
[0074]
所述车牌号标签l即为各真实车牌图像对应的车牌号(如皖a12**5)。 在本实施例中,车牌号标签长度为7;
[0075]
所述矫正图像t即为各真实车牌图像对应的矫正后图像,在本实施 例中,使用分辨率为220
×
70;具体的,如图6所示,矫正图像是通过 图像处理技术,根据发布的车牌标准和上述对应的车牌号标签,选择背 景模板和车牌字符按比例仿真生成。
[0076]
与传统基于透视变换或仿射变换的车牌矫正方法相比,通过这种仿 真的方式生成矫正图像,无需进行车牌角点标注,能够有效降低标注成 本和人为标注产生的标注误差,同时避免了矫正矩阵和透视变换的算力 花费。
[0077]
作为进一步优选的技术方案,通过采用识别损失函数loss
ctc
、生成 损失函数lossg以及判别损失函数lossd对所述模型参数进行优化,其中, 识别损失函数用于优化所述基干网络和所述车牌字符识别头的模型参 数,生成损失函数用于优化所述基干网络和所述车牌生成器的模型参数, 判别损失函数用于优化所述车牌判别器的模型参数。
[0078]
所述识别损失函数loss
ctc
用于衡量模型输入的真实车牌图像i对应 的车牌字符标签l和模型推理得到的预测标签l
pred
之间的误差,表示公 式如下:
[0079][0080]
其中,t为标签长度,p
t
表示在真实标签l的条件下,预测标签的第 t维为的概率。t=[1,14]维的连乘即为输入标签l,推理得到预 测标签l
pred
的概率。
[0081]
所述生成损失lossg用于衡量模型生成的车牌矫正图像t
pred
与仿真 矫正图像t之间的误差。判别损失lossd用于衡量车牌判别器对输入图 像(t
pred
或t)是否为模型生成的矫正图像。具体的,上述lossg和lossd是 一种交替验证的损失,在模型优化时,通过尽量降低生成损失lossg以保 证生成质量更好的矫正图像,而通过尽量降低判别损失lossd来使判别 模型尽可能的分辨出预测的矫正图像或仿真矫正图像。这种交替验证的 方式,使得生成的矫正图像更加逼真与有效。
[0082]
具体地,设y为判别器标签,y=0表示判别器认为输入图像为生成 图像,y=1表示判别器认为输入图像为仿真矫正图像,在训练生成器时, 我们默认判别器参数足够好,仅更新参数pb和pg,那么生成器训练时, 目的在于尽量减小lossg,使得判别器无法分辨出生成的矫正图像是模型 生成的还是仿真得到的,从而使得生成的矫正图像尽可能的真实。所述 生成损失函数lossg表示形式如下:
[0083]
lossg=||t-t
pred
||-log y
pred
[0084]
其中,||t-t
pred
||为l2损失,作为正则项,用于保证gan初期训 练的稳定性;-log y
pred
为交叉熵损失,y
pred
表示判别器对输入图像预 测的类别,用于优化上述模型参数参数
pb和pg。
[0085]
所述判别损失函数lossd表示形式如下:
[0086]
lossd=-y log y
pred-(1-y)log(1-y
pred
)
[0087]
其中,y
perd
表示判别器对输入图像预测的类别,通过尽可能最小化 上式,以达到优化判别器的目的,从而使得判别器尽可能的分别出输入 图像是模型生成的矫正图像还是仿真矫正图像。判别器和生成器的训练 交替迭代,逐步相互优化,最终能够使得生成的矫正图像尽可能的好。
[0088]
作为进一步优选的技术方案,整个网络的优化损失loss
sum
可以用如 下公式表示:
[0089]
loss
sum
=lossd lossg αloss
ctc
[0090]
其中,α为车牌识别损失倍率,在本实施例中α=2,用于增强车牌 识别精度。
[0091]
总的来说,在训练优化端到端的模型时,本实施例使用loss
ctc
来优 化车牌识别精度,用lossg和lossd优化车牌矫正精度,同时为了保证 gan-head的训练稳定性,额外增加了l2损失以保证gan-head初期 快速训练至稳定。整个端到端网络的两个任务头相互促进,ctc-head 使得gan-head生成的车牌字符与输入的真实图像一致,解决了传统 gan网络无法设定生成图像属性的问题(即生成的车牌字符随机变换, 无法与字符标签一致);而gan-head使得网络能够自动矫正困难车牌, 保证ctc-head能够获取有效的正向车牌特征,解决了现有ctc算法对 困难车牌识别精度低的问题。
[0092]
作为进一步优选的技术方案,在利用训练好的端到端模型(包含基 干网络、车牌矫正头和车牌字符识别头)进行车牌矫正或车牌识别任务 时,对于车牌识别相关任务或项目,可去除车牌矫正头,仅保留基干网 络和车牌识别头进行车牌识;对于车牌矫正相关任务或项目,可去除车 牌识别头,仅保留基干网络和车牌矫正头进行车牌矫正。利用上这种方 式,能够有效减少模型前向推理时间,加速识别或矫正速度。具体的, 在端到端模型训练时,由于使用矫正图像和字符标签同时进行监督训练, 使得学习到的最优模型参数,能够包同时包含矫正信息和字符识别信息, 因此,在前向推理时,去除额外的任务头,不会影响矫正或识别精度, 能够用于进行模型简化和加速。
[0093]
本发明具有如下显著效果:
[0094]
(1)简化了车牌识别步骤:与现有技术的两阶段方法(车牌矫正
‑ꢀ
车牌识别)相比,将矫正和识别步骤融合在一个深度学习模型中,简化 了算法调参及模型部署问题。
[0095]
(2)设计了端到端的车牌矫正及识别模型:在现有的生成对抗理 念的基础上,分别设计了两个额外的监督分支,生成与输入困难车牌图 像对应的车牌矫正图像,在确保车牌字符信息不变性的同时,预测矫正 车牌图像和车牌识别的结果。
[0096]
(3)解决了严重畸变、大角度倾斜等困难车牌的识别问题:利用 深度学习的方法将车牌矫正和车牌识别算法进行融合,通过多任务的相 互促进,有效的解决了对困难车牌的矫正和识别,同时多任务融合的方 法避免了两阶段方法对识别精度的消磨。
[0097]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包 含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献