ラベルの検証と調整 - Amazon SageMaker

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

ラベルの検証と調整

データセットのラベルを検証する必要がある場合、Amazon SageMaker Ground Truth には、ラベルが正しいことを作業者に確認させたり、以前のラベルを調整したりする機能があります。

これらのタイプのジョブは、次の 2 つのカテゴリに分類されます。

  • ラベルの検証 - ワーカーは、既存のラベルが正しいかどうかを示したり、品質を評価したりして、その理由を説明するコメントを追加できます。ワーカーはラベルを変更したり調整したりすることはできません。

    3D 点群または動画フレームのラベル調整ジョブまたは検証ジョブを作成する場合、ワーカーがラベルカテゴリ属性 (3D 点群セマンティックセグメンテーションではサポートされていません) とフレーム属性を編集可能にするように選択できます。

  • ラベル調整 - ワーカーは、前の注釈と、該当する場合は、ラベルカテゴリとフレーム属性を調整して修正します。

次の Ground Truth 組み込みタスクタイプは、調整と検証のラベル付けジョブをサポートします。

  • 境界ボックス

  • セマンティックセグメンテーション

  • 3D 点群オブジェクト検出、3D 点群オブジェクト追跡、3D 点群セマンティックセグメンテーション

  • すべての動画フレームオブジェクト検出と動画フレームオブジェクト追跡のタスクタイプ (境界ボックス、ポリライン、ポリゴン、特徴点)

ヒント

3D 点群と動画フレームのラベル付け検証ジョブの場合は、新しいラベルカテゴリ属性またはフレーム属性をラベル付けジョブに追加することをお勧めします。ワーカーは、これらの属性を使用して個々のラベルまたはフレーム全体を検証できます。ラベルカテゴリとフレーム属性の詳細について、3D 点群の場合は「ワーカーユーザーインターフェイス (UI)」を、動画フレームの場合は「ワーカーユーザーインターフェイス (UI)」を参照してください。

ラベルの検証と調整のジョブは、 SageMaker コンソールまたは API を使用して開始できます。

検証ラベル作成ジョブと調整ラベル作成ジョブを作成するための要件

ラベルの検証ジョブまたは調整ジョブを作成するには、次の条件を満たす必要があります。

  • 非ストリーミングのラベル付けジョブの場合: 使用する入力マニフェストファイルには、調整するラベルのラベル属性名 (LabelAttributeName)が含まれている必要があります。正常に完了したラベル付けジョブをチェーンすると、出力マニフェストファイルが新しいチェーンジョブの入力マニフェストファイルとして使用されます。Ground Truth が各タスクタイプに対して生成する出力マニフェストファイルの形式の詳細については、「出力データ」を参照してください。

    ストリーミングラベル付けジョブの場合: 調整または検証ラベル付けジョブの Amazon SNS 入力トピックに送信した Amazon SNS メッセージには、調整または検証するラベルのラベル属性名が含まれている必要があります。ストリーミングラベリングジョブを使用して調整または検証ラベリングジョブを作成する方法の例については、のこの Jupyter Notebook の例を参照してください。 GitHub

  • 検証または調整ラベル付けジョブのタスクタイプは、境界ボックスまたはセマンティックセグメンテーションイメージラベルの検証に イメージラベルの検証 タスクタイプを使用している場合を除き、元のジョブのタスクタイプと同じである必要があります。動画フレームタスクタイプの要件の詳細については、次の箇条書きを参照してください。

  • 動画フレーム注釈の検証ジョブと調整ジョブでは、前のラベル付けジョブから注釈を作成するのに使用したのと同じ注釈タスクタイプを使用する必要があります。例えば、動画フレームオブジェクト検出ジョブを作成してワーカーにオブジェクトの周りに境界ボックスを描画させてから、動画オブジェクト検出の調整ジョブを作成する場合は、境界ボックスを注釈タスクタイプとして指定する必要があります。動画フレーム注釈タスクタイプの詳細については、「タスクタイプ」を参照してください。

  • 調整または検証ラベル付けジョブに選択したタスクタイプは、監査ワークフローをサポートしている必要があります。次の Ground Truth 組み込みタスクタイプでは、調整および検証ラベル付けジョブをサポートしています。境界ボックス、セマンティックセグメンテーション、3D 点群オブジェクト検出、3D 点群オブジェクト追跡、3D 点群セマンティックセグメンテーション、すべての動画フレームオブジェクト検出および動画フレームオブジェクト追跡タスクタイプ (境界ボックス、ポリライン、ポリゴン、特徴点)。

