C# と .NET のナンバープレート認識(ANPR/LPR)
IP カメラ、Web カメラ、動画ファイルから C# で車両のナンバープレートを読み取ります。LicensePlateRecognizerBlock は各プレートを見つけて読み取り、テキストをタイムスタンプ付きで通知します。処理はデバイス上で、映像のプレビュー、録画、配信を行うのと同じパイプラインの中で行われます。
年間 €500 から · Lifetime ライセンス €1,500 から
ナンバープレートリーダーは、車に向けた汎用 OCR ではありません
ナンバープレート自動認識(ANPR、ALPR、LPR とも呼ばれます)は汎用 OCR ではありません。汎用 OCR はフレーム内のすべての看板、ステッカー、ロゴを読み取り、どのテキストがプレートなのかを知りません。ANPR には 2 つのモデルが必要です。プレートを見つける検出器と、プレートの文字で学習した OCR モデルです。さらにフレームも必要です。カメラからデコードし、ハードウェアが追いつけるレートで選び、ライブ映像を止めないようにします。VisioForge SDK では、LicensePlateRecognizerBlock は映像パイプラインのブロックです。SDK がソースをデコードし、ブロックがバックグラウンドスレッドで両方のモデルを実行し、フレームはそのまま画面、ファイル、ネットワークストリームへ流れます。
ANPR を自作またはクラウド API を呼ぶ場合と LicensePlateRecognizerBlock の比較
| 一般的な自作またはクラウドの ANPR | VisioForge パイプラインの LicensePlateRecognizerBlock | |
|---|---|---|
| プレートの検出 | プレート検出器を探すか学習させ、ONNX に書き出し、前処理と後処理を書く | FastALPR YOLOv9-T プレート検出器(MIT)、DetectionConfidenceThreshold と MaxDetections |
| 文字の読み取り | フレーム内の他のテキストもすべて読む汎用 OCR | プレート専用の fast-plate-ocr ヘッド。Text は大文字化され、英数字以外の文字は除去されます |
| カメラからのフレーム取得 | ソースの種類ごとに別のデコーダーやフレームグラバー | SDK のあらゆるソース:RTSP IP カメラ、Web カメラ、動画ファイル |
| ライブ映像を滑らかに保つ | キャプチャスレッドでの認識がストリームを止める | 認識はバックグラウンドワーカーで実行。処理中に届いたフレームはスキップされ、カウントされます |
| 各国のプレート | モデルを再学習するか、プロバイダーを変える | 米国と 90 か国以上向けのグローバルヘッドと EU プレート向けの欧州ヘッドを RecognitionModelPath で選択 |
| 映像の行き先 | フレームをクラウドサービスに送り、呼び出しごとに課金 | どこにも送りません。ONNX Runtime がプロセス内で動作し、API キーも呼び出しごとの料金もありません |
ANPR ブロックでできること
LicensePlateRecognizerBlock は VisioForge.DotNet.Core.AI パッケージに含まれます。映像入力と映像出力を 1 つずつ持ち、受け取ったフレームで 2 つの ONNX モデルを実行し、OnPlateRecognized イベントでプレートを通知します。
- 2 段階の認識:YOLOv9-T 検出器がプレートを見つけ、切り出した各プレートをプレート専用の OCR モデルが読み取ります。どちらも MIT ライセンスの FastALPR モデルです
- プレートごとの完全な結果:Text、Confidence(0〜1)、BoundingBox、ソースフレームのピクセル座標による 4 点の Polygon。各イベントにフレームの Timestamp が付きます
- 地域別ヘッド:グローバルヘッドは米国と 90 か国以上、欧州ヘッドは EU プレートに最適化されています。どちらもラテン文字(数字と A〜Z)を読み取り、入力サイズはモデル自体から読み取られます
- デバイス上で処理:Windows の GPU では DirectML、Apple プラットフォームでは CoreML、フォールバックは CPU の ONNX Runtime。使用中のものは ActiveProvider でわかります
- ライブ映像は滑らかなまま:認識はバックグラウンドワーカーで実行され、FramesToSkip で実行頻度を設定し、LastInferenceTimeMs と DroppedFrameCount でハードウェアが追いついているかを確認できます
- 認識と録画を同時に:DrawResults はプレートの枠とテキストを、プレビュー、ファイル、ストリームへ進むフレームに描画します
- すべてのエンジンに 1 つのブロック:Media Blocks SDK .NET のパイプラインに接続するか、Video_Processing_AddBlock で VideoCaptureCoreX または MediaPlayerCoreX に追加します
利用シーン
駐車場の入出庫と精算
ゲートカメラでプレートを認識し、バーを開けるか駐車セッションを開始します。
料金所と入退場の記録
固定カメラの前をどのプレートがいつ通過したかを、映像を現地に置いたまま記録します。
車両と構内の管理
私有地や車庫に出入りする車両を追跡します。
交通確認用ツール
手動確認のためにプレートにフラグを付けます。最終的な取り締まりの判断には必ず人による確認を含めてください。
コード例
3 つの FastALPR モデルファイルが同梱された License Plate Recognition Demo をもとにしています。2 つ目の例は、Capture OCR X デモが AI ブロックを追加するのと同じ方法で VideoCaptureCoreX にブロックを追加します。
ゲートカメラのプレートを記録する
C#IP カメラをプレビューし、プレートを一覧表示して MP4 に録画する
C#パイプライン
ゲートの例では、LicensePlateRecognizerBlock はカメラとヌルレンダラーの間にあります。プレートは OnPlateRecognized イベントで通知され、DrawResults を有効にするとフレームが枠とテキストを次のブロックへ運びます。
よくある質問
映像はマシンの外に出ますか?▼
どの国のプレートを読み取れますか?▼
独自のモデルを学習させる必要はありますか?▼
車両の多い混雑したシーンや遠くのプレートはどうですか?▼
どの SDK が必要ですか?▼
ナンバープレートは個人データですか?▼
ドキュメントとサンプル
ナンバープレート認識ガイド
LicensePlateRecognizerBlock とその設定:モデル、地域別ヘッド、各設定と既定値、トラブルシューティング。
License Plate Recognition Demo(WPF)
Media Blocks SDK .NET のサンプル:Web カメラ、動画ファイル、RTSP カメラでの ANPR。FastALPR モデル同梱。
VideoCaptureCoreX と MediaPlayerCoreX の AI ブロック
キャプチャエンジンとプレーヤーエンジンへの処理ブロックの追加方法:挿入順序とライフサイクル。
物体検出
YOLOObjectDetectorBlock:混雑したシーンで ANPR の前段に車両を検出します。
個人情報のマスキング
PIIRedactionBlock:映像内のナンバープレート、顔、画面上のテキストをデバイス上でぼかし、またはモザイク処理します。
動画ストリームの OCR
映像内のその他すべてのテキスト(看板、ラベル、テロップ、画面の内容)には OcrBlock。
ナンバープレートの読み取りを始める
全機能を使える 30 日間の試用版をダウンロードし、License Plate Recognition Demo を実行してください。エンジンと出力によっては、透かしまたは未登録の表示が出ることがあります。
ナンバープレート認識を備えた SDK
Media Blocks SDK .NET
パイプライン SDK:任意のソースとレンダラー、エンコーダー、ネットワーク出力の間に LicensePlateRecognizerBlock を置きます。
詳しく見る →Video Capture SDK .NET
キャプチャ SDK:ブロックを VideoCaptureCoreX に追加し、プレビューと録画をしながらカメラのプレートを読み取ります。
詳しく見る →Media Player SDK .NET
プレーヤー SDK:ブロックを MediaPlayerCoreX に追加し、再生するファイルやストリームのプレートを読み取ります。
詳しく見る →年間 €500 から · Lifetime ライセンス €1,500 から
