NXP プロセッサー実機検証ガイド 3 | NXP プロセッサー実機検証ガイド 5 | ||
NXP プロセッサー 実機検証ガイドまとめ | NXP プロセッサー 初心者ガイドまとめ |
もくじ
- はじめに
- 1. 事前準備:機械学習機能を含んだ Yocto Linux BSP イメージのブート、Host PC からの ssh ログイン
- 2. TensorFlow Runtime のサンプルを Github リポジトリからダウンロード
- 3. Python のソースコードの編集
- 4. Obect Detection Python デモの実行
- まとめ
はじめに
NXP 社の 8MPLUSLPD4-PEVK電力計測評価キットは i.MX 8M Plus プロセッサを包括的に評価するためのプラットフォームを提供しております。
機械学習機能のパッケージを含んだ Yocto Linux BSP イメージには TensorFlow Lite デリゲートも実装されています。
これにより Python で TensorFlow Lite Runtime API を使用して推論を実行可能となっていますので、量子化モデルの mobilenet_ssd_v2_coco_quant_postprocess.tflite を使用した Object Detection のデモを実行してみます。
今回用意するもの:
- NXP 社 8MPLUSLPD4-PEVK電力計測評価キット
- HDMI ケーブル / モニター
- LAN ケーブル
- USB マウス (キーボードは不要)
- Windows 10 PC (MicroSD への OS イメージの書き込み、デバッグ用 Host PC として使用。)
- MicroSD カード (16GB 以上を推奨)
参考:
主な手順としては、以下のとおりです。
- 事前準備:機械学習機能を含んだ Yocto Linux BSP イメージのブート、Windos 10 Host PC からの ssh ログイン
- TensorFlow Runtime のサンプルを Github からダウンロード
- Python のソースコードの編集
- Python デモの実行
1. 事前準備:機械学習機能を含んだ Yocto Linux BSP イメージのブート、Windows 10 Host PC からの SSH ログイン
下記 URL の手順を参考にして、機械学習機能を含んだ Yocto Linux BSP イメージのブート、Windows 10 Host PC から root で ssh ログインをしておきます。
2. TensorFlow Runtime のサンプルを Github リポジトリからダウンロード
Windows 10 Host PC から ssh ログインしている状態で、Home の下に py_work ディテクリを作成します。
/home# mkdir py_work
作成したディレクトリに移動します。
/home# cd py_work
wget コマンドを使用し、下記 Github リボジトリから Python のサンプル一式をダウンロードします。
https://github.com/PINTO0309/TensorflowLite-bin
/home/py_work# wget https://github.com/PINTO0309/TensorflowLite-bin/archive/refs/heads/main.zip
無事ダウンロードが完了すると下記メッセージが表示されます。(ファイル名:main.zip)
3. Python のソースコードの編集
unzip コマンドでダウンロードした ファイルを解凍します。
/home/py_work# unzip main.zip
生成された TensorflowLite-bin-main ディレクトリに cd コマンドで移動します。
/home/py_work# cd TensorflowLite-bin-main
ls コマンドを実行すると3種類の python のファイルがあることが判ります。
今回、mobilenetv2ssd-async-usbcam.py を使用します。
テキストエディターで Python のコード(mobineletv2ssd-async-usb.py)を修正します。(下記では nano を使用)
# nano mobineletv2ssd-async-usbcam.py
- 変数 num_threads でスレッド数 を定義
## Add
num_threads = 4
- メイン関数内でウェブカメラの 番号、FPS を修正
## parser.add_argument("--usbcamno", type=int, default=0, help="USB Camera number.")
parser.add_argument("--usbcamno", type=int, default=3, help="USB Camera number.")
# vidfps = 60
vidfps = 30
4. Object Detection Python デモの実行
下記コマンドで python のデモを実行します。
# python3 mobilenetv2ssd-async-usbcam.py
物体が検出されているのが判ります。推論性能は 24.3 FPS となっています。
なお、デモの停止をしたい場合は、ターミナルウインドウにて Ctrl + C を押します。
おまけ)
BCU を使用しての消費電力の結果は、平均 3.6W くらいとなっています。かなり低いですね。
まとめ
今回、mobilenetv2ssd-async-usbcam.py を修正して、非同期でのウェブカメラのデモを実施しましたが、他の python のサンプルもぜひ修正してお試しください。
mobilenetv2ssd-sync-usbcam.py :同期ウェブカメラ
mobilenetv2ssd.py :静止画
NXP プロセッサー実機検証ガイド 3 | NXP プロセッサー実機検証ガイド 5 | ||
NXP プロセッサー 実機検証ガイドまとめ | NXP プロセッサー 初心者ガイドまとめ |