Caution
- ナンバープレート検出とナンバープレート認識のデータセットは非公開です
- ナンバープレート検出用のデータセットは、作成者(高橋)の自宅周辺を中心に撮影して収集しています
推論時の背景や車種、道路種別によっては著しく検出率が悪化する可能性があります - ナンバープレート認識用のデータセットは、Google画像検索にて収集しています
推論時の撮影角度や昼夜などの映り方によっては著しく認識率が悪化する可能性があります
日本のナンバープレート検出と認識の技術検証用プロトタイプです。
ナンバープレート検出とナンバープレート認識の2ステージ構成です。
- PlateYOLO-JP:YOLO12ベースの検出器
- EkMixier:ECAブロックとマルチカーネル構造を持つパッチエンベディング系のクラス分類器
※対応地域名や対応ひらがな等は、util.py の region_dict や hiragana_dict を参照ください
Note
- PlateYOLO-JP は、ある程度距離が離れた車両のナンバープレート検出を想定しています
画面全体にナンバープレートを映した画像などは検出できません
onnx 1.18.0 or later
onnxruntime 1.18.0 or later
opencv-python 4.11.0.86 or later
pillow 11.2.1 or later
アプリの起動方法は以下です。
python demo.py
- --device
カメラデバイス番号の指定
デフォルト:0 - --video
動画ファイルの指定 ※指定時はカメラデバイスより優先
デフォルト:指定なし - --image
画像ファイルの指定 ※指定時はカメラデバイスや動画より優先
デフォルト:指定なし - --width
カメラデバイスのキャプチャ幅
デフォルト:960 - --height
カメラデバイスのキャプチャ高さ
デフォルト:540 - --lpd
ナンバープレート検出モデル
デフォルト:weight/PlateYOLO-JP-640x640.onnx - --lpr
ナンバープレート認識モデル
デフォルト:weight/EkMixer-128x128.onnx - --lpd_score_th
ナンバープレート検出閾値
デフォルト:0.3 - --lpr_min_width1
ナンバープレート認識最小幅1:この最小幅を下回るナンバープレートは「認識不可」と判定
デフォルト:110 - --lpr_min_width2
ナンバープレート認識最小幅2:この最小幅を下回るナンバープレートの地域名、分類番号、ひらがなは「認識不可」と判定
デフォルト:150 - --use_video_writer
動画書き込み
デフォルト:指定なし - --output
動画書き込み時のファイルパス
デフォルト:output.avi - --use_gpu
GPU推論
デフォルト:指定なし - --use_privacy_mode
プライバシー表示
デフォルト:指定なし
高橋かずひと(https://twitter.com/KzhtTkhs)
PlateYOLO-JP-Prototype is under AGPL license.
PlateYOLO-JP-Prototype は AGPL licenseですが、源泉丸ゴシックフォントは SIL Open Font License 1.1 です。