コンピュータービジョン、AWSパノラマ、AmazonSageMakerを使用したTysonの産業用自動化

ソースノード: 1575225

これは、Tyson Foods, Inc. が Amazon SageMaker と AWS Panorama を利用して、人工知能アプリケーションの利点をエッジにもたらすことにより、食肉包装工場で産業プロセスを自動化する方法に関する XNUMX 部構成のブログシリーズの第 XNUMX 回です。 パート XNUMX では、パッケージング ラインの在庫カウント アプリケーションについて説明します。 パート XNUMX では、産業機器の予知保全のためのエッジでのビジョンベースの異常検出ソリューションについて説明します。

世界最大の鶏肉、牛肉、豚肉の加工業者および販売業者の XNUMX つとして、 タイソンフーズ株式会社、生産および梱包工場に革新的なソリューションをもたらすことで知られています。 2020 年 XNUMX 月、タイソン 発表の Computer Vision (CV) を自社の養鶏工場に導入する計画を立て、AWS でパイロットを開始して、在庫管理の取り組みを開拓しました。 タイソンがコラボ Amazon MLソリューションラボ 梱包された在庫レベルに関するリアルタイムの洞察を提供する最先端のチキン トレイ カウント CV ソリューションを作成します。 この投稿では、AWS アーキテクチャの概要とソリューションの完全なウォークスルーを提供し、Tyson の工場に設置されたトレイ カウント パイプラインの主要コンポーネントを示します。 エッジでの CV モデルのデータ収集とラベリング、トレーニング、デプロイに焦点を当てます。 アマゾンセージメーカー, Apache MXNet グルーオン, AWSパノラマ.

Tyson Foods では、オペレーショナル エクセレンスが重要な優先事項です。 Tyson は、パッケージ ラインで厳格な品質保証 (QA) 対策を採用しており、品質管理プロトコルに合格したパッケージ製品のみが顧客に出荷されるようにしています。 顧客の要求に応え、生産上の問題を先取りするために、Tyson は梱包されたチキン トレイの数を注意深く監視しています。 ただし、QA に合格したチキン トレイを数えるための現在の手作業の手法は正確ではなく、生産レベルの過不足を明確に示すものではありません。 45,000,000 時間ごとのラックあたりの生産総重量を監視するなどの代替戦略では、工場の従業員にすぐにフィードバックを提供できません。 XNUMX 週間に XNUMX 頭の鶏肉を処理する能力を持つ Tyson のビジネスにとって、生産の正確さと効率は非常に重要です。 このようなシナリオで CV を効果的に使用して、処理された鶏肉の量をリアルタイムで正確に推定し、従業員が包装や生産ラインで発生する可能性のあるボトルネックを特定できるようにします。 これにより、是正措置の実施が可能になり、生産効率が向上します。

CV アプリケーション用にオンプレミスのビデオ ストリームをクラウドでストリーミングおよび処理するには、高いネットワーク帯域幅と関連するインフラストラクチャのプロビジョニングが必要です。 これは、法外なコストのかかる作業になる可能性があります。 AWS Panorama はこれらの要件を取り除き、Tyson が AWS Panorama アプライアンスのエッジでビデオ ストリームを処理できるようにします。 エッジでデバイスとアプリケーションを管理するための使いやすいインターフェイスを提供しながら、クラウドとの間のレイテンシと帯域幅のコストを削減します。

オブジェクト検出は、画像やビデオ内のオブジェクトの位置を特定できる、最も一般的に使用される CV アルゴリズムの XNUMX つです。 この技術は現在、自動運転車での歩行者発見、医療スキャンでの腫瘍の検出、小売スペースでの足跡を監視する人数カウント システムなど、さまざまな実際のアプリケーションで使用されています。 また、Tyson のミート トレイ カウントなどの在庫管理のユースケースでは、生産プロセス、コスト削減、および顧客出荷の予定どおりの配送に関するフィードバック ループを作成することで、無駄を減らすことが重要です。

このブログ投稿の次のセクションでは、Tyson Foods の工場の XNUMX つからのライブ ストリーム ビデオを使用して、Amazon SageMaker を使用して物体検出モデルをトレーニングする方法について概説します。 次に、AWS Panorama デバイスを使用してエッジにデプロイします。

AWSパノラマ

