1. 引言
车牌是机动车的一个重要的身份标识,对其的精准识别具有较高的应用价值,并已经成为最近的研究热点 [1] 。车牌识别技术己经被广泛应用于车辆身份认证、车辆密度统计、智能驾驶和交通场景理解等方面。
传统的车牌字符识别方法有模板匹配和垂直投影等方法。郑琳 [2] 采用模板匹配法对单个车牌字符图像进行识别,能有效降低字符图像的噪声与字符特征描述符冗余问题。曾夏明 [3] 利用Hough变换与像素点投影的方法来完成车牌的倾斜校正与分割,最后采用支持向量机来分类汉字字符与数字字母字符。但是传统方法非常容易受车牌图像中光照不均、噪声等因素的影响,导致车牌识别准确率低。深度学习技术的出现为复杂场景中的车牌图片识别任务提供新的途径。Zherzdev和Gruzdev提出的LPRNet [4] 采用空间变换网络将车牌图像进行仿射变换,对车牌形状进行矫正,使得车牌图像更好地被识别。Gong等人 [5] 提出的方法将车牌检测网络提取的特征与车牌识别网络共享,减小计算量,提高车牌识别速度。
基于深度学习技术,本文提出一种改进卷积循环神经网络车牌识别模型LSTM-Ghost-CBAM,将传统卷积循环神经网络中的循环神经网络(Recurrent Neural Network, RNN)替换为长短期记忆网络(Long short-term memory, LSTM),并且在网络中加入Ghost模块提高车牌字符特征提取的丰富程度,同时加入CBAM模块在通道方向和空间方向上对车牌字符特征进行加权,提高模型对车牌中单个字符识别的准确率。最后在CCPD数据集的最具有挑战的三个子数据集上对所提出的模型进行实际测试,实验结果表明本文提出的车牌识别模型能够在车牌角度倾斜、光照强度过亮或过暗、图片模糊等复杂环境中进行正确识别。
2. 模型结构
本文提出的车牌识别模型LSTM-Ghost-CBAM的总体框架如图1所示,先将输入的车牌图片进行预处理,将图像的大小调整为128*64*3。在卷积特征提取模块,对图片进行特征提取,并进行下采样操作,图片被转化为32*4*512的特征向量。然后将得到的特征图使用幻影模块处理,提高模型的表达能力。再使用卷积块注意模块来从通道和空间方向上关注车牌中的字符特征,提高车牌识别的精度。最后使用长短期记忆网络解码器对提取到的车牌特征进行解码得到大小为32*66的特征向量,并使用连接时间分类损失函数计算当前训练得到的序列与目标序列的误差值,最终得到车牌字符。

Figure 1. The general framework of license plate recognition model in this paper
图1. 本文车牌识别模型总体框架图
2.1. 卷积特征提取模块
VGGNet [6] 是一种经典的卷积神经网络,它在ImageNet图像识别挑战赛中取得了较好的成绩,被广泛应用于计算机视觉领域。所以在车牌特征提取部分,我们参考VGGNet设计了一个卷积特征提取器,利用其中的卷积层来提取输入数据的不同特征。卷积层的参数主要有卷积核大小、填充方式和步长大小,这三者共同决定了输出特征图的尺寸。
卷积核(filter)的宽度和高度都比较小,但是深度和输入数据一致,其作用可类比视觉皮层细胞的感受野。卷积核中的参数就是权重值,初始值可以通过随机得到,也可通过预训练得到,然后再通过误差反向传播算法不断更新。另外需注意卷积核的个数和输入图像通道数必须一致。
步长(stride)是卷积核在输入特征图中移动的位置间隔,卷积步长只对输入矩阵的长和宽这两个维度有效。
填充(padding)就是在图像周围使用指定的参数进行填充,常用zero padding,即用0来填充。之所以需要填充,是因为随着卷积过程的进行,每次卷积都会导致图像尺寸的变小,如果图像很小、进行卷积的次数很多,最后可能只会剩下一个像素。
2.2. Ghost模块
Ghost模块 [7] 是一种在卷积神经网络中用于增加模型的通道数的模块,可以在不增加计算量的情况下提高模型的表达能力,同时也能够减少过拟合的风险。其核心思想是将输入特征图拆分成两部分,其中一部分保留原始的卷积特征,而另一部分则使用少量计算(cheap operations)的线性变换对特征进行提取,此处通常使用深度分离卷积。最后将两部分特征图进行拼接,通过这种方式,Ghost模块可以在增加模型的宽度时不增加计算量,提高模型的表达能力,减少过拟合的风险。
2.3. CBAM模块
CBAM模块 [8] 是一种用于卷积神经网络中的注意力模块,主要包含两个部分:通道注意力和空间注意力。在通道注意力部分中,CBAM模块利用全局平均池化操作和两个全连接层来生成通道注意力向量,该向量根据每个特征通道的重要性对特征进行加权,以确定哪些通道应该被强调。在空间注意力部分中,CBAM模块利用不同的卷积核大小和池化操作来学习空间注意力图,该图根据每个空间位置的重要性对特征进行加权,以确定哪些位置应该被强调。最终,通道注意力向量和空间注意力图被相乘并与原始特征相加,形成最终的CBAM模块输出。
2.4. 长短期记忆网络解码器
LSTM是一种特殊的RNN,基本思想是引入记忆单元和门控机制,使网络能够选择性地存储和检索信息,从而防止较早期的信号在处理过程中逐渐消失。一个LSTM主要包括三种类型的门结构:输入门,遗忘门和输出门,其模型框架如图2所示。

