Amazon Web Services ブログ

ノーコード機械学習のAmazon SageMaker Canvas を使用して、画像から製造品質欠陥の検出を誰でも簡単に行う方法

低品質に起因するコスト (外部サイトリンク) は、メーカーにとって最も重要な事項です。品質に不良があると、スクラップや再加工のコストが増加し、生産スループットが低下し、顧客や企業の評価に影響を与える可能性があります。生産ラインでの品質検査は、品質基準を維持するために不可欠です。多くの場合、品質評価や欠陥の検出には人による目視検査が用いられますが、人間の検査員の限界により、ラインのスループットが制限されてしまうことがあります。
機械学習 (ML) と人工知能 (AI) の出現により、コンピュータービジョン (CV) ML モデルを使用した外観検査が可能になりました。人間による検査を CV ベースの ML で補完することで、検出ミスを減らし、生産をスピードアップし、品質コストを削減し、顧客に対しプラスの影響を与えることができます。CV ML モデルの構築には通常、データサイエンスとコーディングの専門知識が必要ですが、多くの場合、これらは製造業の組織では希少なリソースです。しかし今では、品質エンジニアと現場の方々も、ノーコードのMLサービスを使用して機械学習モデルを構築および評価できるようになり、より広範な製造業務においてモデルの探索と導入を行うことができるようになりました。
Amazon SageMaker Canvas は、品質管理、生産技術のエンジニアが正確な ML 予測を自分で生成できるビジュアルインターフェイスを備えています。ML の経験が一切なくても、またコードを 1 行たりとも記述する必要もありません。SageMaker Canvas を使用すると、独自の画像データセットを使用して一般的な製造上の欠陥を特定するための単一ラベルの画像分類モデルを作成できます。この記事では、SageMaker Canvas を使用して単一ラベルの画像分類モデルを構築し、製造された永久磁石タイルの欠陥をその画像に基づいて識別する方法について説明します。

ソリューション概要

この記事は、CV ML検査を検討している品質エンジニアの視点を前提としており、永久磁石タイル画像のサンプルデータを用いて、品質チェック用のタイルの欠陥を予測する画像分類MLモデルを構築します。データセットには、ブローホール (blowhole) 、破損 (break) 、クラック (crack) 、擦れ (fray) 、不均一な表面 (uneven surface) などの欠陥がある永久磁石タイルの画像が1,200枚以上含まれています。以下の画像は、単一ラベルの欠陥分類の例です。左側はクラック (crack) の入ったタイル、右側は欠陥のないタイルです。

このような実際の画像は、生産ラインの完成品から収集できます。この記事では、SageMaker Canvas を使用して、特定の永久磁石タイル画像の欠陥を予測して分類する単一ラベルの画像分類モデルを構築します。SageMaker Canvas はローカルマシンのファイルまたは Amazon Simple Storage Service (Amazon S3) から画像データをインポートできます。この記事では、S3 バケットに複数のフォルダー (ブローホール (blowhole) 、破損 (break) 、クラック (crack) などの欠陥タイプごとに 1 つ) が作成され、永久磁石タイル画像がそれぞれのフォルダーにアップロードされています。 Free というフォルダーには、欠陥のない画像が含まれています。

SageMaker Canvas を使用した ML モデルの構築は、 4 つのステップからなります。

  1. 画像のデータセットをインポートする
  2. モデルを構築してトレーニングします
  3. 精度などのモデルインサイトを分析します
  4. 予測を行う

前提条件

ステップを開始する前に、SageMaker Canvas をセットアップして起動する必要があります。この設定は IT 管理者が行い、次の 3 つのステップで構成されます。

  1. Amazon SageMaker ドメインをセットアップします
  2. ユーザーを作成します
  3. SageMaker Canvas の特定の機能を使用する権限を設定します

組織に合わせて SageMaker Canvas を設定するには、Amazon SageMaker Canvasの使用を開始するAmazon SageMaker Canvas のセットアップと管理 (IT 管理者向け) を参照してください。

SageMaker Canvas を設定すると、ユーザーは SageMaker コンソールに移動し、ナビゲーションペインで Canvas を選択し、 Canvasを開く を選択して SageMaker Canvas を起動できます。

AWS Management Console

SageMaker Canvas アプリケーションが新しいブラウザーウィンドウで起動されます。

Canvas TOP menu

SageMaker Canvas アプリケーションが起動したら、ML モデルを構築するステップを開始します。

データセットのインポート

データセットのインポートは、SageMaker Canvas で ML モデルを構築する最初のステップです。

    1. SageMaker Canvas アプリケーションで、ナビゲーションペインの Datasets を選択します。
    2. Create メニューで Imageを選択します。
    3. Dataset nameMagnetic-Tiles-Dataset などの名前を入力します。
    4. Create を選択してデータセットを作成します。

      データセットを作成したら、データセットの画像をインポートします。
    5. インポートページで、Amazon S3 を選択します (永久磁石タイルの画像は S3 バケットにある想定です)。ローカルマシンから画像をアップロードすることもできます。
    6. 永久磁石タイル画像が保存されている S3 バケット内のフォルダーを選択し、Import Data を選択します。

