车牌识别 支持12种中文车牌类型 车牌数据集下载

开源代码
如果觉得有用,不妨给个Star⭐️🌟支持一下吧~ 谢谢!

Acknowledgments & Contact

1.WeChat ID: cbp931126

2.QQ Group:517671804

加微信(备注:PlateAlgorithm),进讨论群可以获得10G大小的车牌检测和识别数据

3.车牌识别在线体验

在线体验地址

PlateAlgorithm

车牌识别算法,支持12种中文车牌类型

1.单行蓝牌
2.单行黄牌
3.新能源车牌
4.白色警用车牌
5 教练车牌
6 武警车牌
7 双层黄牌
8 双层武警
9 使馆车牌
10 港澳牌车
11 双层农用车牌
12 民航车牌

识别效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

特性

  1. 车牌检测(yolov5plate,yolov7plate,yolov8playe),车牌校正,车牌识别,车牌检测识别;

    文件夹State说明
    PLateDetection_yolov5Doneyolov5 车牌检测
    PLateDetection_yolov7Doneyolov7 车牌检测
    PLateDetection_yolov8Doingyolov8 车牌检测
    PlateRecognitionDone车牌识别
    PlateDetectionRecognitionDone车牌检测->车牌校正->车牌识别
  2. 所有模型均使用C++和TensorRT加速推理,yolov7plate的前后处理使用cuda加速,(其他模型加速优化也可参考);
    3 所有模型使用C++和OnnxRuntime.OpenVINO,NCNN加速推理(TO DO);

  3. 提供C接口,可以直接移植在项目里;

  4. 提供python调用,C#调用的demo(TODO)

  5. 根据不同的显卡型号自动生成对应的engine(如果文件夹下有其他显卡适配engine,则删除engine才能重新生成使用中的显卡对应的engien);

  6. PlateDetectionRecognition->test->main.cpp文件中的条件编译测试说明

    测试类别enable说明
    yolov5_plate1yolov7车牌检测
    yolov7_plate1yolov5 车牌检测
  7. 车牌识别准确率(测试集数量:2.4w张)

    模型size准确率速度平台
    plate_recognition_colors92.40%452.480usRTX3090
    plate_recognition_ss98.90%452.597usRTX3090
    plate_recognition_mm99.35%463.316usRTX3090
    plate_recognition_ll99.56%507.082usRTX3090

算法说明

算法接口

/** 
 * @brief                  车牌初始化函数
 * @param config           模块配置参数结构体
 * @return                 HZFLAG
 */
void*Initialize(Config*config);

/** 
 * @brief                  车牌检测识别(yolov5)
 * @param img              Plate_ImageData
 * @param PlateDet         车牌检测识别结果列表
 * @return                 HZFLAG
 */		
int PlateRecognition_yolov5(void*p,Plate_ImageData*img,PlateDet*PlateDets);

/** 
 * @brief                  车牌检测(yolov7_plate)
 * @param img              Plate_ImageData
 * @param PlateDet         车牌检测识别结果列表
 * @return                 HZFLAG
 */		
int PlateRecognition_yolov7(void*p,Plate_ImageData*img,PlateDet*PlateDets);


/** 
 * @brief                  车牌检测(yolov8_plate)
 * @param img              Plate_ImageData
 * @param PlateDet         车牌检测识别结果列表
 * @return                 HZFLAG
 */		
int PlateRecognition_yolov8(void*p,Plate_ImageData*img,PlateDet*PlateDets);

/** 
 * @brief                  反初始化
 * @return                 HZFLAG 
 */		
int Release(void*p,Config*config);

2.环境

  1. ubuntu20.04+cuda11.1+cudnn8.2.1+TensorRT8.2.5.1(测试通过)
  2. ubuntu18.04+cuda10.2+cudnn8.2.1+TensorRT8.2.5.1(测试通过)
  3. Win10+cuda11.1+cudnn8.2.1+TrnsorRT8.2.5.1 (测试通过)
  4. 其他环境请自行尝试或者加群了解

