サポート終了通知: 2025 年 10 月 31 日、 AWS は Amazon Lookout for Vision のサポートを終了します。2025 年 10 月 31 日以降、Lookout for Vision コンソールまたは Lookout for Vision リソースにアクセスできなくなります。詳細については、このブログ記事 を参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
モデルトレーニングのトラブルシューティング
マニフェストファイルやトレーニング画像に問題があると、モデルトレーニングが失敗する場合があります。モデルを再トレーニングする前に、発生する可能性がある以下の問題をチェックしてください。
異常ラベルの色がマスク画像の異常の色と一致しない
画像セグメンテーションモデルをトレーニングする場合、マニフェストファイル内の異常ラベルの色はマスク画像の色と一致しなければなりません。マニフェストファイルのイメージのJSON行には、異常ラベルに対応する色を Amazon Lookout for Vision に伝えるメタデータ (internal-color-map
) があります。例えば、次のJSON行のscratch
異常ラベルの色は です#2ca02c
。
{ "source-ref": "s3://
path-to-image
", "anomaly-label
": 1, "anomaly-label
-metadata": { "class-name": "anomaly
", "creation-date": "2021-10-12T14:16:45.668
", "human-annotated": "yes
", "job-name": "labeling-job/classification-job
", "type": "groundtruth/image-classification", "confidence":1
}, "anomaly-mask
-ref": "s3://path-to-image
", "anomaly-mask
-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "hex-color": "#ffffff", "confidence": 0.0 }, "1
": { "class-name": "scratch
", "hex-color": "#2ca02c
", "confidence":0.0
}, "2
": { "class-name": "dent
", "hex-color": "#1f77b4
", "confidence":0.0
} }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes
", "creation-date": "2021-11-23T20:31:57.758889
", "job-name": "labeling-job/segmentation-job
" } }
マスク画像の色が hex-color
内の値と一致しない場合、トレーニングは失敗し、マニフェストファイルを更新する必要があります。
マニフェストファイル内のカラー値を更新するには
-
テキストエディタを使って、データセットを作成したマニフェストファイルを開きます。
-
JSON 行 (イメージ) ごとに、
internal-color-map
フィールド内の色 (hex-color
) がマスクイメージ内の異常ラベルの色と一致することを確認します。マスク画像の位置は
フィールドから取得できます。画像をコンピューターにダウンロードし、次のコードを使用して画像内の色を取得します。anomaly-mask
-reffrom PIL import Image img = Image.open('
path to local copy of mask file
') colors = img.convert('RGB').getcolors() #this converts the mode to RGB for color in colors: print('#%02x%02x%02x' % color[1]) -
色割り当てが正しくないイメージごとに、イメージのJSON行の
hex-color
フィールドを更新します。 -
更新されたマニフェストファイルを保存します。
-
既存のデータセットをプロジェクトから削除します。
-
更新されたマニフェストファイルにより、プロジェクトに新しいデータセットを作成します。
-
モデルをトレーニングします。
または、ステップ 5 と 6 では、 UpdateDatasetEntriesオペレーションを呼び出し、更新するイメージに更新されたJSON行を指定することで、データセット内の個々のイメージを更新できます。サンプルコードについては、「画像の追加 (SDK)」を参照してください。
マスクイメージが PNG 形式ではありません
イメージセグメンテーションモデルをトレーニングする場合は、マスクイメージは PNG 形式である必要があります。マニフェストファイルからデータセットを作成する場合は、 で参照するマスクイメージ
が PNG形式であることを確認します。マスクイメージがPNGフォーマットされていない場合は、PNGフォーマットに変換する必要があります。画像ファイルの拡張子を anomaly-mask
-ref.png
に変更するだけでは不十分です。
Amazon Lookout for Vision コンソールまたは SageMaker Ground Truth ジョブで作成したマスクイメージは、 PNG 形式で作成されます。これらの画像の形式を変更する必要はありません。
マニフェストファイルのフォーマットPNG以外のマスクイメージを修正するには
テキストエディタを使って、データセットを作成したマニフェストファイルを開きます。
各JSON行 (イメージ) で、 がPNGフォーマットイメージ
を参照していることを確認します。詳細については、「マニフェストファイルの作成」を参照してください。anomaly-mask
-ref更新されたマニフェストファイルを保存します。
既存のデータセットをプロジェクトから削除します。
更新されたマニフェストファイルにより、プロジェクトに新しいデータセットを作成します。
モデルをトレーニングします。
セグメンテーションラベルまたは分類ラベルが不正確または欠落している
ラベルが欠けていたり、不正確だったりすると、トレーニングが失敗したり、モデルのパフォーマンスが低下したりする可能性があります。データセット内のすべての画像にラベルを付けることをお勧めします。すべての画像にラベルを付けず、モデルトレーニングが失敗したり、モデルのパフォーマンスが悪い場合は、さらに画像を追加してください。
以下をチェックしてください:
-
セグメンテーションモデルを作成する場合、マスクはデータセット画像での異常をしっかりとカバーする必要があります。データセット内のマスクをチェックするには、プロジェクトのデータセットギャラリーで画像を表示します。必要に応じて、画像マスクを再描画します。詳細については、「画像のセグメント化 (コンソール)」を参照してください。
-
データセット画像に含まれる異常画像が分類されていることを確かめてください。画像セグメンテーションモデルを作成する場合は、異常画像に異常ラベルと画像マスクが付いていることを確かめてください。
作成するモデルのタイプ (セグメンテーションまたは分類) を覚えておくことは重要です。分類モデルでは、異常画像の画像マスクは必要ありません。分類モデル用のデータセット画像にはマスクを追加しないでください。
見つからないラベルを更新するには
プロジェクトのデータセットギャラリーを開きます。
-
ラベルなしの画像をフィルターして、ラベルなしの画像を確認します。
-
次のいずれかを行います:
画像分類モデルを作成する場合は、ラベルが付いていない各画像を分類します。
画像セグメンテーションモデルを作成する場合は、ラベルなしの各画像を分類してセグメント化します。
画像セグメンテーションモデルを作成する場合は、分類された異常画像でマスクが欠落しているものすべてにマスクを追加します。
モデルをトレーニングします。
不適切なラベルや欠落しているラベルを修正しない場合は、ラベル付けされた画像をさらに追加するか、影響を受ける画像をデータセットから削除することをお勧めします。コンソールから、または UpdateDatasetEntriesオペレーションを使用して、さらに追加できます。詳細については、「データセットへの画像の追加」を参照してください。
画像を削除する場合は、データセットから画像を削除できないため、影響を受けた画像を含まないデータセットを再作成する必要があります。詳細については、「データセットからの画像の削除」を参照してください。