GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

GPU を使用せずにエッジで Amazon Lookout for Vision を使用して異常の場所を特定する

コンピュータ ビジョンを使用した自動欠陥検出は、品質の向上と検査コストの削減に役立ちます。 欠陥検出には、欠陥の存在の特定、欠陥の種類の分類、および欠陥の位置の特定が含まれます。 多くの製造プロセスでは、コンピューティング リソースが制限され、接続が制限された状態で、低レイテンシで検出する必要があります。

アマゾンルックアウトフォービジョン 機械学習 (ML) サービスで、コンピューター ビジョンを使用して製品の欠陥を特定し、製造ラインの品質検査プロセスを自動化します。ML の専門知識は必要ありません。 Lookout for Vision には、セマンティック セグメンテーション ML モデルを使用して異常の場所と種類を提供する機能が含まれるようになりました。 これらのカスタマイズされた ML モデルは、以下を使用して AWS クラウドにデプロイできます。 クラウド API または使用してカスタムエッジハードウェアに AWS IoT Greengrass. Lookout for Vision は、NVIDIA GPU アクセラレータの有無にかかわらず Linux を実行する x86 コンピューティング プラットフォーム、および NVIDIA Jetson ベースのエッジ アプライアンスでの推論をサポートするようになりました。 この柔軟性により、既存または新しいハードウェアの欠陥を検出できます。

この投稿では、エッジアプライアンスで実行されているLookout for Vision MLモデルを使用して欠陥部品を検出する方法を示します。これは、 アマゾン エラスティック コンピューティング クラウド (Amazon EC2) インスタンス。 新しいセマンティック セグメンテーション モデルのトレーニング、AWS IoT Greengrass コンポーネントとしてのエクスポート、Python サンプル コードを使用した CPU のみのモードでの推論の実行について説明します。

ソリューションの概要

この投稿では、一連の写真を使用します おもちゃのエイリアン 手足、目、その他の部分の欠落など、正常な画像と欠陥のある画像で構成されます。 欠陥のあるおもちゃのエイリアンを特定するために、クラウドでLookoutforVisionモデルをトレーニングします。 モデルをターゲットX86CPUにコンパイルし、トレーニング済みのLookoutforVisionモデルをAWSIoTGreengrassコンポーネントとしてパッケージ化し、AWSIoTGreengrassコンソールを使用してGPUなしのEC2インスタンスにモデルをデプロイします。 最後に、エッジデバイスファイルシステムからおもちゃのエイリアン画像を取得するEC2(C5a.2xl)インスタンスで実行されるPythonベースのサンプルアプリケーションを示し、LookoutforVisionモデルで推論を実行します。 gRPC インターフェイスに接続し、推論データを MQTT AWS クラウドのトピック。 スクリプトは、異常な画像上の欠陥の色と位置を含む画像を出力します。

次の図は、ソリューション アーキテクチャを示しています。 ローカリゼーションで検出する欠陥の種類ごとに、トレーニングで 10 のマークされた異常画像、テスト データで 10 のマークされた異常画像が必要であり、その種類の合計 20 の画像が必要であることに注意することが重要です。 この投稿では、おもちゃの行方不明の手足を探します。

このソリューションには、次のワークフローがあります。

  1. トレーニング データセットとテスト データセットをアップロードします。 Amazon シンプル ストレージ サービス (Amazon S3)。
  2. 新しいLookoutforVision UIを使用して、異常タイプを追加し、トレーニング画像とテスト画像のどこに異常があるかをマークします。
  3. クラウドでLookoutforVisionモデルをトレーニングします。
  4. モデルをターゲット アーキテクチャ (X86) にコンパイルし、AWS IoT Greengrass コンソールを使用してモデルを EC2 (C5a.2xl) インスタンスにデプロイします。
  5. ローカル ディスクからのソース イメージ。
  6. gRPC インターフェースを介してデプロイされたモデルで推論を実行し、元の画像に重ねられた異常マスクの画像を取得します。
  7. エッジ インスタンスで実行されている MQTT クライアントに推論結果を送信します。
  8. のトピックに関する MQTT メッセージを受信する AWS IoTコア AWS クラウドで、さらにモニタリングと視覚化を行います。