ラベルの検証ジョブを作成する (コンソール)

境界ボックスとセマンティックセグメンテーションラベル付けジョブは、コンソールのラベル検証タスクタイプを選択して作成します。3D 点群と動画フレームタスクタイプの検証ジョブを作成するには、元のラベル付けジョブと同じタスクタイプを選択し、既存のラベルを表示するように選択する必要があります。次のセクションのいずれかを使用して、タスクタイプのラベル検証ジョブを作成します。

イメージラベルの検証ジョブを作成する (コンソール)

コンソールを使用して境界ボックスまたはセマンティックセグメンテーションの検証ジョブを作成するには、次の手順を実行します。この手順は、既に境界ボックスまたはセマンティックセグメンテーションのラベル付けジョブを作成し、そのステータスが [完了] であることを前提としています。これは、検証するラベルを作成するラベル付けジョブです。

イメージラベル検証ジョブを作成するには、次の手順を実行します。
  1. https://console.aws.amazon.com/sagemaker/ SageMaker のコンソールを開き、[ラベリングジョブ] を選択します。

  2. 新しいラベル付けジョブを開始するには、前のジョブを連鎖するかゼロから開始し、ラベル付けされたデータオブジェクトを含む入力マニフェストを指定します。

  3. [Task type] (タスクタイプ) ペインで、[Label verification] (ラベル検証) を選択します。

  4. [Next] (次へ) を選択します。

  5. [ワーカー] セクションで、使用するワークフォースのタイプを選択します。ワークフォースオプションの詳細については、「ワークフォースの作成と管理」を参照してください。

  6. (オプション) ワークフォースを選択したら、[Task timeout] (タスクのタイムアウト) と[Task expiration time] (タスクの有効期限) を指定します。

  7. [Display existing labels] (既存のラベルを表示) ペインに、マニフェストで使用可能なラベル属性名が表示されます。ワーカーに検証させるラベルを特定するラベル属性名を選択します。Ground Truth がマニフェストを分析してこれらの値の検出と入力を試みますが、正しい値の設定が必要になる場合があります。

  8. ツールデザイナーの指示領域を使用して、前のラベル作成者がどのような作業を依頼されたか、および現在の検証者が確認する必要がある内容に関するコンテキストを提供します。

    ワーカーが検証するラベルを選択するための新しいラベルを追加できます。例えば、ワーカーに画質の検証を依頼する場合は、[Clear] (クリア) と [Blurry] (ぼやけている) を追加します。。ワーカーには、選択内容を説明するコメントを追加するオプションもあります。

  9. [See preview] (プレビューを表示) を選択して、ツールが以前のラベルを正しく表示していることを確認し、ラベル検証タスクを明確に示します。

  10. [作成] を選択します。これにより、ラベル付けジョブが作成され、開始されます。

点群または動画フレームラベルの検証ジョブを作成する (コンソール)

次の手順に従って、コンソールを使用して 3D 点群または動画フレーム検証ジョブを作成します。この手順では、検証するラベルのタイプを生成するタスクタイプを使用し、ラベル付けジョブを既に作成しており、そのステータスが [完了] であることを前提としています。

