齐鲁工业大学学报   2020, Vol. 34 Issue (4): 35-41
0
轻量级车牌识别卷积网络[PDF全文]
贺智龙, 肖中俊, 严志国     
齐鲁工业大学(山东省科学院)电气工程与自动化学院,济南 250353
摘要:为了提高车牌识别的准确性,提出一种轻量级车牌识别神经网络。车牌定位阶段,构造了深度为9的卷积神经网络(Convolutional Neural Networks,CNN),首先利用图像预处理与阈值分割融合的方式对车牌进行粗定位,然后对CNN网络进行模型训练,得到网络权重,最后将车牌候选区域输入到CNN模型来实现精准定位车牌。车牌识别阶段,构造了深度为11的CNN网络,首先对准确定位的车牌进行字符分割,并对分割后的字符进行归一化处理,然后将分割后的单个字符输入到CNN模型,实现对字符的识别,最后输出字符识别结果。通过实验验证,所搭建的两个CNN网络能够有效提升车牌的检测和识别准确率。
关键词轻量级    车牌识别    CNN模型    
Lightweight Convolutional Network for License Plate Recognition
HE Zhi-long, XIAO Zhong-jun, YAN Zhi-guo     
School of Electrical Engineering and Automation, Qilu University of Technology(Shandong Academy of Sciences), Jinan 250353, China
Abstract: To improve the accuracy of license plate recognition, a light-weight neural network for license plate recognition was proposed.In the stage of license plate location, a Convolutional Neural network(CNN)with depth of 9 is constructed.Firstly, the license plate was coarsely located by the method of image preprocessing and threshold segmentation and fusion, and then the model training of CNN network was carried out to obtain the network weight.Finally, the license plate candidate region was input into the CNN model to achieve accurate license plate location..In the stage of license plate recognition, a CNN network with depth of 11 was constructed.Firstly, characters of precisely positioned license plates were segmented, and the characters after segmentation were normalized.Then, single characters after segmentation were input into the CNN model to realize character recognition.Experimental results showed that the two CNN networks could effectively improve the detection and recognition accuracy of license plates.
Key words: lightweight    license plate recognition    CNN model    

经济发展迅速, 汽车保有量的增多, 对现有的交通造成的压力愈加明显, 单纯依靠人力来解决交通压力问题, 消耗人力、物力, 增大政府开销, 因此, 构建一个现代智能交通系统的任务迫在眉睫, 而车牌检测与识别又是智能交通系统中的关键步骤, 其检测质量将直接影响交通系统的实施效率。

车牌识别方式通常分为定位、分割以及识别三个阶段。国内外对此的研究通常有两种类型, 即图像处理传统方式和深度学习神经网络的方式。K.Kanayama等[1]提出了利用行扫描的方式定位车牌, 对于车牌的准确定位效果良好。Barroso等[2]提出基于Niblack二值化算法与边界自适应相融合的方式定位车牌。王晗等[3]提出了一种基于模板概率密度的车牌定位方法, 通过利用候选车牌以及最大相似概率定位车牌, 准确率达96.2%。郑承勇[4]提出了一种RGB颜色空间中的车牌定位方式, 摒弃了常见的宽高比、矩形度等特征, 而用字符的排列和数量作为依据, 进行车牌定位, 其定位成功率达到96%。李文举等[5]以边缘颜色为基础, 提出对彩色图像的边缘进行检测, 主要思想是利用车牌固有颜色以及车牌的背景特点定位车牌, 其定位准确率达98.2%。贺智龙等[6]利用HSV颜色空间对车牌进行定位, 定位的准确度较高, 较好的实现了定位车牌的要求。Li等[7]通过裁剪普通文本中的字符信息, 将其送入CNN模型训练, 利用训练的字符模型实现了车牌定位。刘万军等[8]提出将CNN与彩色图像边缘结合的方式定位车牌, 定位准确率较高。Mi.Ko等[9]提出了基于模板匹配的定位方式, 并对模板赋予权重值, 通过将待识别的字符与预设模板进行相似度比较, 得到字符识别结果。柴伟佳等[10]提出了以多种神经网络为基础混合的车牌字符识别方法, 此模型对车牌污损的识别有较高的准确率。刘军等[11]将Tiny-YOLOv3应用于嵌入式的车牌识别中, 实现了车辆的检测和跟踪, 取得了不错的效果。刘桂雄等[12]提出了一种对车牌特征信息二值化的识别方式, 该系统对自身条件较好的车牌识别率达到了96%。