ステップ 5、6、および 7 は、サンプルの Python アプリケーションと連携しています。

前提条件

開始する前に、次の前提条件を完了してください。 この投稿では、EC2 c5.2xl インスタンスを使用し、そこに AWS IoT Greengrass V2 をインストールして新機能を試します。 NVIDIA Jetson で実行する場合は、以前の投稿の手順に従ってください。 Amazon Lookout for Visionは、エッジでの製品欠陥の目視検査をサポートするようになりました.

  1. AWSアカウントを作成する.
  2. AWS IoT GreengrassをインストールできるEC2インスタンスを起動し、新しいCPUのみの推論モードを使用します.86ギガバイト以上のRAMを搭載したIntel X64 8ビットマシンを使用することもできます(c5a.2xlを使用しますが、 Ubuntu 8を実行しているx86プラットフォームでは20.04ギガバイト以上が機能するはずです)。
  3. AWS IoT Greengrass V2 をインストールします。
    git clone https://github.com/aws-samples/amazon-lookout-for-vision.git
    cd edge
    # be sure to edit the installation script to match your region, also adjust any device names and groups!
    vi install_greengrass.sh

  4. 必要なシステムとPython3の依存関係をインストールします(Ubuntu 20.04):
    # install Ubuntu dependencies on the EC2 instance
    ./install-ec2-ubuntu-deps.sh
    pip3 install -r requirements.txt
    # Replace ENDPOINT variable in sample-client-file-mqtt.py with the value on the AWS console AWS IoT->Things->l4JetsonXavierNX->Interact.  
    # Under HTTPS. It will be of type <name>-ats.iot.<region>.amazon.com 

データセットをアップロードしてモデルをトレーニングする

私たちは、使用 おもちゃのエイリアン データセット 解決策を示します。 データセットには、正常な画像と異常な画像が含まれています。 データセットからのいくつかのサンプル画像を次に示します。

次の画像は、通常のおもちゃのエイリアンを示しています。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

次の画像は、おもちゃのエイリアンが足を失っているところを示しています。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

次の画像は、頭が欠けているおもちゃのエイリアンを示しています。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

この投稿では、行方不明の手足を探します。 新しいユーザー インターフェイスを使用して、トレーニング データとテスト データの欠陥の周囲にマスクを描画します。 これにより、セマンティック セグメンテーション モデルに、このタイプの欠陥を識別する方法が伝えられます。

  1. まず、Amazon S3 またはコンピューターからデータセットをアップロードします。
  2. というタイトルのフォルダに分類します。 normal および anomaly.
  3. データセットを作成するときに、 フォルダ名に基づいて画像にラベルを自動的に添付します.これにより、後で異常な画像を整理し、欠陥のラベルを付ける領域を描画できます。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  4. 後で両方をテストするために、いくつかの画像を保留してみてください normal および anomaly.
  5. すべての画像がデータセットに追加されたら、 異常ラベルを追加する.
  6. を選択して、データのラベル付けを開始します。 ラベル付けを開始.
  7. プロセスを高速化するために、複数の画像を選択して、それらを次のように分類できます。 Normal or Anomaly.
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
    異常を分類するだけでなく強調したい場合は、異常がどこにあるかを強調する必要があります。
  8. 注釈を付けたい画像を選択します。
  9. 描画ツールを使用して、対象の一部が欠落している領域を表示するか、欠陥の上にマスクを描画します。
  10. 選択する 送信して閉じる これらの変更を維持します。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  11. すべての画像に対してこのプロセスを繰り返します。
  12. 完了したら、を選択します Save 変更を永続化します。 これで、モデルをトレーニングする準備が整いました。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  13. 選択する 列車モデル.

これらの手順を完了すると、プロジェクトに移動して、 Models トレーニング済みモデルのパフォーマンスを確認するページ。 モデルのトレーニング後、いつでもモデルをターゲット エッジ デバイスにエクスポートするプロセスを開始できます。

修正した画像でモデルを再トレーニングする

異常のタグ付けが完全に正しくない場合があります。 モデルが異常をよりよく学習できるようにするチャンスがあります。 たとえば、次の画像は異常として識別されますが、 missing_limbs タグ。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

