TensorFlow Lite イメージ分類 - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

TensorFlow Lite イメージ分類

TensorFlow Lite イメージ分類コンポーネント (aws.greengrass.TensorFlowLiteImageClassification) には、TensorFlow Lite ランタイムと事前トレーニング済みの MobileNet 1.0 量子化モデルのサンプルを使用してイメージ分類推論を実行するためのサンプル推論コードが含まれています。このコンポーネントは、バリアントTensorFlow Lite イメージ分類モデルストアTensorFlow Lite ランタイムコンポーネントを依存関係として使用し、 TensorFlow Lite ランタイムとサンプルモデルをダウンロードします。

この推論コンポーネントをカスタムトレーニング済み TensorFlow Lite モデルで使用するには、依存モデルストアコンポーネントのカスタムバージョンを作成します。独自のカスタム推論コードを使用するには、このコンポーネントの recipe をテンプレートとして使用して、[create a custom inference component] (カスタム推論コンポーネントを作成) できます。

バージョン

このコンポーネントには、次のバージョンがあります。

  • 2.1.x

タイプ

このコンポーネントはジェネリックコンポーネント (aws.greengrass.generic) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

このコンポーネントは、次のオペレーティングシステムを実行するコアデバイスにインストールできます。

  • Linux

  • Windows

要件

このコンポーネントには次の要件があります。

  • Amazon Linux 2 または Ubuntu 18.04 を実行している Greengrass コアデバイスの場合は、GNU C ライブラリ (glibc) バージョン 2.27 以降がデバイスにインストールされている必要があります。

  • Raspberry Pi などの Armv7l デバイスでは、OpenCV-Python の依存関係がデバイスにインストールされています。次のコマンドを実行して依存関係をインストールします。

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev
  • Raspberry Pi OS Bullseye を実行する Raspberry Pi デバイスでは、次の要件を満たす必要があります。

    • NumPy 1.22.4 以降がデバイスにインストールされている。Raspberry Pi OSwireseye には以前のバージョンの が含まれているため NumPy、次のコマンドを実行して NumPy デバイスでアップグレードできます。

      pip3 install --upgrade numpy
    • デバイスで、レガシーカメラスタックが有効になっていること。Raspberry Pi OS Bullseye には、デフォルトで新しいカメラスタックが含まれており有効化されていますが、これには互換性がないるため、レガシーカメラスタックを有効にしておく必要があります。

      レガシーカメラスタックを有効にするには
      1. 次のコマンドを実行して、Raspberry Pi 設定ツールを開きます。

        sudo raspi-config
      2. [Interface Options] (インターフェイスオプション) を選択します。

      3. [Legacy camera] (レガシーカメラ) を選択して、レガシーカメラスタックを有効にします。

      4. Raspberry Pi を再起動します。

依存関係

コンポーネントをデプロイするとき、AWS IoT Greengrass はそれと互換性のあるバージョンの依存関係もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

2.1.11

次の表に、このコンポーネントのバージョン 2.1.11 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.13.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.10

次の表に、このコンポーネントのバージョン 2.1.10 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.12.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.9

次の表に、このコンポーネントのバージョン 2.1.9 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.11.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.8

次の表に、このコンポーネントのバージョン 2.1.8 に関する依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.10.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.7

次の表に、このコンポーネントのバージョン 2.1.7 に関する依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.9.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.6

次の表に、このコンポーネントのバージョン 2.1.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.8.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.5

次の表に、このコンポーネントのバージョン 2.1.5 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.7.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.4

次の表に、このコンポーネントのバージョン 2.1.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.6.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.3

次の表に、このコンポーネントのバージョン 2.1.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.5.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.2

次の表に、このコンポーネントのバージョン 2.1.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.4.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.1

次の表に、このコンポーネントのバージョン 2.1.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.3.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード
2.1.0

次の表に、このコンポーネントのバージョン 2.1.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.2.0 ソフト
TensorFlow Lite イメージ分類モデルストア >=2.1.0 <2.2.0 ハード
TensorFlow ライト >=2.5.0 <2.6.0 ハード

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

accessControl

(オプション) コンポーネントがデフォルトの通知トピックにメッセージをパブリッシュできるようにする承認ポリシーを含むオブジェクト。

