LPRNet 论文详解


本文由 简悦 SimpRead 转码, 原文地址 zhuanlan.zhihu.com

最近在研究人车检测识别问题时,涉及到车牌的检测与识别,于是调研了一下车牌识别算法。车牌识别算法中 Intel 于 2018 年发表的《LPRNet: License Plate Recognition via Deep Neural Networks》网络设计新颖,整个模型只有 1.5M,但是识别准确率却毫不逊色,毕竟 Intel 已经在自家嵌入式设备中应用了。本篇通过梳理原文来一窥 LPRNet 的详细网络结构和性能。

Introduction

在城市交通管理、视频监控、车辆识别和停车场管理中车牌识别是一项富有挑战而重要的任务,图像的清晰度、光照条件、天气因素、图像形变和车牌字符的多变性使车牌识别问题变的比较复杂。一个鲁棒的车牌识别系统应当能够应对各种环境的变换而不失准确性。LPRNet 没有对字符进行预分割,可以说是一个端到端的车牌识别算法,为什么说是 “可以说” 呢?。因为文章没有考虑车牌检测问题,车牌检测通过 LBP-cascade 获得。卷积神经网络在图像分类、目标检测和语义分割等计算机视觉任务中凸显了有效性和优越性,很多 LPR 车牌识别算法基于卷积神经网络设计,LPRNet 也是如此。不同于其他车牌识别算法,LPRNet 瞄准嵌入式设备。

LPRNet 是一种非常高效的神经网络,它只需要 0.34 GFLops 就可以进行一次前向传播。此外,模型在 i7-6700K 上运行时在保证实时性的同时,准确率也有保证。面对中文车牌,LPRNet 可进行端到端的训练。LPRNet 的优点可以总结为如下三点:

⑴ LPRNet 不需要字符预先分割,车牌识别的准确率高、算法实时性强、支持可变长字符车牌识别。对于字符差异比较大的各国不同车牌均能够端到端进行训练。

⑵ LPRNet 是第一个没使用 RNN 的实时轻量级算法,能够在包括嵌入式设备在内的各式设备上运行。

⑶ LPRNet 在实际交通监控视频中的应用表明,该算法在视角和摄像畸变、光照条件恶劣、视角变化等复杂的情况下仍表现出很好的识别效果。

Related Work

早期的车牌识别算法由字符分割和紧随其后的字符分类两个阶段构成:

  • 字符分割通常使用不同的手工算法,结合投影、连接和基于图像组件的轮廓。由于采用二值图像或中间表示作为输入,因此字符分割质量受输入图像噪声、低分辨率、模糊或变形等因素的影响较大。
  • 字符分类阶段用 OCR 方法实现车牌字符识别。

因为字符分类发生在字符分割之后,所以识别的质量高度依赖分割方法。为了解决字符分割的问题作者采用了基于端到端的卷积神经网络,其将整张车牌的图像作为网路的输入,最终网络输出得到字符序列。

文献 [2] 中的无分隔模型是基于变长序列 CTC 损失。使用基于二值图像的 LBP 手工特征作为 CNN 的输入来产生字符类的概率。在输入图像上通过滑动窗口方法获得双向 LSTM 输入序列。由于解码器输出和目标字符序列长度不同,采用 CTC 损耗进行端到端自由分割训练。

文献 [6] 中的模型除了将滑动窗口方法替换为 CNN 输出空间分裂到 RNN 输入序列的方法外,基本遵循 [2] 中描述的方法 (“滑动窗口” 在 feature map 上,而不是输入)。

相比之下,文献 [7] 使用 CNN 模型从整张车牌图像提取特征,通过 11 个全连接模型头将其解码为 11 个字符长度的序列。模型将车牌字符填充为定长序列,每一个全连接头训练来分类指定位置的字符,所以整个网络通过一次前向传递即可完成车牌识别。文中也采用文献 [8]STN 网络来应对输入图像形变。文献[9] 尝试用一个神经网络来完成车牌的检测与识别。近期一些研究者,尝试使用文献 [11] 所述生成对抗网络来进行数据增强,文献 [10] 就尝试用该方法获取大型车牌数据集。

LPRNet 并没有在二值图像上提取手工设计特征,而将原始 RGB 图像作为 CNN 的输入。LPRNet 采用全卷积+CTC 损失来取代 LTSM+CTC 损失的模式,训练阶段用 CTC 损失来拟合 CNN 网络,推理阶段用贪婪搜索和前缀搜索完成字符推理。为了获得更好的性能,通过 [12] 所述全局上下文嵌入增强了预解码器中间特征映射。文中 LPRNet 轻量级开销网络的构建受到了 SqueezeNet[13]、Inception[14,15,16]、Batch Normalization [17] 和 Dropout[18]等技术的启发。

LPRNet 详细设计