3.编译

  1. 更改根目录下的CMakeLists.txt,设置tensorrt的安装目录
set(TensorRT_INCLUDE "/xxx/xxx/TensorRT-8.2.5.1/include" CACHE INTERNAL "TensorRT Library include location")
set(TensorRT_LIB "/xxx/xxx/TensorRT-8.2.5.1/lib" CACHE INTERNAL "TensorRT Library lib location")
  1. 默认opencv已安装,cuda,cudnn已安装

  2. 为了Debug默认编译 -g O0版本,如果为了加快速度请编译Release版本

  3. 使用Visual Studio Code快捷键编译(4,5二选其一):

   ctrl+shift+B
  1. 使用命令行编译(4,5二选其一):
   mkdir build
   cd build
   cmake ..
   make -j6

References

  1. https://github.com/deepcam-cn/yolov5-face
  2. https://github.com/derronqi/yolov7-face/tree/main
  3. https://github.com/we0091234/yolov7-face-tensorrt
  4. https://github.com/derronqi/yolov8-face
  5. https://github.com/we0091234/crnn_plate_recognition
  6. https://github.com/we0091234/Chinese_license_plate_detection_recognition

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

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

相关文章

Python 如何使用 MySQL 8.2 读写分离?

在这篇文章中,我们将了解如何将 MySQL 8.2 的读写分离功能与 MySQL-Connector/Python 一起使用。 作者:Frederic Descamps,MySQL 社区经理 本文和封面来源:https://blogs.oracle.com/,爱可生开源社区翻译。 本文约 120…

Yolov8部署——vs2019遇到的问题