イメージラベル検証ジョブを作成するには、次の手順を実行します。
  1. https://console.aws.amazon.com/sagemaker/ SageMaker でコンソールを開き、[ラベル付けジョブ] を選択します。

  2. 新しいラベル付けジョブを開始するには、前のジョブを連鎖するかゼロから開始し、ラベル付けされたデータオブジェクトを含む入力マニフェストを指定します。

  3. [Task type] (タスクタイプ) ペインで、チェーンしたラベル付けジョブと同じタスクタイプを選択します。例えば、元のラベル付けジョブが動画フレームオブジェクト検出特徴点ラベル付けジョブだった場合は、そのタスクタイプを選択します。

  4. [Next] (次へ) を選択します。

  5. [ワーカー] セクションで、使用するワークフォースのタイプを選択します。ワークフォースオプションの詳細については、「ワークフォースの作成と管理」を参照してください。

  6. (オプション) ワークフォースを選択したら、[Task timeout] (タスクのタイムアウト) と[Task expiration time] (タスクの有効期限) を指定します。

  7. [Display existing labels] (既存のラベルを表示) の横にあるスイッチを切り替えます。

  8. [Verification] (検証) を選択します。

  9. [Label attribute name] (ラベル属性名) には、マニフェストから、検証のために表示するラベルに対応する名前を選択します。前の画面で選択したタスクタイプに一致するラベルのラベル属性名のみが表示されます。Ground Truth がマニフェストを分析してこれらの値の検出と入力を試みますが、正しい値の設定が必要になる場合があります。

  10. ツールデザイナーの指示領域を使用して、前のラベル作成者がどのような作業を依頼されたか、および現在の検証者が確認する必要がある内容に関するコンテキストを提供します。

    新しいラベルを変更または追加することはできません。ラベル属性またはフレーム属性は削除、修正、追加できます。新しいラベルカテゴリ属性またはフレーム属性をラベル付けジョブに追加することをお勧めします。ワーカーは、これらの属性を使用して個々のラベルまたはフレーム全体を検証できます。

    デフォルトでは、ワーカーは既存のラベルカテゴリ属性とフレーム属性を編集できません。ラベルカテゴリまたはフレーム属性を編集可能にする場合は、その属性で [Allow workers to edit this attribute] (ワーカーにこの属性の編集を許可する) チェックボックスをオンにします。

    ラベルカテゴリとフレーム属性の詳細について、3D 点群の場合は「ワーカーユーザーインターフェイス (UI)」を、動画フレームの場合は「ワーカーユーザーインターフェイス (UI)」を参照してください。

  11. [See preview] (プレビューを表示) を選択して、ツールが以前のラベルを正しく表示していることを確認し、ラベル検証タスクを明確に示します。

  12. [作成] を選択します。これにより、ラベル付けジョブが作成され、開始されます。

ラベル調整ジョブを作成する (コンソール)

次のセクションのいずれかを使用して、タスクタイプのラベル検証ジョブを作成します。

イメージラベル調整ジョブを作成する (コンソール)

コンソールを使用して境界ボックスまたはセマンティックセグメンテーションの調整ラベルジョブを作成するには、次の手順を実行します。この手順は、既に境界ボックスまたはセマンティックセグメンテーションのラベル付けジョブを作成し、そのステータスが [完了] であることを前提としています。これは、調整するラベルを作成するラベル付けジョブです。

イメージラベル調整ジョブを作成するには (コンソール)
  1. https://console.aws.amazon.com/sagemaker/ SageMaker でコンソールを開き、[ラベル付けジョブ] を選択します。

  2. 新しいラベル付けジョブを開始するには、前のジョブを連鎖するかゼロから開始し、ラベル付けされたデータオブジェクトを含む入力マニフェストを指定します。

  3. 元のラベル付けジョブと同じタスクタイプを選択します。

  4. [Next] (次へ) を選択します。

  5. [ワーカー] セクションで、使用するワークフォースのタイプを選択します。ワークフォースオプションの詳細については、「ワークフォースの作成と管理」を参照してください。

  6. (オプション) ワークフォースを選択したら、[Task timeout] (タスクのタイムアウト) と[Task expiration time] (タスクの有効期限) を指定します。

  7. タイトルの横の矢印を選択して、[Existing-labels display options] (既存のラベルの表示オプション) を展開します。

  8. [I want to display existing labels from the dataset for this job (このジョブのデータセットから既存のラベルを表示します)] の横にあるチェックボックスをオンにします。

  9. [Label attribute name] (ラベル属性名) は、マニフェストから、調整のために表示するラベルに対応する名前を選択します。前の画面で選択したタスクタイプに一致するラベルのラベル属性名のみが表示されます。Ground Truth がマニフェストを分析してこれらの値の検出と入力を試みますが、正しい値の設定が必要になる場合があります。

  10. ツールデザイナーの指示領域を使用して、前のラベル作成者がどのような作業を依頼されたか、および現在の検証者が確認および調整する必要がある内容に関するコンテキストを提供します。

  11. [See preview] (プレビューを表示) を選択して、ツールが以前のラベルを正しく表示していることを確認し、タスクを明確に示します。

  12. [作成] を選択します。これにより、ラベル付けジョブが作成され、開始されます。

