APP下载

复杂环境下的车牌识别

2021-10-05莫少雄

智能计算机与应用 2021年5期
关键词:车牌卷积精度

莫少雄,赵 波

(上海工程技术大学 机械与汽车工程学院,上海201620)

0 引 言

车牌检测与识别是智能交通系统的重要组成部分,具有从安全到交通控制等多重应用,近年来受到了人们的广泛关注。然而,现有的算法大多只能在特定的条件下才能很好地工作,在复杂环境下准确读取车牌仍然是一项具有挑战性的任务[1]。复杂的背景,车牌存在很大以及随机的拍摄条件(如光照、失真、遮挡或模糊),都会加大检测难度。因此如何在复杂环境下提高车牌检测精度和识别率具有重要的研究意义[2];复杂的环境因素,在很大程度上制约了车牌检测与识别的准确性和可靠性。为了提高复杂环境下车牌图像检测与识别的速度和精度,需要针对一个或多个因素对相关算法进行研究和改进,对车牌检测与识别技术的改进和优化具有重要意义[3]。

1 车牌检测与矫正

车牌检测是定位车牌位置,获得车牌四角的坐标,是车牌识别过程中的一个重要步骤,定位不成功或不完整将直接导致最终识别失败[4]。本文是先通过对车辆进行检测,缩小车牌搜索的范围,降低计算成本,同时提高了车牌识别的准确率,然后在检测出的车辆图像中对车牌进行定位。

汽车在许多经典目标检测算法中都是数据集底层的对象之一,在选择目标检测算法时,考虑了以下几个问题:首先,车辆检测算法要求较高的准确率。因为任何漏检车辆都会直接导致车牌漏检;其次,算法要求计算速率快。如果没有达到较高的计算速率,影响实时检测;最后,计算成本低,这样才具有广泛的应用价值[5]。经过以上的综合分析,决定使用EfficientDet作为的车辆检测网络,因为该网络检测速度和检测精确度在ImageNet数据集上都有很好的表现[6]。

考虑到现实环境中车牌不同的成像角度,提出了一种失真校正的车牌检测网络。用于畸变校正的车牌检测网络结构如图1(a)所示,其中Resent block(N)的网络结构细节如图1(b)所示。该网络可以在自然场景中检测不同程度失真的车牌,并将失真的车牌修正为类似于前视图的矩形形状。为了更准确地定位车牌,设计了一种基于残差块的网络来提取车牌特征,并且将网络中的卷积层大小都设定为3×3。为了防止车牌特征信息在池化后消失,只使用了4个步长为2×2的最大池化层,将输入维数降低了16倍。最后,检测模块如图1(c),有2个平行的卷积层:(1)一个用于嵌入概率,函数激活为softmax;(2)另一个用于回归仿射参数。如图1(c)所示。

图1 车牌检测网络结构Fig.1 Network structure of license plate detection

利用失真校正网络提取车牌的过程如图2所示。首先,网络生成对象或非对象概率(2通道)和仿射变换参数(6通道)共8个通道的特征图。为了提取变形车牌上的特征,首先考虑一个假设的正方形,其尺寸固定在车牌中心(x,y)。如果单元的目标概率大于给定的检测阈值,则利用回归参数建立仿射矩阵,将虚拟正方形转换为车牌区域[7]。因此,可以很容易地将车牌扩展到水平和垂直对齐的对象。

图2 车牌纠正过程Fig.2 License plate correction process

用mi=[xi,yi]T(其中i=1,2,3,4)表示带注释车牌的4个角,从左上角开始顺时针方向标注;用[0.5,0.5]T,n4=[-0.5,0.5]T表示以原点为中心的标准单位的对应顶点。通过Ns=24(4个最大池化层)给出输入图像的高H、宽W、网络步幅,网络输出特征图由P×Q×8个卷组成,其中P=H/Ns,Q=W/Ns。对于特征图中的每个点单元,有8个值需要估计:前2个值(v1-v2)是物体/非物体的概率,后6个值(v3-v8)用于建立局部仿射变换Txy,通过式(1)得出:

Txy(n)利用所学的参数对代表预测车牌位置的包围盒进行仿射变换。使用了最大函数v3和v6,用来确保对角线为正(避免不必要的镜像或过量的旋转)。为了匹配网络的输出分辨率,将mx点按网络步幅的倒数重新缩放,并根据在特征图中每个(x,y)重新定心。通过使用标准化函数(2)来实现:

其中,β是一个缩放常数,表示虚拟方块的边。设置β=8.15,是被网络步幅分割的增广训练数据中候选车牌的最大和最小维数之间的均值点[8]。为了在精度和处理时间之间保持良好的折衷,根据实验,本文选择了最大维数508和最小维数128。假设有一个对象(车牌)在点(x,y),损失函数的第一部分考虑了一个扭曲版本的正则平方和车牌的标准化标注点之间的误差[9],由(3)式给出:

损失函数的第二部分是处理在(x,y)处有无对象的概率。损失是2个对数损失函数的总和,式(4):

其中,fprob(x,y)是对象指示函数,如果在点(x,y)存在对象,返回1,否则返回0。最终损失函数由等式(3)和(4)中定义的项组合给出,式(5):

存在倾斜、甚至畸变的车牌都被失真校正网络校正为正视的车牌,输出的车牌被作为车牌识别的输入。这样经过校正后的车牌,让车牌识别变得异常的轻松,不用再考虑角度,畸变或者光照等外界的影响,提高了车牌识别的速度和准确性。

2 车牌识别