AWS Panorama は、組織が CV をオンプレミスのカメラに持ち込んで、高精度かつ低レイテンシーでローカルに予測を行うことを可能にする機械学習 (ML) アプライアンスです。 AWS Panorama アプライアンスは、ML を使用してビデオ ストリームからデータを収集し、テキストやグラフィック オーバーレイを使用してビデオを出力し、他の AWS サービスとやり取りするアプリケーションを実行できるハードウェア デバイスです。 アプライアンスは、複数のビデオ ストリームに対して複数の CV モデルを並行して実行し、結果をリアルタイムで出力できます。 商業および産業環境での使用を想定して設計されています。

AWS Panorama アプライアンスを使用すると、画像を A​​WS クラウドに送信することなく、自己完結型の CV アプリケーションをエッジで実行できます。 また、AWS Panorama Appliance で AWS SDK を使用して他の AWS サービスと統合し、それらを使用してアプリケーションからのデータを経時的に追跡することもできます。 アプリケーションを構築してデプロイするには、AWS Panorama Application CLI を使用します。 CLI は、デフォルトのアプリケーション フォルダーと構成ファイルを生成し、Docker でコンテナーを構築し、アセットをアップロードするコマンド ライン ツールです。

AWS Panorama は、で構築されたモデルをサポートします Apache MXNet, ダークネット, グルオンCV, ケラス, ONNX, パイトーチ, TensorFlow, TensorFlow Lite。 参照する この AWS Panorama でアプリケーションを構築する方法の詳細については、ブログ投稿を参照してください。 デプロイ プロセス中、AWS Panorama は、エッジ プラットフォームに固有のモデルのコンパイルを処理します。 Amazon SageMaker Neo のコンパイル. 推論結果は、Amazon S3、Amazon CloudWatch などの AWS サービスにルーティングしたり、オンプレミスの基幹業務アプリケーションと統合したりできます。 デプロイ ログは Amazon CloudWatch に保存されます。

推論スクリプト ロジックまたはトレーニング済みモデルの変更を追跡するために、新しいバージョンのアプリケーションを作成できます。 アプリケーションのバージョン アプリケーションの構成の不変のスナップショットです。 AWS Panorama はアプリケーションの以前のバージョンを保存するため、失敗した更新をロールバックしたり、異なるアプライアンスで異なるバージョンを実行したりできます。

詳細については、 AWS パノラマ ページ. サンプル アプリケーションの構築の詳細については、次を参照してください。 AWS パノラマ サンプル.

アプローチ

工場の従業員は、前の図に示すように、パックされたチキン トレイをプラスチック製のビンに継続的に入れ、時間の経過とともに積み上げます。 垂直に積み重ねられたすべてのビンのトレイの総数を検出してカウントできるようにしたいと考えています。

トレーニング済みのオブジェクト検出モデルは、ビデオ フレームごとにビンに配置されたすべてのトレイの境界ボックスを予測できます。 これは、特定のインスタンスでビン内のトレイ数を測定するために使用できます。 また、常に XNUMX つのビンだけが梱包されたトレイで満たされていることもわかっています。 トレイのカウントは、高 (充填中) から低 (新しいビンが充填されたビンの視界を遮るとき) に連続的に変動します。

この知識に基づいて、次の戦略を採用してチキン トレイの総数を数えます。

  1. ローカルとグローバルの XNUMX つの異なるカウンターを維持します。 グローバル カウンターはビンに入れられたトレイの総数を維持し、ローカル カウンターは新しいビンに配置されたトレイの最大数を保存します。
  2. 新しいトレイがビンに配置されると、ローカル カウンターを更新します。
  3. 次の方法で新しいビン イベントを検出します。
    1. 特定のフレームのトレイ数がゼロになります。 (また)
    2. 最後のトレイ番号の流れ n フレームが連続してドロップします。
  4. 新しいビン イベントが検出されたら、ローカル カウンター値をグローバル カウンターに追加します。
  5. ローカルカウンターをゼロにリセットします。

このアルゴリズムを数時間のビデオでテストしたところ、一貫した結果が得られました。

Amazon SageMaker を使用した物体検出モデルのトレーニング

データセットの作成:

ラベル付けジョブ用の新しい画像のキャプチャ

ラベル付けジョブ用の新しい画像のキャプチャ