点群または動画フレームラベル調整ジョブを作成する (コンソール)

次の手順に従って、コンソールを使用して 3D 点群または動画フレーム調整ジョブを作成します。この手順では、検証するラベルのタイプを生成するタスクタイプを使用し、ラベル付けジョブを既に作成しており、そのステータスが [完了] であることを前提としています。

3D 点群または動画フレームのラベル調整ジョブを作成するには (コンソール)
  1. SageMaker コンソールを開き、[ラベル付けジョブ] を選択します。https://console.aws.amazon.com/sagemaker/

  2. 新しいラベル付けジョブを開始するには、前のジョブを連鎖するかゼロから開始し、ラベル付けされたデータオブジェクトを含む入力マニフェストを指定します。

  3. 元のラベル付けジョブと同じタスクタイプを選択します。

  4. [Display existing labels] (既存のラベルを表示) の横にあるスイッチを切り替えます。

  5. [Adjustment] (調整) を選択します。

  6. [Label attribute name] (ラベル属性名) は、マニフェストから、調整のために表示するラベルに対応する名前を選択します。前の画面で選択したタスクタイプに一致するラベルのラベル属性名のみが表示されます。Ground Truth がマニフェストを分析してこれらの値の検出と入力を試みますが、正しい値の設定が必要になる場合があります。

  7. ツールデザイナーの指示領域を使用して、前のラベル作成者がどのような作業を依頼されたか、および現在の調整者が確認する必要がある内容に関するコンテキストを提供します。

    既存のラベルを削除または変更できませんが、新しいラベルを追加することはできます。ラベル属性またはフレーム属性は削除、修正、追加できます。

    デフォルトでは、ワーカーは既存のラベルカテゴリ属性とフレーム属性を編集できます。ラベルカテゴリまたはフレーム属性を編集不可にする場合は、その属性で [Allow workers to edit this attribute] (ワーカーにこの属性の編集を許可する) チェックボックスをオフにします。

    ラベルカテゴリとフレーム属性の詳細について、3D 点群の場合は「ワーカーユーザーインターフェイス (UI)」を、動画フレームの場合は「ワーカーユーザーインターフェイス (UI)」を参照してください。

  8. [See preview] (プレビューを表示) を選択して、ツールが以前のラベルを正しく表示していることを確認し、タスクを明確に示します。

  9. [作成] を選択します。これにより、ラベル付けジョブが作成され、開始されます。

ラベルの検証ジョブまたは調整ジョブを開始する (API)

正常に完了したジョブを連鎖させるか、CreateLabelingJob オペレーションを使用して新しいジョブを最初から開始することで、ラベルの検証ジョブまたは調整ジョブを開始します。この手順は、CreateLabelingJob を使用して新しいラベル付けジョブを設定する手順に少し変更があるだけで、ほぼ同じです。次のセクションでは、ラベル付けジョブをチェーンして調整または検証ラベル付けジョブを作成するために必要な変更について説明します。

Ground Truth API を使用して調整または検証のラベル付けジョブを作成するときは、元のラベル付けジョブとは異なる LabelAttributeName を使用する必要があります。元のラベル付けジョブは、調整または検証するラベルを作成するために使用するジョブです。

重要

CreateLabelingJobLabelCategoryConfigS3Uri で調整または検証ジョブに指定するラベルカテゴリの設定ファイルには、元のラベル付けジョブで使用したのと同じラベルが含まれている必要があります。新しいラベルを追加することはできます。3D 点群と動画フレームのジョブでは、ラベルカテゴリ設定ファイルに新しいラベルカテゴリとフレーム属性を追加できます。

境界ボックスとセマンティックセグメンテーション