随着深度学习的不断发展, 近些年车牌定位与识别的方式主要以卷积神经网络[13]为主, 神经网络算法通常分为两类, 即区域推荐和回归目标检测算法。前者以R-CNN[14]、Faster R-CNN[15]、Mask R-CNN[16]为主要代表算法; 后者以YOLO[17], SSD[18]为主要代表算法, 同时YOLO也被称为是最快的目标检测算法, 因此现在的众多研究学者都以此为基础, 改进目标识别算法, 使其更能适应车牌目标检测。

基于此, 提出一种基于CNN车牌识别方法。该方法首先对图像进行预处理, 并通过数学形态学的方式对车牌进行初步定位, 然后将候选车牌送入CNN模型进行精确定位车牌, 并对单独的车牌图像进行投影, 分割字符; 最后通过搭建CNN网络进行字符识别。流程图如图 1所示:

图 1 车牌识别流程图

1 卷积神经网络 1.1 概述

卷积神经网络是一种深度神经网络, 被广泛应用于计算机视觉与图像分析处理, 其实现原理为, 利用反向传播的方式, 得到网络的训练权重, 在训练过程中对特征实现自动提取, 不需要人工干预。经过多次卷积操作, 得到图像在不同尺度上的抽象特征表示。与传统神经网络相比, 具有“局部感知”和“参数共享”的显著优势, 因此, 卷积神经网络在训练过程中估计的参数少, 训练过程较其他网络更容易。

1.2 网络各层介绍

CNN的一个基本结构包括卷积层、池化层和全连接层等结构。如图 2所示:

图 2 神经网络示意图

1) 卷积层

卷积层的主要构成单位是卷积核, 用来实现对图像特征的提取。因此, 卷积核的实质是特征提取器, 通过卷积操作对输入图像的深层信息抽离为图像特征。每个卷积核相当于一个滤波器, 对展开的特征平面进行特征提取, 后一层提取了前一层的局部特征, 如颜色、纹理等特征, 并且重新生成新的平面, 每个卷积核会自适应学习到不同的权值。卷积公式为:

$ y_{j}^{l}=f\left(\sum\limits_{i=1}^{n}\left(x_{i}^{l-1} \times w_{i j}^{l}\right)+b_{j}^{l}\right) $ (1)

其中, yjl为第l层卷积与第j个神经元连接得到的输出特征图, xjl-1l-1层的输出结果, 即为l层的输入信号, wijll层与神经元之间的权值, bjll层神经元的偏置值, f表示卷积层所用的激活函数, 激活函数的种类有多种, 如Sigmoid函数, ReLU函数, 以及Leaky ReLU函数等。本质上ReLU函数是一个最大值函数, 相较与Sigmiod而言, 此函数收敛速度快, 计算量小, 但是该函数在输入值为零的情况下, 输出为零, 神经元无法进行学习, 式(2)为ReLU函数。

$ f(x)=\max (0, x) $ (2)

式中, 当x>0, 输出线性增长; 当x < 0, 输出结果恒为零。

因此, 本文所用的激励函数为Leaky ReLU函数, Leaky ReLU函数是ReLU函数的变体, Leaky ReLU函数不仅集合了ReLU函数的特点, 并且在输入信号为非大于零的状态, 其输出信号不为零, 解决了ReLU函数进入负区间后, 导致神经元不学习的问题。其表达式如下:

