news 2026/7/6 21:02:58

HyperLPR3 车牌识别(python3)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HyperLPR3 车牌识别(python3)

HyperLPR已经更新到了v3的版本,该版本与先前的版本一样都是用于识别中文车牌的开源图像算法项目,最新的版本的源码可从github中提取:https://github.com/szad670401/HyperLPR

一、安装扩展

python -m pipinstallhyperlpr3 https://pypi.tuna.tsinghua.edu.cn/simple/

二、安装完成后命令测试

**# 命令测试**lpr3 sample -src https://image.xcar.com.cn/attachments/a/day_170125/2017012516_5cb21721d2f35a0f2984HCOTsEuQ6jwg.jpg **# 测试结果**----------------------------------------2025-12-1417:45:32.351|INFO|hyperlpr3.command.sample:sample:70 - 共检测到车牌:12025-12-1417:45:32.356|SUCCESS|hyperlpr3.command.sample:sample:73 -[绿牌新能源]沪AD079790.9516218900680542[582,1306,992,1431]

三、内置服务运行(方式1)

启动在线API服务
如果您有部署到云端去调用的需求,HyperLPR3中已经内置了启动WebApi服务的功能,支持一键启动,且自带SwaggerUI文档页面,相对方便友好:

1、命令启动

# 启动服务 workers为进程数量,请根据需求进行调节lpr3 rest --port8715--host0.0.0.0 --workers1

2、运行SwaggerUI文档
启动后可打开SwaggerUI的路径:http://localhost:8715/api/v1/docs 查看和测试在线识别API服务.

http://localhost:8715/api/v1/docs# 接口地址:localhost:8715/api/v1/rec

四、python代码运行(方式2)

包括视频识别和图片识别

1、完整代码

# 导入cv相关库importcv2importrandomimportwarningsimportnumpyasnpfromPILimportImageFontfromPILimportImagefromPILimportImageDrawimporthyperlpr3aslpr3# 辅助函数defdraw_plate_on_image(img,box1,text1,font):x1,y1,x2,y2=box1# 识别框的四至范围# random_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))cv2.rectangle(img,(x1,y1),(x2,y2),(0,0,255),2,cv2.LINE_AA)# 车牌外框# cv2.rectangle(img, (x1, y1 - 25), (x2, y1-3), (139, 139, 102), -1) # 识别文本底色data=Image.fromarray(img)# 读取图片draw=ImageDraw.Draw(data)# PIL绘制图片draw.text((x1,y1-27),text1,(0,0,255),font=font)# 添加识别文本res=np.asarray(data)# 返回叠加识别结果的图片returnres# 视频识别函数deflicense_recognition_video(path):video=cv2.VideoCapture()video.open(path)i=0whileTrue:i+=1ref,image=video.read()# 组帧打开视频ifref:ifi%10==0:results=catcher(image)# 执行识别算法forcode,confidence,type_idx,boxinresults:# [['京Q58A77', 0.9731929, 0, [150, 160, 451, 259]]]text=f"{code}-{confidence:.2f}"image=draw_plate_on_image(image,box,text,font=font_ch)# 绘制识别结果cv2.imshow("License Plate Recognition(Directed By RSran)",image)# 显示检测结果ifcv2.waitKey(10)&0xFF==ord('q'):break# 退出else:break# 图片识别函数deflicense_recognition_image(path):image=cv2.imread(path)# 读取图片results=catcher(image)# 执行识别算法print("results:",results)forcode,confidence,type_idx,boxinresults:# [['京Q58A77', 0.9731929, 0, [150, 160, 451, 259]]]text=f"{code}-{confidence:.2f}"print(text)image=draw_plate_on_image(image,box,text,font=font_ch)# 绘制识别结果cv2.imshow("License Plate Recognition(Directed By RSran)",image)# 显示检测结果cv2.waitKey(0)if__name__=="__main__":warnings.filterwarnings("ignore",message="Mean of empty slice")# 忽略“Mean of empty slice”的警告warnings.filterwarnings("ignore",message="invalid value encountered in scalar divide")# 忽略“invalid value encountered in scalar divide”的警告font_ch=ImageFont.truetype("./font/platech.ttf",20,0)# 中文字体加载catcher=lpr3.LicensePlateCatcher(detect_level=lpr3.DETECT_LEVEL_HIGH)# 实例化识别对象# 视频识别# file = r"Y:\2025-12-14 14-49-09.mp4"# license_recognition_video(file)# 图片识别license_recognition_image("./2.png")

2、运行结果:

results:[['辽BB888H', np.float32(0.9993448),0,[103,695,668,878]]]辽BB888H -1.00

备注:图片来源于网络,侵权删。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 18:49:51

AI 如何从配置历史与变更日志中推理出“变更引发的故障”——自动化根因分析的因果推理引擎

AI 如何从配置历史与变更日志中推理出“变更引发的故障”——自动化根因分析的因果推理引擎在超大规模网络的运维世界里,最令人心悸的时刻,往往不是监控屏上一片飘红的“宕机”,而是监控指标一片祥和,业务投诉却如雪片般飞来。这是…

作者头像 李华
网站建设 2026/7/7 10:06:34

21、数据存档、备份与正则表达式应用全解析

数据存档、备份与正则表达式应用全解析 1. 数据存档与备份工具 在数据管理中,存档和备份是至关重要的操作,能确保数据的安全性和可恢复性。以下将介绍几种常用的工具及其使用方法。 1.1 tar 工具 现代 GNU tar 版本支持直接使用 gzip 和 bzip2 压缩。使用 z 和 j 选项,分…

作者头像 李华
网站建设 2026/7/7 19:46:00

子公司组织结构图绘制 母公司管控关系可视化

在企业规模化、多元化发展的进程中,集团型企业往往会通过设立子公司、分公司等形式拓展业务边界。子公司作为集团战略落地的重要载体,其组织结构的合理性直接影响运营效率;而母公司与子公司之间的管控关系,更是决定集团资源配置、…

作者头像 李华
网站建设 2026/7/7 0:06:22

WebSocket架构详解:从协议原理到企业级应用实践

1 引言:为什么需要WebSocket?在实时交互需求爆发的今天,传统的HTTP轮询已难以满足低延迟、高并发的场景要求。WebSocket作为HTML5的核心协议之一,通过全双工长连接实现了服务端与客户端的主动通信,成为实时系统的首选方…

作者头像 李华
网站建设 2026/7/7 10:34:18

KDTREE based RRT*类型注释版本

以下是添加了类型标注的代码: from typing import List, Tuple, Optional, Any import numpy as np import matplotlib.pyplot as plt from scipy.spatial import KDTree import math import randomclass Node:"""RRT*节点类"""def …

作者头像 李华