境界ボックスまたはセマンティックセグメンテーションラベルの検証ジョブまたは調整ジョブを作成するには、次のガイドラインに従って CreateLabelingJob オペレーションで API 属性を指定します。

  • LabelAttributeName パラメータを使用して、検証済みラベルや調整済みラベルに使用する出力ラベル名を指定します。元のラベル付けジョブに使用されたものとは異なる LabelAttributeName を使用する必要があります。

  • ジョブを連鎖させる場合は、調整または検証する対象である以前のラベル付けジョブのラベルをカスタム UI テンプレートで指定します。カスタムテンプレートを作成する方法については、「カスタムワーカータスクテンプレートを作成する」を参照してください。

    UI UiTemplateS3Uriテンプレートの場所をパラメーターで特定します。 SageMaker には、カスタムテンプレートで古いラベルを表示するために使用できるウィジェットが用意されています。次のいずれかの crowd 要素で initial-value 属性を使用して、検証または調整を必要とするラベルを抽出し、これをタスクテンプレートに含めます。

    • crowd-semantic-segmentation - この crowd 要素をカスタム UI タスクテンプレートで使用して、検証または調整する必要があるセマンティックセグメンテーションのラベルを指定します。

    • crowd-bounding-box - この crowd 要素をカスタム UI タスクテンプレートで使用して、検証または調整する必要がある境界ボックスのラベルを指定します。

  • LabelCategoryConfigS3Uri パラメータには、前のラベル付けジョブと同じラベルカテゴリが含まれている必要があります。

  • PreHumanTaskLambdaArnAnnotationConsolidationLambdaArnに、境界ボックスまたはセマンティックセグメンテーション調整または検証の Lambda ARN を使用します。

    • 境界ボックスの場合、調整ラベル付けジョブの Lambda 関数 ARN は AdjustmentBoundingBox で終わり、検証 Lambda 関数 ARN は VerificationBoundingBox で終わります。

    • セマンティックセグメンテーションの場合、調整ラベル付けジョブ Lambda 関数 ARN は AdjustmentSemanticSegmentation で終わり、検証 Lambda 関数 ARN は VerificationSemanticSegmentation で終わります。

3D 点群と動画フレーム

  • LabelAttributeName パラメータを使用して、検証済みラベルや調整済みラベルに使用する出力ラベル名を指定します。元のラベル付けジョブに使用されたものとは異なる LabelAttributeName を使用する必要があります。

  • 元のラベル付けジョブで使用したヒューマンタスク UI Amazon リソースネーム (ARN) (HumanTaskUiArn) を使用する必要があります。サポートされている ARN を確認するには、「HumanTaskUiArn」 を参照してください。

  • ラベルカテゴリ設定ファイルでは、auditLabelAttributeName パラメータで調整または検証ラベル付けジョブを作成するために使用する、以前のラベル付けジョブのラベル属性名 (LabelAttributeName) を指定する必要があります。

  • ラベル付けジョブが検証または調整のラベル付けジョブのどちらであるかを、LabelCategoryConfigS3Uri パラメータで識別したラベルカテゴリの設定ファイルの editsAllowed パラメータを使用して指定する必要があります。

    • 検証ラベル付けジョブの場合は、editsAllowed パラメータを使用してすべてのラベルを変更できないことを指定する必要があります。labels の各エントリで、editsAllowed"none" に設定します。必要に応じて、ワーカーがラベルカテゴリ属性とフレーム属性を調整できるかどうかを指定できます。

    • 必要に応じて、調整ラベル付けジョブでは、editsAllowed パラメータを使用して、ワーカーが変更できる、または変更できないラベル、ラベルカテゴリ属性、フレーム属性を指定できます。このパラメータを使用しない場合、すべてのラベル、ラベルカテゴリ属性、フレーム属性が調整可能になります。

    editsAllowed パラメータとラベルカテゴリ設定ファイルの設定については、「ラベルカテゴリ設定ファイルスキーマ」を参照してください。

  • 調整と検証のラベル付けジョブの両方で、PreHumanTaskLambdaArnAnnotationConsolidationLambdaArn に3D 点群または動画フレーム調整の Lambda ARN を使用します。

    • 3D 点群の場合、調整と検証のラベル付けジョブの Lambda 関数 ARN は、3D 点群のセマンティックセグメンテーション、オブジェクト検出、オブジェクト追跡のそれぞれで、 Adjustment3DPointCloudSemanticSegmentationAdjustment3DPointCloudObjectTrackingAdjustment3DPointCloudObjectDetection で終わります。

    • 動画フレームの場合、調整と検証のラベル付けジョブの Lambda 関数 ARN は、動画フレームオブジェクト検出とオブジェクト追跡のそれぞれで、AdjustmentVideoObjectDetectionAdjustmentVideoObjectTracking で終わります。

