omni-lpr について
Omni-LPRは、ナンバープレート認識を行うセルフホスト可能なサーバーです。車両番号の検出やOCRを必要とするアプリやAIエージェント向けに、RESTとMCPのインターフェースを提供し、CPU、Intel OpenVINO、NVIDIA CUDAに対応します。
主な機能
- 01画像内のナンバープレートを検出・認識
- 02画像データまたは画像パスを処理
- 03利用可能な検出・OCRモデルを一覧表示
- 04RESTとMCPのインターフェース
- 05ONNX、OpenVINO、CUDAに対応
活用シーン
- 01アップロード画像のナンバーを認識
- 02URLやファイルパスの画像を処理
- 03AIエージェントにナンバー認識ツールを提供
MCP 対応
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 エージェントや大規模言語モデル(LLM)向けの ALPR ツールボックスとしても使用できます。
なぜ Omni-LPR なのか?
Omni-LPR を使用することで、以下のような利点があります:
-
分離。 メインアプリケーションは任意のプログラミング言語で構いません。サーバーがすべてを処理するため、Python や特定の ML 依存関係に悩まされる必要はありません。
-
複数のインターフェース。 通信方法が 1 つに縛られることはありません。任意のアプリから標準の REST API を使用することも、AI エージェント統合のために設計された 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. サーバーを起動する
インストール後、1 つのコマンドでサーバーを起動できます:
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 の
http://127.0.0.1:8000/api/v1/apidoc/swagger でインタラクティブな API ドキュメントにアクセスできます。
MCP インターフェース
サーバーは、AI エージェントや LLM との統合のために、MCP を介してツールを公開しています。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 ライブラリを使用しています。
- プロジェクトのロゴは SVG Repo のものです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。