SageMaker Canvas がデータセットへの画像のインポートを開始します。インポートが完了すると、1,266 枚の画像で構成された画像データセットが表示されます。

データセットを選択して、画像のプレビューや欠陥タイプのラベルなどの詳細を確認できます。画像はフォルダー毎に整理され、各フォルダーには欠陥タイプの名前が付けられているため、SageMaker Canvas はフォルダー名に基づいて画像のラベル付けを自動的に行います。別の方法として、ラベルの付いていない画像をインポートし、ラベル名を追加し、個々の画像にラベルを紐づけることもできます。また既存のラベル付き画像のラベルを変更することもできます。

dataset preview

画像のインポートが完了し、SageMaker Canvas に画像データセットが作成されました。次のステップに進んで、永久磁石タイルの欠陥を予測する ML モデルを構築できます。

モデルの構築とトレーニング

インポートしたデータセットを使用してモデルをトレーニングします。

  1. データセット ( Magnetic-tiles-Dataset ) を選択し、 Create a model を選択します
  2. Model name に、Magnetic-Tiles-Defect-Model などの名前を入力します
  3. ML 問題の種類として Image analysis を選択し、Create を選択します
    model type
    モデルの Build タブでは、ラベル分布、ラベル付き画像とラベルなし画像の数、モデルタイプ (今回の場合は単一ラベルの画像予測) のような、データセットに関するさまざまな詳細を確認できます。ラベルの付いていない画像をインポートした場合や、特定の画像のラベルを変更または修正したい場合は、 Edit dataset を選択してラベルを変更できます。

    モデルを構築するには、クイックビルドまたはスタンダードビルドのいずれかを選択できます。クイックビルドのオプションでは、精度よりも速度が優先されます。モデルのトレーニングは 15 ~ 30 分で完了します。このモデルは予測には使用できますが、共有することはできません。与えられたデータセットを使ってモデルをトレーニングすることの実現可能性と精度をすばやく確認するのに適したオプションです。スタンダードビルドでは速度よりも精度が優先され、モデルトレーニングには 2 ~ 4 時間かかる場合があります。今回は、スタンダードビルドを使用してモデルをトレーニングします。
  4. Build タブの Standard build を選択して、モデルのトレーニングを開始します。

    モデルトレーニングはすぐに開始されます。予想されるビルド時間とトレーニングの進行状況は Analyze タブで確認できます。

    モデルのトレーニング完了を待って、モデルのパフォーマンスを分析して精度を調べることができます。

モデルの分析

今回の場合、モデルトレーニングを完了するのにかかった時間は 1 時間未満でした。モデルトレーニングが完了したら、Analyze タブでモデルの精度を確認して、モデルが欠陥を正確に予測できるかどうかを判断できます。この場合、モデル全体の精度は 97.7% であることがわかります。また、個々のラベルや欠陥タイプごとにモデル精度を確認することもできます。たとえば、擦れ (Fray) や不均一な表面 (Uneven) の場合は 100%、ブローホール (Blowhole) の場合は約 95% です。このレベルの精度は良好な結果です。このまま評価を続けます。

モデルをよりよく理解し、信頼性を高めるには、ヒートマップ (Heatmap) を有効にして、モデルがラベルを区別するために着目している画像内の領域を確認してください。これはクラスアクティベーションマップ (CAM) 技術に基づいています。ヒートマップを使用すると、誤って予測された画像からパターンを特定でき、モデルの品質を向上させるのに役立ちます。

heatmap

Scoring タブでは、各ラベル (またはクラス、または欠陥タイプ) のモデルの精度 (Precision) と再現率 (Recall) を確認できます。精度と再現率とは、バイナリ分類モデルやマルチクラス分類モデルの性能を測定するために使用される評価指標です。精度は、モデルが特定のクラス (この例では欠陥タイプ) をどれだけうまく予測できるかを示します。Recall は、モデルが特定のクラスを何回検出できたかを示します。

モデル分析は、予測に使用する前にモデルの精度を理解するのに役立ちます。

予測の実行

モデル分析が完了すると、このモデルを使用して予測を行い、永久磁石タイルの欠陥を特定できるようになります。

Predict タブでは、単一予測 (Single prediction) と バッチ予測 (Batch prediction) を選択できます。単一予測では、ローカルマシンまたは S3 バケットから 1 つの画像をインポートして欠陥に関する予測を行います。バッチ予測では、SageMaker Canvas データセットに保存されている複数の画像について予測を行うことができます。SageMaker Canvas では、バッチ予測用のテスト画像または推論画像を含む別のデータセットを作成できます。この記事では、単一予測とバッチ予測の両方を使用します。

