首页 > 编程语言 >HyperLPR: 高性能中文车牌识别框架

HyperLPR: 高性能中文车牌识别框架

时间:2024-10-09 17:23:33浏览次数:1  
标签:HyperLPR 编译 高性能 build Android 识别 车牌

HyperLPR简介
HyperLPR是一个开源的高性能中文车牌识别框架,由Jack Yu等人开发。它基于深度学习技术,能够快速准确地识别各种类型的中国车牌。HyperLPR具有以下主要特点:

识别速度快:在720p分辨率下,单核Intel 2.2GHz CPU平均识别时间不到100ms。
准确率高:在出入口场景下,准确率可达95%-97%。
支持多种车牌类型:包括单行蓝牌、单行黄牌、新能源车牌、教练车牌等。
跨平台支持:可在Windows、Linux、MacOS、Android等多个平台上运行。
端到端识别:无需字符分割,直接输出识别结果。
HyperLPR logo

快速安装与使用
Python版本安装
使用pip可以快速安装HyperLPR的Python版本:

python -m pip install hyperlpr3
支持Python 3,可在Windows、Mac、Linux、树莓派等平台上使用。

快速测试
安装完成后,可以使用以下命令进行快速测试:

使用网络图片

lpr3 sample -src https://example.com/test_img.jpg

使用本地图片

lpr3 sample -src images/test_img.jpg -det high
Python代码示例
import cv2
import hyperlpr3 as lpr3

实例化识别器

catcher = lpr3.LicensePlateCatcher()

读取图片

image = cv2.imread("images/test_img.jpg")

打印识别结果

print(catcher(image))
跨平台支持
HyperLPR支持多种平台:

Linux: x86、Armv7、Armv8
MacOS: x86
Android: arm64-v8a、armeabi-v7a
嵌入式开发板:如瑞芯微RV1109/RV1126(RKNPU)
C/C++版本编译与使用
编译依赖
编译C/C++项目需要使用第三方依赖库。主要依赖:

OpenCV 4.0以上版本
MNN 2.0以上版本
Linux/Mac共享库编译
将依赖库放置或链接到项目根目录
执行编译脚本:
sh command/build_release_linux_share.sh
编译后的文件位于build/linux/install/hyperlpr3目录。

Android共享库编译
安装第三方依赖
准备NDK并配置环境变量
执行编译脚本:
sh command/build_release_android_share.sh
编译后的文件位于build/release_android/目录。

Docker编译
也可以使用Docker进行编译,首先构建镜像:

docker build -t hyperlpr_build .
然后启动编译:

docker-compose up build_linux_x86_shared_lib
Android SDK使用
HyperLPR提供了Android SDK的演示项目:hyperlpr3-android-sdk

在Android项目中快速集成:

在根build.gradle中添加JitPack仓库:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
添加依赖:
dependencies {
implementation 'com.github.HyperInspire:hyperlpr3-android-sdk:1.0.3'
}
在代码中使用:
// 初始化
HyperLPR3.getInstance().init(this, new HyperLPRParameter());

// 执行识别
Plate[] plates = HyperLPR3.getInstance().plateRecognition(bitmap, HyperLPR3.CAMERA_ROTATION_0, HyperLPR3.STREAM_BGRA);
支持的车牌类型
HyperLPR主要支持以下中国车牌类型:

单行蓝牌
单行黄牌
新能源车牌
教练车牌
有限支持:

白色警用车牌
使馆/港澳车牌
双层黄牌
武警车牌
未来计划支持更多类型,如民航车牌、双层军牌等。

技术原理
HyperLPR采用深度学习技术,主要包括以下步骤:

车牌检测:使用轻量级卷积神经网络定位图像中的车牌区域。
车牌矫正:对倾斜的车牌进行仿射变换,使其水平。
字符识别:采用端到端的OCR模型,直接输出车牌号码,无需字符分割。
整个过程采用端到端的方式,大大提高了识别速度和准确率。

应用场景
HyperLPR可广泛应用于以下场景:

智能交通:车辆出入口管理、停车场系统等
安防监控:车辆轨迹追踪、异常行为检测等
智慧城市:交通流量统计、违章抓拍等
移动应用:手机APP车牌识别功能
未来展望
HyperLPR团队计划在以下方面继续改进:

支持快速部署WebApi服务
支持多车牌和双层车牌识别
支持大角度车牌识别
开发更轻量级的识别模型
总结
HyperLPR作为一个高性能的开源车牌识别框架,具有识别速度快、准确率高、跨平台等优势。它为智能交通、安防等领域提供了有力的技术支持。随着深度学习技术的不断进步,相信HyperLPR未来会有更广阔的应用前景。