Ground Truth は、ラベル検証ジョブまたは調整ジョブからの出力データを、CreateLabelingJob オペレーションの S3OutputPath のパラメータで指定した S3 バケットに保存します。ラベルの検証ジョブや調整ジョブからの出力データの詳細については、「出力マニフェストにおけるラベルの検証データと調整データ」を参照してください。

出力マニフェストにおけるラベルの検証データと調整データ

Amazon SageMaker Ground Truth は、ラベルのメタデータ内の出力マニフェストにラベル検証データを書き込みます。メタデータに 2 つのプロパティが追加されます。

  • groundtruth/label-verification 値を持つ type プロパティ。

  • comment 値の配列を持つ worker-feedback プロパティ。このプロパティは、ワーカーがコメントを入力したときに追加されます。コメントがない場合、このフィールドは表示されません。

次の出力マニフェスト例は、ラベルの検証データがどのように表示されるかを示しています。

{ "source-ref":"S3 bucket location", "verify-bounding-box":"1", "verify-bounding-box-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "worker-feedback": [ {"comment": "The bounding box on the bird is too wide on the right side."}, {"comment": "The bird on the upper right is not labeled."} ] } }

調整タスクのワーカー出力は、元のタスクのワーカー出力に似ていますが、調整された値と調整の有無を示す値 (adjusted または unadjusted) を持つ adjustment-status プロパティが含まれる点が異なります。

他のさまざまなタスクの出力例については、「出力データ」を参照してください。

注意事項と考慮事項

ラベルの検証ジョブや調整ジョブを作成するときに期待どおりの動作を得るには、入力データを慎重に検証します。

  • イメージデータを使用している場合は、マニフェストファイルに 16 進数の RGB カラー情報が含まれていることを確認します。

  • 処理コストを節約するには、ラベル付けジョブの入力マニフェストに不要なオブジェクトを含めないように、データをフィルターします。

  • 入力データが正しく処理されるように、必要な Amazon S3 アクセス許可を追加します。

Ground Truth API を使用して調整または検証のラベル付けジョブを作成するときは、元のラベル付けジョブとは異なる LabelAttributeName を使用する必要があります

セマンティックセグメンテーションジョブの色情報要件

検証タスクや調整タスクで色情報を適切に再現するには、マニフェストに 16 進数の RGB 色情報が必要です (例: 白の場合は #FFFFFF)。セマンティックセグメンテーションの検証ジョブや調整ジョブを設定する場合、ツールはマニフェストを調べて、この情報が存在するかどうかを判断します。見つからない場合、Amazon SageMaker Ground Truth はエラーメッセージを表示し、ジョブセットアップを終了します。

セマンティックセグメンテーションツールの以前の反復では、カテゴリの色情報が 16 進数の RGB 形式で出力マニフェストに出力されませんでした。この機能は、検証ワークフローと調整ワークフローの導入と同時に出力マニフェストに導入されました。したがって、古い出力マニフェストはこの新しいワークフローと互換性がありません。

ジョブを開始する前にデータをフィルターする

Amazon SageMaker Ground Truth は、入力マニフェスト内のすべてのオブジェクトを処理します。部分的にラベル付けされたデータセットがある場合は、入力マニフェストで Amazon S3 Select クエリ を使用してカスタムマニフェストを作成できます。ラベル付けされていないオブジェクトは個別に失敗しますが、ジョブが失敗することはなく、処理コストが発生する場合があります。検証しないオブジェクトをフィルターで除外すると、コストが削減されます。

コンソールを使用して検証ジョブを作成する場合は、コンソールに用意されているフィルタリングツールを使用できます。API を使用してジョブを作成する場合は、必要に応じてデータのフィルタリングをワークフローの一部にします。