- 印刷する
Lookout for Visionによる欠陥検出
Tulip VisionとAWS Lookout for Visionによる自動欠陥目視検査の導入
目視検査は、生産品質を維持するための重要な要素ですが、人的な検査リソースのコストが高いため、無駄を省きながら実施することは困難です。また、手作業による目視検査は、非常に繰り返しが多く、視覚的にも難しい作業です。
カメラと機械学習による自動外観検査は、この状況を一変させる。機械学習に基づく外観検査アルゴリズムは、時間と精度の両面で、人間のパフォーマンスを凌駕するところまで進歩しています。
Tulipを使用すると、Visionカメラの出力をクラス初の視覚的異常検知クラウドサービスに接続することで、自動視覚検査を実装できます。AmazonのLookout for Visionはそのようなサービスの1つで、Tulipに簡単に統合できるシンプルなREST APIエンドポイントで強力なアルゴリズムを提供しています。
この記事では、Cloud Formationを使ってAWS上で素早くセットアップする方法と、あらかじめバンドルされたライブラリアプリを使ってTulip内でセットアップする方法を紹介します。このプロセスのライブチュートリアルについては、次のビデオを参照してください。
前提条件
このプロセスを開始する前に、以下のリソースが利用可能であることを確認してください:
- Tulip Player PCに接続されたUSBカメラ(Tulip Visionハードウェア推奨ガイドをご参照ください。
- 接続されたカメラのTulip Vision Camera Configuration、および動作確認済みのビデオストリーム(ビジョン入門ガイドを参照
- Tulip Tableに正常・異常のアノテーションを付けて収集したデータ(データ収集アプリを参照)
- Lookout for VisionやAPI Gatewayなどのリソースの作成が許可されたユーザーを持つAWSアカウント(Amazonのスタートガイドを参照)
:::(Info) (注)現在、Lookout for Visionは特定のAWSリージョンでのみ利用可能です:
AWSコンソールでのLookout for Visionのセットアップ
AWSコンソール上で必要なクラウドインフラのセットアップを支援するために、Cloud Formation Template(ダウンロード)を提供しています。CFTは、Lookout for Vision(LfV)の検出モデルをTulipで学習・実行するために必要なAWSクラウド上のすべてをプロビジョニングする短いスクリプトです。LfVプロジェクト、LfVモデルをアクティブにするためのAWS Lambda関数、関数と通信するためのAWS API Gatewayが作成されます。TulipはAWS API Gatewayのエンドポイントを呼び出し、Tulip Appsの中からLfVモデルへのコマンドを実行します。
- CFTをダウンロードする。
- AWSコンソールでCloud Formationに進む。
- スタックを作成し、CFTファイルをアップロードします。
- CloudFormationのスタック作成スクリプトを実行する。
- 出力をメモする。
- apiGatewayInvokeURL の値をメモするか、そうでなければメモしておく。
Resourcesタブの API Key も書き留めてください。それをクリックして値を見つける必要があります。
さて、Cloud FormationによってAWSがプロビジョニングされたので、Lookout for Visionでビジュアル機械学習モデルをトレーニングすることができる。そのためには、画像の注釈付きデータセットが必要だ。手動でデータセットを作成することもできますが、私たちはデータ収集アプリ[リンク]を使ってTulipでデータを収集する簡単な方法を提供しています。データはTulip Tableに保存され、そこから簡単にエクスポートできます。次のいくつかのステップでは、データセットがTulipで収集されたと仮定します。
- Tulipテーブルからデータセットをエクスポートする。
- Lookout for Visionが作成したS3 buckedにデータセットをアップロードする。
- Lookout for Visionでデータセットを作成し、ソースとしてS3バケットを選択します。
必ずAutomatically attach labelsを選択してください:
これでLookout for Visionでデータセットの準備ができたので、モデルをトレーニングすることができる。このプロセスにはおよそ45分かかり、AWSコンソール上で簡単に行える。
- Train Modelをクリックします。
- トレーニング状況を確認する。
- トレーニング結果を確認します。
モデルのトレーニングが完了したら、AWS側で行うことはもうありません。すべての接続はクラウドフォーメーションによって行われ、TulipをLookout for Visionに接続することができます。
Lookout for Visionモデルを呼び出すためのTulipのセットアップ
TulipはAPI経由で外部サービスと連携する能力が高いので、AWSのLookout for Visionと簡単に連携することができます。前節のREST APIエンドポイントを利用して、Tulip Connector FunctionsからLfVモデルを制御します。しかし、関数をゼロから作成する代わりに、"Defect Detection with Lookout for Vision" Library Appであらかじめビルドされたものを提供します。これにより、時間を大幅に節約し、コネクタを正しく構築することができます。しかし、最初に、特定のAWSアカウントから正しいデータをコネクタ関数に入力する必要があります。
- TulipでConnector Functionsを見つけます。
- Connector には、Cloud Formation からコピーした AWS からの正しいエンドポイント URL を設定します:
- 各ファンクションにAWSからのAPI KEYを設定します。
4つのファンクションすべてに対してこれを行うことを確認する。
TulipアプリでLookout for Visionを使用する
ライブラリから提供された欠陥検出アプリでは、目視検査を実行するための非常に初歩的なプロセスを設定しました。必要に応じてアプリを変更したり、アプリの一部を他のアプリにコピーすることができます。このアプリを使用するには、特定のTulip Visionセットアップで動作するように少し修正する必要があります。キャプチャー・トリガーをVisionカメラ・コンフィギュレーションに向ける必要があり、ビジュアル・フィードバックのためのカメラ・プレビュー・ウィジェットも必要です。
- Tulipアプリのカメラウィジェットを正しいカメラ設定で設定します。
- 正しいカメラ設定で "Detect Anomalies "トリガーを設定します。
これで、Tulip上でモデルを実行するための準備はすべて整いました。モデルを推論(画像の評価)に利用できるようにする前に、モデルを "ホスト "する必要があります。これは、モデルをアプリに提供するために、クラウド仮想マシンのようなクラウド計算リソースを占有することを意味します。提供されるTulipアプリには、そのためのボタンが用意されています。
:::(Info) (注)いったんモデルが "Hosted "になると、それに付随するコストのかかるリソースを消費することになります。使用していないときはモデルをオフにすることを忘れないでください。AWSのLfV価格については、こちらをご覧ください。AWSはLfVの無料ティアも提供しています。チューリップはAWS上で個人的にホストされているリソースについては責任を負いませんが、お問い合わせは歓迎します:
検査カメラを接続したプレーヤーPC上で欠陥検出アプリを実行します。実行中のアプリで以下の手順を行います:
- モデルの電源を入れる(「ホスティング」)。
:::(Info) (注)モデルを起動すると、コストが発生し始めます。忘れずにオフにしてください:
- モデルのホスティングステータスを確認します。
HOSTED "ステータスを探します。ステータスが "HOSTED "でない間は、モデルはクエリーを受け付けません。
- モデルに対して推論リクエストを実行する。
これでモデルは、オブジェクトが欠陥か正常部品かの予測を行うはずです。モデルが間違った予測をした場合に備えて、検出精度をフィードバックするボタンを追加しました。これらのボタンは、チューリップ・テーブルとデータセットにデータを追加します。モデルのロバスト性を高めるために、より多くのサンプル画像を与えてモデルを定期的に再トレーニングしてください。
結論
Tulipで機械学習ベースの自動外観検査を始めるための簡単なプロセスを見てきました。このプロセスは、人が行う目視検査の手動リソースを節約することができます。また、このプロセスを適用することで、製品に発生したすべての欠陥の視覚的なデータセットを得ることができ、検査とは別の方法で使用することができます。
Tulipの接続機能を使えば、機械学習を簡単に適用・実装できる。他のクラウドMLサービスも同様の方法で利用できる。