エディタを開いてこれを修正しましょう。

このように見つけた画像を調べてください。 異常に誤ってタグ付けされていることがわかった場合は、消しゴム ツールを使用して、間違ったタグを削除できます。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

モデルを再度トレーニングして、精度を向上させることができます。

モデルをコンパイルして、AWSIoTGreengrassコンポーネントとしてパッケージ化します

このセクションでは、トイ エイリアン モデルをターゲット エッジ デバイスにコンパイルし、モデルを AWS IoT Greengrass コンポーネントとしてパッケージ化する手順について説明します。

  1. Lookout for Vision コンソールで、プロジェクトを選択します。
  2. ナビゲーションペインで、 エッジ モデル パッケージ.
  3. 選択する モデル パッケージ ジョブの作成.
  4. 職種名、名前を入力します。
  5. 仕事内容、オプションの説明を入力します。
  6. 選択する モデルを閲覧する.
  7. モデル バージョン (前のセクションで作成したおもちゃのエイリアン モデル) を選択します。
  8. 選択する 選択する.
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  9. これをAmazonEC2またはX86-64デバイスで実行している場合は、 ターゲットプラットフォーム 選択して Linux, X86, CPU.
    CPU を使用している場合、確信が持てず、NVIDIA GPU がない場合は、コンパイラ オプションを空のままにしておくことができます。 AVX512 をサポートする Intel ベースのプラットフォームを使用している場合は、これらのコンパイラ オプションを追加して、パフォーマンスを向上させるために最適化できます。 {"mcpu": "skylake-avx512"}.
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。ジョブ名とステータスが次のように表示されます。 In progress. モデルパッケージングジョブが完了するまでに数分かかる場合があります。モデルパッケージングジョブが完了すると、ステータスは次のように表示されます。 Success.
  10. ジョブ名を選択します (この場合は aliensblogcpux86) をクリックしてジョブの詳細を表示します。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  11. 選択する モデル パッケージ ジョブの作成.
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  12. の詳細を入力します コンポーネント名, コンポーネントの説明 (オプション)、 コンポーネントバージョン, コンポーネントの場所.Lookout for Visionは、コンポーネントのレシピとアーティファクトをこのAmazonS3の場所に保存します。
  13. 選択する Greengrass でのデプロイを続行する コンポーネントをターゲット エッジ デバイスにデプロイします。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

AWS IoT Greengrass コンポーネントとモデル アーティファクトが AWS アカウントに作成されました。

モデルを展開する

続行する前に、アカウントのターゲット デバイスに AWS IoT Greengrass V2 がインストールされていることを確認してください。 手順については、を参照してください。 AWS IoTGreengrassCoreソフトウェアをインストールします.

このセクションでは、AWS IoT Greengrass コンソールを使用して、トイ エイリアン モデルをエッジ デバイスにデプロイする手順を説明します。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

  1. AWS IoT Greengrass コンソールで、エッジ デバイスに移動します。
  2. 選択する 配備します 展開手順を開始します。
  3. 選択 コアデバイス (展開は単一のデバイスへの展開であるため)そして次の名前を入力します ターゲット名.ターゲット名は、AWS IoT Greengrass V2 インストールプロセス中にコアデバイスに名前を付けるために使用した名前と同じです。
  4. コンポーネントを選択します。 この場合、コンポーネント名は aliensblogcpux86おもちゃのエイリアン モデルが含まれています。
  5. 選択する Next.
  6. コンポーネントを構成します (オプション)。
  7. 選択する Next.
  8. 詳細 導入ポリシー.
  9. コンポーネントの更新ポリシー選択 コンポーネントに通知する.これにより、既に展開されているコンポーネント (コンポーネントの以前のバージョン) は、更新の準備ができるまで更新を延期できます。
  10. 障害処理ポリシー選択 ロールバックしない。失敗した場合、このオプションを使用すると、展開のエラーを調査できます。
  11. 選択する Next.
  12. ターゲット (エッジ) デバイスにデプロイされるコンポーネントのリストを確認します。
  13. 選択する Next。メッセージが表示されます Deployment successfully created.
  14. モデルのデプロイが成功したことを検証するには、エッジ デバイスで次のコマンドを実行します。
    sudo /greengrass/v2/bin/greengrass-cli component list