AWS Panorama Appliance を使用して、包装ラインから画像サンプルを収集しました。 画像を処理して保存するスクリプトは、アプリケーションとしてパッケージ化され、AWS Panorama にデプロイされました。 このアプリケーションは、梱包ゾーンの近くに設置されたオンプレミス カメラからビデオ フレームを収集し、60 秒間隔でビデオ フレームに保存します。 アマゾンS3 バケツ; これにより、ビデオ シーケンスで数秒離れた類似の画像をキャプチャできなくなります。 また、ユースケースに関係のない画像内の隣接領域をマスクします。

使用して、バウンディング ボックスでチキン トレイにラベルを付けました。 Amazon SageMaker Ground Truth の ストリーミング ラベル付けジョブ。 また、パブリッシュする Amazon S3 イベント通知を設定しました オブジェクト作成イベント 〜に Amazon シンプル通知サービス (SNS) トピック。ラベル付けジョブの入力ソースとして機能します。 AWS パノラマ アプリケーション スクリプトが画像を S3 バケットに保存すると、イベント通知が SNS トピックに発行され、SNS トピックがこの画像をラベル付けジョブに送信します。 アノテーターがすべての着信画像にラベルを付けると、Ground Truth はラベルをマニフェスト ファイルに保存します。このファイルには、画像の S3 パスとチキン トレイのバウンディング ボックスの座標が含まれます。

ラベル付けされた画像に対していくつかのデータ拡張 (例: ランダム ノイズ、ランダム コントラストと明るさ、チャネル シャッフル) を実行して、実際の変動に対してモデルを堅牢にします。 元の画像と拡張された画像を組み合わせて、統合されたデータセットを形成しました。

モデルトレーニング:

ラベル付けジョブが完了すると、手動で AWSラムダ 関数。 この Lambda 関数は、画像とそれに対応するラベルを出力マニフェストから LST ファイル. トレーニング ファイルとテスト ファイルには、評価時のデータ漏洩を防ぐために、さまざまなパッケージング ラインから収集された画像が含まれていました。 次に、Lambda 関数が Amazon SageMaker トレーニング ジョブをトリガーします。

を使用しております SageMaker スクリプトモードこれにより、Amazon SageMaker のユーザーフレンドリーな範囲内にとどまりながら、独自のトレーニングアルゴリズムを導入してモデルを直接トレーニングできます。 SSD、Yolo-v3 (リアルタイムの推論レイテンシ用) などのモデルを、さまざまなバックボーン ネットワークの組み合わせでトレーニングします。 オブジェクト検出のための GluonCV Model Zoo スクリプトモードで。 ニューラル ネットワークにはトレーニング データが過剰適合する傾向があり、サンプル外の結果が不十分になります。 GluonCV は、画像の正規化とランダム化された画像の反転やトリミングなどの画像拡張機能を提供し、トレーニング中の過剰適合を減らすのに役立ちます。 の モデル トレーニング コード コンテナ化され、AWS Elastic Container Registry の Docker イメージを使用します。 トレーニング ジョブは、S3 イメージ フォルダーと LST ファイル パスを入力として受け取り、最適なモデル アーティファクトを保存します (.params & .json) 完了したら S3 に送信します。

モデル評価パイプライン

モデル評価パイプライン

テスト セットに基づく上位 2 つのモデルは次のとおりです。 SSD-resnet50 & Yolov3-darketnet53、mAP スコアはそれぞれ 0.91 です。 また、トレーニング済みのモデルとともに推論アプリケーションを AWS Panorama デバイスにデプロイすることで、実際のテストも実行しました。 推論スクリプトは、予測とビデオ フレームを Amazon S3 バケットに保存します。 グラウンドトゥルースに注釈を付けるために別の SageMaker Ground Truth ジョブを作成し、追加の定量的モデル評価を実行しました。 画像のグラウンド トゥルースと予測された境界ボックス ラベルは、定性的評価のために S3 に保存されました。 モデルは実世界のデータを一般化することができ、テストセットと同様の一貫したパフォーマンスをもたらしました.

カスタム トレーニング ジョブの作成、最先端のオブジェクト検出モデルのトレーニング、ハイパーパラメータ最適化 (HPO) の実装、および Amazon SageMaker でのモデルのデプロイの完全なエンドツーエンドの例を、次の URL で見つけることができます。 AWS ラボ GitHub リポジトリ.