デフォルト:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }
PublishResultsOnTopic

(オプション) 推論結果をパブリッシュするトピック。この値を変更する場合は、カスタムトピック名と一致するように resources パラメータの accessControl の値も変更する必要があります。

デフォルト: ml/tflite/image-classification

Accelerator

使用するアクセラレーター。サポートされている値は、cpu および gpu です。

依存モデルコンポーネントのサンプルモデルは CPU アクセラレーションのみをサポートします。別のカスタムモデルで GPU アクセラレーションを使用するには、カスタムモデルコンポーネントを作成して、パブリックモデルコンポーネントを上書きします。

デフォルト: cpu

ImageDirectory

(オプション) 推論コンポーネントがイメージを読み取る場所と成る、デバイス上のフォルダへのパス。この値は、読み取り/書き込みアクセス権を持つデバイスの任意の場所に変更できます。

デフォルト: /greengrass/v2/packages/artifacts-unarchived/component-name/image_classification/sample_images/

注記

UseCameratrue の値に設定した場合、この設定パラメータは無視されます。

ImageName

(オプション) 推論コンポーネントが予測を行う際の入力として使用するイメージの名前。コンポーネントは、ImageDirectory で指定されたフォルダ内のイメージを検索します。デフォルトでは、コンポーネントはデフォルトのイメージディレクトリにあるサンプルイメージを使用します。AWS IoT Greengrass は jpegjpgpng、および npy のイメージ形式をサポートします。

デフォルト: cat.jpeg

注記

UseCameratrue の値に設定した場合、この設定パラメータは無視されます。

InferenceInterval

(オプション) 推論コードによって行われた各予測間の時間 (秒単位)。サンプル推論コードは無期限に実行され、指定された時間間隔で予測を繰り返します。例えば、カメラで撮影したイメージをリアルタイム予測に使用する場合などには、この間隔を短い間隔に変更できます。

デフォルト: 3600

ModelResourceKey

(オプション) 依存パブリックモデルコンポーネントで使用されるモデル。このパラメータを変更するのは、パブリックモデルコンポーネントをカスタムコンポーネントでオーバーライドする場合のみです。

デフォルト:

{ "model": "TensorFlowLite-Mobilenet" }
UseCamera

(オプション) Greengrass コアデバイスに接続されたカメラの画像を使用するかどうかを定義する文字列値。サポートされている値は、true および false です。

この値を true に設定した場合、サンプル推論コードはデバイスのカメラにアクセスし、キャプチャしたイメージでローカルに推論を実行します。ImageNameImageDirectory パラメータの値は無視されます。このコンポーネントを実行しているユーザーが、カメラがキャプチャしたイメージを保存する場所への、読み込み/書き込みアクセス権を持っていることを確認します。

デフォルト: false

注記

このコンポーネントの recipe を表示すると、UseCamera 設定パラメータはデフォルト設定には表示されません。ただし、このパラメータの値は、コンポーネントをデプロイするときに、[configuration merge update] (設定マージの更新) で変更することができます。

UseCameratrue に設定する場合は、ランタイムコンポーネントによって作成された仮想環境から推論コンポーネントがカメラにアクセスできるようにするためのシンボルリンクも作成する必要があります。サンプル推論コンポーネントを使用したカメラの使用方法の詳細については、「コンポーネント設定の更新」を参照してください。

ローカルログファイル

このコンポーネントは次のログファイルを使用します。

Linux
/greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log
このコンポーネントのログを確認するには
  • コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。/greengrass/v2 または C:\greengrass\v2 をAWS IoT Greengrassルートフォルダへのパスに置き換えます。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.TensorFlowLiteImageClassification.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.TensorFlowLiteImageClassification.log -Tail 10 -Wait

変更ログ

次の表は、コンポーネントの各バージョンにおける変更を示します。

バージョン

変更

2.1.11

Greengrass nucleus バージョン 2.12.0 リリース用にバージョンが更新されました。

2.1.10

Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。

2.1.9

Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。

2.1.8

Greengrass nucleus バージョン 2.9.0 のリリース用にバージョンが更新されました。

2.1.7

Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。

2.1.6

Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。

2.1.5

Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。

2.1.4

Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。

2.1.3

Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。

2.1.2

Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。

2.1.1

Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。

2.1.0

当初のバージョン