1. 引言
发展智慧城市是中国促进城市高度信息化、网络化的重大举措。其中,通过监控对行驶中的车辆进行实时的车牌信息检测是智慧交通中的一个重要分支。
在机动车牌识别方面国内外的研究者们做了相关的研究。Saini等通过一种多小波变换进行定位车牌的框架,采用了图像增强以及畸变校正,提高了框架的有效性 [1] ,但是这种传统的方法受环境干扰较大。顾李云通过高斯与中值滤波进行图像预处理,提高了传统算法在弱光条件下处理图像的能力,与传统的Sobel算子相比,通过Mallat小波变换提取图像边缘更加完整 [2] ,但是对于车牌图像的质量以及车牌的位置要求较高,对于质量差以及未校正的车牌识别较差。王宁基于Faster R-CNN (Faster Region-based Convolutional Neural Network)在RPN阶段引入角度和分支结构以生成适合车牌的候选区域,并提出了一种上下文融合网络增强车牌的特征表示 [3] ,Faster R-CNN的模型较大,在同样环境下识别时间较长。周世杰基于卷积神经网络提出了一种textboxes++网络结构进行车牌检测 [4] ,该方法对车牌定位效果较差,对图片质量要求较高。陈冬英等人研究改进LeNet5-CNN (LeNet-5 Convolutional Neural Network)使其在车牌的识别率上有了一定的提高 [5] ,但是卷积神经网络的运行速度还是影响了网络运行的速度。
为了解决上述研究者存在的问题,本文提出一种基于YOLOv5 (You Only Look Once v5)与LPRNet (License Plate Recognition Network)技术相结合方式实现车牌的识别,使用YOLOv5定位车牌的位置,同时使用LPRNet技术实现对车牌号的识别。该方法通过训练的方法对各类车牌进行定位,尽可能地减少周围环境对车牌定位的影响,使用透视变换的方法对图片进行校正,使得LPRNet技术识别出来的车牌更加准确。
2. 理论与方法
深度学习在图片识别的应用领域越来越广泛,本文基于深度学习的方法进行机动车车牌相关算法的研究,为了提高算法的运行效率,本文选取一次性预测的方法YOLO,作为车牌定位的基本方法,确保车牌定位不出现较大偏差,然后通过透视变换的方法对车牌进行相关校正,将图片中倾斜的车牌尽可能校正还原,最后通过LPRNet技术实现对这牌信息的读取。
2.1. YOLOv5算法
YOLOv5是由Glenn Jocher等基于YOLO优化改进而来,模型分为四个部分,分别是输入端、主干网络、颈部网络以及预测网络组成,其模型框图如图1所示。
![](//html.hanspub.org/file/7-2960313x8_hanspub.png?20230731095419476)
Figure 1. YOLOv5 Model Block Diagram
图1. YOLOv5模型框图
1) 输入端
输入端包括数据增强、自适应锚框计算、图片尺寸处理等。
数据增强采用Mosaic数据增强的方式,即随机缩放、随机裁剪、随机排布的方式进行拼接。通过这种数据增强的方式,增加很多小目标,提升小物体的识别能力,符合本文机动车车牌这种小目标检测需求。
在YOLO算法中,网络训练前都需要设定初始的锚框,网络在训练时候,根据初始锚框来进行输出预测框,然后通过与真实框相比对,根据两者计算的差值进行反向更新,进而反复迭代更新网络参数。
在YOLO系列算法中,输入图像的需要统一尺寸大小,然后输入检测模型中进行训练,YOLOv5在输入端提供了图像缩放的转化方法,输入模型的图像可以不转化为固定的大小,避免因为填充方法的不同造成信息冗余等不良影响。
2) 主干网络
主干网络由Focus结构以及CSP (Cross Stage Partial Network)结构构成。假设把原始图像608 × 608 × 3经由切片操作,输出304 × 304 × 12大小的特征图,随后通过32个卷积核进行一次卷积操作,变为304 × 304 × 32的特征图。
YOLOv5中包含了两类CSP结构,分别为CSP1_X以及CSP2_X。在网络模型中,主干网络主要使用了CSP1_X结构,而Neck结构中主要使用了CSP2_X结构。其中CSP1_X模块由残差神经网络与CBL (Conv Batch normalization Leaky relu)模块组成,CSP2_X由两个CBL模块组成,CSP1_X模块主要应用在主干网络中用于加强特征提取,CSP1_X主要应用在颈部网络中,用于加强特征融合。具体结构在图1中有体现。
3) 颈部网络
FPN + PAN的网络结构被应用于预测层中,从上到下的FPN结构通过上采样以及从上到下的PAN下采样来处理信息传递过程,以得到预测的特征图。从下到上的特征金字塔应用在PAN结构中。具体形式如图2所示。
![](//html.hanspub.org/file/7-2960313x9_hanspub.png?20230731095419476)
Figure 2. The Network Structure of FPN + PAN
图2. FPN+PAN的网络结构
4) 预测网络
YOLOv5的损失函数由分类损失、定位损失、置信度损失三部分组成,损失函数计算公式如式(1)所示,其中
表示分类损失部分,
表示定位损失部分,
表示置信度损失部分。其中定位损失函数方面使用的是GIoU (Generalized Intersection over Union)方式实现的。防止出现以下两种情况:
1) 当真实框和预测框完全不重叠时,交并比损失值恒定,无法完成损失值的更新;
2) 当真实框包含预测框,交并比损失值恒定,无法完成损失值的更新。
(1)
同时使用非极大值抑制NMS (Non-Maximum Suppression),确保一张车牌不会反复地被识别为车牌,一个车牌只识别一次。
2.2. 透视变换
透视变换是将图片投影到一个新的视平面,也称作投影映射。通用的变换公式为式(2)。
(2)
u,v是是原始图片左边,对应得到变换后的图片坐标x,y,其中
,
。
变换矩阵
可以拆分为四个部分,
表示线性变换
用于平移,
产生透视变换。可以得到式(3),一般
则方程中有8个未知数,找4个点即可完成参数的求解。
(3)
2.3. LPRNet
LPRNet网络是卷积神经网络轻量化的模型,无需字符分割便实现端到端的车牌字符识别。网络结构设计包括:具有空间变换器层的定位网络、轻量卷积神经网络、每个位置的字符分类头、序列解码的字符概率、后过滤过程等。其主干网络结构如表1所示,CNN (Convolutional Neural Network)模型主干的小基本构建块如表2所示。使用CTC损失函数(Connectionist Temporal Classification)作为LPRNet网络的损失函数。
![](Images/Table_Tmp.jpg)
Table 1. Backbone network structure
表1. 主干网络结构
![](Images/Table_Tmp.jpg)
Table 2. Small basic building blocks
表2. 小基本构建块
3. 实验设计与结果分析
3.1. 实验环境
车牌识别环境如表3所示。
![](Images/Table_Tmp.jpg)
Table 3. Experimental environmental parameters
表3. 实验环境参数
3.2. YOLOv5训练结果
实验的机动车车牌数据来源于网络。如图3所示,为YOLOv5训练的结果图,GIoU、Objectness、Classfication为三个损失函数,分别对应定位损失函数、置信度损失函数、分类损失函数,其中val表示测试集,没有val表示数据集。Recall表示检测准确的结果在所有的正样本中的占有比例,Precision表示正确的结果所占模型检测出的结果中的比例。mAP@0.5" target="_self">mAP@0.5表示IoU (Intersection over Union)阈值大于0.5的平均检测精度,mAP@0.5" target="_self">mAP@0.5:0.95表示IoU阈值在0.5~0.95之间等间距取10组的平均检测精度再取平均值。
![](//html.hanspub.org/file/7-2960313x23_hanspub.png?20230731095419476)
Figure 3. YOLOv5 training result graph
图3. YOLOv5训练结果图
本文对数据进行了300次的训练,得到的YOLOv5车牌定位模型的召回率在99.7%,准确度84.4%。虽然准确度稍低,但是召回率很高。与Faster R-CNN模型的实验数据对比结果如表4所示,虽然准确率上Faster R-CNN高于YOLOv5,但是无论在召回率还是算法运行速度方面YOLOv5优于Faster R-CNN更多。
![](Images/Table_Tmp.jpg)
Table 4. Comparison table of different models
表4. 不同模型对比表
3.3. 车牌设别效果
本文对具有一定倾斜的车牌进行识别,图4对识别效果进行了展示,分别对蓝牌车、黄牌车以及绿牌车进行了识别,均能正确识别车牌信息。
(a) 识别车牌1
(b) 识别车牌2
(c) 识别车牌3
Figure 4. Diagram of the practical teaching system of automation major
图4. 车牌识别结果
通过本文建立的模型不仅可以显示出车牌的信息,对车牌的位置置信度也有显示。
4. 结束语
本文对机动车的车牌进行识别,对一定内倾斜的车牌有一定的辨识效果,当内倾斜角度较大时,容易造成省份名称识别不够准确,容易被识别成字母等信息,同时对于货车等两行车牌信息的识别效果较差,并未在图4中体现,后期可以对算法进行完善,能够识别更多的车辆。同时后期可以增加样本空间与算法迭代实现对电动车等其他车辆车牌的识别。
本次车牌识别并未建立上位机界面,仅仅只是对算法的验证,后期可以加入操作界面,或引入摄像头,对车牌信息进行实施的监控,完善汽车车牌识别系统。
NOTES
*通讯作者。