/Traffic-Sign-Detection-ONNX-Sample

Traffic Sign Detection の Faster RCNN ResNet50をONNXに変換して推論するサンプルです。

Primary LanguageJupyter NotebookMIT LicenseMIT

Traffic-Sign-Detection-ONNX-Sample

aarcosg/traffic-sign-detection の Faster RCNN ResNet50をONNXに変換して推論するサンプルです。
ONNX変換はTraffic-Sign-Detection-ONNX-SampleをColaboratoryで実行しています。

このモデルはGTSDB(German Traffic Sign Detection Benchmark)で訓練されたモデルのため、ドイツ向けです。
以下は日本の道路ですが、当然検出されているクラスIDはあっていません。

sample.mp4

Requirement

opencv-python 4.5.3.56 or later
onnxruntime-gpu 1.9.0 or later
※onnxruntime-gpuはonnxruntimeでも動作しますが、推論時間がかかるためGPUを推奨します

ONNX Model

faster_rcnn_resnet50.onnxをダウンロードしてmodelディレクトリに置いてください。

Demo

デモの実行方法は以下です。

動画:動画に対し標識検出した結果を動画出力します

python demo_video_onnx.py

以下のオプション指定が可能です。

  • --use_debug_window
    動画書き込み時に書き込みフレームをGUI表示するか否か
    デフォルト:指定なし
  • --model
    ByteTrackのONNXモデル格納パス
    デフォルト:model/faster_rcnn_resnet50.onnx
  • --video
    入力動画の格納パス
    デフォルト:sample.mp4
  • --output_dir
    動画出力パス
    デフォルト:output
  • --score_th
    検出のスコア閾値
    デフォルト:0.3

Webカメラ:Webカメラ画像に対し標識検出した結果をGUI表示します

python demo_webcam_onnx.py

以下のオプション指定が可能です。

  • --model
    ByteTrackのONNXモデル格納パス
    デフォルト:model/faster_rcnn_resnet50.onnx
  • --device
    カメラデバイス番号の指定
    デフォルト:0
  • --width
    カメラキャプチャ時の横幅
    デフォルト:960
  • --height
    カメラキャプチャ時の縦幅
    デフォルト:540
  • --score_th
    検出のスコア閾値
    デフォルト:0.3

Reference

Author

高橋かずひと(https://twitter.com/KzhtTkhs)

License

Traffic-Sign-Detection-ONNX-Sample is under MIT License.