交通领域的应用智能化不断往纵深发展,其中最为成熟的车牌识别早已融入人们的日常生活之中,在高速公路电子收费系统、停车场等场景中随处可见。一些企业在具体业务中倾向采用开源方案降低研发成本,但现有公开的方案中少有完成端到端的车牌应用范例

本次飞桨产业实践范例库开源车牌识别场景应用,提供了从技术方案、模型训练优化,到模型部署的全流程可复用方案,降低产业落地门槛。

项目链接

https://github.com/PaddlePaddle/PaddleOCR/tree/dygraph/applications

所有源码及教程均已开源。欢迎大家使用,star鼓励~

基于PaddleOCR的轻量级车牌识别系统

场景难点

本范例解决车牌识别任务,需完成车牌检测模型和车牌识别模型的微调与串联,并部署到端侧设备中。项目包含以下难点:

  • 车牌在图像中的尺度差异大、在车辆上的悬挂位置不固定;
  • 车牌图像质量层次不齐: 角度倾斜、图片模糊、光照不足、过曝等问题严重;
  • 边缘和端测场景应用对模型大小有限制,推理速度有要求。

图1 CCPD绿牌数据集图像

项目方案

针对以上问题,本范例选用PaddleOCR中的超轻量OCR系统PP-OCRv3进行车牌识别系统的开发,通过微调检测和识别模型,在CCPD新能源数据集达到99%的检测精度和94%的识别精度,模型大小为12.8M(检测2.5M+识别10.3M)。基于量化对模型体积进一步压缩到5.8M(1M+4.8M),同时推理速度提升25%。

训练数据 

CCPD(Chinese City Parking Dataset)数据集包含蓝底车牌和新能源车牌,覆盖场景包括各类文字形态(倾斜、模糊)与气候环境(如阴雨天、雪天等),其中新能源车牌训练集数量为5769张。CCPD数据标签体现在图片文件名,其命名规范如图2所示。范例中我们通过转换脚本将上述规则转换为PaddleOCR的数据标注格式并划分数据集。

图2 文件名称命名规则

 模型优化 

在少量数据的情况下,优秀的预训练模型能够带来更好的精度和泛化性。本范例选择PaddleOCR最新发布的PP-OCRv3模型完成数据微调。PP-OCRv3在PP-OCRv2的基础上,端到端指标H-means在中文场景再提升5%, 英文数字模型提升11%,如图3所示

图3 不同模型精度/耗时/大小对比

在具体策略方面,PP-OCRv3在检测部分使用ResidualSE-FPN(残差注意力机制的FPN结构),识别部分使用SVTR_LCNet轻量级文本识别网络,GuidedTraining of CTCAttention损失指导CTC损失训练策略。上述策略的详细解释将在直播课展开。

图4 PP-OCRv3具体策略展示

由于车牌场景均为边端设备部署,因此对速度和模型大小有比较高的要求。采用量化训练的方式能够压缩模型大小、加速模型推理速度。模型量化可以在基本不损失模型精度的情况下,将FP32精度的模型参数转换为Int8精度,减小模型参数大小并加速计算,使用量化后的模型在移动端等部署时更具备速度优势。

综上,对于车牌检测和识别有如下3种方案:

  • PP-OCRv3中英文超轻量预训练模型直接预测
  • 基于PP-OCRv3的策略在CCPD数据集中微调
  • 基于PP-OCRv3的策略在CCPD数据集中微调后量化

最终,检测方案指标如表1所示,识别方案如表2所示。

表1 检测方案指标

表2 识别方案指标

预测部署 

边缘部署和端侧部署是车牌识别的常见部署方式,PaddleLite轻量化推理引擎是飞桨专为手机、IOT端提供的高效推理能力。本范例采用PaddleLite的cpp推理,在骁龙855上完成示例演示,最终端到端预测速度为224ms。

产业实践范例教程,助力企业跨越AI落地鸿沟

飞桨产业实践范例,致力于加速AI在产业落地的前进路径,减少理论技术与产业应用的差距。范例来源于产业真实业务场景,通过完整的代码实现,提供从数据准备到模型部署的方案过程解析,堪称产业落地的“自动导航”。

  • 真实产业场景:与实际具有AI应用的企业合作共建,选取企业高频需求的AI应用场景如智慧城市-安全帽检测、智能制造-表计读数等;
  • 完整代码实现:提供可一键运行的代码,在“AIStudio一站式开发平台”上使用免费算力一键Notebook运行;
  • 详细过程解析:深度解析从数据准备和处理、模型选择、模型优化和部署的AI落地全流程,共享可复用的模型调参和优化经验;
  • 直达项目落地:百度高工手把手教用户进行全流程代码实践,轻松直达项目POC阶段。

