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

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

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

项目链接

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阶段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/26982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DMBOK知识梳理for CDGA/CDGP——第三章数据治理

关 注gzh“大数据食铁兽” 回复“知识点”获取《DMBOK知识梳理for CDGA/CDGP》常考知识点(第三章数据治理) 第三章 数据治理 第三章在是CDGA|CDGP考试的重点考核章节之一,知识点比较密集,本章重点为语境关系图及数据治理概念…

给电脑重装系统的时间需要多久才能装好

在进行电脑重装系统时,如果遇到系统安装时间过长的情况,可能会引起用户的困惑和不安。本文将介绍一些常见的原因和解决方法,以帮助您理解并应对系统安装时间过长的情况。 ​工具/原料: 系统版本:Windows 10 专业版 品…

Python数据攻略-Pandas的数据创建与基础特性

大家好,我是Mr数据杨!今天将进入Python的Pandas数据世界,就像三国演义中的英雄们,用聪明才智塑造自己的命运。 记得三国中,周瑜曾利用兵法巧妙策划火烧赤壁,击败曹军。这就像创建一个Pandas DataFrame&…

JavaSE笔记(七)重制版

多线程与反射 前面我们已经讲解了JavaSE的大部分核心内容,最后一章,我们还将继续学习JavaSE中提供的各种高级特性。这些高级特性对于我们之后的学习,会有着举足轻重的作用。 多线程 **注意:**本章节会涉及到 操作系统 相关知识…

宝塔面板搭建网站教程:Linux下使用宝塔一键搭建网站,内网穿透发布公网上线

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 转载自cpolar内网穿透的文章:使用宝塔面板快速搭建网站,并内网穿透实现公网远程访问 前言 宝塔面板作为简单好用的服务器运维管理面板&…

Spring为什么默认是单例的?

目录 一、五种作用域 二、单例bean与原型bean的区别 三、单例Bean的优势与劣势 一、五种作用域 1.singleton: singleton是Spring Bean的默认作用域,也就是单例模式。在整个应用程序中,只会创建一个实例,Bean的所有请求都会共享这个实例。 …

简单上手!快速将另一个报表的页面添加到 FastReport .NET!

FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开…

人车网租赁软件开发|人车网租赁系统|租赁系统源码功能

经过租赁小程序不只可以使物品得到充沛的运用,还能减少一些资源的浪费,租赁行业这两年因为互联网技术的完善,发展也在不断进步,租赁系统定制开发功能也在不断完善,那么企业想要开发租赁小程序的时分需求留意哪些方面呢…

长尾词挖掘,长尾词的优化方法有哪些

我们都知道,长尾词能给我们带来较高的流量和转化率,且优化难度低,成本低。今天就来分享长尾词的优化方法。 首先需要挖掘长尾词,挖掘长尾词的方法以下3种比较实用: 1、使用长尾词挖掘工具 可以通过第三方工…

小波和小波变换(应试)

零基础小白共计花费2小时38分04秒完成对小波的“平地起高楼”学习。 记录所有学习过程。 一、大致浏览PPT 这个阶段跳着看,太难的跳过 1.总结知识点 共四个部分 1.小波介绍 2.小波变换 小波变换的定义连续小波变换的定义离散小波变换小波重构 3.哈尔小波变换 …

【C++初阶】初识模板

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

地理空间数据云管理-四维轻云1.3.2-版本更新内容

很多用户想要在不上传数据的情况下查看案例数据,我们在四维轻云1.3.2版本中为新用户新增了示例项目。此外,此次更新还新增了标绘数据模式和场景定时保存提醒功能,优化了插件启动流程以及移动和旋转变化轴。 1、新增示例项目 示例项目中包含…

Ubuntu 登录提示信息`Message of The Day`(MOTD)定制与开关

一、效果 登录Ubuntu的时候,在控制台可能会弹出一系列提示消息,有欢迎消息、系统信息、更新信息等等: 这些提示消息被称为Message of The Day,简称MOTD。 Ubuntu与其它Linux版本不太一样,它引入了MOTD 的概念。 这些…

健康管理系统开发笔记

健康管理系统 项目介绍功能架构项目结构maven项目搭建 项目介绍 健康管理系统是一款应用于健康管理机构的业务系统,实现健康管理机构工作内容 可视化、会员管理专业化、健康评估数字化、健康干预流程化、知识库集成化,从而提 高健康管理师的工作效率&a…

Intradeco通过适用于Excel的Liquid UI自动执行SAP MM并节省80%的处理时间

背景 Intradeco为服装制造提供整体方法,涵盖所有阶段:从构思阶段到最终产品分销。它已发展成为一家全球垂直制造公司,客户遍布美国、墨西哥和加拿大。 挑战 提高运营效率 原因:人员必须浏览多个 SAP 事务才能为新材料创建采购订单…

面向对象——权限修饰符、匿名内部类

package关键字 为什么要有包? 将字节码(.class)进行分类存放 包其实就是文件夹 包的定义及注意事项 定义包的格式 package 包名 多级包用.分割,如package com.heima里面的.就是分隔符 定义包的注意事项 package语句必须是程序的第…

Dockerfile详解

Dockerfile是什么 Dockerfile就是一个纯文本,里面记录了一系列的构建指令,如选择基础镜像、拷贝文件、运行脚本等等,RUN, COPY, ADD指令都会生成一个 Layer,而 Docker 顺序执行这个文件里的所有步骤,最后就会创建出一…

分布式系统概念和设计——分布式事务

分布式系统概念和设计 分布式事务 访问多个服务器管理的对象的事务称为分布式事务。 当一个分布式事务结束时,事务的原子特性要求所有参与事务的服务器必须全部提交或全部放弃。 实现: 其中一个服务器承担了协调者的角色,保证在所有的服务器…

“微商城”项目(5登录和注册)

1.我的信息 在pages\User.vue文件中编写HTML结构代码&#xff0c;示例代码如下。 <template><div class"member"><div class"header-con"><router-link :to"{ name: login }" class"mui-navigate-right">&l…

Spring Cloud Alibaba - Sentinel(一)

目录 一、Sentinel介绍 1、什么是Sentinel 2、Sentinel好处 3、Sentinel下载和安装 二、搭建Sentinel项目 1、创建项目cloudalibaba-sentinel-service8401 三、Sentinel流控规则 1、流控规则基本介绍 2、新增流控 2.1、QPS直接失败案例 2.2、线程数直接失败案例 3、…