HyperLPR简介
HyperLPR是一个开源的高性能中文车牌识别框架,由Jack Yu等人开发。它基于深度学习技术,能够快速准确地识别各种类型的中国车牌。HyperLPR具有以下主要特点:
- 识别速度快:在720p分辨率下,单核Intel 2.2GHz CPU平均识别时间不到100ms。
- 准确率高:在出入口场景下,准确率可达95%-97%。
- 支持多种车牌类型:包括单行蓝牌、单行黄牌、新能源车牌、教练车牌等。
- 跨平台支持:可在Windows、Linux、MacOS、Android等多个平台上运行。
- 端到端识别:无需字符分割,直接输出识别结果。
快速安装与使用
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未来会有更广阔的应用前景。
欢迎开发者们参与到HyperLPR的开发中来,共同推动中文车牌识别技术的进步。如有任何问题或建议,可以通过GitHub项目页面与作者联系。让我们一起为构建更智能的交通系统贡献力量! 🚗🔍