「高解像度画像を使用したAmazon Rekognitionカスタムラベルモデルによる欠陥検出」
「高解像度画像での欠陥検出におけるAmazon Rekognitionのカスタムラベルモデルの活用」
高解像度の画像は、衛星画像からドローンやDLSRカメラまで、現代の世界で非常に一般的です。この画像から、自然災害の被害や製造装置の異常、プリント基板(PCB)や半導体などの非常に小さな欠陥(例えば、欠陥のある部分)の損傷を捉えることができます。しかし、高解像度の画像を使用して異常検出モデルを構築することは挑戦であり、現代のコンピュータビジョンモデルは通常、学習および推論のために画像の解像度を下げてメモリに収めます。画像の解像度を大幅に低下させると、欠陥に関連する視覚情報が劣化または完全に失われる可能性があります。
これらの課題に対処するためのアプローチの1つは、2段階のモデルを構築することです。ステージ1のモデルは関心領域を検出し、ステージ2のモデルは関心領域内の欠陥を検出することで、小さな欠陥のために十分な解像度を維持します。
この記事では、Amazon Rekognition Custom Labelsを使用して効果的な2段階の欠陥検出システムを構築する方法と、1段階のモデルとの比較結果について説明します。なお、いくつかの1段階のモデルは、低い解像度やリサイズされた画像の解像度でも効果的であり、他のモデルは小さなバッチで大きな画像を処理することができる場合があります。
ソリューションの概要
この用途では、合成的に生成された欠損した穴のピンを含むPCBの画像データセットを使用します。以下の例に示すように、ピンの欠陥がある画像が含まれています。
- 私たちはハイパーリアルな人物画像を生成できるのか? このAI論文は、HyperHumanと呼ばれるテキストから画像へのモデルでの飛躍を提案しています
- 「マシンに思いやりを持たせる:NYU教授が責任あるAIについて語る」
- 即座のハッキングとLLMの誤用
我々はこのデータセットを使用して、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 |
推論パイプライン
この記事で説明したワンステージおよびツーステージのモデルを展開するために、以下のアーキテクチャを使用することができます。以下の主要なコンポーネントが関与しています:
- Amazon API Gateway
- AWS Lambda
- Amazon Rekognitionのカスタムエンドポイント
ワンステージモデルの場合、入力画像を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!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 『ランチェーンでチェーンを使用するための包括的ガイド』
- 「勾配降下法:数学を用いた最適化への山岳トレッカーのガイド」
- M42がMed42を導入:医療知識へのアクセス拡大のためのオープンアクセスクリニカル大規模言語モデル(LLM)
- 「Amazon Rekognition Custom LabelsとAWS Step Functionsを使用して、PurinaのPetfinderアプリケーションのペットプロファイルを最適化する」
- 「大規模言語モデルにおける早期割れに打ち勝てるか?Google AIがパフォーマンス向上のためにバッチキャリブレーションを提案」
- 「NVIDIAは創造的AIの台頭に対応するため、ロボティクスプラットフォームを拡大する」
- 「AutoGen:次世代の大規模言語モデルアプリケーションの動力源」