次のコマンドを実行すると、同様の出力が表示されるはずです。 aliensblogcpux86 ライフサイクル起動スクリプト:

Greengrass で現在実行されているコンポーネント:

Components currently running in Greengrass:
 
Component Name: aws.iot.lookoutvision.EdgeAgent
    Version: 0.1.34
    State: RUNNING
    Configuration: {"Socket":"unix:///tmp/aws.iot.lookoutvision.EdgeAgent.sock"}
 Component Name: aliensblogcpux86
    Version: 1.0.0
    State: RUNNING
    Configuration: {"Autostart":false}

モデルで推論を実行する

Note: ログインしているユーザーとは別のユーザーとして Greengrass を実行している場合は、ファイルのアクセス許可を変更する必要があります。 /tmp/aws.iot.lookoutvision.EdgeAgent.sock:

chmod 666 /tmp/aws.iot.lookoutvision.EdgeAgent.sock

これで、モデルで推論を実行する準備が整いました。 エッジデバイスで、次のコマンドを実行してモデルをロードします(置換 コンポーネントで使用されているモデル名と一緒に):

# run command to load the model# This will load the model into running state pass
# the name of the model component as a parameter.
python3 warmup-model.py <modelName>

推論を生成するには、ソース ファイル名を指定して次のコマンドを実行します ( チェックして置き換えるイメージのパスとファイル名 コンポーネントに使用されているモデル名を使用):

python3 sample-client-file-mqtt.py </path/to/images> <modelName>

start client ['sample-client-file.py', 'aliens-dataset/anomaly/1.png', 'aliensblogcpux86']
channel set
shape=(380, 550, 3)
Image is anomalous, (90.05860090255737 % confidence) contains defects with total area over .1%: {'missing_limbs': '#FFFFFF'}

モデルは画像を異常として正しく予測します(missing_limbs) 0.9996867775917053 の信頼スコアで。 異常タグのマスクを教えてくれます missing_limbs そしてパーセンテージエリア。 応答には、検出されたものをデコードできるビットマップ データも含まれています。

ファイルをダウンロードして開く blended.png、次の画像のようになります。 脚の周りの欠陥で強調表示されている領域に注意してください。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。

カスタマーストーリー

AWS IoT Greengrass と Lookout for Vision を使用すると、品質管理や欠陥評価などのプロセスの外観検査をコンピュータビジョンで自動化できます。すべてエッジ上でリアルタイムです。 部品の損傷 (へこみ、傷、溶接不良など)、製品コンポーネントの欠落、生産ライン自体の繰り返しパターンによる欠陥などの問題を事前に特定できるため、時間と費用を節約できます。 Tyson や Baxter などのお客様は、外観検査を自動化することで品質を向上させ、運用コストを削減する Lookout for Vision の威力を発見しています。

「オペレーショナル エクセレンスは、Tyson Foods の重要な優先事項です。 予知保全は、総合設備効率 (OEE) を継続的に改善することにより、この目的を達成するための不可欠な資産です。 2021 年、Tyson Foods は機械学習ベースのコンピューター ビジョン プロジェクトを開始し、生産中に製品キャリアの故障を特定して、チーム メンバーの安全、運用、または製品品質に影響を与えないようにしました。 Amazon Lookout for Vision を使用してトレーニングされたモデルのパフォーマンスは良好でした。 ピン検出モデルは、両方のクラスで 95% の精度を達成しました。 Amazon Lookout for Vision モデルは、失敗したピン検出に対して 99.1% の精度で実行するように調整されました。 このプロジェクトの最大の成果は、開発時間の短縮です。 このプロジェクトは 12 つのモデルとより複雑なアプリケーション コードを使用していますが、完了するまでにかかる開発時間は XNUMX% 短縮されました。 Tyson Foods の製品キャリアの状態を監視するこのプロジェクトは、Amazon Lookout for Vision などの AWS マネージド サービスを使用して記録的な速さで完了しました。」

—Audrey Timmerman 氏、シニア アプリケーション開発者、Tyson Foods

