XLPR车牌自动识别开发包

news2024/11/15 4:43:08

XLPR SDK适用于为各种应用增加车牌自动识别能力,支持多个区域检测,支持车牌颜色和号码输出,提供Web API和 原生API。官方下载地址:XLPR车牌识别开发包。

XLPR主要由三个主要部分构成:D-Net、R-NET和C-Net,分别负责车牌区域的检测、车牌号码识别 和车牌颜色识别,如下图所示:

xlpr arch

1、目录组织

XLPR开发包的目录组织说明如下:

xlpr_sdk    
  | - core                      # 核心代码目录
    | - d_net.py                  # 车牌检测网络
    | - r_net.py                  # 号码识别网络
    | - c_net.py                  # 颜色识别网络
    | - utils.py                  # 辅助模块
  | - weights                   # 预训练权重目录
    | - d-net-c.pt                # d_net权重
    | - r-net-c.pt                # r_net权重
    | - c-net-c.pt                # c_net权重
  | - samples                   # 测试图片目录
    | - test-1.jpg                
    | - ....
  | - serve.py                  # Web UI及API服务
  | - api_test.py               # Web API调用示例代码
  | - requirements.txt          # 依赖声明文件

在第一次使用之前,首先安装依赖文件:

pip install -r requirements.txt

2、使用Web UI

执行如下命令启动Web UI:

python serve.py

然后使用浏览器访问 http://127.0.0.1:7860,即可打开Web UI。

在Web UI中打开一个图像文件,然后点击[Submit]按钮,就可以进行识别,如下图所示:

webui

右侧的输出图像上叠加了检测到的车牌信息,输出结果为一个数组,每个成员包含如下字段:

  • bbox: 车牌的包围框
  • label: 车牌号码
  • color: 车牌颜色,blue:蓝色 | green: 绿色 | yellow: 黄色

下图是检测新能源车牌的示例:

webui green

下图是检测黄牌的示例:

webui yellow

3、使用Web API

api_name: /predict

输入参数:

  • img_in:输入图像

输出结果:

  • [0] :输出图像文件路径
  • [1] :检测结果数组,每个成员包含如下字段: bbox | label | color

Python调用示例如下:

from gradio_client import Client, handle_file

client = Client("http://127.0.0.1:7860/")
result = client.predict(
  img_in=handle_file('./samples/test-1.jpg'),
  api_name="/predict" )
print(result)

执行结果如下:

web api test

Web API特别适合将车牌识别能力集成到Java、C#、Javascript等其他语言开发的应用中。

4、使用原生API

除了Web API,XLPR SDK也提供了Python原生API。

4.1 入口类

XLpr是SDK的入口类,使用其predict()方法对传入的图片进行处理,并返回叠加 结果的图片和检测结果数据。

XLpr实例的predict()调用示例代码如下:

from core.xlpr import XLpr
import cv2

xlpr = XLpr()

img_in = cv2.imread('samples/test-1.jpg')
img_out, results = xlpr.predict(img_in)

4.2 车牌检测类

DetectionNetD-NET的实现类,使用其predict()方法对传入的图片进行处理,并 返回车牌包围框集合。

DetectionNet实例的predict()方法调用示例代码如下:

from core.d_net import DetectionNet
import cv2

d_net = DetectionNet()

img_list = [ cv2.imread('samples/test-1.jpg') ]
bbxs_list = d_net.predict(img_list)

4.3 车牌号码识别类

RecognitionNetR-NET的实现类,使用其predict_image_patches()方法对指定的 图片的多个区域进行号码识别。例如:

from core.d_net import DetectionNet
from core.r_net import RecognitionNet
import cv2

d_net = DetectionNet()
r_net = RecognitionNet()

img_list = [ cv2.imread('samples/test-1.jpg') ]
bbxs_list = d_net.predict(img_list)

img, bbxs = img_list[0], bbxs_list[0]
labels = r_net.predict_image_patches(img, bbxs)

4.4 车牌颜色识别类

ColorNetC-NET的实现类,使用其predict_image_patches()方法对指定的图片的多个 区域进行颜色识别。例如:

from core.d_net import DetectionNet
from core.c_net import ColorNet
import cv2

d_net = DetectionNet()
c_net = ColorNet()

img_list = [ cv2.imread('samples/test-1.jpg') ]
bbxs_list = d_net.predict(img_list)

img, bbxs = img_list[0], bbxs_list[0]
colors = c_net.predict_image_patches(img, bbxs)

原文链接:XLPR车牌识别开发包 - 汇智网  

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识Spring6框架

个人笔记梳理,仅供参考 Spring是一款主流的JavaEE轻量级开源框架 Spring的狭义和广义 广义的Spring:Spring技术栈 泛指以Spring Framework为核心的Spring技术栈 经过十多年的发展,Spring已经不再是一个单纯的应用框架,而是逐…

mybatis语法进阶1

日志的使用 我们在使用MyBatis的时候, 其实MyBatis框架会打印一些必要的日志信息, 在开发阶段这些日志信息对我们分析问题,理解代码的执行是特别有帮助的; 包括项目上线之后,我们也可以收集项目的错误日志到文件里面去; 所以我们采用专门的日志系统来处理. 步骤 导入坐标拷贝…

电脑技巧:分享10个有趣的的网站

目录 1、少女生成器 2、动漫捏脸 3、小霸王其乐无穷 4、Theuselessweb 5、Mikutap 6、nazo.one-story 7、在线连连看 8、中午吃什么 9、假装更新系统 10、越摇摆越快乐 分享10个好玩有趣的小众宝藏网站,90%的人都没有玩过,随便哪个都能玩上一天…