由于传统的车牌识别框架分割后的车牌识别精度不高。因此,本文采用卷积递归神经网络(CRNN)和联接主义时间分类(CTC)结构,将端到端算法应用于车牌识别,直接输出车牌字符。

整个网络可分为3个部分,如图3所示。底部的卷积层自动从每张输入图像中提取特征图;在卷积网络之上,构造一个递归网络,对特征序列的每一帧进行预测;最后,通过转译层将每帧预测转化为预测序列,车牌识别网路的结构参数见表1。

图3 车牌识别架构图Fig.3 Schematic diagram of license plate recognition

表1 车牌识别网络的结构参数表Tab.1 Structure of license plate recognition Network

卷积层:利用卷积层和最大池化层构建卷积层,提取输入图像的特征图。将所有输入图像调整到相同的尺度,然后从特征图中提取出特征序列,作为递归层的输入。

循环层:是一个深度双向长期内存(LSTM)网络,位于卷积层之上。基于卷积特征序列,连续提取文本序列。LSTM是一种特殊的递归神经网络(RNN),主要用于解决长序列训练中的梯度消失和梯度爆炸问题,具有比普通RNN网络更好的性能[10]。使用循环层有3个主要优点:一个是LSTM具有捕获序列上下文信息的强大能力。在基于图像的序列识别中,使用上下文比单独处理每个符号更稳定、更有帮助[11];其次,LSTM可以将损失误差传播回其输入,并允许在一个网络中一起训练循环层和卷积层;第三,LSTM可以处理任意长度的序列。

转译层:使用一种名为联接主义时态分类(CTC)的时态分类算法,将每一帧的每帧预测转化为最终的字符序列,CTC专注于解决给定标签和输出数据的对齐问题。传统的方法需要将输入数据与给定的标签及时对齐,以逐帧计算交叉熵损失,而CTC算法可以在不进行标签对齐的情况下进行训练[12]。该分类算法只需关注输出是否真实、标签整体一致,从而减少了手工标注的繁琐工作。

该识别算法可以在车牌识别中完成端到端训练,不需要进行字符分割和水平缩放操作,可以识别任意长度的车牌字符。

3 实 验

3.1 实验环境及所用数据集

所有网络都是在Pytorch深度学习框架下实现的,实验平台为NVIDIA GeForce GTX 2080 GPU,i7 9700 CPU,GPU内存为12 GB。

CCPD数据集是目前中国最大的公开标签车牌数据集,图片数量约30万张,其中独立车牌图像约25万张,不同背景,不同拍摄角度,不同时间,不同光照水平。特别是其中模糊车牌和大角度水平倾角车牌,对于本文提出的检测模型是很好训练和测试数据。

3.2 实验结果及分析

3.2.1 车牌定位结果

将CCPD数据集分为两部分,一部分作为训练数据,另一部分作为测试数据集。目前最先进的几种车牌检测算法的检测精度,包括Faster-RCNN、YOLO和SSD等,见表2。当检测区域与目标真实值重叠度超过70%时(IoU>0.7),认为检测结果正确。YOLOV3的整体检测精度较高,但对大倾角车牌的检测精度较低。本文方法在检测和识别算法上都进行了优化,在性能上比RPNet和YOLO-V3更快、更鲁棒。

表2 模型对比Tab.2 Comparison of models

为了更直观地看到车牌检测模块的失真校正网络的能力,为了进行相应的特殊测试,测试所用的大角度车牌照片测试集是在几种特定条件(夜晚,强光和正常光照等)下自行拍摄的,实验结果如图4所示。可以看出在摄像机角度严重倾斜甚至车牌存在变形的情况下,本文的方法仍然可以将倾斜和变形的车牌图像转换为几乎正面视角下的矩形图像,且在夜间也能准确地定位,验证了该方法的高性能。

图4 车牌纠正结果图Fig.4 Result of license plate correction

3.2.2 车牌识别结果

与其它模型的检测和识别结果进行了比较。最终的识别结果既考虑了车牌识别速率,又考虑了识别精度。只有当IoU大于0.6,且图像中车牌的所有字符都被正确识别时,才认为车牌识别正确,识别结果见表3。

表3 车牌识别精度Tab.3 License plate recognition accuracy

除了MTLPR、TE2E和RPNet之外,同时还为的其它目标检测模型添加了一个高性能车牌识别模型HC,HC代表深度监督的方法在多尺度下嵌入空间信息的Holistic-CNN。这些组合模型可以达到较高的识别速度和精度,但与其它模型相比,本文提出的方法仍然具有更高的性能。车牌检测识别结果如图5所示。

图5 不同条件下的车牌识别结果Fig.5 License plate recognition results under different conditions

4 结束语

本文提出了一种实时、鲁棒的自然场景的车牌识别方法。将车牌检测和车牌识别分为两个模块,先用失真校正的车牌检测网络对车牌进行校正和定位,通过卷积递归神经网络(CRNN)和联接主义时间分类(CTC)结构,实现端到端车牌识别。实验结果表明,该方法能对倾斜或者存在畸变的车牌进行准确、快速的检测和识别。同时该车牌识别方法在性能上远远优于现有的车牌识别方法。与传统的检测算法相比,车牌识别采用CRNN和CTC模型,实现了高精度的端到端目标识别算法。与其它神经网络算法相比,该方法在CCPD数据集上具有更高的识别精度。

猜你喜欢

车牌卷积精度
基于不同快速星历的GAMIT解算精度分析
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
车牌颜色里的秘密
基于深度卷积网络与空洞卷积融合的人群计数
近似边界精度信息熵的属性约简
卷积神经网络概述
第一张车牌
一种侧向插装型车牌架
电力系统短期负荷预测方法与预测精度