关于 omni-lpr
Omni-LPR 是可自托管的车牌自动识别服务,适用于需要车牌检测或 OCR 的应用和 AI Agent。它提供 REST 与 MCP 接口,并支持 CPU、Intel OpenVINO 和 NVIDIA CUDA 加速。
主要功能
- 01检测并识别图像中的车牌
- 02处理图像数据或图像路径
- 03列出可用检测与 OCR 模型
- 04提供 REST 和 MCP 接口
- 05支持 ONNX、OpenVINO 和 CUDA
适用场景
- 01识别上传图像中的车牌
- 02处理 URL 或文件路径中的车牌图像
- 03向 AI Agent 提供车牌识别工具
MCP 相关
Omni-LPR 通过 streamable HTTP 端点,以 MCP 提供模型列表和车牌识别工具。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://{baseUrl}/mcp/claude mcp add --transport http habedi-omni-lpr https://{baseUrl}/mcp/{"mcpServers":{"habedi-omni-lpr":{"type":"http","url":"https://{baseUrl}/mcp/"}}}在 Cursor 中打开{"servers":{"habedi-omni-lpr":{"type":"http","url":"https://{baseUrl}/mcp/"}}}在 VS Code 中打开{"mcpServers":{"habedi-omni-lpr":{"type":"http","url":"https://{baseUrl}/mcp/"}}}{"mcpServers":{"habedi-omni-lpr":{"serverUrl":"https://{baseUrl}/mcp/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
Omni-LPR 是一个可自托管的服务,通过 REST API 和 Model Context Protocol (MCP) 提供自动车牌识别(ALPR)能力。它既可以用作独立的 ALPR 微服务,也可以作为 AI Agent 和大模型(LLM)的 ALPR 工具箱。
为什么选择 Omni-LPR?
使用 Omni-LPR 可以带来以下好处:
-
解耦。 你的主应用可以使用任何编程语言。它无需与 Python 或特定的机器学习依赖纠缠在一起,因为服务会处理所有这些事情。
-
多种接口。 你不会被锁定在一种通信方式中。你可以在任何应用中使用标准 REST API,也可以使用专为 AI Agent 集成而设计的 MCP。
-
开箱即用。 你无需从零开始构建。已预构建的 Docker 镜像易于部署,可立即开始使用。
-
硬件加速。 该服务针对你所拥有的硬件进行了优化。它支持通用 CPU(ONNX)、Intel CPU(OpenVINO)和 NVIDIA GPU(CUDA)。
-
异步 I/O。 它基于 Starlette 构建,这意味着它具有高性能、非阻塞的 I/O。它可以处理大量并发请求而不会陷入停滞。
-
可扩展性。 由于它是一个独立的服务,因此可以独立于你的主应用进行扩展。如果你突然需要更强的 ALPR 能力,可以扩展 Omni-LPR 而无需改动任何其他部分。
请参阅 ROADMAP.md 以了解已实现和计划中的功能列表。
重要
Omni-LPR 处于早期开发阶段,因此预计会出现缺陷和破坏性 API 变更。 请使用 issues 页面 报告缺陷或请求功能。
快速开始
按照下面描述的步骤,你可以在几分钟内开始使用 Omni-LPR。
1. 安装服务
你可以使用 pip 安装 Omni-LPR:
pip install omni-lpr
2. 启动服务
安装完成后,使用单条命令启动服务:
omni-lpr
默认情况下,服务将监听 http://127.0.0.1:8000。
你可以通过访问健康检查端点来确认它正在运行:
curl http://127.0.0.1:8000/api/health
# Sample expected output: {"status": "ok", "version": "0.3.4"}
3. 识别车牌
现在你可以发送请求,从图像中识别车牌。 下面的示例使用了一个公开可用的图像 URL。
curl -X POST \
-H "Content-Type: application/json" \
-d '{"path": "https://www.olavsplates.com/foto_n/n_cx11111.jpg"}' \
http://127.0.0.1:8000/api/v1/tools/detect_and_recognize_plate_from_path/invoke
你应该会收到一个包含检测到的车牌信息的 JSON 响应。
用法
Omni-LPR 将其能力以 "工具" 的形式暴露出来,可通过 REST API 或 MCP 调用。
可用工具
服务提供的工具可用于列出模型、从图像数据识别车牌,以及从路径识别车牌。
-
list_models:列出可用的检测器和 OCR 模型。 -
处理图像数据的工具(以 Base64 或文件上传形式提供):
recognize_plate:从预先裁剪的车牌图像中识别文本。detect_and_recognize_plate:检测并识别完整图像中的所有车牌。
-
处理图像路径的工具(URL 或本地文件路径):
recognize_plate_from_path:从给定路径的预先裁剪的车牌图像中识别文本。detect_and_recognize_plate_from_path:检测并识别给定路径下完整图像中的车牌。
有关如何使用不同工具以及如何提供图像数据的更多详细信息,请参阅 API 文档。
REST API
REST API 提供了与服务交互的标准方式。所有工具端点都位于 /api/v1
前缀下。服务运行后,你可以在 Swagger UI 中访问交互式 API 文档,网址为
http://127.0.0.1:8000/api/v1/apidoc/swagger。
MCP 接口
服务还通过 MCP 暴露其工具,以便与 AI Agent 和大模型集成。MCP 端点位于 http://127.0.0.1:8000/mcp/,通过可流式 HTTP 访问。
你可以使用 MCP Inspector 之类的工具来探索可用的 MCP 工具。
集成
你可以将任何支持 MCP 协议的客户端连接到服务。 以下示例展示了如何将服务与 LM Studio 配合使用。
LM Studio 配置
{
"mcpServers": {
"omni-lpr-local": {
"url": "http://127.0.0.1:8000/mcp/"
}
}
}
工具用法示例
在 LM Studio 中使用 list_models 工具列出 APLR 可用模型的截图。
下面的截图展示了在 LM Studio 中使用 detect_and_recognize_plate_from_path 工具,从网络上可用的图像中检测并识别
车牌。
文档
Omni-LPR 文档可在此处获取。
示例
请查看 examples 目录以获取用法示例。
贡献
欢迎任何形式的贡献! 请参阅 CONTRIBUTING.md 了解如何开始。
许可证
Omni-LPR 基于 MIT 许可证授权(请参阅 LICENSE)。
致谢
- 本项目使用了出色的 fast-plate-ocr 和 fast-alpr Python 库。
- 项目 logo 来自 SVG Repo。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。