XLPR车牌自动识别开发包

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

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

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]按钮,就可以进行识别,如下图所示:

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

  • bbox: 车牌的包围框
  • label: 车牌号码
  • color: 车牌颜色,blue:蓝色 | green: 绿色 | 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特别适合将车牌识别能力集成到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车牌识别开发包 - 汇智网

相关推荐
阿利同学2 个月前
基于opencv的车牌检测和识别系统(代码+教程)
人工智能·python·opencv·计算机视觉·车牌识别·pyqt5·联系 qq1309399183
逼子格2 个月前
深度学习驱动的车牌识别:技术演进与未来挑战
深度学习·神经网络·yolo·卷积神经网络·车牌识别·字符识别
极客代码4 个月前
OpenCV车牌识别技术详解
开发语言·图像处理·python·计算机视觉·车牌识别·字符分割
DogDaoDao5 个月前
OpenCV中 haarcascades 级联分类器各种模型.xml文件介绍
xml·人工智能·opencv·人脸识别·车牌识别·分类器·haar
wusp19946 个月前
【保姆级】基于matlab自动识别车辆号牌设计与实现
人工智能·算法·matlab·车牌识别·自动识别
Rrrrrr9006 个月前
深度学习实例2_车牌识别分割——自学笔记
pytorch·深度学习·transformer·车牌识别
从懒虫到爬虫7 个月前
基于Opencv的车牌识别系统(毕业设计可用)
人工智能·opencv·计算机视觉·车牌识别·车牌号·车牌识别系统
从懒虫到爬虫8 个月前
基于YOLOv8车牌识别算法支持12种中文车牌类型(源码+图片+说明文档)
yolo·yolov8·车牌识别·车辆识别
激萌の小宅9 个月前
yolov5 车牌识别(C#\C++\Python三合一)
开发语言·c++·python·yolo·c#·车牌识别