README
🚀 Omni-LPR
Omni-LPR 是一个可自托管的服务器,它通过 REST API 和模型上下文协议(MCP)提供自动车牌识别(ALPR)功能。它既可以作为独立的 ALPR 微服务使用,也可以作为 AI 代理和大语言模型(LLM)的 ALPR 工具箱。
🚀 快速开始
你可以按照以下步骤在几分钟内开始使用 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
# 示例预期输出: {"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 具有以下好处:
- 解耦:你的主应用程序可以使用任何编程语言。它无需与 Python 或特定的机器学习依赖项纠缠在一起,因为服务器会处理所有这些。
- 多接口:你不会局限于一种通信方式。你可以从任何应用程序使用标准的 REST API,也可以使用专为 AI 代理集成设计的 MCP。
- 即开即用:你无需从头开始构建。有预构建的 Docker 镜像,易于部署并立即开始使用。
- 硬件加速:服务器针对你拥有的硬件进行了优化。它支持通用 CPU(ONNX)、英特尔 CPU(OpenVINO)和 NVIDIA GPU(CUDA)。
- 异步 I/O:它基于 Starlette 构建,这意味着它具有高性能的非阻塞 I/O。它可以处理许多并发请求而不会陷入困境。
- 可扩展性:因为它是一个独立的服务,所以可以独立于你的主应用程序进行扩展。如果你突然需要更多的 ALPR 处理能力,可以扩展 Omni-LPR 而无需触及其他任何内容。
查看 ROADMAP.md 以获取已实现和计划实现的功能列表。
⚠️ 重要提示
Omni-LPR 处于早期开发阶段,因此预计会出现错误和 API 重大变更。请使用 问题页面 报告错误或请求功能。
📚 详细文档
使用方法
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(http://127.0.0.1:8000/api/v1/apidoc/swagger)中访问交互式 API 文档。
MCP 接口
服务器还通过 MCP 公开其工具,以便与 AI 代理和 LLM 集成。MCP 端点可通过可流式传输的 HTTP 在 http://127.0.0.1:8000/mcp/ 访问。
你可以使用 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 文档可在 此处 查看。
示例
查看 示例 目录以获取使用示例。
🤝 贡献
欢迎贡献代码!有关如何开始的详细信息,请参阅 CONTRIBUTING.md。
📄 许可证
Omni-LPR 采用 MIT 许可证(请参阅 LICENSE)。
🙏 致谢
- 本项目使用了很棒的 fast-plate-ocr 和 fast-alpr Python 库。
- 项目徽标来自 SVG Repo。
微信扫一扫