达人特训营第三期基于addle的车牌识别人工智能tudio

基于PaddleOCR的车牌识别

车牌识别(Vehicle License Plate Recognition,VLPR) 是计算机视频图像识别技术在车辆牌照识别中的一种应用。车牌识别技术已被广泛用于智能交通的各个领域:

在上述场景下,车牌识别的主要难点如下:

本项目基于Aistudio完成, 具体环境如下:

下载 PaddleOCR代码

安装成功后可看到如下提示:

所使用的数据集为 CCPD和自建黄牌车牌数据集,CCPD车牌数据集包含蓝牌和绿牌两种类型,数据集分布如下:

解压之后数据的分布如下

选用 PaddleOCR 中的 PP-OCRv3中的文本检测模型做为base模型,并且使用 PP-OCRv3 文本检测模型参数作为预训练模型。由于车牌场景均为端侧设备部署,因此对速度和模型大小有比较高的要求,因此还需要采用量化训练的方式进行模型大小的压缩和模型推理速度的加速。模型量化可以在基本不损失模型的精度的情况下,减小模型参数大小并加速计算,使用量化后的模型在移动端等部署时更具备速度优势。

因此,本实验中对于车牌检测有如下3种方案:

开始实验之前先切换到PaddleOCR目录

从下表中下载PP-OCRv3文本检测预训练模型

使用如下命令下载预训练模型

使用如下命令进行PP-OCRv3文本检测预训练模型的评估

执行完成后可看见如下输出:

使用预训练模型进行评估,指标如下所示:

和评估相同,进行训练也需要对部分字段进行设置,具体如下:

在使用预训练模型进行fine-tune时,需要设置如下11个字段

使用如下代码即可启动在CCPD车牌数据集上的fine-tune。

训练过程中可看见如下输出:

训练完成后使用如下命令进行评估

执行完成后可看见如下输出:

使用预训练模型和fine-tune,指标分别如下:

可以看到进行fine-tune能显著提升车牌检测的效果。

要是想在端侧设备上进行部署,我们还需要对模型进行量化以提升模型的运行速度并降低模型体积。

此处使用在线量化训练,如果需要在线量化训练可通过如下命令启动:

量化后指标对比如下

可以看到通过量化训练在精度几乎无损的情况下,降低模型体积60%并且推理速度提升15%。

执行完成后可看见如下输出:

导出后的模型,使用如下命令可使用预测引擎对单张图片进行推理:

执行完成后可看见如下输出:

这里选用 PaddleOCR 中的 PP-OCRv3中的文本识别模型做为base模型,并且使用 PP-OCRv3 文本识别模型参数作为预训练模型。同样使用量化训练减小模型参数大小并加速计算

因此,本实验中对于车牌识别的优化有如下3种方案:

从下表中下载PP-OCRv3文本识别预训练模型

使用如下命令下载预训练模型

使用如下命令进行PP-OCRv3文本识别预训练模型的评估

执行完成后可看见如下输出:

使用预训练模型进行评估,指标如下所示:

从评估日志中可以看到,直接使用PP-OCRv3预训练模型进行评估,acc非常低,但是norm_edit_dis很高。因此,我们猜测是模型大部分文字识别是对的,只有少部分文字识别错误。使用如下命令进行infer查看模型的推理结果进行验证:

执行完成后可看见如下输出:

从infer结果可以看到,车牌中的文字大部分都识别正确,只是多识别出了一个·。针对这种情况,有如下两种方案:

优化后处理

改动前后指标对比:

可以看到,去掉多余的·能大幅提高精度。

和评估相同,进行训练也需要对部分字段进行设置,具体如下:

使用如下命令启动 fine-tune

训练过程中可看见如下输出:

评估

训练完成后使用如下命令进行评估

执行完成后可看见如下输出:

使用预训练模型和fine-tune,指标分别如下:

可以看到进行fine-tune能显著提升车牌识别的效果。

要是想在端侧设备上进行部署,我们还需要对模型进行量化以提升模型的运行速度并降低模型体积。

此处使用PACT在线量化进行训练,如果需要在线量化训练可通过如下命令启动:

量化后指标对比如下:

量化后能降低模型体积53%并且推理速度提升57%,但是由于识别数据过少,量化带来了1%的精度下降。

(此处使用非量化模型)

在实际部署中,我们需要将动态图训练的模型转换为静态图模型进行推理,使用如下命令可以将训练好的模型导出为静态图模型:

执行完成后可看见如下输出:

导出后的模型,使用如下命令可使用预测引擎对单张图片进行推理:

执行完成后可看见如下输出:

检测模型和识别模型分别fine-tune并导出为inference模型之后,可以使用如下命令进行端到端推理。

执行完成后可看见如下输出:

我们分别使用PP-OCRv3中英文超轻量预训练模型在车牌数据集上进行了直接评估和 fine-tune 和 fine-tune +量化3种方案的实验,指标对比如下:

结论

PP-OCRv3的检测模型在未经过fine-tune的情况下,精度和经过 fine-tune 后又较大差距。在使用量化训练后检测模型的精度几乎无损,并且模型大小压缩57%。