単一予測の場合は、Predict タブで Single prediction を選択し、Import image を選択して、ローカルマシンからテスト画像または推論画像をアップロードします。

画像がインポートされると、モデルは欠陥について予測を行います。初回の推論では、モデルが初めて読み込まれるため、数分かかる場合があります。モデルが読み込まれた後は、画像に関する予測が即座に行われます。各ラベルタイプの予測の画像と信頼度を確認できます。たとえば今回の場合、永久磁石タイル画像には不均一な表面欠陥 ( Uneven ラベル) があると予測され、モデルはその欠陥について 94% の信頼度を示しています。

同様に、他の画像や画像のデータセットを使用して、欠陥に関する予測を行うことができます。

バッチ予測には、Magnetic-Tiles-Test-Dataset と呼ばれるラベルのない画像のデータセットを使用し、ローカルマシンからデータセットに12枚のテスト画像をアップロードします。

Predict タブで、Batch prediction を選択し、Select dataset を選択します。


Magnetic-Tiles-Test-Dataset をデータセットとして選択し、Generate predictions を選択します。

すべての画像の予測を生成するにはしばらく時間がかかります。ステータスが Ready になったら、データセットのリンクを選択して予測を確認します。

すべての画像の予測を信頼度とともに表示できます。個々の画像のいずれかを選択すると、画像レベルの予測の詳細を確認できます。

予測を CSV または .zip ファイル形式でダウンロードして、オフラインで作業できます。予測されたラベルを検証してトレーニングデータセットに追加することもできます。予測されたラベルを検証するには、Verify prediction を選択します。

予測データセットでは、予測されたラベルが正しくない場合は、個々の画像のラベルを更新できます。必要に応じてラベルを更新したら、Add to trained dataset を選択して画像をトレーニングデータセット (この例では Magnetic-Tiles-Dataset) にマージします。

これにより、既存のトレーニング画像と予測ラベル付きの新しい画像の両方を含むトレーニングデータセットが更新されます。更新されたデータセットを使用して新しいモデルバージョンをトレーニングすると、モデルのパフォーマンスが向上する可能性があります。新しいモデルバージョンはインクリメンタルトレーニングではなく、更新されたデータセットを使用してゼロから新しいトレーニングを行うものです。この方法をとることで、新しいデータソースでモデルを更新し続けることができます。

クリーンアップ

SageMaker Canvas での作業が完了したら、Log out を選択してセッションを終了すると、それ以上のコストは発生しません。
もし直接ブラウザーを閉じてしまった場合は、必ずCanvasに戻ってきて Log out ボタンからログアウトするようにしてください。

ログアウトしても、データセットやモデルなどの作業は保存されているので、SageMaker Canvas セッションを再度起動して後で作業を続けることができます。

SageMaker Canvas によって予測のための SageMaker 非同期推論エンドポイントが作成されます。

SageMaker Canvas によって作成されたエンドポイント、エンドポイント設定、モデルを削除するには、エンドポイントとリソースの削除を参照してください。

まとめ

この記事では、SageMaker Canvasを使用して画像分類モデルを構築し、製造された製品の欠陥を予測し、目視検査の品質プロセスを補完および改善する方法を学びました。SageMaker Canvas を製造環境のさまざまな画像データセットと組み合わせて、予知保全、パッケージ検査、作業者の安全、商品追跡などの用途に合わせたモデルを構築できます。SageMaker Canvas では、コードを記述しなくても ML を使用して予測を生成できるため、CV ML 機能の評価と適用を迅速に行うことが出来ます。

SageMaker Canvas の使用を始めるには、また、詳細な情報を得るには、以下のリソースを参照してください。


著者について

Brajendra Singh は、アマゾンウェブサービスのソリューションアーキテクトで、企業のお客様と仕事をしています。開発者としてのバックグラウンドが強く、データや機械学習のソリューションに熱心な愛好家です。

Danny Smith は、自動車および製造業界のプリンシパル兼MLストラテジストであり、顧客の戦略的アドバイザーを務めています。彼のキャリアの焦点は、役員室から製造現場に至るまで、主要な意思決定者がデータ、テクノロジー、数学を活用してより良い意思決定を行えるよう支援することでした。最近の彼の会話のほとんどは、機械学習とジェネレーティブ AI の民主化に関するものです。

Davide Gallitelli は、EMEA 地域の AI/ML のスペシャリストソリューションアーキテクトです。ブリュッセルに拠点を置き、ベネルクス全域の顧客と緊密に連携しています。彼は幼い頃から開発者をしていて、7 歳の時にコーディングを始めました。大学で AI/ML を学び始め、それ以来AI/MLに夢中になっています。

翻訳はAWSソリューションアーキテクトの矢永が担当しました。原文はこちらです。