肉皿カウントアプリの導入

プロダクション アーキテクチャ

プロダクション アーキテクチャ

デプロイの前に、すべてのアセット (モデル、推論スクリプト、カメラ、グローバル変数の構成) を XNUMX つのコンテナーにパッケージ化します (前述のとおり)。 このブログ記事. 当社の継続的インテグレーションと継続的デプロイ (CI/CD) パイプラインは、推論スクリプトの変更を新しいアプリケーション バージョンとして更新します。 アプリケーションの新しいバージョンが公開されたら、Python で boto3 SDK を使用してプログラムでデプロイします。

アプリケーションのデプロイ時に、AWS Panorama は最初に AWS SageMaker Neo Compilation ジョブを作成して、AWS Panorama デバイスのモデルをコンパイルします。 推論アプリケーション スクリプトは、コンパイル済みモデルをデバイスにインポートし、すべてのフレームでチキン トレイ検出を実行します。 SageMaker Neo-Compilation に加えて、トレーニング後の量子化を追加することで有効にしました。 os.environ['TVM_TENSORRT_USE_FP16'] = '1' スクリプトのフラグ。 これにより、モデルの重みのサイズが float 32 から float 16 に縮小され、モデル サイズが半分に縮小され、パフォーマンスを低下させることなくレイテンシが改善されます。 推論結果は AWS サイトワイズ モニター AWS Panorama デバイスからの MQTT メッセージを介して AWS IoT コア. 結果は Amazon S3 にプッシュされ、可視化されます。 アマゾンクイックサイト ダッシュボード。 工場の管理者と従業員は、これらのダッシュボードを直接表示して、すべての包装ラインのスループットをリアルタイムで把握できます。

まとめ

Amazon SageMaker、Amazon S3 などの AWS クラウド サービスと、AWS Panorama などのエッジ サービスを組み合わせることで、Tyson Foods Inc. は人工知能を導入して、製造工場での在庫数のカウントなど、人間が集中する産業プロセスを自動化しています。 リアルタイムのエッジ推論機能により、Tyson は過剰生産/不足生産を特定し、生産フローを動的に調整して効率を最大化することができます。 さらに、エッジで AWS Panorama デバイスを所有することで、Tyson はビデオ ファイルをクラウドに転送するための高価なネットワーク帯域幅に関連するコストを節約し、すべてのビデオ/画像アセットをネットワーク内でローカルに処理できるようになりました。

このブログ投稿では、エンドエンドのエッジ アプリケーションの概要と、AWS Panorama を使用して CV アプリケーションを開発するためのリファレンス アーキテクチャを提供します。 エッジ CV アプリケーションを構築する 3 つの異なる側面について説明しました。

  1. 且つ: AWS Panorama と Amazon SageMaker Ground Truth を使用したデータの収集、処理、ラベル付け。
  2. モデル: Amazon SageMaker と AWS Lambda を使用したモデルのトレーニングと評価
  3. アプリケーションパッケージ: AWS Panorama のトレーニング済みモデル、スクリプト、および設定ファイルをバンドルします。

このシリーズのパート XNUMX では、Tyson が AWS Panorama を使用して産業用機械の CV ベースの予知保全を行っている方法をご紹介します。

クリック こちら AWS Panorama で旅を始めましょう。 ML Solutions Lab とのコラボレーションの詳細については、次を参照してください。 Amazon 機械学習ソリューション ラボ.


著者について

ディヴィヤ・バルガヴィ のデータサイエンティストです Amazon MLソリューションラボ 彼女はさまざまな業界の顧客と協力し、創造的な問題解決を適用して、最先端の ML / AI ソリューションで顧客に価値を生み出しています。

ディリップ・サブラマニアム Tyson Foods の Emerging Technologies チームの上級開発者です。 彼は、ソフトウェア開発、機械学習、およびビッグデータに関する知識を使用して、ビジネス上の問題を解決し、プロセスを簡素化するための大規模な分散アプリケーションの構築に情熱を注いでいます。

ソース: https://aws.amazon.com/blogs/machine-learning/industrial-automation-at-tyson-with-computer-vision-aws-panorama-and-amazon-sagemaker/

タイムスタンプ:

より多くの AWS機械学習ブログ