Figure 2. LSTM model framework structure
图2. LSTM模型框架结构图
在图2中,
和
分别表示上一时刻的输出和细胞状态,
、
和
分别表示当前时刻的输入、输出和细胞状态,
表示当前暂时的细胞状态。
表示一种门控结构,一般选用Sigmoid作为激活函数,其输出范围为0到1,代表门限的开关,0代表不许任何量通过,1代表允许任意量通过。每个LSTM接收
、
、
三种输入信息,这些信息首先被送入遗忘门
和输入门
处理,其中遗忘门用于控制删除哪些信息,输入门用于筛选需要保留的信息,其公式如下:
(1)
(2)
(3)
(4)
(5)
经过遗忘门和输入门处理后,t时刻的状态也会更新:
(6)
最后输出门将信息整合,生成输出信号为
:
(7)
(8)
3. 实验与结果
3.1. 实验数据集
CCPD [9] 是一个大型的、多样化的中国城市车牌图像开源数据集。每张图像中仅包含一个车牌,每个车牌由7个字符组成,第一个字符为省份(共31个类别,不包含台湾省)、第二个字符为字母,剩下的五个字符中的每一字符为字母或数字(所有出现的字母不包含“I”和“O”,数字和字母共34个类别)。按识别难度、车牌区域的照明、捕获时与车牌的距离、水平和垂直倾斜程度以及天气(雨、雪、雾),该数据集被分为9个子数据集,如表1所示(详见文献 [9] 第三节表3)。我们在做模型对比实验时,将子数据集CCPD-base作为训练验证集,因为该子数据集包含的车牌图片最多,有20万个带有详细注释的独特车牌图像,其中第一个字符为“皖”的图片有19.2万张,占数据集总量的96%。在训练过程中我们随机选取CCPD-base中的一半数据作为训练集,另外一半用作为验证集。测试数据集是CCPD-DB、CCPD-Tilt和CCPD-Challenge这三个子数据集,因为这三个子数据集最能体现光照强度、车牌倾斜和车牌模糊等自然场景对车牌识别网络性能的影响。

Table 1. The situation of each sub-dataset in the dataset CCPD
表1. 数据集CCPD中各子数据集情况表
3.2. 实验环境
车牌识别模型的实验环境如表2所示。

Table 2. Software and hardware parameters of the experimental platform
表2. 实验平台的软硬件参数表
3.3. 实验细节
本文所使用的车牌识别算法训练过程中使用CTC损失函数和Adam优化器,batch size设置为512。初始学习率为0.4,epoch不设固定值,当连续5个epoch损失没有减少时,将学习率乘以衰减系数0.9,当连续30个epoch没有得到更低的损失时,就结束训练。
3.4. 模型训练
首先,将车牌图片输入到LSTM-Ghost-CBAM组合模型中进行训练,每进行一轮训练,就使用CTC来计算当前序列与目标序列的误差值,然后通过神经网络的误差反向传播机制不断更新模型的权重,直到训练结束,模型的误差更新过程如图3所示。可以看出经过96轮的迭代后,模型的损失值不再下降,训练结束,在此过程中,模型的损失值从4.76下降到0.87,收敛性良好。

Figure 3. Loss curve during model training process
图3. 模型训练过程中的损失曲线图
3.5. 模型识别效果验证
为了验证本文提出的LSTM-Ghost-CBAM模型的性能,我们使用3.1节中所述的数据集对模型进行测试,并与LSTM、LSTM-Ghost、LSTM-CBAM三种算法模型进行比较,只有当车牌上的所有字符(包括汉字)都被正确识别时,车牌识别结果才被认为是正确的,实验测试结果如表3所示。

Table 3. Experimental results of different license plate recognition models on a subset of CCPD data
表3. 不同车牌识别模型在CCPD数据子集上的实验结果表
表3中的实验结果表明,使用LSTM模型在CCPD数据集上的测试精度低于LSTM-Ghost模型和LSTM-CBAM模型的测试精度,这是因为Ghost模块可以提高特征提取的完整性,CBAM模块可以在通道方向和空间方向上将与字符相关的特征进行加权,因此能够提高模型的单个字符识别准确性,从而提高车牌识别整体精度。使用LSTM-Ghost-CBAM模型在CCPD数据集上的测试精度要高于其他三个模型的测试精度,这说明Ghost模块和CBAM模块叠加使用能够显著性的提高模型对车牌图片的识别精度。
4. 总结
本文提出一种改进的卷积循环神经网络车牌识别模型LSTM-Ghost-CBAM,用于识别处于复杂场景中的车牌图片。该模型改进传统的卷积循环神经网络,在卷积特征提取网络与LSTM解码器之间加入了Ghost模块和CBAM模块,提高模型对车牌字符识别的准确率。并且选取CCPD数据集中最能体现光照强度、车牌倾斜和车牌模糊等场景的三个子数据集CCPD-DB、CCPD-Tilt和CCPD-Challenge进行测试实验,测试的平均精度分别为82.5%、79.0%和65.3%。实验结果表明本文所提出的模型鲁棒性好,能够完成在这些复杂场景中的车牌识别任务。但是由于训练使用的数据集中的中文分布不均匀,“皖”占到96%,而测试数据集中还有训练数据集中没出现过的中文字符,导致模型不能充分学习到中文信息,影响测试精度。因此,未来可以通过采集更多的车牌数据而得到中文字符分布均衡的数据集,来提高车牌识别的准确率。
基金项目
浙江省公益技术研究项目(2015C31024)。
NOTES
*通讯作者。