サイト内検索

はじめに

本記事は、以下の方を対象とした記事です。

・エッジAIについて興味はあるがなにから始めれば良いのかわからない

・エッジAIの一般的な開発手法を学びたい

・Texas Instruments社(以下、TI社)のエッジAI向け開発ツールの使い方を学びたい

上記内容について、TI社から提供されている“EDGE-AI-STUDIO”の特徴と実際の動作を通して解説していき、具体的には下図のようにカスタムデータを使用した、Classification(画像分類)等のアプリケーションの開発を行っていきます。

少しでも上記内容への理解の手助けになればと思います。

製品概要(EDGE-AI-STUDIOについて)

“EDGE-AI-STUDIO“はTI社から提供されているエッジAI開発ツールです。クラウド上のアプリになるため、手元のPCを使用し無償(一定時間制限有り)EDGE-AI-STUDIO“はTI社から提供されているエッジAI開発ツールです。クラウド上のアプリになるため、手元のPCを使用し無償(一定時間制限有り)で利用することができます。

GUIベースで視覚的にわかりやすくなっており、何も知識がない状態からでもエッジAIのモデル開発から実機検証までを一貫して経験することができます。

下図は一般的なエッジAIのアプリ開発のフローになりますが、“EDGE-AI-STUDIO“の”Model Composer”では、データの準備からデプロイまでをサポートしています。

図:一般的な開発手順の概要:

機能の詳細は各フローに沿って解説していきますが、前提条件として、どの様な推論を行うかなどの最終アプリケーションが固まっている状態とします。ただし、“EDGE-AI-STUDIO“ではClassification(画像分類)、Detection(物体検知)、Segmentation(領域抽出)の3種類が現在利用できます。

データの準備

学習には目的に合わせたデータの用意とアノテーション(もしくはラベリング)の工程が必要になりますが、これらの作業は非常に工数がかかります。
Model Composer”では、予めアノテーションされたサンプル用のデータセットが用意されており、アノテーション済のデータセットをインポートすることで、用意の手間を省くこともできます。他にも、PCのローカルファイルやUSBカメラでその場の写真を取り込むことで、さまざまなパターンのデータを用意することができます。ただし、取り込む場合のラベリングはユーザー自身で行う必要がありますので、ご留意ください。
なお、インポート可能なデータセットの形式はCOCOデータセットと似ていますが具体的な構成はこちらをご参考ください。

学習

用意されているモデルに対する推論の精度を向上させたい場合や、目的の推論に合わせて新たな検出対象に対応させたい場合、モデルの再学習や転移学習が必要になります。この時、基本的には最終アプリケーションが求める推論結果の精度、FPS(ここでは推論可能なフレーム数)や結果出力までのレイテンシ、入力可能なイメージサイズ(解像度)に合わせてモデルを選択します。
Model Composerでは、1クリックで簡単に学習を行うことができます。なお、Model Composerで実際に学習を行う場合は、TI社が用意している特定のモデル以外は選択できませんので、ご留意ください。

エッジデバイス用コードへの変換(コンパイル)

学習が完了したモデルをエッジデバイスで実行するためには、特定のデータ形式に変換するコンパイルという作業が必要になります。また、コンパイル時の設定やツールによっては、精度/速度やデータ容量の最適化を行うことができます。一般的にはエッジデバイスの提供元メーカー様が用意しているツール(コンパイラー)を使用するか、オープンソースのツールを使用します。
Model Composerでは、1クリックでコンパイルを行うことができ、精度と推論速度の調整も同時に行うことができます。

エッジデバイスへの実装(デプロイ)

エッジデバイスへの実装には様々な手法がありますが、一般的にはエッジデバイスの提供元メーカー様が用意しているツールを使用します。その後、実動作でのパフォーマンスを検証し、想定動作と異なる場合は、再度学習やコンパイル作業を行う必要があります。
Model Composerでは、手元の評価ボードと接続し、その場ですぐにパフォーマンスを評価することができます。USBカメラに入力した情報の推論結果を確認し、満足する結果が得られない場合、前のフローに戻り再調整を行うことができます。

 

このようにModel Composerは、データの準備~実装までのフローを1つのアプリでサポートしています。以降では、実際にフローに沿ってModel Composerの使い方を解説していきます。

Model Composerの使い方

下記以降の手順については、TI社の資料と実際の画面を用いております。詳細については必ずTI社の最新のドキュメントをご参照ください。また、使用した機材については記事の最後に記載しておりますのでご参照ください。

[Home画面]

“EDGE-AI-STUDIO”にアクセスしたら、“Model Composer”の“Launch“ボタンを押します。
※注意:この時myTIアカウントのログインを求められますので、アカウントを作成してください。

“Model Composer”を開いたら、Example Project”を選択し、下図のようにセットアップします。

下図の状態で“Example Project”をクリックするとプロジェクトが立ち上がります。

今回は“Classification(画像分類)”を行うデモを確認していきますが、他にも”Detection(物体検知)”、”Segmentation(領域抽出)”を行うことができます。

[Capture画面]

