aarcosg/traffic-sign-detection の Faster RCNN ResNet50をONNXに変換して推論するサンプルです。
ONNX変換はTraffic-Sign-Detection-ONNX-SampleをColaboratoryで実行しています。
このモデルはGTSDB(German Traffic Sign Detection Benchmark)で訓練されたモデルのため、ドイツ向けです。
以下は日本の道路ですが、当然検出されているクラスIDはあっていません。
sample.mp4
opencv-python 4.5.3.56 or later
onnxruntime-gpu 1.9.0 or later
※onnxruntime-gpuはonnxruntimeでも動作しますが、推論時間がかかるためGPUを推奨します
faster_rcnn_resnet50.onnxをダウンロードしてmodelディレクトリに置いてください。
デモの実行方法は以下です。
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
python demo_webcam_onnx.py
以下のオプション指定が可能です。
- --model
ByteTrackのONNXモデル格納パス
デフォルト:model/faster_rcnn_resnet50.onnx - --device
カメラデバイス番号の指定
デフォルト:0 - --width
カメラキャプチャ時の横幅
デフォルト:960 - --height
カメラキャプチャ時の縦幅
デフォルト:540 - --score_th
検出のスコア閾値
デフォルト:0.3
高橋かずひと(https://twitter.com/KzhtTkhs)
Traffic-Sign-Detection-ONNX-Sample is under MIT License.