「待ち時間と推論速度は、製造プロセスのリアルタイム評価と重要な品質チェックにとって重要です。 CPU デバイス上の Amazon Lookout for Vision Edge により、生産グレードの機器でこれを実現できるようになり、費用対効果の高い AI ビジョン ソリューションを大規模に提供できるようになりました。」

—AK Karan 氏、Baxter International Inc.、デジタル トランスフォーメーション、統合サプライ チェーンのグローバル シニア ディレクター

掃除

次の手順を実行して、作成したアセットをアカウントから削除し、継続的な請求を回避します。

  1. Lookout for Vision コンソールで、プロジェクトに移動します。
  2. ソフトウェア設定ページで、下図のように メニューで、データセットを削除します。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  3. モデルを削除します。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  4. Amazon S3 コンソールで、作成したバケットを空にしてから、バケットを削除します。
  5. Amazon EC2 コンソールで、AWS IoT Greengrass を実行するために開始したインスタンスを削除します。
  6. AWS IoT Greengrassコンソールで、 デプロイメント ナビゲーションペインに表示されます。
  7. コンポーネントのバージョンを削除します。
    GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。
  8. AWS IoT Greengrassコンソールで、AWS IoTのモノ、グループ、およびデバイスを削除します。

まとめ

この投稿では、欠陥のローカリゼーションを使用してエッジで産業用欠陥を検出し、CPU のみのデバイスに展開する典型的なシナリオについて説明しました。 Lookout for Vision と AWS IoT Greengrass を使用したエンドツーエンドの例を使用して、クラウドとエッジのライフサイクルの主要コンポーネントについて説明しました。 Lookout for Vision を使用して、クラウドで異常検出モデルをトレーニングしました。 おもちゃのエイリアン データセット、モデルをターゲット アーキテクチャにコンパイルし、モデルを AWS IoT Greengrass コンポーネントとしてパッケージ化しました。 AWS IoT Greengrass を使用して、モデルをエッジ デバイスにデプロイしました。 エッジ デバイスのローカル ファイル システムからおもちゃのエイリアンの画像を取得し、gRPC インターフェイスを使用してエッジで Lookout for Vision モデルで推論を実行し、推論データを AWS の MQTT トピックに送信する Python ベースのサンプル アプリケーションを示しました。クラウド。

今後の投稿では、GStreamer メディア パイプラインを使用して、画像のリアルタイム ストリームで推論を実行する方法を紹介します。

にアクセスして、産業異常の検出と識別に向けた旅を始めましょう。 アマゾンルックアウトフォービジョン および AWS IoT Greengrass リソース ページ。


著者について

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。マニッシュ・タルレハ は、AW​​S プロフェッショナル サービスのシニア インダストリアル ML プラクティス マネージャーです。 彼は、AWS クラウドで AWS ML および IoT サービスを使用する革新的なソリューションを設計および構築することにより、AWS のお客様がビジネス目標を達成できるよう支援しています。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。ライアン・ヴァンダーワーフ アマゾン ウェブ サービスのパートナー ソリューション アーキテクトです。 以前は、OCI の Grails および Micronaut チームのソフトウェア エンジニアとして、Java 仮想マシンに焦点を当てたコンサルティングとプロジェクト開発を行っていました。 彼は、ReachForce で製品のチーフ アーキテクト/ディレクターを務め、マーケティング データ管理用の AWS クラウド SaaS ソリューションのソフトウェアとシステム アーキテクチャに重点を置いていました。 Ryan は、1996 年以来、金融、メディア、電気通信、e ラーニング企業などの複数のドメインで複数の SaaS ソリューションを構築してきました。

GPU PlatoBlockchain Data Intelligence を使用せずに、エッジで Amazon Lookout for Vision を使用して異常の場所を特定します。 垂直検索。 あい。プラカシュクリシュナン アマゾンウェブサービスのシニアソフトウェア開発マネージャーです。 彼は、大規模な分散システムを構築しているエンジニアリングチームを率いて、高速で効率的で拡張性の高いアルゴリズムをディープラーニングベースの画像およびビデオ認識の問題に適用しています。

タイムスタンプ:

より多くの AWS機械学習