在最近的研究中,倾向使用迁移学习将 VGG、ResNet 或 GoogLeNet 等强大的分类网络作为他们任务的骨干网络。但是为了设计低开销、轻量级的网络,这种方法并非首选,LPRNet 的整个网络可以概括如下:

  • 可选的 STN 定位网络
  • 轻量级的 CNN 骨干网络
  • 每个位置的字符分类头
  • 用于序列解码的字符分类概率
  • 后过滤处理过程

作者首先用 [8] 所述 STN 网络对输入图像进行处理,STN 处理是可选的过程,但是 STN 的存在使我们能够探究如何变换图像来获得最佳的车牌识别输入图像。原始的 LocNet 结构用于估计最佳的转换参数,具体网络结构如表 1.

LPRNet 的骨干网络架构如表 3 所示,其中 small_block 结构如表 2 所示。骨干网络以原始 RGB 图像作为输入,用 CNN 提取图像特征。使用结合上下文的 1*13 卷积核代替基于 LSTM 的 RNN。骨干子网络的输出可认为是一个代表对应字符概率的序列,它的长度与输入图像的宽度相关。因为网络的输出编码与车牌字符的长度不相等,作者采用免分割的 CTC 损失进行端到端训练。CTC 损失常用于输入和输出序列未对齐且长度可变情况。此外,CTC 将每个时间步的概率转换为输出序列的概率。关于 CTC 的详细内容见文献 [20]。

为了进一步提高性能,作者在预解码器中间特征映射中加入全局上下文嵌入。它是通过一个全连接层在骨干网络输出上进行计算并调整到所需的大小与主干输出连接。为了将特征图的深度调整到字符类数,应用了额外的 1×1 卷积。推理阶段的解码过程,作者采用两种方法: 贪婪搜索和束搜索。贪心搜索取每个位置上类概率的最大值,而束搜索使总最小值最大化。

对于后过滤,作者使用面向任务的语言模型作为一组目标国家 LP 模板实现。注意后滤波与束搜索一起应用。后过滤过程得到由束搜索找到的最可能的前 n 个序列,并返回第一个与依赖于国家车牌规则的预定义模板集匹配的序列。

LPRNet 的实现与搭建,作者用 TensorFlow 完成。训练时每一个 batch 的大小为 32,采用 Adam 优化器进行参数优化,初始的学习率为 0.001,梯度噪声比为 0.001。整个训练过程进行 250k 次迭代,每 100K 次迭代学习率下降十倍。实验中作者采用随机仿射变化、旋转、缩放、平移进行数据增强。值得一提的是,实验中作者在 5k 个迭代之后才开启 LocNet,LocNet 在一开始应用会导致结果退化,因为 LocNet 无法从识别器获得合理的梯度。

Results of the Experiments

作者在 11696 张中文车牌数据集进行实验,车牌通过 LPB 车牌检测方法获得,数据集按照 9:1 的比例分为测试集和训练集,这是一个私人的数据集作者并未公开。

为了提高运行时性能,我们还修改了 LPRNet basic,对所有池化层使用 2×2 步。这种改进 (LPRNet 简化模型) 大大减少了中间特征图的大小和总推断的计算成本,各模型的计算开销及准确率如表 4 所示:

为了研究全局上下文、数据增强、STN 校准、束搜索和后过滤对识别准确率的影响,作者对 LPRNet 进行消融研究,各处理环节对准确率的影响如表 5 所示:

可以看到,使用全局上下文可以获得最大的准确性增益 (36%),数据增强技术也有助于显著提高准确性 (28.6%)。如果不使用数据扩充和全局上下文,我们就无法进行模型训练。STN 提供了 2.8-5.2% 的显著改善,后过滤束搜索进一步提高了 0.4-0.6 的识别精度。

LPRNet 在不同设备上的表现如表 6 所示,可以看出 LPRNet 可以近实时处理。

结论和未来工作

文中作者提出了 LPRNet 这种轻量的车牌识别模型,该模型没有对车牌字符进行分割,应用 CTC 损失构建了端到端的车牌识别网络,并对各 trick 对 LPR 的影响做了研究,最终表明 LPRNet 是一种近实时而又准确率高的车牌识别网络。未来作者想把车牌检测与识别两个任务融合在一起,构建一个真正的端到端车牌识别网络。

代码实现

给大家推荐两个 LPRNet 的实现代码 github 链接,一个用 TensorFlow 实现,一个用 pytorch。

https://github.com/lyl8213/Plate_Recognition-LPRnet

https://github.com/sirius-ai/LPRNet_Pytorch

为了训练再给大家推荐一个车牌数据集 CCPD2019,该数据集由中国科学技术大学开源,数据集庞大。数据集采集城市道路场景,数据集极不平衡,所以在应用时需要处理一下。具体数据集的介绍见如下官方链接:

https://github.com/detectRecog/CCPD

Ref

本文参考:

https://arxiv.org/pdf/1806.10447.pdf

原文中提到的参考文献:

见原文文献 [1]—[24]

声明:HEUE NOTE|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA 4.0协议进行授权

转载:转载请注明原文链接 - LPRNet 论文详解