0摘要:
尽管自动车牌识别(ALPR)的商业和学术方法数量众多,但大多数现有方法都集中在特定车牌(LP)区域(例如欧洲,美国,巴西,中国*等),并且经常探索包含近似正面图像的数据集。本文提出了一个完整的ALPR系统,专注于无约束的场景,其中车牌图像可能由于倾斜视角而存在严重的失真。我们的主要贡献是引入了一种新颖的卷积神经网络(CNN),该网络能够在单个图像中检测和校正多个失真的车牌,这些校正过的车牌可以通过光学字符识别(OCR)方法以获得最终结果。作为额外的贡献,我们还为来自不同地区和采集条件的具有挑战性的LP图像集进行了手工标注。我们的实验结果表明,本文所提出的方法,对于特定场景没有任何参数调整或微调,车牌识别的结果与传统场景中的最先进的商业系统表现相近,并且在具有挑战性的场景中优于其他的学术和商业方法。
1介绍:
一些与交通相关的应用,例如被盗车辆的检测,收费控制和停车场访问验证都涉及到车辆识别,其由自动车牌识别(ALPR)系统执行。并行处理和深度学习(DL)的最新进展改进了许多计算机视觉任务,例如目标检测/识别和光学字符识别(OCR),这显然有利于ALPR系统的优化。实际上,深度卷积神经网络(CNN)已成为应用于车辆和车牌(LP)检测的先进机器学习技术。除了学术论文,一些商业ALPR系统也在探索DL方法。它们通常部署在庞大的数据中心,通过网络服务工作,每天能够处理数千到数百万的图像,并不断得到改进。这些系统包括Sighthound (https://www.sighthound.com/), OpenALPR (http://www.openalpr.com/)和Amazon Rekognition (https://aws.amazon.com/rekognition/).
尽管在最先进技术方面取得了进步,但大多数ALPR系统主要采用车辆和LP的正面视图,这在诸如收费监控和停车场验证等应用中很常见。然而,更轻松的图像采集场景(例如,执法人员使用移动摄像头或智能手机行走)可能会导致视角倾斜,其中LP可能高度扭曲但仍然可读,如图1所示,即便是最先进的商业ALPR系统对这些车牌的识别准确率也难以令人满意。
在这项工作中,我们提出了一个完整的ALPR系统,可以在各种场景和摄像机中具有良好表现。
我们的主要贡献是引入了一种新型网络,能够在许多不同的摄像机姿态中检测LP并估计其失真,从而允许在OCR之前进行校正处理。
另一个贡献是大量使用合成扭曲的真实图像来增强训练数据,允许使用少于200个手动标记的图像从头开始训练网络。
在这项工作中,我们提出了一个完整的ALPR系统,可以在各种场景和摄像机中具有良好表现。
我们的主要贡献是引入了一种新型网络,能够在许多不同的摄像机姿态中检测LP并估计其失真,从而允许在OCR之前进行校正处理。
另一个贡献是大量使用合成扭曲的真实图像来增强训练数据,允许使用少于200个手动标记的图像从头开始训练网络。
2相关工作:
ALPR是查找和识别图像中的车牌。它通常分为四个子任务,形成一个连续的管道:车辆检测,车牌检测,字符分割和字符识别。为简单起见,我们将最后两个子任务组合称为OCR。
过去已经提出了许多不同的ALPR系统或相关的子任务,通常使用图像二值化或灰度分析来找到候选提议(例如LP和字符),然后是手工制作的特征提取方法和经典的机器学习分类器。随着DL的兴起,最先进的技术开始向另一个方向发展,现在很多工作都采用了CNN,因为它可以实现高精度的通用物体检测和识别。
与ALPR相关的场景是文本定位(STS)和野外数字读取(例如来自Google街景图像[22])的问题,其目标是在自然场景中查找和读取文本/数字。虽然ALPR可以被视为STS的一个特例,但这两个问题还是有所不同,在ALPR中,我们需要学习没有语义信息的字符和数字(也没有太多的字体变化),而STS则专注于包含高字体可变性的文本信息,并可能探索词汇和语义信息,如[30]。数字读取不提供语义信息,只处理数字,比ALPR上下文简单,因为它避免了常见的数字/字母混淆,例如B-8,D-0,1-I,5-S。
本文的主要贡献是一个新颖的LP检测网络,我们通过回顾这个特定子任务的基于DL的方法,以及一些可以处理失真文本并可用于LP检测的STS方法开始本节。接下来,我们将完成基于DL的ALPR系统。
2.1车牌检测
YOLO网络[23,24]的成功启发了许多最近的工作,旨在实现实时的LP检测。Hsu等人使用略微修改的YOLO [23]和YOLOv2 [24]网络进行LP检测,作者扩大了网络输出粒度以改善检测数量,并获取了检测框属于两个类(LP和背景)的概率。他们的网络在精确度和召回率之间取得了很好的折衷,但是对提取的边界框的定位不够精准。另外,由于Yolo不擅长检测小目标,因此需要进一步评估汽车远离摄像机的情况。
在[31]中,训练了两个基于YOLO的网络,目的是检测旋转的LP。第一个网络用于查找包含LP的区域,称为“注意模型”,第二个网络捕获LP的旋转矩形边界框。尽管如此,他们只考虑了平面内旋转,而不是由摄像机视角倾斜引起的更复杂的变形,例如图1中所示的那些。此外,由于它们没有提供完整的ALPR系统,因此很难评估OCR方法对检测到的区域的性能。
使用滑动窗口方法的车牌检测器或与CNN结合的候选滤波器也可以在文献[3,2,27]中找到。然而,由于不使用如YOLO,SSD [21]和Faster R-CNN [25]等目标检测架构中的共享计算,它们往往计算效率低下。
尽管场景文本定位(STS)方法主要关注大的字体变化和词汇/语义信息,但值得一提的是一些处理旋转/扭曲文本的方法,可用于倾斜视角中的LP检测。Jaderberg及其同事[13]提出了一种基于CNN的自然场景文本识别方法,使用完全合成的数据集来训练模型。尽管取得了良好的效果,但它们仍然非常依赖N-gram,这不适用于ALPR。古普塔等人[7]还通过将文本逼真地粘贴到真实图像中来探索合成数据集,主要关注文本定位。输出是围绕文本的旋转边界框,其发现ALPR场景中常见的离面旋转的限制。
最近,Wang等人[29]提出了一种检测各种几何位置的文本的方法,称为实例转换网络(ITN)。它基本上是由三个CNN组成的:一个用于计算特征的骨干网络,一个用于推断仿射参数的转换网络,其中假设在特征映射中存在文本,以及一个最终分类网络,其输入是根据仿射参数通过采样特征建立的。虽然这种方法(理论上)可以处理离面旋转,但是它无法正确推断实际将文本区域映射到矩形的变换,因为文本周围没有物理边界区域应该映射到未失真视图中的矩形。在ALPR中,LP是矩形和平面的构造,我们探索此信息以回归转换参数,详见3.2节。
2.2复杂ALPR方法
Silva和Jung [28]和Laroca等人[17]提出了基于一系列改进的YOLO网络的完整ALPR系统。在[28]中使用了两个不同的网络,一个用于联合检测汽车和LP,另一个用于执行OCR。在[17]*使用了五个网络,基本上每个ALPR子任务一个,其中两个用于字符识别。虽然这两个系统都是实时的,但是他们只专注于巴西车牌,并且没有进行车牌校正,只处理正面和接近矩形的LP。
塞尔米等人[27]使用一系列基于形态学算子,高斯滤波,边缘检测和几何分析的预处理方法来寻找LP候选和字符。然后,使用两个不同的CNN来(i)从每个图像的一组LP候选分类中挑选一个单个正样本;(ii)识别分割的字符。该方法针对每个图像只处理单个LP,并且根据作者的说法,失真的LP和不良的光照条件都会影响性能。
李等人[19]提出了一个基于Faster R-CNN的网络[25]。使用区域提议网络以找到候选LP区域,其相应的特征图由RoI池化层裁剪。然后,这些候选者被送到网络的最后部分,计算其是/不是LP的概率,并且通过递归神经网络执行OCR。尽管很有希望,但作者提出的评估表明,在包含倾斜LP的大多数具有挑战性的情景中,性能尚待优化。
商业系统是最先进技术的良好参考。虽然它们通常只提供有关其架构的部分(或没有)信息,但我们仍然可以将它们用作黑盒来评估最终输出。如第1部分所述,示例是Sighthound,OpenALPR(这是Metropolis平台2中的NVIDIA官方合作伙伴)和Amazon Rekognition(一种通用AI引擎,包括可用于LP识别的文本检测和识别模块)。
3文本方法
3.1车辆检测
由于车辆是许多经典检测和识别数据集中存在的基础对象之一,例如PASCAL-VOC [5],ImageNet [26]和COCO [20],我们决定不从头开始训练检测器,而是选择考虑一些标准来执行车辆检测的已知模型。一方面,期望高召回率,因为任何未检测到的具有可见LP的车辆直接导致整体LP的漏检。另一方面,需要进行又快有准的检测,因为每个错误检测到的车辆必须由WPOD-NET验证。基于这些考虑,我们决定使用YOLOv2网络,因为它的速度较快(大约70 FPS)和良好的精度和召回折衷(PASCAL-VOC 76.8%mAP)。我们没有对YOLOv2进行任何改变或改进,只是将网络用作黑匣子,合并与车辆(即汽车和公共汽车)相关的输出,并忽略其他类别。
然后再将正的检测结果输入WPOD-NET之前调整其大小。根据经验,较大的输入图像允许检测较小的物体,但增加了计算成本。在大致正面/背面视图中,LP尺寸与车窗边界框(BB)之间的比率很小。然而对于倾斜/斜向视图,该比率更小,因为车辆BB趋于更大且更长。因此,倾斜视角的输入图像应缩放到比正面视角更大的尺寸,以保持LP区域仍然可识别。
尽管可以使用诸如[32]的3D姿势估计方法来确定缩放尺寸,但是本文基于车辆BB的纵横比呈现了一个简单且快速的处理过程。当它接近1时,可以使用较小的尺寸,并且必须随着纵横比变大而增加尺寸。更确切地说,缩放因子fsc由下式给出:
其中Wv和Hv是车辆BB的宽度和高度。注意,Dmin ≤ fsc min(Wv,Hv)≤Dmax,因此Dmin和Dmax界定了缩放后的BB的最小维度的范围。基于实验并试图在准确度和运行时间之间保持良好的折衷,我们选择Dmin = 288和Dmax = 608。
3.2车辆检测和矫正
车牌本质上是矩形和平面物体,它们附着在车辆上以便识别。为了利用它的形状,我们提出了一种新的CNN,称为变形平面目标检测网络。这个网络可以实现对具备一系列形变的车牌的检测,并且回归仿射变换的系数,该仿射变换将扭曲的LP校正成类似于正面视图的矩形形状。尽管可以学习平面透视投影而不是仿射变换,但是透视变换中的除法中可能分母很小,因此会导致数值不稳定。
WPOD-NET是使用YOLO,SSD和Spatial Transformer Networks(STN)的思想开发的。YOLO和SSD基于单次输入执行快速的多目标检测和识别,但它们不考虑空间变换,仅为每次检测生成矩形边界框。相反,STN可以用于检测非矩形区域,但是它不能同时处理多个变换,在整个输入上仅执行单个空间变换。
使用WPOD-NET的检测过程如图3所示。最初,将车辆检测模块的输出进行缩放后送入WPOD。前向过程得到了8通道的特征映射,包含了目标/非目标的概率和仿射变换参数。为了提取扭曲的LP,让我们首先考虑一个围绕单元格中心的固定大小为(m,n)的虚构矩形框。如果该矩形框包含目标的概率高于给定的检测阈值,则使用部分回归参数来构建将虚构正方形变换为LP区域的仿射矩阵。因此,我们可以轻松地将LP校正成水平和垂直对齐的对象。
网络结构:所提出的架构总共具有21个卷积层,其中14个包含在残差块内。所有卷积滤波器的大小固定为3*3.。除检测模块外,整个网络中都使用ReLU激活函数。有四个最大池化层,大小为2*2,步幅2,可将输入维度降低16倍。最后,检测模块有两个平行的卷积层:(i)一个用于推断由softmax函数激活的概率值;(ii)另一个用于回归仿射参数而没有激活函数(或等效地,使用恒等函数F(x)= x作为激活函数)。
损失函数:
对于高度为H和宽度为W的输入图像,以及由Ns = 16(四个最大池化层)给出的网络步幅,网络输出特征图大小为M×N×8,其中M = H / Ns并且N =W /Ns。对于特征图中的每个点(m,n),都要估计八个值:前两个值v1,v2表示有无目标的概率,后面六个值v3 ~ v8用于构建仿射变换矩阵Tmn :
其中对v3和v6使用了最大函数以确保对角线为正(避免不期望的镜像或过度旋转)。
为了匹配网络的输出分辨率,通过网络步幅的倒数重新缩放点pi ,并根据特征图中的每个点(m,n)重新进行中心化。这是通过应用归一化函数来完成的:
其中α表示虚构正方形一侧的缩放常数。我们设置α= 7.75,这是增强训练数据中最大和最小LP维度除以网络步幅之后的平均值。
别人理解:Amn(p)表示标注的车牌位置首先除以网络步幅Ns之后,再减去(m,n)中心化,最后再除以平均大小α,得到的就是中心在原点,长宽各接近于1的矩形框。因为这是标注的信息,表示的是车牌的真实位置。Tmn(q) 表示使用学习得到的参数对标准单位的矩形框进行仿射变换之后得到的框,表示的是预测到的车牌的位置。
假设在位置(m,n)处有一个车牌,损失函数的第一部分是考虑标准正方形的仿射版本与LP的标准化标注之间的误差,表示为:
损失函数的第二部分处理在(m,n)处具有/不具有对象的概率。类似于SSD置信度损失[21],基本上是两个对数损失函数的和:
其中,Iobj 为目标指示函数,如果在点(m,n)处包含目标,则该函数值为1,否则为0;logloss(y,p)=−ylog(p) 。如果一个目标的矩形边界框与任一个同样大小,中心点为(m,n)的矩形框之间的IOU大于γobj (根据经验设置为0.3),则该目标被认为是在点(m,n)内部。
?
最终的损失是定位损失和分类损失的和,即(4)和(5)的和:
训练细节:
为了训练提出的WPOD-NET,我们创建了一个包含196个图像的数据集,其中105个来自Cars数据集,40个来自SSIG数据集(训练子集),51个来自AOLP数据集(LE子集)。对于每个图像,我们手动标注图片中LP的4个角(有时不止一个)。来自汽车数据集的所选图像主要包括欧洲LP,但也有许多美国以及其他类型的LP。来自SSIG和AOLP的图像分别包含巴西和中国*的LP。一些带注释的样本如图5所示。
鉴于训练数据集中注释图像的数量很少,使用数据集增强至关重要。我们使用了下述增强方法:
校正:假设LP位于平面上,基于LP的标注校正整个图像;
宽高比:LP宽高比在区间[2,4]中随机设置,以适应不同区域的大小;
居中:LP中心成为图像中心;
缩放:缩放LP,使其宽度在40像素到280像素之间(根据LP的可读性进行实验设置)。就是基于该范围确定了公式(3)中使用的α值;
旋转:执行具有随机选择角度的3D旋转,以考虑各种相机设置;
镜像:按照50%的概率进行镜像操作;
平移:将车牌从图像中心处随机平移,限制其平移后的范围位于208 * 208大小的正方形内;
裁剪:在平移之前考虑LP中心,我们在其周围裁剪208×208区域;
色彩变换:在HSV色彩空间进行颜色修改;
标注:通过应用用于增强输入图像的相同空间变换来调整四个LP角的位置。
从上面提到的所选择的一组变换中,可以从单个手动标记的样本获得具有非常不同的视觉特性的各种增强测试图像。例如,图6示出了从相同图像获得的20个不同的增强样本。
3.3 OCR
校正后的LP上的字符分割和识别使用修改的YOLO网络执行,采用[28]中所示的架构。然而,通过使用合成和增强数据来应对世界各地(欧洲,美国和巴西)不同地区的LP特征,训练数据集在这项工作中得到了相当大的扩展。
人工创建的数据包括将一串七个字符粘贴到带纹理的背景上,然后执行随机变换,例如旋转,平移,噪声和模糊。一些生成的样本和用于合成数据的处理管道的简短概述如图7所示。如第4节所示,合成数据的使用有助于极大地改善网络泛化能力,因此使用完全相同的网络对世界各地的LP识别表现良好。
3.4验证集
我们的目标之一是开发一种在各种不受约束的场景中表现良好的技术,但也应该在受控场景中很好地工作(例如主要是正面视图)。因此,我们选择了四个在线可用的数据集,即OpenALPR(BR和EU),SSIG和AOLP(RP),它们涵盖了许多不同的情况,如表1第一部分所述。我们考虑三个不同的变量:LP角度(正面或倾斜),从车辆到摄像机的距离(近距离,中距离和远距离)以及拍摄照片的区域。
目前在LP失真方面使用的更具挑战性的数据集是AOLP Road Patrol(RP)子集,其试图模拟将摄像机安装在巡逻车辆中或由人手持的情况。在相机远离车辆的情况下,SSIG数据集似乎是最具挑战性的数据集。它由高分辨率图像组成,远距离车辆的LP可能仍然可读。他们都没有同时出现多个(同时)车辆的LP。
虽然所有这些数据库涵盖了许多情况,但据我们所知,文献中缺乏更具通用性的数据集。因此,本文的另一个贡献是从汽车数据集中选择的一组新的102个图像(命名为CD-HARD)进行标注,涵盖各种具有挑战性的情况。我们选择的图像主要是具有强LP失真但仍然是人类可以读取的图像。其中一些图像(LP区域周围的裁剪块)如图1所示,用于激发这项工作中解决的问题。
4实验结果
本节介绍了我们完整的ALPR系统的实验分析,以及与其他最先进的方法和商业系统的比较。不幸的是,大多数学术ALPR论文都关注特定情景(例如 单个国家或地区,环境条件,摄像机位置等)。因此,文献中有许多分散的数据集,每个数据集都通过一组方法进行评估。此外,许多论文仅关注LP检测或字符分割,这进一步限制了完整ALPR流水线的比较可能性。在这项工作中,我们使用四个独立的数据集来评估所提出的方法在不同场景和区域布局中的准确性。我们还展示了与提供完整ALPR系统的商业产品和论文的比较。
所提出的方法包含三个网络,为此我们根据经验设置以下接受阈值:车辆(YOLOv2)和LP(WPOD-NET)检测为0.5,字符检测和识别(OCR-NET)为0.4。此外,值得注意的是,字符“I”和“1”对于巴西LP来说是相同的。因此,它们被认为是评估OpenALPR BR和SSIG数据集的单一类。没有其他启发式或后处理应用于OCR模块产生的结果。
我们根据正确识别的LP的百分比来评估系统,如果所有字符都被正确识别并且没有检测到其他字符,则认为LP是正确的。重要的是要注意,本王使用了完全相同的网络应用于所有数据集:没有使用特定的训练程序来调整给定类型的LP(例如欧洲或*人)的网络。管道中唯一的轻微修改是针对AOLP Road Patrol数据集。在该数据集中,车辆非常靠近摄像机(导致车辆探测器在几种情况下失效),因此我们直接将LP探测器(WPOD-NET)应用于输入图像。
为了展示在OCR-NET训练程序中包含全合成数据的好处,我们使用两组训练数据评估我们的系统:(i)真实增强数据加人工生成的数据;(ii)只有真正的增强数据。这两个版本分别在表2中用“Ours”和“Ours(no artf.)”表示。可以观察到,添加完全合成数据提高了所有测试数据集的准确性(AOLP RP数据集的增益≈5%)。此外,为了突出纠正检测边界框的改进,我们还提出了使用常规非矫正边界框的结果,在表2中标识为“ours(unrect.)”。正如预期的那样,大多数正面数据集的结果变化不大(ALPR-EU甚至略好),但是具有挑战性倾斜LP(AOLP-RP和拟议的CD-HARD)的数据集中存在相当大的准确度下降。
表2还显示了与有竞争力的(商业和学术)系统的对比结果,表明我们的系统在代表更多受控情景的数据库中实现了与商业系统相当的识别率,其中LP主要是正面的(OpenALPR EU和BR,以及SSIG)。更准确地说,它是两个OpenALPR数据集中的第二最佳方法,也是SSIG中的第一最佳方法。然而,在具有挑战性的情况下(AOLP RP和提出的CD-HARD数据集),我们的系统表现优于所有比较方法(与第二个最佳结果相比,准确度增益超过7%)。
值得一提的是李等人的方法[18,19],Hsu等人[10]和Laroca等[17]专注于单个区域或数据集。通过超越它们,我们展示了强大的泛化能力。同样重要的是要注意,最具挑战性的数据集(AOLPRP和CD-HARD)的完整LP识别率高于将OCR模块直接应用于带标注的矩形LP边界框(AOLP-RP为79.21%,CD-HARD为53.85%)。这种增益是由于WPOD-NET允许的非扭曲,这在LP强烈失真时极大地帮助了OCR任务。图8展示了图1中的LP校正后的图像和OCR识别后的结果。右上方LP的检测分数低于接受阈值,说明了存在漏检的LP。
本文提出的WPOD-NET使用TensorFlow框架实现,而最初的YOLOv2车辆检测和OCR-NET是使用DarkNet框架创建和执行的。Python包装器用于集成两个框架。用于我们实验的硬件是Intel Xeon处理器,具有12Gb RAM和NVIDIA Titan X GPU。通过该配置,我们能够以平均5 FPS(考虑所有数据集)运行完整的ALPR系统。该时间高度依赖于输入图像中检测到的车辆数量。因此,增加车辆检测阈值将导致更高的FPS,但是召回率更低。
5总结
在这项工作中,我们为无约束的场景提出了一个完整的深度学习ALPR系统。我们的结果表明,所提出的方法在具有挑战性的数据集中远远优于现有方法,其中包含在强倾斜视图处捕获的LP,同时在更受控制的数据集中保持良好结果。
这项工作的主要贡献是引入了一种新型网络,该网络允许通过为每个检测单元生成仿射变换矩阵来检测和解除失真的LP。这一步减轻了OCR网络的负担,因为它需要处理较少的失真。
作为额外的贡献,我们提出了一个新的具有挑战性的数据集,用于评估大多数倾斜LP的捕获中的ALPR系统。数据集的标注将公开提供,以便数据集可以用作新的具有挑战性的LP基准。
对于未来的工作,我们希望扩展我们的解决方案,以检测摩托车LP。由于纵横比和布局的差异,这带来了新的挑战。此外,我们打算在交通监控场景中探索所获得的自动相机校准问题的仿射变换。
6代码解析
6.1车辆检测
基于YoloV2的车辆检测,这里不过多展开。
6.2车牌检测和矫正
输入图像:检测到的车辆局部图像块
处理过程:
首先计算输入图像的长宽比,然后使用该比值乘以288,对相乘后的结果按照规则(x + (x % 16))进行变换,取该整数倍值与608的最小值作为变换大小。计算变换大小和原始图像短边的比值,保持长宽比将输入图像安装该系数进行变换,对变换后的大小进行处理使其成为16的整数倍。(这个过程处理的很繁琐,尤其按照(x + x%16)进行处理,不理解)
接下来就是对图像变为浮点值、缩放、变成四维结构的操作,然后送入模型进行推理,得到了 w/16 * h/16 * 8的输出。
接下来对输出结果进行后处理,分别读取输出的概率值和仿射变换参数。由于标注是车牌的大小位于40 - 208之间,所以(40 + 208)/16 = 7.75作为输出的车牌的平均大小。标准的车牌为位于原点,长宽各为1的正方形。仿射变换矩阵乘以标准车牌,再乘以车牌的平均大小,最后再加上当前点在输出中的cell的中心点位置。最后除以输出的大小,得到车牌位置相对原始图像的位置,得到的结果全部位于 0 - 1之间。
对当前图像的所有超过阈值的输出按照上述步骤进行处理之后,进行NMS操作,减少重复检测的车牌。最后再次进行仿射变换,将获取的车牌变换成240 * 80的标准大小。
至此,完成车牌的检测和校正过程。
千里之行,始于足下。
原文链接:https://blog.csdn.net/cdknight_happy/article/details/93190934
License Plate Detection and Recognition in Unconstrained Scenarios(无约束场景下的车牌检测与识别)