13.1.16. モデルズーとNPU変換¶
IDEには、事前学習済みの機械学習モデルのライブラリ(顔検出、人物検出、物体検出、姿勢推定など)が付属しており、IDEのリソース更新を通じて最新の状態に保たれます。Tools → Machine Vision → Open Model Zoo でこれを閲覧できます。モデルを選択するとファイルツリーの横にその説明ページが表示され、フィルタにチェックを入れると、お使いのボードに適合するモデルだけにリストを絞り込めます。
モデルが選択され、その説明ページが開いているModel Zooブラウザ。¶
モデルを選ぶと、IDEはそれを実行可能な状態でコピーアウトします。ボードにNPUアクセラレータがある場合はそのターゲットボード用にモデルを変換し、対応するラベルファイルを並べてコピーし、保存先を接続されたカメラのドライブにデフォルト設定します。そこからスクリプト側では ml.Model のコンストラクタを1回呼び出すだけです。同じブラウザは ROMFSエディタ 内からも利用でき、ROMFSを持つボードではそちらがモデルの保存先として適しています。ROMFS内のモデルはRAMにコピーすることなくフラッシュから直接実行されるからです。
13.1.16.1. その他のモデルの変換¶
Tools → Machine Vision → Convert Model for NPU は、他のどこかから来たモデル(Edge ImpulseやRoboflowで学習したもの、学習フレームワークからエクスポートしたもの、あるいはダウンロードしたもの)に対して同じ変換を実行します。NPUを搭載したボードにはそれぞれベンダーのコンパイラがあり、IDEがそれを同梱して動作させます。Ethos-U NPUはVelaを、ST Neural-ART NPUはST Edge AIを使用します。このツールはターゲットボードを接続されたカメラから取得し(接続されていない場合は尋ねます)、モデルファイルはユーザーから取得します。すでに変換済みのモデルは認識されてそのままコピーされ、選択されたボードにNPUがない場合はその旨を表示して変換をスキップします。未変換のモデルもそれらのボードではCPU上で実行されます。
NPUボードでは変換は任意ではありません。未変換のモデルはよくてもCPUにフォールバックして何倍も遅く動作し、一部のボードではまったく実行できません。ROMFSエディタとモデルズーは変換を自動的に適用します。このメニュー項目は、他の経路で入手したモデルのために存在します。