$ f(x)=\left\{\begin{array}{ll} x & \text { if } x>0 \\ 0.01 x & \text { otherwise } \end{array}\right. $ (3)

式中, 当x>0, 输出与ReLU相同; 当x < 0, 输出结果不为零。

2) 池化层

池化层通常在卷积层之后, 池化层的增加可以降低特征维度, 避免因卷积次数过多而造成维度过大, 增加计算负担, 并且可以保持图像的特性不变, 如旋转、平移等。池化方式一般为均值和最大值池化两种, 均值池化可以保留更多的背景图像, 而最大值池化能保留更多的图像纹理信息。

最大池化以获取区域最大值的方式来降低卷积形成特征的维度, 具体操作为按照卷积核的大小将输入的图像划分为不同的区域, 将每个区域的最大值作为输出。以图 3为例, 输入数据为4*4, 卷积核为2, 步长为2, 无填充的方式进行最大池化。

图 3 最大池化过程

为了能更多的保留车牌和字符的纹理信息, 本文采用的池化方法为最大池化。

3) 全连接层

全连接层在卷积和池化之后, 通常在网络的最后连接着一个或多个全连接层, 将当前层与前层网络的所有结点全部连接, 得到图像的全局特征, 并用于最后的分类。

2 车牌定位方法

车牌定位作为车牌识别的首要步骤, 其定位质量的好坏直接影响后续车牌识别的准确度, 所以本文所提出的方法是, 基于颜色特征与神经网络两种方式结合来准确定位车牌位置。

2.1 车牌粗定位

首先对图像进行图像预处理操作, 图像预处理的步骤为直方图均衡化、滤波和检测边缘等操作。

直方图均衡化又叫灰度变换, 是一种常见的图像变换方法, 其实质是通过统计图像像素值, 计算像素值占比灰度等级的概率以及每个灰度等级的累计概率, 对累计概率进行灰度等级映射, 得到图像均衡化的结果。公式如下:

$ T(r)=L \int_{1}^{r} p(t) d t $ (4)
$ T(r)=\sum\limits_{i=0}^{r-1} \frac{n_{i}}{n} $ (5)

其中, r为原始图像的像素值, T为映射后的像素值, L为灰度等级, p(t)为像素的概率分布, n为像素点之和, ni为像素值为i所对应的像素个数, (4)和(5)分别为连续和离散情况。

均值滤波能够过滤图片的高频信号, 保留低频信号, 因此能够消除图片的噪声, 实现图片平滑。均值滤波公式为:

$ f(x, y)=\frac{1}{m n} \sum\limits_{(x, y) \in S_{x y}} g(s, t) $ (6)

其中, f(x, y)为滤波后的图像, g(s, t)为原始图像, mn为滤波器的大小(m, n)。

边缘检测能够检测图像的边缘, 不仅减少了图像数据量, 而且保留了图片的关键信息。本文使用的是Sobel算子, 边缘检测效率高, 能够突出车牌的潜在位置。

然后, 将原始图像的颜色空间由RGB转换为HSV, 根据车牌的颜色设定HSV的阈值, 最后与经过边缘处理的图像做运算, 得到突出车牌位置边缘的图像。形态学处理作为图像预处理的最后一步, 通过多次的开、闭运算, 得到车牌的二值图像, 为下一步定位车牌做准备。通过车牌先验知识(大小、长宽比例), 判断是否为车牌区域, 并且对获得的车牌区域进行倾斜矫正。颜色转换公式如下:

