免费 C++ OCR API 用于自动车牌识别
OpenALPR 是领先的开源 C++ OCR 库,使软件开发者能够在自己的 C++ 应用中嵌入自动车牌识别和车辆识别功能。
OpenALPR 是什么?
OpenALPR 是一个强大的开源自动车牌识别 (ALPR) 库,旨在从图像和视频中检测并读取车辆车牌。该库使用 C++ 编写,并通过 Tesseract 实现光学字符识别 (OCR),使软件开发者能够将车辆识别功能集成到停车自动化、安全系统、收费站和智慧城市基础设施等应用中。库包含多种 OCR 相关功能,例如从图像和视频中识别车牌、从实时摄像头流中识别车牌、支持地区特定的车牌模板、集成到自定义应用等。
OpenALPR 是一个高度灵活的解决方案,提供 C#、Java、Python 等流行编程语言的绑定,使其对广泛的开发者可用。该库同时提供开源版和商业版,开源版是软件开发者和爱好者实验 ALPR 技术的热门选择。库设计为跨平台,可在 Linux、Windows 和 macOS 上编译运行。无论您是构建收费系统、停车自动化还是交通监控平台,OpenALPR 都提供可靠的车牌识别基础,精度高且无需云端依赖。
开始使用 OpenALPR
推荐的 OpenALPR 安装方式是使用 GitHub。请使用以下命令进行顺利安装。
通过 GitHub 安装 OpenALPR API
git clone https://github.com/openalpr/openalpr.git 通过 CMake 安装 OpenALPR API
# Build with CMake
mkdir build
cd build
cmake ..
make
sudo make install
您也可以手动安装;直接从 GitHub 仓库下载最新发布文件。
通过 C++ API 识别图像中的车牌
开源的 OpenALPR 库提供了完整的支持,可创建使用 OCR 和计算机视觉读取图像和视频流中车辆登记牌的自动车牌识别系统。软件开发者可以使用 OpenCV 处理静态图像或来自摄像头的实时帧。以下代码片段演示了使用 OpenALPR C++ 库的基本工作流:初始化库、从图像文件识别车牌,然后打印结果及其置信度分数。
如何使用 C++ API 检测图像中的车牌?
from openalpr import Alpr
alpr = Alpr("us", "/path/to/openalpr.conf", "/path/to/runtime_data")
if not alpr.is_loaded():
print("Error loading OpenALPR")
sys.exit(1)
results = alpr.recognize_file("/path/to/image.jpg")
i = 0
for plate in results['results']:
i += 1
print("Plate #%d" % i)
print(" %12s %12s" % ("Plate", "Confidence"))
for candidate in plate['candidates']:
prefix = "-"
if candidate['matches_template']:
prefix = "*"
print(" %s %12s%12f" % (prefix, candidate['plate'], candidate['confidence']))
# Call when completely done to release memory
alpr.unload()
实时处理与车辆识别(C++)
开源的 OpenALPR 库针对性能进行了优化,能够实时处理视频流,适用于需要即时反馈的应用场景。除了读取车牌之外,OpenALPR 还能识别车辆的品牌、型号和颜色,提供更完整的数据用于分析。
地区特定识别支持
OpenALPR 库已加入对在 C++ 应用中加载和识别地区特定车牌的支持。该库已收录超过 60 个国家的车牌,并且能够识别美国全部 50 个州以及加拿大和墨西哥的发行州信息。