この画面では、学習に使用する画像データを用意します。プロジェクト作成時にサンプルのデータセットを使用することもできますが、自前のデータを使用することもできます。

データを追加したい場合は、GUI右上の“Input Source”を選択し、1枚単位~フォルダ単位、PCカメラ/EVMUSBカメラから選択してください。

今回は、サンプルデータセットの“animal_classification”をベースに、鳥の画像を追加します。

[Annotate画面]

この画面では学習するデータにラベル付けをする事ができます。

ラベルを追加する前は”dog””cat”の選択肢しかありませんが、下図は鳥の画像に”bird”とラベル付けしている例です。

ラベルの種類を増やす場合はGUI右上の赤枠ボタンを選択し、“New Label”に追加してください。

[Model Selection画面]

この画面では、使用するデバイスとモデルを選択することができます。

デバイスはTI社のチップの型番名をプルダウン方式で選択します。

モデルはGUIで用意されているものだけが使用できる形になるため、プルダウン方式で選択します。

今回は下図の様な設定にしましたが、使用するチップ(EVM)のスペックやモデルの仕様が表示されているので、目的に合わせて選択してください。

[Train画面]

この画面では、用意した画像を使用し、モデルの学習を行うことができます。

学習を行う上で、各種パラメータを最適な値に調整することで、推論結果の精度や学習速度を調整することができます。

まずは、”Epochs””Batch size”を増やした際の精度の差分を確認できればと思いますが、学習にかかる時間も増加しますのでご留意ください。その他のパラメータについては結果に合わせて微調整して行く形になります。

今回は下図の通りに設定し、“Start Training”で学習を開始した結果です。

(見やすいように画面を2分割しています)

[Compile画面]

この画面では、学習済のモデルをEVM上で実行する為のデータ形式に変換(コンパイル)する事ができます。変換後、アーティファクトが生成され、こちらはEVM上で推論を行う際に使用します。

Compilation parameters”を調整することで、推論結果の精度と出力するまでの速度を調整することができます。

今回はDefault Presetを使用し、“Start Compiling”でコンパイルを開始した結果です。

(見やすいように画面を2分割しています)

パフォーマンス評価方法

まず、EVMの準備が必要になりますが、今回は「SK-AM62A-LP」を使用していきます。製品の詳細はこちらの記事を合わせてご参照ください。SDカードに専用のソフトウェア(SDK)を書き込む必要がありますが、手順については本記事では割愛させていただきますので、こちらのURLをご参照ください。

USBカメラはHD(720p)/Full HD(1080p)対応品を使用できますが、今回は「Logitech C270 HD WEBCAM」を使用します。

書き込み済のSDカード、USBカメラ、Ethernetケーブルを接続し、EVMを起動します。

GUI右上の“Option”->”Serial Port Settings...”から、COMポートを選択し、Baud Rate=115200としておきます。

GUI左下の赤枠ボタンを押すことで、EVMへ接続することができます。(注意:EVMとPCは同一つのネットワークにある必要があります。)

[Live preview画面]

この画面では、学習済のモデルをEVMに書き込み、実機での推論結果を確認する事ができます。

GUI左上の“Device Setup”ボタンを押すことでEVMに繋がっているカメラの映像を出力することが出来ます。

その後、GUI左上の“Start Live Viewing”ボタンを押すことで、EVMへのモデルの書き込みが開始され、カメラに入力された情報に対して推論を実行する事ができます。

今回は、”Classification(分類)なので、犬、猫、鳥の画像をカメラに入力することで、“dog”、”cat””bird”の結果が表示されます。

ちなみに、”Detection(検知)を行った場合はこちら。

[Deploy画面]

こちらの画面では、学習済のモデルやコンパイル済のモデルアーティファクトをPCのローカルフォルダーに保存する事や、EVMへの書き込みができます。ダウンロードしたファイルを使用して、別のPCへ共有し評価することも可能です。

また、GUI右上の赤枠ボタンを使用することで、現在のプロジェクト自体をExportし、別のPCで再利用することも可能です。

最後に

本記事で説明した内容、特に開発手順やパラメーター調整については、実際に自身でも経験いただくことでより理解が深まると思います。

今回使用した機材を以下に記載いたしますので、ご参照ください。

EDGE-AI-STUDIO

SK-AM62A-LP

Logitech C270 HD WEBCAM

・USBケーブル micro-B(PCとの通信)

・USBケーブル Type-C(EVM電源用)

・SDカード(16GB以上)

・HDMIディスプレイ(HDMIケーブル)

・Ethernetケーブル

 

また、“EDGE-AI-STUDIO“には他にも以下の3つの機能が統合されていますので、目的に応じてご利用頂ければと思います。

  1. Model Analyzer…手元にエッジデバイスが無くとも、TI社の評価ボードを使用したパフォーマンステストを行うことができます。
  2. Model Selection Tool…、事前学習済モデルのベンチマークを直ぐに確認することが出来るので、目的に応じたモデルを決定するための参考情報となります。
  3. Model Maker…Model Composerでサポートされていないモデルの学習やコンパイルを行うことができます。

お問い合わせはこちら

今回紹介したEVMをお求めの方はこちらからお問い合わせください。