ラズベリーパイでONNXのYOLOXを使って、物体検出のテストをしてみました。
プログラム・インストール含めて紹介します。
ラズパイとONNX RuntimeでYOLOXを試してみる
ラズベリーパイでONNXのYOLOXを使って、物体検出のテストをしてみました。
プログラム・インストール含めて詳細を紹介します。
テスト動画は下記です。
テスト環境
ラズベリーパイ4を使用しています。OSは64bitです。
インストール
ラズパイを立ち上げてインストールしたものは下記です。
ラズパイでも強引にpipを使えるようにしています。
pip.confに「break-system-packages = true」を追記しています
1 2 3 4 5 6 7 8 |
sudo apt-get update sudo apt-get install -y libatlas-base-dev sudo apt-get install -y python3-matplotlib python3-numpy python3-opencv sudo apt-get install vim sudo vim /etc/pip.conf #add: break-system-packages = true sudo pip3 install -U pip sudo pip3 install onnxruntime |
Pythonのテストプログラム
Pythonのテストプログラムは下記GitHubに置いてあります。
YOLOXのONNXモデル
YOLOX公式から展開されているONNXのモデル(YOLOX-Nano)を使用しています。
https://yolox.readthedocs.io/en/latest/demo/onnx_readme.html
wgetならば下記コマンドで入手可能です。
1 |
wget https://github.com/Megvii-BaseDetection/YOLOX/releases/download/0.1.1rc0/yolox_nano.onnx |
ONNX RuntimeでのYOLOXのテスト
テスト動画の内容を紹介します。ラズベリーパイ4を起動します。
プログラムを確認していきます。YOLOX-nanoのONNXのモデルをダウンロード済です。
プログラムの中身を少し確認します。
ONNX rumtimeを使用して、CPUで推論することが分かります。
1 2 3 4 5 6 7 |
# *********************************************************************** # Use ONNX Runtime # *********************************************************************** session = onnxruntime.InferenceSession( 'yolox_nano.onnx', providers=["CPUExecutionProvider"]) |
実際に(ハンバーガとポテトとビールが映った)写真をYOLOXで物体検出していきます。
プログラムを走らせます。
1 2 |
cd pi-360camera-test/ python3 onnx-official-yolox.py |
テスト結果が出ます。物体検出した物体、座標、スコア値、また各処理時間が確認できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
bboxes of detected objects: [[ 813.33984375 6.96622419 1112.49267578 326.20492554] [ 0. 19.16614342 1234.06774902 720. ] [ 80.62242126 265.93841553 484.27999878 702.06433105] [ 192.60302734 350.97183228 332.86862183 553.54443359] [ 143.62518311 499.18865967 318.77157593 669.91772461] [ 283.67523193 333.55316162 434.64361572 397.6237793 ] [ 373.16641235 212.27023315 930.09777832 705.84484863]] scores of detected objects: [0.47573426 0.41899779 0.20007721 0.14844385 0.13801597 0.12921971 0.1230136 ] Details of detected objects: [39. 60. 45. 46. 52. 46. 45.] Pre-processing time: 0.0342 seconds CPU execution time: 0.1721 seconds Post-process time: 0.0112 seconds Total run time: 0.2176 seconds Performance: 4.596205391876461 FPS |
同じフォルダのimgフォルダに検出した写真がresult.jpgで出てきます。
無事、物体検出できています。
参照先
下記の記事・リポジストリを参照させていただきました。
この場をお借りて、お礼申し上げます。
https://zenn.dev/karaage0703/articles/8fe578dba4857a
https://github.com/Kazuhito00/YOLOX-ONNX-TFLite-Sample/tree/main
まとめ
ラズベリーパイでONNXのYOLOXを使って、物体検出のテストをしてみました。
プログラム・インストール含めて紹介しました。
次の記事ではWebカメラと360°カメラを使って物体検出しています。
コメント