「高解像度画像を使用したAmazon Rekognitionカスタムラベルモデルによる欠陥検出」

「高解像度画像での欠陥検出におけるAmazon Rekognitionのカスタムラベルモデルの活用」

高解像度の画像は、衛星画像からドローンやDLSRカメラまで、現代の世界で非常に一般的です。この画像から、自然災害の被害や製造装置の異常、プリント基板(PCB)や半導体などの非常に小さな欠陥(例えば、欠陥のある部分)の損傷を捉えることができます。しかし、高解像度の画像を使用して異常検出モデルを構築することは挑戦であり、現代のコンピュータビジョンモデルは通常、学習および推論のために画像の解像度を下げてメモリに収めます。画像の解像度を大幅に低下させると、欠陥に関連する視覚情報が劣化または完全に失われる可能性があります。

これらの課題に対処するためのアプローチの1つは、2段階のモデルを構築することです。ステージ1のモデルは関心領域を検出し、ステージ2のモデルは関心領域内の欠陥を検出することで、小さな欠陥のために十分な解像度を維持します。

この記事では、Amazon Rekognition Custom Labelsを使用して効果的な2段階の欠陥検出システムを構築する方法と、1段階のモデルとの比較結果について説明します。なお、いくつかの1段階のモデルは、低い解像度やリサイズされた画像の解像度でも効果的であり、他のモデルは小さなバッチで大きな画像を処理することができる場合があります。

ソリューションの概要

この用途では、合成的に生成された欠損した穴のピンを含むPCBの画像データセットを使用します。以下の例に示すように、ピンの欠陥がある画像が含まれています。

我々はこのデータセットを使用して、1段階のアプローチでは欠損した穴ピンの検出性能が低いことを示します。ピンの検出のためにオブジェクト検出モデルを訓練するため、2段階のモデルが好まれます。まず、Amazon S3を使用して画像データを保存します。データはAmazon Sagemaker Jupyterノートブックに取り込まれ、データサイエンティストが通常、画像を検査し前処理を行い、ぼやけた画像や光の条件が悪い画像などの品質が低い画像を削除し、画像のリサイズやトリミングを行います。その後、データはトレーニングセットとテストセットに分割され、Amazon SageMaker Ground Truthラベリングジョブが実行され、イメージセットにラベルが付けられ、トレーニングとテストのマニフェストファイルが出力されます。これらのマニフェストファイルは、Rekognition Custom Labelsの訓練に使用されます。

1段階モデルのアプローチ

PCB上の欠損した穴を特定するためには、欠損した穴にラベルを付け、オブジェクト検出モデルを訓練して欠損した穴を特定します。以下はデータセットの画像例です。

我々は、トレーニングに使用される画像が95枚で、テストに使用される画像が20枚のデータセットを使用してモデルを訓練しました。以下のテーブルは、結果をまとめたものです。

評価結果
F1スコア 平均精度 総合リコール
0.468 0.750 0.340
トレーニング時間 トレーニングデータセット テストデータセット
1.791時間で訓練されました 1ラベル、95枚の画像 1ラベル、20枚の画像
ラベルごとのパフォーマンス
ラベル名 F1スコア テスト画像 精度 リコール 閾値(推定)
missing_hole 0.468 20 0.750 0.340 0.053

得られたモデルは高い精度を持っていますが、リコールが低いため、欠落があるホールをローカライズする際は正しい結果が出る一方で、実際には多くの欠落があるホールを見逃してしまっています。効果的な欠陥検出システムを構築するためには、リコールを改善する必要があります。このモデルの低いパフォーマンスは、高解像度のPCBの画像上で欠陥が小さいため、モデルが正常なピンの基準を持っていないことが原因かもしれません。

次に、PCBのサイズに応じて画像を4つまたは6つに分割し、健全なピンと欠落したホールの両方にラベルを付ける方法を検討します。以下は、分割された画像の例です。

我々は、トレーニングに使用される画像が524枚で、テストに使用される画像が106枚のデータセットを使用してモデルを訓練しました。トレーニングとテストに使用されるPCBはフルボードモデルと同じです。分割された健全なピンと欠落したホールの結果は、以下のテーブルに示されています。

評価結果
F1スコア 平均精度 総合リコール
0.967 0.989 0.945
トレーニング時間 トレーニングデータセット テストデータセット
2.118時間で訓練されました 2ラベル、524枚の画像 2ラベル、106枚の画像
ラベルごとのパフォーマンス
ラベル名 F1スコア テスト画像 精度 リコール 閾値(推定)
missing_hole 0.949 42 0.980 0.920 0.536
pin 0.984 106 0.998 0.970 0.696

両方の精度と再現率が大幅に改善されました。ズームインされたトリミングされた画像と健康なピンのモデルへの参照を使用してモデルをトレーニングすることが役立ちました。ただし、再現率はまだ92%であり、約8%の欠損穴を見逃し、欠陥を見逃す可能性があることを意味します。

次に、モデルのパフォーマンスをさらに向上させるために、2段階のモデルアプローチを探求します。

2つのステージモデルアプローチ

2段階モデルでは、ピンの検出用のモデルと、ズームインしたトリミングされたピンの画像のピンが欠損しているかどうかを検出するためのモデルの2つをトレーニングします。以下は、ピン検出データセットからの画像です。

このデータは、前の実験と同様に、PCBを4枚または6枚にトリミングしたものと似ています。今回は、ピンの有無に関係なくすべてのピンにラベルを付けます。このモデルを522枚の画像でトレーニングし、前の実験と同じトレーニングデータとテストデータの分割で108枚の画像でテストします。結果は次の表に示されています。

