Armadillo-IoT ゲートウェイ G4 + NPUで動作が確認済みの機械学習モデルをまとめたリポジトリです。
各種機械学習モデルの量子化手順と動作確認手順を、Pythonでの実装とともに Google Colaboratory ノートブック形式で紹介します。 動作確認手順は Armadillo-IoT ゲートウェイ G4 実機上でも同様に動作します。
本リポジトリで紹介している機械学習モデルを用いた Armadillo-IoT ゲートウェイ G4 上で動作するデモアプリケーションの動画もYouTubeにアップロードしています。
こちらは基本的には本リポジトリで紹介している動作確認手順の実装と大枠は同じですが、画面構成の変更や映像入力をUSBカメラにするなどの変更が加わっています。
▼物体検出・姿勢推定・セグメンテーションデモ動画 | ▼超解像・手指検知デモ動画 |
これらのデモアプリケーションは、Armadillo-IoT ゲートウェイ G4 上で実際に動かすことができます。 詳しくは、「Armadillo-IoT ゲートウェイ G4 製品マニュアル」内の「デモアプリケーションを実行する」を参照してください。
Tensorflow Liteの物体検出サンプル(当該ページは削除済み)にて使用されているモデルです。COCOデータセットでトレーニングし、uint8で量子化されています。
※使用されているモデルは異なりますが、こちらにTensorflow Liteの物体検出についてのページが新しく作成されています。
入力画像上の「どこに」、「何が」あるかを認識し、バウンディングボックスで表示できます。
認識可能な物体は90種類あります。
posenet-pythonをベースにtfliteに変換、量子化したモデルです。
入力画像に写った人間の骨格(両目、鼻、両耳、両肩、両肘、両手首、両腰、両膝、両足首の計17点)を検知して表示します。
最大10人の骨格を一度に推定できます。
PINTO0309様がtfliteに変換、量子化したモデルです。具体的な量子化手順などの詳細はPINTO_model_zooを参照してください。
入力画像の各画素ごとに、そこに写っているものは何かを推定し、人間が写っている領域を赤く色付けします。
Google Meetのバーチャル背景のために使用されているモデルをベースとしていおり、人間の領域を綺麗に推定するために、人間以外の付近の物を検出する場合もあります。
esrgan-tf2をベースにtfliteに変換、量子化したモデルです。
50x50の解像度の画像を入力することで、200x200の解像度の画像を生成します。
PINTO0309様がtfliteに変換、量子化したモデルです。具体的な量子化手順などの詳細はPINTO_model_zooを参照してください。
モデルの詳細については、MediaPipe Hands Model Cardを参照してください。
以下の流れで手指の検出を行ないます。
- 入力画像から手の領域を検出
- 検出した領域を入力画像として骨格推定
- 推定結果を元の入力画像に描画
このデモの特徴としまして、機械学習モデルを2つ(手の領域検出、手の骨格推定)使用しています。
Armadillo-IoT ゲートウェイ G4上でも複数モデルをロードして推論を行なうことができます。