セマンティックセグメンテーションを使用して画像コンテンツを識別する - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

セマンティックセグメンテーションを使用して画像コンテンツを識別する

ピクセルレベルでイメージの内容を特定するには、Amazon SageMaker Ground Truth セマンティックセグメンテーションラベル付けタスクを使用します。セマンティックセグメンテーションのラベル付けジョブが指定されると、ワーカーはイメージ内のピクセルを定義済みのラベルまたはクラスのセットに分類します。Ground Truth は、単一および複数クラスのセマンティックセグメンテーションのラベル付けジョブをサポートします。Amazon SageMaker コンソールの Ground Truth セクションまたは CreateLabelingJobオペレーションを使用して、セマンティックセグメンテーションラベル付けジョブを作成します。

セグメント化する必要のある多数のオブジェクトを含むイメージでは、セグメント化にさらに時間がかかります。ワーカー (自社またはベンダーのスタッフ) がこれらのオブジェクトにより短時間、高精度でラベル付けできるように、Ground Truth には AI 支援の自動セグメンテーションツールが用意されています。詳細については、自動セグメンテーションツール を参照してください。

重要

このタスクタイプでは、独自のマニフェストファイルを作成する場合、"source-ref" を使用して、ラベル付けする Amazon S3 内の各イメージファイルの場所を特定します。詳細については、「入力データ」を参照してください。

セマンティックセグメンテーションラベル付けジョブを作成する (コンソール)

指示に従ってラベル付けジョブの作成 (コンソール)、 SageMaker コンソールでセマンティックセグメンテーションラベル付けジョブを作成する方法について説明します。ステップ 10 で、[Task category] (タスクカテゴリ) ドロップダウンメニューから [Image] (イメージ) を選択し、[Semantic segmentation] (セマンティックセグメンテーション) タスクタイプを選択します。

Ground Truth には、ラベル付けタスク用の次のようなワーカー UI が用意されています。コンソールでラベル付けジョブを作成するときは、ワーカーがジョブを実行できる手順と、ワーカーが選択できるラベルを指定します。

SageMaker コンソールでセマンティックセグメンテーションラベル付けジョブを作成する方法の例を示す Gif。

セマンティックセグメンテーションラベル付けジョブを作成する (API)

セマンティックセグメンテーションラベル付けジョブを作成するには、 オペレーション を使用します SageMaker APICreateLabelingJob。これにより、すべての に対してこのオペレーションAPIが定義されます AWS SDKs。このオペレーションでSDKsサポートされている言語固有のリストを確認するには、「」の「」セクションを参照してくださいCreateLabelingJob

リクエストを設定する際には、「ラベル付けジョブを作成 (API)」の指示に従ったうえで、以下のことを実行してください。

  • このタスクタイプの注釈前 Lambda 関数は PRE-SemanticSegmentation で終わります。リージョンの注釈前 Lambda PreHumanTaskLambdaArn を確認するには、ARN「」を参照してください。

  • このタスクタイプの注釈統合 Lambda 関数は ACS-SemanticSegmentation で終わります。リージョンの注釈統合 Lambda を検索するには、ARN「」を参照してくださいAnnotationConsolidationLambdaArn

以下は、米国東部 AWS SDK (バージニア北部) リージョンでラベル付けジョブを作成する Python (Boto3) リクエストの例です。赤色のすべてのパラメータを仕様とリソースに置き換えます。

response = client.create_labeling_job( LabelingJobName='example-semantic-segmentation-labeling-job, LabelAttributeName='label', InputConfig={ 'DataSource': { 'S3DataSource': { 'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json' } }, 'DataAttributes': { 'ContentClassifiers': [ 'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent', ] } }, OutputConfig={ 'S3OutputPath': 's3://bucket/path/file-to-store-output-data', 'KmsKeyId': 'string' }, RoleArn='arn:aws:iam::*:role/*, LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json', StoppingConditions={ 'MaxHumanLabeledObjectCount': 123, 'MaxPercentageOfInputDatasetLabeled': 123 }, HumanTaskConfig={ 'WorkteamArn': 'arn:aws:sagemaker:region:*:workteam/private-crowd/*', 'UiConfig': { 'UiTemplateS3Uri': 's3://bucket/path/worker-task-template.html' }, 'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-SemanticSegmentation, 'TaskKeywords': [ 'Semantic Segmentation', ], 'TaskTitle': 'Semantic segmentation task', 'TaskDescription': 'For each category provided, segment out each relevant object using the color associated with that category', 'NumberOfHumanWorkersPerDataObject': 123, 'TaskTimeLimitInSeconds': 123, 'TaskAvailabilityLifetimeInSeconds': 123, 'MaxConcurrentTaskCount': 123, 'AnnotationConsolidationConfig': { 'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-SemanticSegmentation' }, Tags=[ { 'Key': 'string', 'Value': 'string' }, ] )

セマンティックセグメンテーションラベル付けジョブのテンプレートの提供

を使用してラベル付けジョブを作成する場合はAPI、 でワーカータスクテンプレートを指定する必要がありますUiTemplateS3Uri。次のテンプレートをコピーして変更します。short-instructionsfull-instructionsheader のみ変更します。

このテンプレートを S3 にアップロードし、URIこのファイルの S3 を で指定しますUiTemplateS3Uri

<script src="https://assets.crowd.aws/crowd-html-elements.js"></script> <crowd-form> <crowd-semantic-segmentation name="crowd-semantic-segmentation" src="{{ task.input.taskObject | grant_read_access }}" header="Please segment out all pedestrians." labels="{{ task.input.labels | to_json | escape }}" > <full-instructions header="Segmentation instructions"> <ol><li><strong>Read</strong> the task carefully and inspect the image.</li> <li><strong>Read</strong> the options and review the examples provided to understand more about the labels.</li> <li><strong>Choose</strong> the appropriate label that best suits an object and paint that object using the tools provided.</li></ol> </full-instructions> <short-instructions> <h2><span style="color: rgb(0, 138, 0);">Good example</span></h2> <p>Enter description to explain a correctly done segmentation</p> <p><br></p><h2><span style="color: rgb(230, 0, 0);">Bad example</span></h2> <p>Enter description of an incorrectly done segmentation</p> </short-instructions> </crowd-semantic-segmentation> </crowd-form>

セマンティックセグメンテーション出力データ

セマンティックセグメンテーションラベル付けジョブを作成すると、 コンソールのジョブ概要セクションの APIまたは 出力データセットの場所フィールドを使用するときに、 S3OutputPathパラメータで指定された Amazon S3 バケットに出力データが配置されます。

Ground Truth によって生成される出力マニフェストファイルと、Ground Truth が出力データを保存するために使用するファイル構造の詳細については、「ジョブ出力データのラベル付け」を参照してください。

セマンティックセグメンテーションラベル付けジョブの出力マニフェストファイルの例については、「3D 点群セマンティックセグメンテーション出力」を参照してください。