評価結果
F1スコア 平均適合率 全体の再現率
1.000 0.999 1.000
トレーニング時間 トレーニングデータセット テストデータセット
1.581時間でトレーニング完了 ラベル1、522枚の画像 ラベル1、108枚の画像
ラベルごとのパフォーマンス
ラベル名 F1スコア テスト画像 適合率 再現率 閾値
pin 1.000 108 0.999 1.000 0.617

この合成データセットでは、モデルはピンを完璧に検出します。

次に、欠落した穴を区別するためのモデルを構築します。欠落した穴のトリミングされた画像を使用して、モデルの第2ステージをトレーニングします。次の例に示すように、このモデルは前のモデルとは異なります。これは分類モデルであり、ピンが欠損しているかどうかを特定するという狭いタスクに焦点を当てています。

この第2ステージのモデルを16,624枚の画像でトレーニングし、前の実験と同じトレーニングデータとテストデータの分割で3,266枚でテストします。以下の表は、結果をまとめたものです。

評価結果
F1スコア 平均適合率 全体的な再現率
1.000 1.000 1.000
トレーニング時間 トレーニングデータセット テストデータセット
6.660時間でトレーニング済み 2つのラベル、16,624枚の画像 2つのラベル、3,266枚の画像
ラベル別のパフォーマンス
ラベル名 F1スコア テスト画像数 適合率 再現率 閾値
異常 1.000 88 1.000 1.000 0.960
正常 1.000 3,178 1.000 1.000 0.996

再び、この合成データセットで完璧な適合率と再現率を得ました。前回のピン検出モデルとこの二段階の欠損穴分類モデルを組み合わせることで、単一のステージモデルを上回るモデルを構築することができます。

以下の表は、私たちが行った実験をまとめたものです。

実験 タイプ 説明 F1スコア 適合率 再現率
1 1段階モデル フル画像上の欠損穴を検出するオブジェクト検出モデル 0.468 0.75 0.34
2 1段階モデル トリミングされた画像上の正常なピンと欠損穴を検出するオブジェクト検出モデル 0.967 0.989 0.945
3 2段階モデル ステージ1:すべてのピンのオブジェクト検出 1.000 0.999 1.000
ステージ2:正常なピンまたは欠損穴の画像分類 1.000 1.000 1.000
エンドツーエンドの平均 1.000 0.9995 1.000

推論パイプライン

この記事で説明したワンステージおよびツーステージのモデルを展開するために、以下のアーキテクチャを使用することができます。以下の主要なコンポーネントが関与しています:

ワンステージモデルの場合、入力画像をAPI Gatewayエンドポイントに送信し、基本的な画像前処理のためにLambdaを経由してRekognitionカスタムラベルでトレーニングされたモデルエンドポイントにルーティングします。私たちは、ワンステージモデルを試験的に探索しましたが、それらは欠落した穴のみを検出できるモデルと、欠落した穴と正常なピンを検出できるモデルです。

ツーステージモデルの場合、同様に画像をAPI Gatewayエンドポイントに送信し、Lambdaに続きます。Lambdaは、最初にオブジェクト検出モデル(Rekognitionカスタムラベルを使用してトレーニング)を呼び出し、関心領域を生成します。オリジナルの画像はLambda関数で切り抜かれ、切り抜かれた各画像の欠陥を検出するために別のRekognitionカスタムラベルの分類モデルに送信されます。

結論

この記事では、Rekognitionカスタムラベルを使用してPCBの欠落した穴を検出するためのワンステージおよびツーステージのモデルをトレーニングしました。さまざまなモデルの結果を報告しましたが、私たちの場合、ツーステージモデルが他のバリアントよりも優れた性能を発揮しました。他のドメインから高解像度のイメージがあるお客様には、ワンステージおよびツーステージのモデルでモデルのパフォーマンスをテストすることをお勧めします。また、以下の方法を検討して、ソリューションを拡張することもできます:

  • 実際のデータセットに対してスライディングウィンドウクロップ
  • 同じパイプラインでオブジェクト検出モデルを再利用
  • バウンディングボックス予測を使用した事前ラベリングワークフロー

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

バードの未来展望:よりグローバルで、よりビジュアル的で、より統合されたもの

「Bardのウェイトリストを終了し、より多くの地域をサポートするようになり、画像を導入し、パートナーアプリと連携すること...

機械学習

「オープンソースモデルと商用AI/ML APIの違い」

「最近数ヶ月間、おそらく多くの議論に遭遇したことでしょうそれは、大規模言語モデル(LLM)に対してオープンソースのAPIを...

機械学習

より強力な言語モデルが本当に必要なのでしょうか?

大規模な言語モデルはますます人気が高まっていますしかし、それらの開発には特定の課題にも直面することになりますGPTモデル...

人工知能

「GPT4Readability — リードミーをもう一度書く必要はありません」

複雑なPythonのコードベースをナビゲートすることは、特にプロジェクトに十分なドキュメンテーションがない場合には困難なタ...

人工知能

効率的な開発者ですか?それならAIがあなたの仕事を狙っています

開発における人間とAIの利点は、効果と効率の一致によるものです前者は曖昧で主観的ですが、後者は議論の余地がなくデータに...

データサイエンス

モデルの解釈のマスタリング:パーシャル依存プロットの包括的な解説

モデルの解釈方法を知っていることは、それが奇妙なことをしていないかを理解するために不可欠ですモデルをよりよく知ってい...