车牌(生成)、检测与识别【调研】
@zhongying.ru
背景
车牌识别是自动驾驶和计算机视觉共有的一般任务。要训练高性能的车牌识别模型,必须用尽可能多的图片训练。但是,收集真实车牌会花费大量资源且涉及隐私。一种直接的解决方案是使用简单的脚本按照正则表达式生成车牌号并绘制。然而这样得到的车牌图片都是干净的、高质量的。在这些图片上训练出的模型无法处理现实世界丰富的噪声。当然,可以添加高斯噪声,并对图像进行一些转换。但是,这样生成的图像不一定服从现实噪声的分布。需要生成逼真的图片(给生成的图片加真实噪声),扩充车牌识别的训练数据,以求更好的线上精度。
车牌生成相关技术
Conditional GAN
原始的GAN随机地生成判别器难辨真假的图片,Conditional GAN则是增加了条件信息,来控制生成的图片。
具体地,在生成器和判别器的输入中增加条件,生成器生成的图片只有足够真实且与条件相符,才能够通过判别器。
条件的具体内容可以是类别标签、文字、图片等各种形式,因而延伸出文生图、图生图、语音增强、视频生成等各种应用。
Image Domain Translation
1. Paired Two Domains (训练样本需是成对的)
- Pix2Pix Image-to-Image Translation with Conditional Adversarial Networks
- Pix2PixHD High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs
2. Unpaired Two Domains (不需要成对的训练样本)
- CycleGAN Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
Core idea: 如果把一个样本从域1迁到域2,再从域2迁回域1,那应该得到原始的输入。(域1->域2
和域2->域 1
各一组生成器判别器) - CUG Contrastive unpaired image-to-image translation, faster and lighter training than CycleGAN
- UAG Unsupervised Attention-guided Image-to-Image Translation
- ITTR Image to Image Translation using Transformers
车牌生成开源项目
模型 | 优、缺点 | |
---|---|---|
license-plate-generator中文车牌生成 | 透视变换/ HSV变化/ 高斯噪声/ 添加污渍 | 噪声是人工定义的 |
Generate-LicensePlate-with-GAN | Pix2Pix | 需要成对的训练样本(outline图片→车牌照片), 训练中输入的outline图片是从车牌照片抽出的,生成时输入的outline图片从合成图片抽出。 |
CarLicensePlatesGenerator [paper] | CycleGAN | 用CycleGAN对合成车牌图片进行风格迁移并贴到背景图上 |
可结合传统方法和GAN,如可对合成图片进行透视变换等再抽出outline图片作为输入,或者对GAN的输出再进行透视变换、添加污渍、运动模糊等。
其他:
Adversarial Generation of Training Examples: Applications to Moving Vehicle License Plate Recognition
未开源。用车牌生成器生成大规模车牌识别数据集(带标签),用大规模数据集预训练车牌识别模型,并在真实车牌数据上finetune。生成车牌用到CycleGAN(训练时将loss替换为Wasserstein distance loss,data variety更大和模型收敛更好)。chinese_licence_plate_generator
真实/合成车牌图片加到各种背景上。
车牌数据集
-
【CCPD2019】【检测+识别】
停车场数据集,30万张手机拍摄的完整照片。仅有蓝牌,车牌的车牌省份主要为皖。
每张图像都是手机拍摄的静止车辆。文件名就是该图像的数据标注,含4顶点位置、倾斜角、亮度、模糊度和车牌号。每张图像的分辨率为720(宽)× 1160(高)× 3(通道)。包含以下分类:基础、旋转、远近、脏污、雨雪天雾天。
现有模型在该数据集各子集上的指标:
Detection
指标为precision。
Model FPS AP DB Blur FN Rotate Tilt Challenge Faster-RCNN 11 84.98 66.73 81.59 76.45 94.42 88.19 89.82 SSD300 25 86.99 72.90 87.06 74.84 96.53 91.86 90.06 SSD512 12 87.83 69.99 84.23 80.65 96.50 91.26 92.14 YOLOv3-320 52 87.23 71.34 82.19 82.44 96.69 89.17 91.46 Recognition
ACC计算为车牌正确率,而非字符正确率。AP为所有测试样本上的precision,随后为各子集[ DB(ccpd_db/), Blur(ccpd_blur), FN(ccpd_fn), Rotate(ccpd_rotate), Tilt(ccpd_tilt), Challenge(ccpd_challenge) ]上的ACC。
Model FPS AP DB Blur FN Rotate Tilt Challenge SSD512+HC 11 43.42 34.47 25.83 45.24 52.82 52.04 44.62 【CCPD2020】【检测+识别】
11766张(train:val:test = 5769:1001:5006)完整照片,均为新能源车牌(绿牌)。【百度Paddle车牌数据集】【识别】
11万张图片,图像仅包含车牌部分,文件名为车牌号。【CRPD (Chinese Road Plate Dataset)】【检测+识别】
https://github.com/yxgong0/CRPD
完整照片3万张,标注了车牌的4顶点位置和车牌号,其中7500张包含不止一辆车。
车牌种类包括:单行车牌、双行车牌、教练车、警车、货车等。
场景包括:静止、运动、转弯、远处。【GAN合成的330K张中国车牌】【识别】
https://github.com/SunlifeV/CBLPRD-330k
高质量、平衡的数据集,其中包含330,000张图像,含各种类型的中国车牌(蓝牌、绿牌、拼接牌、黑牌等)。该数据集是使用GAN生成的,可确保出色的图像质量和不同车牌类型的平衡分布。该数据集非常适合训练和评估车牌识别模型。其他小型数据集【检测+识别】
EasyPR(200+)、ChineseLP(400+)、CLPD(1200)均为完整图片。
Todo:车牌检测与识别
【PaddleOCR轻量级车牌识别】:以CCPD2020(新能源车)中5000+张图片为训练数据, 含检测和识别。
- todo:数据量足够,调研端到端方法、两阶段SOTA。