$ V=\max $ (7)
$ S=\left\{\begin{array}{l} 0, \max =0 \\ \frac{\Delta}{\max }, \max \neq 0 \end{array}\right. $ (8)
$ H=\left\{\begin{array}{ll} 0, & \max =\min \\ \frac{\pi}{3} \times \frac{g-b}{\Delta}+0, & \max =\mathrm{r} \text { and } \mathrm{g} \geqslant \mathrm{b} \\ \frac{\pi}{3} \times \frac{g-b}{\Delta}+2 \pi, & \max =\mathrm{r} \text { and } \mathrm{g}<\mathrm{b} \\ \frac{\pi}{3} \times \frac{b-r}{\Delta}+\frac{2 \pi}{3}, & \max =\mathrm{g} \\ \frac{\pi}{3} \times \frac{r-g}{\Delta}+\frac{4 \pi}{3}, & \max =\mathrm{b} \end{array}\right. $ (9)

其中, r, g, b表示RGB的各个分量值, max, min为R、G、B三分量中的最大、最小值, △为max与min的差值。

最后将候选车牌的大小调整为指定大小, 便于后续CNN精确定位并提取车牌。车牌粗定位过程, 如图 4所示。

图 4 车牌粗定位流程

2.2 PR-CNN网络架构

通过对车牌图像进行分析, 搭建CNN车牌精确定位网络(PR-CNN), PR-CNN网络结构如表 1所示。

表 1 PR-CNN网络结构

本网络使用三个卷积和池化的网络, 卷积核大小均为3×3, 池化层采用2×2的大小, 随着网络的加深, 卷积的特征数增多, 通过对36×136×3大小的图片进行多次卷积特征提取, 最后利用全连接层将特征子集连接, 降低特征维度, 输出识别结果。实验中经过多次尝试, 将学习率大小设置为0.001, 并且采用dropout方法对神经元进行随机丢弃, 改善了训练过程中出现的过拟合, 并提高了训练的效果。

3 车牌识别方法 3.1 字符分割

在进行车牌字符识别之前, 需要对定位提取的车牌进行单个字符分割, 本文采用的分割方式为垂直投影法。基本过程如下:

1) 首先, 获取车牌的二值图像, 降低存储空间和图像噪声, 对图像进行Y轴垂直投影, 得到图像的像素值;

2) 然后, 通过扫描整张投影图像, 判断像素值的大小和连续性, 对车牌的无关边框进行裁剪, 得到仅有车牌字符的图像, 通过设定阈值, 判断字符大小, 将符合条件的字符进行切割, 从而得到字符切割结果, 用于最后的字符识别。

3) 最后, 对分割后的单个字符做尺寸归一化处理, 便于后续的CNN准确识别字符, 完整流程图如图 5所示。

图 5 字符分割过程

3.2 RC-CNN网络架构

由于待识别的字符种类较多, 受到LeNet-5网络的启发, 搭建了字符识别网络(RC-CNN), 此网络通过增加卷积层的数量, 得到更高维度的特征图; 增加全连接层的节点数, 提高特征映射数量。网络结构如表 2所示。

表 2 RC-CNN网络结构

将单个字符输入RC-CNN网络进行识别, 得到识别结果, 完整的车牌识别过程如图 6所示:

图 6 车牌识别流程图

4 实验论证 4.1 实验数据及平台配置

车辆车牌的数据集来源于网络收集以及手持相机拍摄的图片, 将数据按照1:4划分为测试集和训练集, 将训练数据喂入搭建好的网络进行训练, 在测试集上对训练好的模型进行验证。

本次实验所使用的配置为Intel(R)Core(TM)i5-7300HQ CPU @ 2.50GHz处理器, 20GB内存, 1T硬盘容量, 4GB GTX 1050 GPU显卡, 操作系统为ubuntu18.04。为了加速训练过程, 配置NVIDIA CUDA和CUDNN环境, 利用GPU加速训练。

4.2 数据集设定

通过对PR-CNN和RC-CNN进行单独训练, 使其能够识别提取的区域是否为车牌以及分割后的单个字符, 图 7为训练集的部分图像。

图 7 部分数据集

4.3 部分识别结果