文章链接:www.dongaigc.com/a/hyperlpr-high-performance-plate-recognition
https://www.dongaigc.com/a/hyperlpr-high-performance-plate-recognition

标签:HyperLPR,编译,高性能,build,Android,识别,车牌
From: https://www.cnblogs.com/dongai/p/18454721

相关文章

  • Triton Inference Server: 高性能AI推理服务器
    serverTritonInferenceServer简介TritonInferenceServer是NVIDIA开发的开源AI推理服务器,旨在为企业级AI部署提供高性能、灵活和可扩展的解决方案。它支持多种深度学习和机器学习框架,可以在云端、数据中心、边缘设备和嵌入式系统上进行推理。TritonInferenceServer的主......
  • 揭秘动态化跨端框架在鸿蒙系统下的高性能解决方案
    作者:京东科技胡大海前言动态化跨端框架(后文统称“动态化”)是一个由京东金融大前端团队全自主研发的,一份代码,可以在HarmonyOS、iOS、Android、Web四端运行的跨平台解决方案。在研发团队使用后可大幅降低研发人力成本;为业务提供实时触达、A/B触达等能力以提升业务投放效率;同时......
  • Redis:高性能的内存数据库
    Redis,全称是RemoteDictionaryServer,是一个开源的内存数据结构存储系统。它可以用作数据库、缓存和消息中间件,支持多种数据结构,如字符串、哈希、列表、集合和有序集合等。Redis以其高性能、丰富的数据类型和强大的功能,广泛应用于各种互联网应用中。一,Redis的核心特性......
  • 高性能计算学习笔记(1)
    一、程序优化CPU程序优化1.1体系结构:CPU流水线技术、高速缓指令集、CPU超标量设计1.2并行技术:MPI、OpenMP、SIMD、汇编1.3算法:算法优化GPU程序优化1.1GPU的体系结构(计算核心、高带宽、多级存储)1.2GPU并行框架:CUDA、OpenCL、OpenACC1.3并行设计的算法程序优化核心......
  • ChatBot: 通过高性能LLM批量产生Character
    基于LLM创建Character,能够实现ChatBot社区的AGI吗?如果高性能的LLM能够产生中高质量的提示词并且被低性能但廉价的LLM使用,那么就有了很大的使用价值.怎么定义一个Character我认为至少需要以下几个内容:Name:Thenamecanincludefirstandlastnames.(3-40characters......
  • ChatBot: 通过高性能LLM批量产生Character
    基于LLM创建Character,能够实现ChatBot社区的AGI吗?如果高性能的LLM能够产生中高质量的提示词并且被低性能但廉价的LLM使用,那么就有了很大的使用价值.怎么定义一个Character我认为至少需要以下几个内容:Name:Thenamecanincludefirstandlastnames.(3-40characters......
  • [消息队列]kafka高性能/高吞吐量
    Kafka每秒可以处理一百万条以上消息,吞吐量达到每秒百万级。那么Kafka为什么那么高的吞吐量呢?简单来说有以下几点原因:页缓存技术Kafka是基于操作系统的页缓存来实现写入的。操作系统本身有一层缓存,叫做pagecache,是在内存里的缓存,我们也可以称之为oscache,意思就是操作系统自己......
  • VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测
    构建预训练时间序列模型时面临的主要挑战是什么?获取高质量、多样化的时间序列数据。目前构建基础预测模型主要有两种方法:迁移学习LLM:通过针对时间序列任务定制的微调或分词策略,重新利用预训练的大型语言模型(LLM),如GPT-4或Llama。从零训练:构建大规模时间序列数据集,并从头开始预训......
  • 【深入浅出MySQL】「性能调优」高性能查询优化MySQL的SQL语句编写
    总体优化大纲(1)优化查询性能:通过索引降低全表扫描频率提升数据库查询性能的途径时,一个关键的战略就是降低全表扫描的频次。因为全表扫描往往会消耗显著的计算资源,从而导致查询过程变得迟缓且效率低下,为了有效地提高查询的响应速度和整体性能。优化方向那些在where筛选条件和orderby......
  • C++游戏开发:构建高性能、沉浸式游戏体验的关键
    引言C++作为游戏开发的核心语言,凭借其卓越的性能和灵活性,已成为许多现代游戏引擎和开发项目的首选。在游戏开发中,C++不仅可以实现复杂的游戏逻辑,还能有效管理资源和优化性能。本文将深入探讨C++在游戏开发中的应用,结合先进的技术、设计模式和最佳实践,帮助开发者提升游戏开发的......