SqlServer SQL语句或存储过程运行慢 使用 WITH RECOMP ILE 或 OPTION (RECOMPILE)(重新编译)

如果您的存储过程包含参数可以重新申明变量把参数接收下,可能解决你过程执行慢的原因。如果未能解决,请参考以下文章内容: WITH RECOMPILE 子句可以在以下地方使用: 一种是当你创建一个过程时,例如: CREA…

海事无人机解决方案

海事巡察 海事巡察现状 巡查效率低下,存在视野盲区,耗时长,人力成本高。 海事的职能 统一管理水上交通安全和防治船舶污染。 管理通航秩序、通航环境。负责水域的划定和监督管理,维护水 上交通秩序;核定船舶靠泊安…

顺序表算法 - 移除元素

. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/remove-element/description/思路: 代码: // numsSize表示数组的长度 …

子数组问题

目录 最大子数组和 环形子数组的最大和 乘积最大子数组 乘数为正数的最长子数组长度 等差数列划分 最长湍流子数组 单词拆分 环绕字符串中唯一的子字符串 声明:接下来主要使用动态规划来解决问题!!! 最大子数组和 题目 …

数据结构进阶——使用数组实现栈和队列详解与示例(C,C#,C++)

文章目录 1、数组实现栈栈的基本操作C语言实现C#语言实现 2、 数组实现队列队列的基本操作C语言实现C# 语言实现C语言实现 总结 在编程世界中,数据结构是构建高效算法的基石。栈和队列作为两种基本的数据结构,它们的应用非常广泛。本文将带领大家使用C&a…

【OrangePi AIpro】: 探索AI加成的开源硬件魅力

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Orange Pi: 探索开源硬件的魅力引言Orange Pi概述OrangePi AIPro产品介绍试用体…

STM32第二十课:FreeRTOS任务管理和信号量

目录 一、任务管理方式二、任务堆栈溢出检测三、二值信号量(任务同步)四、计数信号量五、互斥信号量六、队列 一、任务管理方式 1.任务创建成功后会添加到就绪链表中,开启调度器,此时任务调度器会去就绪链表中找优先级最高的任务执…

数据增强新方法SUMix:解决Mixup混合后的图像的内容与其标签不匹配问题

数据增强新方法SUMix:解决Mixup混合后的图像的内容与其标签不匹配问题 提出背景当前混合方法的问题MixUp 操作标签混合混合交叉熵(MCE)混合交叉熵(MCE)的核心作用混合交叉熵(MCE)的功能 CutMix原…

$accumulator(聚合)

$accumulator 是 MongoDB 聚合管道中用于自定义数据处理逻辑的一个算子,它允许用户使用 JavaScript 编写代码来控制数据的初始化、累积、合并和最终输出。下面是对 $accumulator 各个部分的详细解释: init: 这是一个 JavaScript 函数,用于初…

数据结构回顾(Java)

1.数组 线性表 定义的方式 int[] anew int[10] 为什么查询快? 1.可以借助O(1)时间复杂度访问某一元素, 2.地址连续,逻辑连续 3.数组长度一旦确定就不可以被修改 当需要扩容的时候需要将老数组的内容复制过来 在Java中数组是一个对象 Ar…

多样化数据可视化方法的全面示例:基于Python的多样化数据可视化

文章目录 前言代码效果展示 前言 本文演示了使用Python进行温度数据的多样化可视化方法。通过导入、处理和分析气象数据,我们生成了多种图表,包括直方图、核密度估计图、箱型图、小提琴图、条形图、山脊图、经验累积分布函数图和折线图。这些图表帮助我…

国内体外诊断行业翘楚『迈克生物』SRM项目启动,企企通赋能IVD产业打造高效采购供应链体系

IVD行业(体外诊断行业)在医疗领域被誉为“医生的眼睛”,是现代检验医学的重要构成部分,在临床应用中贯穿了疾病预防、初步诊断、治疗方案选择、疗效评价等疾病治疗的全过程,在现代医学疾病诊断中发挥着重要作用。 随着…

springboot1——快速构建项目

需求 第一步:创建maven工程(非web项目) 第二步:导入起步依赖 点击: 下拉复制: 粘贴:!!这是springboot工程需要继承的父工程 下拉复制: 粘贴:!&#xf…

JAVA:常用的链表指南

请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 链表是一种常见的数据结构,它通过一系列节点(Node)来表示一个序列。每个节点包含数据和指向下一个节点的引用。链表的种类有很多,包括…

网络文件系统—NFS

目录 一、概述 二、NFS挂载原理 三、NFS相关协议及软件安装管理 1.协议: 2.软件: 四、NFS系统守护进程 五、NFS服务器的配置 六、NFS服务器的启动与停止 1. 启动NFS服务器 2.查询NFS服务器状态 3.停止NFS服务器 4.设置NFS服务器的自动启动状…

games103作业2(未完)

PBD方法 首先是每个质点的力的分析,不考虑碰撞和弹簧弹力的情况下,每个质点受重力的影响,所以需要对每个质点进行速度和位置的重力影响更新。 float t 0.0333f; float damping 0.99f; int[] E; float[] L; Vector3[] V; Vector3 gra…

【数学建模】——数学规划模型

目录 一、线性规划(Linear Programming) 1.1 线性规划的基本概念 1.2 线性规划的图解法 模型建立: 二、整数规划(Integer Programming) 2.1 整数规划的基本概念 2.2 整数规划的求解方法 三、非线性规划&#x…