图 8给出了检测和识别车牌图像的实例。该模型对车牌的数字和字符进行有针对性的训练, 提高了识别精度。

图 8 部分识别结果

5 结论

提出了CNN神经网络车牌检测和识别方法。通过构建两个不同的CNN网络, 分别实现车牌的检测和识别任务。对于车牌检测, 先利用阈值分割的方式粗定位车牌, 再通过CNN网络精确定位并提取车牌; 对于车牌识别, 将单个字符通过CNN网络训练, 对输入的分割字符进行识别, 得到了较好的识别效果。实验结果表明, 该方法对于实际场景中的车牌识别准确率较高, 验证了算法的有效性和准确性。

参考文献
[1]
K.KANAYAMA, Y.FUJIKAWA.Development of vehicle-license number recognition system using real-time image processing and its application to travel-time measurement[C].New York: IEEE Vehicular Technology Conference, 1991: 798-804.
[2]
BARROSO J., BULAS-CLUZ J., DAGLESS E L. Real-time number plate reading[J]. 4th IFAC Workshop on Algorithms and Architectures for Real-Time Control, 1997, 30(3): 73-76.
[3]
王晗, 施佺, 许致火, 等. 基于模板概率密度函数的车牌定位方法[J]. 控制工程, 2019, 26(05): 947-951.
[4]
郑成勇. 一种RGB颜色空间中的车牌定位新方法[J]. 中国图象图形报, 2010, 15(11): 1623-1628.
[5]
李文举, 梁德群, 张旗, 等. 基于边缘颜色对的车牌定位新方法[J]. 计算机报, 2004(02): 204-208.
[6]
贺智龙, 肖中俊, 严志国. 基于HSV与边缘信息的车牌定位与字符分割方法[J]. 齐鲁工业大学学报, 2019, 33(03): 44-48.
[7]
LI H, SHEN C. Reading car license plates using deep convolutional neural networks and LSTMs[J]. arXiv preprint, 2016(01): 14-23.
[8]
刘万军, 姜庆玲, 张闯. 基于CNN彩色图像边缘检测的车牌定位方法[J]. 自动化学报, 2009, 35(12): 1503-1512.
[9]
M.KO, Y.KIM.License plate surveillance system using weighted template matching[C].Washington: 32nd Applied Imagery Pattern Recognition Workshop, 2003: 269-274.
[10]
柴伟佳, 王连明. 一种基于混合神经网络的车牌字符识别方法[J]. 东北师大学报(自然科学版), 2018, 50(01): 63-67.
[11]
刘军, 后士浩, 张凯, 等. 基于增强Tiny-YOLOv3算法的车辆实时检测与跟踪[J]. 农业工程学报, 2019, 35(08): 118-125.
[12]
刘桂雄, 申柏华, 冯云庆. 基于笔划趋势分析的二值图像细化方法[J]. 光学精密工程, 2003, 11(5): 527-530.
[13]
KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[J]. Advances in Neural Information Processing Systems, 2012, 25(2): 1097-1105.
[14]
GIR5HICK R, DONAHUE J, DARRELL T, et al.Rich feature hierarchies for accurate object detection and semantic segmentation[C].Columbus: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014: 580-587.
[15]
REN S, HE K, GIRSHICK R, et al.Faster R-CNN: Towards real-time object detection with region proposal networks[C].Congress Convention Center in Montreal: Advances in Neural Information Processing Systems, 2015: 91-99.
[16]
Kaiming H, Georgia G, Piotr D, et al.Mask R-CNN[C].Venice: IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017: 2961-2969.
[17]
REDMON J, DIWALA S, GIRSHICK R, et al.You only look once: Unified, real-time object, detection[C].Las Vegas: Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016: 779-788.
[18]
LIU W, ANGUELOV D, ERHAN D, et al.SSD: Single shot multibox detector[C].Springer: European Conferaice on Computer Vision, 2016: 21-37.