一站式完成车牌识别任务:从模型优化到端侧部署相关推荐

  1. 一个方案搞定从模型量化到端侧部署全流程

    量化的背景 得益于海量数据.超强算力和最新技术,深度学习在视觉.自然语言处理等领域都取得了巨大成功.然而,深度学习模型的网络结构越来越复杂.参数越来越多.计算量越来越大,给模型部署应用带来了不小挑战, ...

  2. Tensorflow模型优化 端侧部署 tflite 量化 稀疏 quantization sparsity

    Tensorflow模型优化 文章目录 Tensorflow模型优化 为什么要模型优化 端侧部署 模型优化方式 Quantization 工具包支持 32 bit float ->16 bit ...

  3. 基于SpringBoot的车牌识别系统(附源码和环境部署文档)

    若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用. 前端采用Vue.Element UI. 后端采用Spring Boot.Spring Security.Redis & Jwt ...

  4. 深度学习模型在移动端的部署

    简介 自从 AlphaGo 出现以来,机器学习无疑是当今最火热的话题,而深度学习也成了机器学习领域内的热点,现在人工智能.大数据更是越来越贴近我们的日常生活,越来越多的人工智能应用开始在移植到移动端上 ...

  5. 「自然语言处理(NLP)论文解读」中文命名实体识别(Lattice-LSTM模型优化)

    来源:AINLPer微信公众号 编辑: ShuYini 校稿: ShuYini 时间: 2019-8-27 引言     今天主要和大家分享一篇关于中文命名实体识别的文章,本文分析Lattice-LS ...

  6. 智能驾驶 车牌检测和识别(五)《C++实现车牌检测和识别(可实时车牌识别)》

    智能驾驶 车牌检测和识别(五)<C++实现车牌检测和识别(可实时车牌识别)> 目录 智能驾驶 车牌检测和识别(五)<C++实现车牌检测和识别(可实时车牌识别)> 1. 前言 2 ...

  7. NVIDIA中文车牌识别系列-1” 在Jetson上用DeepStream识别中文车牌

    前言 这是NVIDIA在2021年初公布的一个开源项目,用NVIDA Jetson设备上的DeepStream视频分析套件实现"车牌识别"的功能,这是个实用性非常高的应用,能应用在 ...

  8. 车牌识别算法_PC端车牌识别SDK融入好算法

    PC端车牌识别SDK介绍 易泊PC端车牌识别SDK融合了车牌定位.车牌字符切分.车牌字符识别等算法,使该系统具有识别效率高.速度快.适应性强.使用方便等优势,技术处于国际先进水平.大力发展机器人.人工 ...

  9. ios开发ocr识别_车牌识别技术

    核心技术:移动车牌识别技术,ios车牌识别,车牌识别技术移动端,移动端车牌识别技术,手机端车牌识别,OCR车牌识别,手机端车牌识别 移动端车牌识别OCR技术描述 移动端车牌识别OCR技术是我公司开发的 ...

最新文章

  1. [WP]关于WP7的后台的一些小事情
  2. 透视表提取不反复记录(3)-每组最小值
  3. 工业级光纤收发器和协议转换器有什么区别呢?
  4. HDU - 4497 GCD and LCM
  5. 11尺寸长宽 iphone_弱电工程LED显示屏尺寸规格及计算方法
  6. android view gesturedetector,如何在Android中利用 GestureDetector进行手势检测
  7. 异步读取数据库中数据
  8. Ubuntu启动密码丢失的找回
  9. Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作
  10. Flutter实战之AS快键键
  11. 静态初始化--我的理解
  12. java中的Date类
  13. 精心整理了40个Python办公自动化真实案例,一口一个,高效办公!
  14. 影子系统、沙盒、虚拟机的区别
  15. 股票学习-量柱和k线-第四天
  16. uiautomatorviewer 定位提示Error obtaining UI hierarchy
  17. 马王堆汉墓帛书‧老子乙本——德经
  18. php映射脚本,代替php脚本
  19. H3C交换机如何进行批量端口配置
  20. 学习之Java(方法)

热门文章

  1. 河北省纪委举报网站:JS代码的错误导致没有人能举报成功
  2. Differentiable Learning of Logical Rules for Knowledge Base Reasoning
  3. 2028全球子宫癌诊断试验行业调研及趋势分析报告
  4. java分页工具封装
  5. ajax开发 短期班,一个简单的ajax 来mock数据
  6. windows操作系统中SID是什么??
  7. 《围城》---方鸿渐 v1
  8. Java深海拾遗系列(8)--- 10 个最难回答的 Java 问题
  9. C/C++基于easyX库实现三星环绕小项目(C/C++)
  10. htcm8android5.0root,【04.25】【技术贴】港版M8 soff折腾完毕~顺便OTA成功带ROOT!!