XLPR车牌自动识别开发包

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_fileclient = 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 cv2xlpr = 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 cv2d_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 cv2d_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 cv2d_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.xdnf.cn/news/1483425.html

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

相关文章

基于Java的疫情防控期间某村外出务工人员信息管理系统

你好呀,我是计算机学姐码农小野!如果有相关需求,可以私信联系我。 开发语言:Java 数据库:MySQL 技术:Java MySQL 工具:Eclipse、MySQL环境配置工具 系统展示 首页 用户管理界面 行程分析…

【Python游戏】编程开发贪吃蛇游戏(第一期)

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、贪吃蛇游戏开发简介2.1 贪吃蛇游戏规则2.2 贪吃蛇游戏开发步骤 三、贪吃蛇游戏开发实战四、总结…

昇思25天学习打卡营第03天|数据集 Dataset

数据集是深度学习的灵魂,就像做饭需要好的食材一样,没有高质量的数据,再牛的模型也训练不出来。而MindSpore的数据集处理真的很方便,就像是一个强大的厨房,提供了各种工具和食材。通过这个教程,我学会了怎么…

活用 localStorage

我维护的这款工具 https://editor.yunwow.cn/ 已经帮我写了 7 篇文章了, 用起来很顺手,因此我打算再给它升级下让它更方便,我决定要给它加个本地缓存功能。我给它提的要求是: 1. 至少能缓存 5 篇文章 2. 能有选择的加载模板 3…

VBA技术资料MF172:UDF向任何单元格添加数据验证

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…

线性表的链式存储结构————双链表(java)

线性表的链式存储结构————双链表(java) 文章目录 线性表的链式存储结构————双链表(java)双链表双链表的创建插入数据元素头插法尾插法 求链表的长度输出双链表删除双链表中的指定元素总代码运行效果用Java内部类实现双链表…

在组件中显示tuku的照片

一、问题 (1)错误:域名前面一定要加http://要不然会报错 (2)在使用 defineModel传值时一定要动态绑定,要不然图片不显示 (3)改完后在商品列表中显示图片信息必须 在显示的图片中取…

基于天地图使用Leaflet.js进行WebGIS开发实战

目录 前言 一、天地图的key 1、创建应用 2、调用限制策略 注: (1)日服务调用超量会暂时拒绝访问,次日自动开启; (2)如果服务调用过程中存在数据爬取或者下载行为,服务调用会被自…

ssh -D 选项用于动态(Dynamic)端口转发

举例实现不同ssh连接功能目录 一、功能简介 -D 支持 SOCKS5 协议,可以同时转发 TCP 和 UDP 报文 二、原理介绍 假设拥有三台主机,具体环境如下: 1. 主机 A:本地主机,即 SSH 客户 所在的主机,IP&#xff1…

C语言switch的使用

switch的使用语句 switch(表达式) { case 值1: 语句1; break; case 值2: 语句2; break; default: break; } 注意事项:1.表达式计算结果只能为(字符/整数) 2.case值只能是(字…

最大文件句柄数

优质博文:IT-BLOG-CN 灵感来源 一、什么是文件句柄 文件句柄File Handle是操作系统中用于访问文件的一种数据结构,通常是一个整数或指针。文件句柄用于标识打开的文件,每个打开的文件都有一个唯一的文件句柄。 它们是对文件、网络套接字或…

哪些工科专业要学C语言或C++?

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「c++的资料从专业入门到高级教程」,点个关注在评论区回复“666”之后私信回复“666”,全部无偿共享给大家!!!工科专业…

鸿蒙语言基础类库:【@system.configuration (应用配置)】

应用配置 说明: 从API Version 7 开始,该接口不再维护,推荐使用新接口[ohos.i18n]和[ohos.intl]。本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import configurati…

网安小贴士(19)入侵检测技术原理与应用

前言 入侵检测技术(Intrusion Detection System, 简称IDS)是一种用于监测和防止计算机网络中的恶意活动的安全系统。它通过收集系统状态信息、特征提取、建立模型、入侵检测以及反馈更新等步骤,及时检测网络和系统中可能遭受攻击的迹象并发出…

python项目为什么用WSGI

小背景 Java用的时间久了,web项目启动的时候直接启动主程序就行,因为spring web项目内置了Tomcat web服务器,服务器的配置一般也是采用默认的配置,所以很少关注底层实现,关注点主要在应用程序功能。 初学python的时候…

打破运维“冷门槛“|暴雨液冷数据中心方案再升级

如果将数据比喻为驱动世界运转的新引擎,那数据中心便是为引擎提供源源不断动力的泵站。但随着泵站功率的日益增强,热浪成了不可避免的副产品。如何将数据热能转化为科技动能,是人工智能可持续发展的重要前提。 液冷技术,不仅可实现…

视频素材网站无水印的有哪些?热门视频素材网站分享

当我们走进视频创作的精彩世界时,一个难题常常摆在面前——那些高品质、无水印的视频素材究竟应该在哪里寻找?许多视频创作者感叹,寻找理想的视频素材难度甚至超过了寻找伴侣!但不用担心,今天我将为您介绍几个优质的视…

人工智能导论-确定性推理

确定性推理 概述 上一章:讨论了“知识与知识表示”,可以把知识用某种模式表示出来存储到计算机中,但为使计算机具有智能,还必须使它具有思维能力。 本章:1)推理是求解问题的一种重要方法。因此&#xff…

对消息队列进行深入学习

目录 1.什么是消息队列。1.1消息队列1.1.1同步的理解1.1.2异步的理解 1.2消息传递与消息队列 2. 消息队列应用场景2.1 异步处理2.2 流量削锋2.3 应用解耦2.4 日志处理2.5 消息通讯2.6 延时任务2.7 广播消费2.8 分布式事务 3. 主流消息队列3.1 RabbitMQ3.1.1 RabbitMQ工作原理3.…

win11家庭版怎么升级专业版

随着Windows 11的推出,许多用户享受到了全新的用户界面和功能。然而,Windows 11家庭版在某些高级功能上有所限制,例如,组策略管理、远程桌面连接等。为了满足更多的工作需求,许多用户希望将Windows 11家庭版升级到专业…