Yolov8部署——vs2019遇到的问题 问题一: 默认库"LIBCMT"与其他库的使用冲突 解决方法:选择自己的项目右键属性——c/c——代码生成——运行库(多线程(/MT) 问题二: 文件包含在偏移0x18处开始…

若依框架的介绍与基本使用(一起走进若依框架的世界)

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《若依框架开发》。🎯🎯 &…

【MySQL】聚合函数、group by、update、delete

聚合函数、group by、update、delete 前言正式开始update将孙悟空同学的数学成绩变更为 80 分将曹孟德同学的数学成绩变更为 60 分,语文成绩变更为 70 分将总成绩倒数前三的 3 位同学的数学成绩加上 30 分将所有同学的语文成绩更新为原来的 2 倍 delete删除孙悟空同…

trzsz支持文件拖动到终端进行上传,类似lrzsz

考虑到 LapTop -> Host 1 -> Host 2 -> Docker -> TMUX,使用scp或sftp命令不方便;使用rz和sz命令就会方便很多,但是却又与 TMUX 不兼容(备注:Tmux是一个终端复用工具,允许用户在一个终端窗口中…

C语言前瞻

文章目录 C语言基础简介编译方式分布编译示例流程一步编译 代码运行运行结果展示实际代码 C语言基础简介 关于C语言的书籍,文章有很多。C的历史我不赘述,只讲C语言的基础语法和使用,帮助大家入门,同时也是自己学习过程的一个回顾。…

Python的os.path.join()详解

当你需要构建文件路径时,os.path.join() 是一个很有用的方法。这个方法会根据你的操作系统使用正确的路径分隔符(例如,在 Windows 上是反斜杠 \,在类 Unix 系统上是正斜杠 /)来连接路径中的各个部分。这样你就可以确保…

想要成为CSS大师?这些技巧是你必须知道的!

前言 CSS 是网页设计中不可或缺的一部分,掌握一些实用的 CSS 技巧,可以让你在设计中展现出更多的创意和个性。本文将介绍一些 CSS 技巧,帮助你提升自己的技能,成为一个真正的 CSS 大师。 1. 改变 input 自动填充的背景颜色 这段 …

获取阿里云Docker镜像加速器

1、阿里云官网(www.aliyun.com)注册账号 2、打开“控制台首页” 控制台首页地址:https://home.console.aliyun.com/home/dashboard/ProductAndService 3、点击“概览->容器镜像服务 ACR” 4、打开“镜像工具->镜像加速器”页面&#x…

数据集笔记:NGSIM (next generation simulation)

1 数据集介绍 数据介绍s Next Generation Simulation (NGSIM) Open Data (transportation.gov) 数据地址:Next Generation Simulation (NGSIM) Vehicle Trajectories and Supporting Data | Department of Transportation - Data Portal 时间2005年到2006年间地…

【Linux】 线程

pthread_join: 获取线程返回值 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <string.h>/*** 测试 pthread_join* 阻塞等待一个子线程的退出&#xff0c;可以接收到某一个子线程调用pthread_ex…

【Linux】Linux下的基础IO

❤️前言 大家好&#xff01;今天这篇博客和大家聊一聊关于Linux下的基础IO。 正文 在阅读本篇博客之前&#xff0c;请大家先回顾一下C语言文件操作的一些方法&#xff0c;这里可以看看我之前记录的一些内容&#xff1a; 【C语言】C语言成长之路之文件操作_MO_lion的博客-CSD…

elementui表格自定义指令控制显示哪些列可以拖动

Vue.directive(tableBorder, function (el, {value}) {// value允许传字符串数字和数组el.classList.add(z_table_hasBorder)let hasStyle el.querySelector(style)if(hasStyle){hasStyle.remove()}let style document.createElement(style)let str .z_table_hasBorder .el…

Sentinel 热点规则 (ParamFlowRule)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。 SpringbootDubboNacos 集成 Sentinel&…

Ui自动化概念 + Web自动化测试框架介绍!

1.UI自动化测试概念:我们先明确什么是UI UI&#xff0c;即(User Interface简称UI用户界面)是系统和用户之间进行交互和信息交换的媒介 UI自动化测试: Web自动化测试和移动自动化测试都属于UI自动化测试&#xff0c;UI自动化测试就是借助自动化工具对程序UI层进行自动化的测试 …

远程文件包含演示

远程文件包含 基本介绍 受害机器 10.9.47.181 攻击者机器1 10.9.47.41 攻击者机器2 10.9.47.217 实现过程 受害者机器开启phpstudy 并且开启允许远程连接 攻击者机器1上有一个文件&#xff0c;内容是phpinfo(); 攻击者机器1提供web服务使得受害者机器能够访问到攻击者…

Linux latin1字符集转成UTF-8

latin1字符集&#xff0c;我用命令iconv转换后依旧乱码&#xff0c;但是本地用Notepad转成utf-8再入库数据&#xff0c;却是正常的 查看文件编码 vi WeakcoverReason_20231120.csv:set fileencoding使用编码转换命令&#xff0c;将latin1改成UTF-8 iconv -f latin1 -t UTF-8 W…

Android Termux安装MySQL,内网穿透实现公网远程访问

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备&#xff0c;尽管最初并非设计为服务器&#xff0c;但是随着技术的进步我们可以将Android配置为生产力工具&#xff0c;变成一个随身…

管家婆订货易在线商城任意文件上传漏洞复现

0x01 产品简介 管家婆订货易&#xff0c;帮助传统企业构建专属的订货平台&#xff0c;PC微信APP小程序h5商城5网合一&#xff0c;无缝对接线下的管家婆ERP系统&#xff0c;让用户订货更高效。支持业务员代客下单&#xff0c;支持多级推客分销&#xff0c;以客带客&#xff0c;拓…

单链表相关面试题--5.将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的

/* 解题思路&#xff1a; 此题可以先创建一个空链表&#xff0c;然后依次从两个有序链表中选取最小的进行尾插操作进行合并。 */ typedef struct ListNode Node; struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2){if(l1 NULL)return l2;else if(l2 …