PP-OCRv3的识别模型在未经过fine-tune的情况下,在车牌数据集上精度为0%,但是经过分析可以知道,模型大部分字符都预测正确,但是会多预测一个特殊字符,去掉这个特殊字符后,精度就提高了很多。PP-OCRv3识别模型在经过 fine-tune 后识别精度进一步提升。在使用量化训练后识别模型大小压缩55%,精度轻微损失。本次也参考了很多大佬的项目,也又查看PaddleOCR的文档等,通过这次项目经验,也是学到了很多新的知识和BUG,希望和大家一起进步,由于本人备考研究生,没有太多时间训练所以也请见谅。

参考项目和文献:

学员:罗宏立

感谢老师指导,再接再厉

学大模型,用大模型上飞桨星河社区!每天8点V100G算力免费领!免费领取ERNIE 4.0 100w Token >>>

更多推荐

利用Amazon Bedrock畅玩Claude 3等多种领先模型,抢占AI高地(体验倒计时4小时)

RAPTOR:索引树状 RAG,使用树结构来捕捉文本的高级和低级细节

THE END
0.中国车辆车牌号识别数据集,可识别车牌数字和字母,支持YOLO,VOC,COCO数字和字母: 使用场景和前景 车辆车牌号识别数据集在许多场景和前景中都有广泛的应用。以下是一些使用车牌号识别数据集的场景和前景: 交通管理:车辆车牌号识别可以用于交通管理,例如实时监控交通流量、识别违法行为和违法车辆等。通过识别车辆的车牌号,可以对交通流量进行统计和分析,提供精确的交通管理数据。 jvzquC41dnuh0lxfp0tfv8ud{o}9k€r1ctzjeuj1fgzbkux136:35;992
1.keras+resnet34实现车牌识别腾讯云开发者社区Python实现车牌识别系统,包含车牌图像生成、ResNet34模型构建与训练、车牌字符预测功能,使用PIL、OpenCV处理图像,Keras搭建深度学习模型。jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk04:::456
2.车牌识别系统Python,基于CNN卷积神经网络算法车牌识别系统,基于Python实现,通过TensorFlow搭建CNN卷积神经网络模型,对车牌数据集图片进行训练最后得到模型,并基于Django框架搭建网页端平台,实现用户在网页端输入一张图片识别其结果,并基于Pyqt5搭建桌面端可视化界面。 在智能交通和车辆监控领域,车牌识别技术扮演了至关重要的角色。今天,我们很荣幸地为大家带来一款全新的jvzquC41yy}/lrfpuj{/exr1r1i93A9fh8l8:<
3.开源大盘点各国车牌识别开源数据集汇总后台回复【数据集下载】获取计算机视觉近30种数据集! 导读 本文整理了11个车牌检测识别相关的开源数据集资源。 车牌检测 数据集下载链接:http://suo.nz/2pPIpw 该数据集包含433 张图像,图像中带有汽车牌照的边界框注释。注释以 PASCAL VOC 格式提供。 jvzquC41dnuh0lxfp0tfv8HXaC{uqktv1cxuklqg1fkucrqu13892:;626
4.数据集(三)|人工智能领域100+数据集分享,赶紧收藏!17.硬币图像数据集(326.7MB) https://www.heywhale.com/mw/dataset/5e7c7b3e98d4a8002d2dd15c 18.LabelMe图像语义分割数据集(102.6MB) https://www.heywhale.com/mw/dataset/5e7b770698d4a8002d2d7925 19.车牌识别数据集(62.8MB) https://www.heywhale.com/mw/dataset/5e96cf8fe7ec38002d03b8ed jvzquC41xkv/mrsifgk/exr1ctzjeuj14;=48@<828:7:@;638Emcwl?|j3DP
5.车牌识别字符数据集.zip包含全部数字字母以及33个行省简称汉字字符模板图片,.jpg格式大小为20×40 上传者:baiduwaimai时间:2021-05-08 完整车牌号字符模板.zip 完整车牌号字符模板 主要用于神经网络车牌识别 上传者:qq_36584460时间:2022-03-28 完整车牌识别数据集.zip 完整车牌图片数据集: 标准部分由省分+字符拼接而成,增强部分添加了雨滴jvzquC41yy}/k}j{g0ipo8wguq{sen4ygk~jph92;9925A2344?69@:
6.基于卷积神经网络的车牌识别代码卷积神经网络数字识别卷积核就是判断为哪个数字所需要的图片的局部特征,不过CNN中卷积核的选择是由根据大量数据训练生成的,而不是我们人类根据经验选定的。如下图所示,中间三个小片段就是所谓的卷积核,就好比一块块小的拼图碎片,需要在被识别的图片中寻找相似的片段来决定和哪个数字相似。 jvzquC41dnuh0>6evq4dqv4wa3<1;B8651?2;?672
7.深度学习车牌识别车牌识别训练模型charlesc的技术博客深度学习 车牌识别 车牌识别训练模型 目录 1--前言 2--生成车牌数据集 3--构建车牌数据集标签 4--自定义字典 5--训练模型 6--模型转换和推理 7--模型转换为onnx模型 8--参考 1--前言 ①系统:Ubuntu18.04 ②Cuda:11.0 ③CudaNN:8.04 ④配置Paddle环境jvzquC41dnuh0>6evq4dqv4wa3:39<4:58=37;