翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ラベル付けジョブの出力データ
ラベル付けジョブからの出力は、コンソールまたは CreateLabelingJob オペレーションの呼び出しで指定した Amazon S3 の場所に配置されます。ワーカーが 1 つ以上のタスクを送信したとき、またはタスクの有効期限が切れたときに、出力データがこの場所に表示されます。ワーカーがタスクを送信した後、またはタスクの有効期限が切れた後、Amazon S3 に出力データが表示されるまでに数分かかる場合があります。
出力データファイルの各行はマニフェストファイルと同じで、さらに入力オブジェクトに割り当てられたラベルの属性および値が追加されます。値の属性名は、コンソールまたは CreateLabelingJob オペレーションの呼び出しで定義されます。ラベルの属性名に -metadata を使用することはできません。イメージセマンティックセグメンテーション、3D 点群セマンティックセグメンテーション、または 3D 点群オブジェクトの追跡ジョブを実行している場合は、ラベル属性の末尾が -ref になっている必要があります。その他のジョブタイプの場合、属性名の最後に -ref を使用することはできません。
ラベル付けジョブの出力は、キーと値のペアの値、およびラベルです。ラベルおよび値は、入力ファイルの既存の JSON データを新しい値で上書きします。
例えば、次に示すのはイメージ分類ラベル付けジョブの出力で、入力データファイルは Amazon S3 に保存され、ラベルの属性名は amzn-s3-demo-bucket として定義されていました。この例の JSON オブジェクトは読みやすい形式になっています。実際の出力ファイルでは、JSON オブジェクトは 1 行で記述されます。データ形式の詳細については、JSON Linessport
{ "source-ref": "s3://amzn-s3-demo-bucket/image_example.png", "sport":0, "sport-metadata": { "class-name": "football", "confidence":0.00, "type":"groundtruth/image-classification", "job-name": "identify-sport", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }
ラベルの値には有効な JSON を指定できます。この場合、ラベルの値は分類リストにあるクラスのインデックスです。境界ボックスなどの他のジョブタイプでは、これより複雑な値になります。
入力マニフェストファイルのすべてのキーと値のペアは、ラベルの属性以外、出力ファイルで変更されません。これを使用してデータをアプリケーションに渡すことができます。
ラベル付けジョブからの出力を、別のラベル付けジョブへの入力として使用できます。これは、複数のラベル付けジョブを連鎖させているときに使用できます。例えば、あるラベル付けジョブを送信して、行われているスポーツを判断するとします。次に、同じデータを使用して別のジョブを送信し、スポーツが行われているのが屋内か屋外かを判断します。最初のジョブの出力データを 2 番目のジョブのマニフェストとして使用することにより、2 つのジョブの結果を 1 つの出力ファイルに統合できるので、アプリケーションでの処理が容易になります。
ジョブの進行中、出力データファイルは定期的に出力場所に書き込まれます。これらの中間ファイルには、マニフェストファイルの行ごとに 1 行が含まれています。オブジェクトにラベルが付いている場合、そのラベルが含まれます。オブジェクトにラベルが付いていない場合は、マニフェストファイルと同じように中間出力ファイルに書き込まれます。
出力ディレクトリ
Ground Truth によって Amazon S3 出力パスにいくつかのディレクトリが作成されます。これらのディレクトリには、ラベル付けジョブの結果およびジョブのその他のアーティファクトが含まれています。ラベル付けジョブの最上位ディレクトリにはラベル付けジョブと同じ名前が付けられ、出力ディレクトリはその下に配置されます。例えば、ラベル付けジョブに find-people という名前を付けた場合、出力は以下のディレクトリに配置されます。
s3://amzn-s3-demo-bucket/find-people/activelearning s3://amzn-s3-demo-bucket/find-people/annotations s3://amzn-s3-demo-bucket/find-people/inference s3://amzn-s3-demo-bucket/find-people/manifests s3://amzn-s3-demo-bucket/find-people/training
各ディレクトリには、次に示す出力が含まれます。
activelearning ディレクトリ
activelearning ディレクトリは自動データラベリングを使用している場合にのみ存在します。これには、自動データラベリング用の入力および出力検証セットと、自動的にラベルが付けられたデータ用の入出力フォルダが含まれます。
annotations ディレクトリ
annotations ディレクトリには、ワークフォースによって行われたすべての注釈が含まれています。これらは、データオブジェクト用の単一ラベルに統合されていない、個々のワーカーからの回答です。
annotations ディレクトリには 3 つのサブディレクトリがあります。
-
1 番目の
worker-responseには個々のワーカーからの回答が含まれています。これには、各イテレーションのサブディレクトリが含まれ、さらにそのイテレーションの各データオブジェクトのサブディレクトリが含まれています。各データオブジェクトのワーカーレスポンスデータは、そのデータオブジェクトに対して各ワーカーによって送信された回答を含むタイムスタンプ付きの JSON ファイルに格納されます。また、プライベートワークフォースを使用する場合は、それらのワーカーに関するメタデータが含まれます。このメタデータの詳細については、「ワーカーメタデータ」を参照してください。 -
2 番目の
consolidated-annotationには、現在のバッチにある注釈をデータオブジェクトのラベルに統合するために必要な情報が含まれています。 -
3 番目の
intermediateには、現在のバッチの出力マニフェストおよび完成したラベルが含まれています。このファイルは、各データオブジェクトのラベル完成時に更新されます。
注記
ドキュメントに記載されていないファイルは使用しないことをお勧めします。
inference ディレクトリ
inference ディレクトリは自動データラベリングを使用している場合にのみ存在します。このディレクトリには、データオブジェクトのラベル付け中に使用される SageMaker AI バッチ変換の入出力ファイルが含まれています。
manifest ディレクトリ
manifest ディレクトリには、ラベル付けジョブからの出力マニフェストが含まれています。マニフェストディレクトリには 1 つのサブディレクトリ output があります。output ディレクトリには、ラベル付けジョブの出力マニフェストファイルが含まれています。ファイルの名前は output.manifest です。
training ディレクトリ
training ディレクトリは自動データラベリングを使用している場合にのみ存在します。このディレクトリには、自動データラベリングモデルをトレーニングするために使用された入力ファイルと出力ファイルが含まれています。
信頼スコア
複数のワーカーが 1 つのタスクに注釈を付ける場合、ラベルは注釈を結合した結果となります。Ground Truth はラベルごとの信頼スコアを計算します。信頼スコアは 0~1 の間の数値で、Ground Truth がそのラベルに置く信頼度を示します。信頼スコアを使用すると、ラベル付けされたデータオブジェクトを相互に比較し、信頼性が最も低いまたは最も高いラベルを識別することができます。
信頼スコアの値を絶対値として解釈したり、ラベル付けジョブ間でスコアを比較したりしないでください。例えば、すべての信頼スコアが 0.98~0.998 の間にある場合、データオブジェクトの比較は相互にのみ行い、高い信頼スコアに依存しないでください。
人間がラベル付けしたデータオブジェクトと自動ラベル付けされたデータオブジェクトの信頼スコアを比較しないでください。人間の信頼スコアはタスクの注釈統合関数を使用して計算されるのに対し、自動ラベル付けの信頼スコアはオブジェクト機能が組み込まれたモデルを使用して計算されます。一般に、この 2 つのモデルでは尺度および信頼性平均が異なります。
境界ボックスラベル付けジョブの場合、Ground Truth はボックスごとに信頼スコアを計算します。信頼スコアの比較は、1 つのイメージ内、または同じラベル付けタイプ (人間または自動) のイメージ間で行えます。ラベル付けジョブ間で信頼スコアを比較することはできません。
1 人のワーカーがタスクに注釈を付けた場合 (NumberOfHumanWorkersPerDataObject が 1 に設定されているか、コンソールで [Number of workers per dataset object] (データセットオブジェクトあたりのワーカー数) に 1 と入力した)、信頼度スコアは 0.00 に設定されます。
ワーカーメタデータ
Ground Truth は、タスク出力データ内の個々のワーカーの追跡に使用できる情報を提供します。次のデータは、annotations ディレクトリ にある worker-response のディレクトリにあります。
-
acceptanceTimeは、ワーカーがタスクを受け入れた時刻です。この日付とタイムスタンプの形式はYYYY-MM-DDTHH:MM:SS.mmmZで、年 (YYYY)、月 (MM), 日 (DD)、時間 (HH)、分 (MM)、second (SS) ミリ秒 (mmm) です。日付と時刻は T で区切られます。 -
submissionTimeは、ワーカーが [SUBMT] (送信) ボタンを使用して注釈を送信した時刻です。この日付とタイムスタンプの形式はYYYY-MM-DDTHH:MM:SS.mmmZで、年 (YYYY)、月 (MM), 日 (DD)、時間 (HH)、分 (MM)、second (SS) ミリ秒 (mmm) です。日付と時刻は T で区切られます。 -
timeSpentInSecondsは、ワーカーがそのタスクに積極的に取り組んだ合計時間を秒単位で報告します。このメトリクスには、ワーカーが一時停止または休憩した時間は含まれません。 -
workerIdは、各ワーカーに固有です。 -
workerMetadataでプライベートワークフォースを使用すると、以下が表示されます。-
identityProviderTypeは、プライベートワークフォースを管理するために使用するサービスです。 -
issuerは、この人間によるレビュータスクに割り当てられたワークチームに関連付けられた Cognito ユーザープールまたは OIDC ID プロバイダー (IdP) 発行者です。 -
一意の
sub識別子はワーカーを参照します。Amazon Cognito を使用してワークフォースを作成する場合、Amazon Cognito でこの ID を使用して、このワーカーに関する詳細 (名前やユーザー名など) を取得できます。この方法については、Amazon Cognito デベロッパーガイドの「ユーザーアカウントの管理と検索」を参照してください。
-
Amazon Cognito を使用してプライベートワークフォースを作成した場合に表示される出力の例を次に示します。これは、identityProviderType で識別されます。
"submissionTime": "2020-12-28T18:59:58.321Z", "acceptanceTime": "2020-12-28T18:59:15.191Z", "timeSpentInSeconds": 40.543, "workerId": "a12b3cdefg4h5i67", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }
独自の OIDC IdP を使用してプライベートワークフォースを作成した場合に表示される workerMetadata の例を次に示します。
"workerMetadata": { "identityData": { "identityProviderType": "Oidc", "issuer": "https://example-oidc-ipd.com/adfs", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }
プライベートワークフォースの使用の詳細については、「プライベートワークフォース」を参照してください。
出力メタデータ
各ジョブの出力には、データオブジェクトに割り当てられたラベルに関するメタデータが含まれています。これらの要素は、わずかな違いはありますがすべてのジョブに対して同じです。以下の例は、メタデータ要素を示しています。
"confidence":0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256"
要素には次の意味があります。
-
confidence- ラベルが正しいことについて Ground Truth が持つ信頼性。詳細については、「信頼スコア」を参照してください。 -
type- 分類ジョブのタイプ。ジョブタイプについては、「組み込みタスクタイプ」を参照してください。 -
job-name- ジョブの作成時にジョブに割り当てられた名前。 -
human-annotated- データオブジェクトのラベル付けが人間によるものか自動データラベリングによるものかどうか。詳細については、「データのラベル付けの自動化」を参照してください。 -
creation-date- ラベルが作成された日時。
分類ジョブの出力
以下に示すのは、イメージ分類ジョブおよびテキスト分類ジョブのサンプル出力 (出力マニフェストファイル) です。それらの出力には、Ground Truth がデータオブジェクトに割り当てたラベル、ラベルの値、およびラベルを記述するメタデータが含まれています。
標準のメタデータ要素に加えて、分類ジョブのメタデータにはラベルのクラスのテキスト値が含まれています。詳細については、「画像分類 - MXNet」を参照してください。
以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
{ "source-ref":"s3://amzn-s3-demo-bucket/example_image.jpg", "species":"0", "species-metadata": { "class-name": "dog", "confidence":0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }
{ "source":"The food was delicious", "mood":"1", "mood-metadata": { "class-name": "positive", "confidence":0.8, "type": "groundtruth/text-classification", "job-name": "label-sentiment", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256" } }
マルチラベル分類ジョブの出力
以下は、マルチラベルのイメージ分類ジョブとマルチラベルのテキスト分類ジョブからの出力マニフェストファイルの例です。これには、Ground Truth がデータオブジェクトに割り当てたラベル (イメージやテキストなど) と、ラベル付けタスクの完了時にワーカーが見たラベルを説明するメタデータが含まれます。
ラベル属性名パラメータ (image-label-attribute-name など) には、このタスクを完了したワーカーの少なくとも 1 人によって選択されたすべてのラベルの配列が含まれます。この配列には、class-map で見つかったラベルに対応する整数キー ([1,0,8] など) が含まれます。マルチラベルのイメージ分類の例では、イメージ、bicycle のラベル付けタスクを完了したワーカーの少なくとも 1 人によって、person、clothing、exampleimage.jpg が選択されています。
confidence-map には、ワーカーが選択した各ラベルに Ground Truth によって割り当てられた信頼度スコアが表示されます。Ground Truth の信頼スコアの詳細については、「信頼スコア」を参照してください。
以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
次に、マルチラベルイメージ分類出力マニフェストファイルの例を示します。
{ "source-ref": "s3://amzn-s3-demo-bucket/example_image.jpg", "image-label-attribute-name":[1,0,8], "image-label-attribute-name-metadata": { "job-name":"labeling-job/image-label-attribute-name", "class-map": { "1":"bicycle","0":"person","8":"clothing" }, "human-annotated":"yes", "creation-date":"2020-02-27T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"8":0.2}, "type":"groundtruth/image-classification-multilabel" } }
次に、マルチラベルテキスト分類出力マニフェストファイルの例を示します。この例では、 で見つかったオブジェクト amzn-s3-demo-bucketexampletext.txt のラベル付けタスクを完了したワーカーの少なくとも 1 人によって、approving、sad、critical が選択されています。
{ "source-ref": "s3://amzn-s3-demo-bucket/exampletext.txt", "text-label-attribute-name":[1,0,4], "text-label-attribute-name-metadata": { "job-name":"labeling-job/text-label-attribute-name", "class-map": { "1":"approving","0":"sad","4":"critical" }, "human-annotated":"yes", "creation-date":"2020-02-20T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"4":0.2}, "type":"groundtruth/text-classification-multilabel" } }
境界ボックスジョブの出力
以下は、境界ボックスジョブからのサンプル出力 (出力マニフェストファイル) です。このタスクでは、3 つの境界ボックスが返されます。ラベルの値には、イメージのサイズ、境界ボックスの場所に関する情報が含まれています。
class_id 要素は、タスクで使用可能なクラスのリストにある、ボックスのクラスのインデックスです。class-map メタデータ要素には、クラスのテキストが含まれています。
メタデータには、境界ボックスごとに個別の信頼スコアがあります。メタデータには、class_id をクラスのテキスト値にマッピングする class-map 要素も含まれています。詳細については、「オブジェクト検出 - MXNet」を参照してください。
以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
{ "source-ref": "s3://amzn-s3-demo-bucket/example_image.png", "bounding-box-attribute-name": { "image_size": [{ "width":500, "height":400, "depth":3}], "annotations": [ {"class_id":0, "left":111, "top":134, "width":61, "height":128}, {"class_id":5, "left":161, "top":250, "width":30, "height":30}, {"class_id":5, "left":20, "top":20, "width":30, "height":30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence":0.8}, {"confidence":0.9}, {"confidence":0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" } }
境界ボックス調整ジョブの出力は、以下の JSON のようになります。元の JSON はそのまま保持され、2 つの新しいジョブがリストされます。各ジョブには、元の属性の名前の前に「adjust-」が付加されます。
{ "source-ref": "S3 bucket location", "bounding-box-attribute-name": { "image_size": [{ "width":500, "height":400, "depth":3}], "annotations": [ {"class_id":0, "left":111, "top":134, "width":61, "height":128}, {"class_id": 5, "left": 161, "top": 250, "width":30, "height":30}, {"class_id":5, "left":20, "top":20, "width":30, "height":30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence":0.8}, {"confidence":0.9}, {"confidence":0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "adjusted-bounding-box": { "image_size": [{ "width":500, "height":400, "depth":3}], "annotations": [ {"class_id":0, "left":110, "top":135, "width":61, "height":128}, {"class_id":5, "left":161, "top":250, "width":30, "height":30}, {"class_id":5, "left":10, "top":10, "width":30, "height":30} ] }, "adjusted-bounding-box-metadata": { "objects": [ {"confidence":0.8}, {"confidence":0.9}, {"confidence":0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-bounding-boxes-on-dogs-and-toys", "adjustment-status": "adjusted" } }
この出力では、ジョブの type は変更されませんが、adjustment-status フィールドが追加されます。このフィールドの値は adjusted または unadjusted です。複数のワーカーがオブジェクトを確認し、少なくとも 1 人がラベルを調整した場合、ステータスは adjusted になります。
固有表現認識
次に、固有表現認識 (NER) のラベル付けタスクからのマニフェストファイルの出力例を示します。このタスクでは、7 つの entities が返されます。
出力マニフェストでは、JSON オブジェクトの annotations には、提供した labels のリスト (ラベルカテゴリ) が含まれています。
ワーカーの応答は、entities という名前のリストにあります。このリストの各エンティティは、labels リストの 1 つと一致する値 label、ラベル付きスパンの Unicode 開始オフセットの整数値 startOffset、Unicode 終了オフセットの整数値 endOffsetを含む JSON オブジェクトです。
メタデータには、エンティティごとに個別の信頼スコアがあります。1 つのワーカーが各データオブジェクトとラベル付けされている場合、各エンティティの信頼値はゼロになります。
以下の例の赤い斜体のテキストは、ジョブの入力とワーカーレスポンスのラベル付けによって異なります。
{ "source": "Amazon SageMaker is a cloud machine-learning platform that was launched in November 2017. SageMaker enables developers to create, train, and deploy machine-learning (ML) models in the cloud. SageMaker also enables developers to deploy ML models on embedded systems and edge-devices", "ner-labeling-job-attribute-name": { "annotations": { "labels": [ { "label": "Date", "shortDisplayName": "dt" }, { "label": "Verb", "shortDisplayName": "vb" }, { "label": "Thing", "shortDisplayName": "tng" }, { "label": "People", "shortDisplayName": "ppl" } ], "entities": [ { "label": "Thing", "startOffset":22, "endOffset":53}, { "label": "Thing", "startOffset":269, "endOffset":281}, { "label": "Verb", "startOffset":63, "endOffset":71}, { "label": "Verb", "startOffset":228, "endOffset":234}, { "label": "Date", "startOffset":75, "endOffset":88}, { "label": "People", "startOffset":108, "endOffset":118}, { "label": "People", "startOffset":214, "endOffset":224} ] } }, "ner-labeling-job-attribute-name-metadata": { "job-name": "labeling-job/example-ner-labeling-job", "type": "groundtruth/text-span", "creation-date": "2020-10-29T00:40:39.398470", "human-annotated": "yes", "entities": [ { "confidence":0}, { "confidence":0}, { "confidence":0}, { "confidence":0}, { "confidence":0}, { "confidence":0}, { "confidence":0} ] } }
ラベル検証ジョブの出力
境界ボックス検証ジョブの出力 (出力マニフェストファイル) は、境界ボックス注釈ジョブの出力とは異なります。これは、ワーカーが異なるタイプのタスクを行うためです。ワーカーはオブジェクトにラベル付けするのではなく、前のラベル付けの正確さを評価し、判断を下してから、その判断結果やコメントを提供します。
前の境界ボックスラベルの検証または調整を人間のワーカーが行っている場合、検証ジョブの出力は次のような JSON になります。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
{ "source-ref":"s3://amzn-s3-demo-bucket/image_example.png", "bounding-box-attribute-name": { "image_size": [{ "width":500, "height":400, "depth":3}], "annotations": [ {"class_id":0, "left":111, "top":134, "width":61, "height":128}, {"class_id":5, "left":161, "top":250, "width":30, "height":30}, {"class_id":5, "left":20, "top":20, "width":30, "height":30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence":0.8}, {"confidence":0.9}, {"confidence":0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "verify-bounding-box-attribute-name":"1", "verify-bounding-box-attribute-name-metadata": { "class-name": "bad", "confidence":0.93, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes", "human-annotated": "yes", "creation-date": "2018-11-20T22: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."} ] } }
元の境界ボックス出力の type は groundtruth/object-detection でしたが、新しい type は groundtruth/label-verification です。また、worker-feedback 配列は、ワーカーのコメントを提供することに注意してください。ワーカーがコメントを提供しない場合、空のフィールドは統合時に除外されます。
意味論的なセグメント化ジョブの出力
以下に示すのは、意味論的なセグメント化ラベル付けジョブの出力マニフェストファイルです。このジョブでのラベルの値は、Amazon S3 バケットの PNG ファイルへの参照です。
標準要素に加えて、ラベルのメタデータには、イメージのラベル付けにどの色を使用するかを定義するカラーマップ、色に関連付けられたクラス名、および各色の信頼スコアが含まれています。詳細については、「セマンティックセグメンテーションアルゴリズム」を参照してください。
以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
{ "source-ref": "s3://amzn-s3-demo-bucket/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence":0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence":0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "verify-city-streets-ref":"1", "verify-city-streets-ref-metadata": { "class-name": "bad", "confidence":0.93, "type": "groundtruth/label-verification", "job-name": "verify-city-streets", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "worker-feedback": [ {"comment": "The mask on the leftmost building is assigned the wrong side of the road."}, {"comment": "The curb of the road is not labeled but the instructions say otherwise."} ] } }
信頼度は、イメージごとにスコア付けされます。信頼スコアは、イメージ内のすべてのクラスで同じになります。
セマンティックセグメンテーション調整ジョブの出力は、以下の JSON のようになります。
{ "source-ref": "s3://amzn-s3-demo-bucket/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence":0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence":0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "adjusted-city-streets-ref": "s3://amzn-s3-demo-bucket/example_city_image.png", "adjusted-city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence":0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence":0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence":0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-label-city-streets", } }
動画フレームオブジェクト検出の出力
以下は、オブジェクト検出のラベル付けジョブからの出力マニフェストファイルです。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
メタデータには、標準要素に加えて、シーケンス内に少なくとも 1 つのラベルを持つ各クラスをリストするクラスマップが含まれます。メタデータには、ラベル付けジョブに割り当てた名前である job-name も含まれます。調整タスクでは、1 つまたは複数の境界ボックスが修正された場合、監査ワークフローのメタデータに adjusted に設定される adjustment-status パラメータがあります。
{ "source-ref": "s3://amzn-s3-demo-bucket/example-path/input-manifest.json", "CarObjectDetection-ref": "s3://amzn-s3-demo-bucket/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectDetection-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-detection" } }
Ground Truth は、ラベル付けされた動画フレームのシーケンスごとに 1 つの出力シーケンスファイルを作成します。各出力シーケンスファイルには、以下が含まれています。
-
JSON オブジェクトの
detection-annotationsリスト内のシーケンス内のすべてのフレームのすべての注釈。 -
ワーカーによって注釈が付けられた各フレームでは、フレームファイル名 (
frame)、数字 (frame-no)、注釈を含む JSON オブジェクトのリスト (annotations)、該当する場合は、frame-attributesになります。このリストの名前は、使用するタスクタイプによって定義されます。polylines,polygons,keypoints、境界ボックスの場合はannotations。各 JSON オブジェクトには、1 つの注釈と関連ラベルに関する情報が含まれています。次の表に、各動画フレームタスクタイプに表示されるパラメータの概要を示します。
タスクタイプ パラメータ 境界ボックス
ボックスのディメンション:
heightとwidthボックスの上部、左隅のピクセル位置:
topとleftKeypoint (特徴点)
特徴点頂点: { "x": int, "y": int }Polygon
ポリゴンの頂点のリスト:
ポリゴンの頂点:vertices{ "x": int, "y": int }ポリゴンは閉じた形状であるため、最初のポイントは最後のポイントでもあります。
Polyline (ポリライン)
ポリラインの頂点のリスト:
ポリラインの頂点:vertices{ "x": int, "y": int }タスクタイプ固有の値に加えて、各 JSON オブジェクトには以下が表示されます。
-
そのラベルに指定されたすべての
label-category-attributes値。 -
ボックスの
class-id。出力マニフェストファイルでclass-mapを使用して、この ID がマップされるラベルカテゴリを確認します。
-
以下は、境界ボックスの動画フレームオブジェクト検出ラベル付けジョブからの SeqLabel.json ファイルの例です。このファイルは s3:// に配置されます。amzn-s3-demo-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/
{ "detection-annotations": [ { "annotations": [ { "height":41, "width":53, "top":152, "left":339, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" } }, { "height":24, "width":37, "top":148, "left":183, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no":0, "frame": "frame_0000.jpeg", "frame-attributes": {name:value,name:value} }, { "annotations": [ { "height":41, "width":53, "top":152, "left":341, "class-id": "0", "label-category-attributes": {} }, { "height":24, "width":37, "top":141, "left":177, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no":1, "frame": "frame_0001.jpeg", "frame-attributes": {name:value,name:value} } ] }
動画フレームオブジェクト追跡の出力
以下は、オブジェクト追跡のラベル付けジョブからの出力マニフェストファイルです。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
メタデータには、標準要素に加えて、フレームのシーケンス内に少なくとも 1 つのラベルを持つ各クラスをリストするクラスマップが含まれます。メタデータには、ラベル付けジョブに割り当てた名前である job-name も含まれます。調整タスクでは、1 つまたは複数の境界ボックスが修正された場合、監査ワークフローのメタデータに adjusted に設定される adjustment-status パラメータがあります。
{ "source-ref": "s3://amzn-s3-demo-bucket/example-path/input-manifest.json", "CarObjectTracking-ref": "s3://amzn-s3-demo-bucket/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectTracking-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-tracking" } }
Ground Truth は、ラベル付けされた動画フレームのシーケンスごとに 1 つの出力シーケンスファイルを作成します。各出力シーケンスファイルには、以下が含まれています。
-
JSON オブジェクトの
tracking-annotationsリスト内のシーケンス内のすべてのフレームのすべての注釈。 -
ワーカーによって注釈が付けられた各フレームでは、フレーム (
frame)、数字 (frame-no)、注釈を含む JSON オブジェクトのリスト (annotations)、該当する場合は、フレーム属性 (frame-attributes) 。このリストの名前は、使用するタスクタイプによって定義されます。polylines,polygons,keypoints、境界ボックスの場合はannotations。各 JSON オブジェクトには、1 つの注釈と関連ラベルに関する情報が含まれています。次の表に、各動画フレームタスクタイプに表示されるパラメータの概要を示します。
タスクタイプ パラメータ 境界ボックス
ボックスのディメンション:
heightとwidthボックスの上部、左隅のピクセル位置:
topとleftKeypoint (特徴点)
特徴点頂点: { "x": int, "y": int }Polygon
ポリゴンの頂点のリスト:
ポリゴンの頂点:vertices{ "x": int, "y": int }ポリゴンは閉じた形状であるため、最初のポイントは最後のポイントでもあります。
Polyline (ポリライン)
ポリラインの頂点のリスト:
ポリラインの頂点:vertices{ "x": int, "y": int }タスクタイプ固有の値に加えて、各 JSON オブジェクトには以下が表示されます。
-
そのラベルに指定されたすべての
label-category-attributes値。 -
ボックスの
class-id。出力マニフェストファイルでclass-mapを使用して、この ID がマップされるラベルカテゴリを確認します。 -
ラベルのインスタンスを特定する
object-id。ワーカーが複数のフレーム内のオブジェクトの同じインスタンスを特定した場合、この ID はフレーム間で同じになります。例えば、自動車が複数のフレームに現れた場合、すべての境界ボックスは、その車両が同じobject-idであることを特定するために使用します。 -
その注釈のインスタンス ID である
object-name。
-
以下は、境界ボックスの動画フレームオブジェクト追跡ラベル付けジョブからの SeqLabel.json ファイルの例です。このファイルは s3:// に配置されます。amzn-s3-demo-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/
{ "tracking-annotations": [ { "annotations": [ { "height":36, "width":46, "top":178, "left":315, "class-id": "0", "label-category-attributes": { "occluded": "no" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no":0, "frame": "frame_0001.jpeg", "frame-attributes": {} }, { "annotations": [ { "height":30, "width":47, "top":163, "left":344, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" }, "object-id": "98f2b0b0-c0ca-11ea-961f-a9b1c5c97972", "object-name": "bus:1" }, { "height":28, "width":33, "top":150, "left":192, "class-id": "0", "label-category-attributes": { "occluded": "partially" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no":1, "frame": "frame_0002.jpeg", "frame-attributes": {name:value,name:value} } ] }
3D 点群セマンティックセグメンテーションの出力
以下に示すのは、意味論的な 3D 点群セマンティックセグメンテーションのラベル付けジョブの出力マニフェストファイルです。
標準要素に加えて、ラベルのメタデータには、イメージのラベル付けにどの色を使用するかを定義するカラーマップ、色に関連付けられたクラス名、および各色の信頼スコアが含まれています。さらに、監査ワークフローのメタデータには、カラーマスクが変更された場合に adjusted に設定される adjustment-status パラメータがあります。ラベルカテゴリ構成ファイルに 1 つ以上の frameAttributes を追加した場合、フレーム属性のワーカー応答は JSON オブジェクト dataset-object-attributes に含まれます。
パラメータには、.zlib 拡張子が付いた圧縮ファイルの場所が含まれます。このファイルを解凍すると、配列があります。配列内の各インデックスは、入力点群内の注釈付きポイントのインデックスに対応します。特定のインデックスの配列の値は、your-label-attribute-refmetadata の color-map パラメータで見つかったセマンティックカラーマップに基づいて、点群内の同じインデックスのポイントのクラスを示します。
次のような Python コードを使用して、.zlib ファイルを解凍できます。
import zlib from array import array # read the label file compressed_binary_file = open(zlib_file_path/file.zlib, 'rb').read() # uncompress the label file binary_content = zlib.decompress(compressed_binary_file) # load labels to an array my_int_array_data = array('B', binary_content); print(my_int_array_data)
上記のコードブロックでは、次のような出力が生成されます。出力された配列の各要素には、点群内のそのインデックスにあるポイントのクラスが含まれます。例えば、my_int_array_data[0] = 1 は、入力点群の point[0] にクラス 1 があることを意味します。次の出力マニフェストファイルの例では、クラス 0 は "Background" に、1 は Car に、2 は Pedestrian 対応します。
>> array('B', [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
次に、セマンティックセグメンテーション 3D 点群ラベル付けジョブの出力マニフェストファイルの例を示します。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。
{ "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame1.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp":1566861644.759115, "ego-vehicle-pose":{...}, "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/prefix", "images": [{...}] }, "lidar-ss-label-attribute-ref": "s3://amzn-s3-demo-bucket/labeling-job-name/annotations/consolidated-annotation/output/dataset-object-id/filename.zlib", "lidar-ss-label-attribute-ref-metadata": { 'color-map': { "0": { "class-name": "Background", "hex-color": "#ffffff", "confidence":0.00}, "1": { "class-name": "Car", "hex-color": "#2ca02c", "confidence":0.00}, "2": { "class-name": "Pedestrian", "hex-color": "#1f77b4", "confidence":0.00}, "3": { "class-name": "Tree", "hex-color": "#ff7f0e", "confidence":0.00} }, 'type': 'groundtruth/point_cloud_single_frame_semantic_segmentation', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'labeling-job-name', //only present for adjustment audit workflow "adjustment-status": "adjusted", // "adjusted" means the label was adjusted "dataset-object-attributes": {name:value,name:value} } }
3D 点群オブジェクト検出の出力
次に、3D 点群オブジェクト検出ジョブの出力例を示します。このタスクタイプでは、3D 直方体に関するデータが 3d-bounding-box パラメータの annotations という名前のリストに返されます 。このリストでは、各 3D 直方体の説明に次の情報が使用されます。
-
入力マニフェストで指定する各クラスまたはラベルカテゴリは、
class-idに関連付けられています。class-mapを使用して、各クラス ID に関連付けられたクラスを識別します。 -
これらのクラスを使用して、各 3D 直方体に
<class>:<integer>の形式でobject-nameを指定します。この場合、integerは、フレーム 内の直方体を識別する一意の番号です。 -
center-x、center-y、center-zは、ラベル付けジョブで使用される 3D 点群の入力データと同じ座標系で、直方体の中心の座標です。 -
length、width、heightは、直方体のディメンションを記述します。 -
yawは、直方体の方向 (進行方向) をラジアン単位で記述するために使用されます。注記
yawは、右手系のデカルト座標系になりました。この機能は 2022 年 9 月 2 日 19:02:17 UTC に追加されたため、これより前の出力データのyaw測定値を次のように変換できます (単位はすべてラジアン単位)。old_yaw_in_output = pi - yaw -
この定義では、+x は右側、+y は前方、+z は地表から上向きです。回転順序は x - y - z です。
roll、pitch、yawは右手系のデカルト座標系で表されます。3D 空間では、rollは X 軸、pitchは Y 軸、yawは Z 軸に沿っています。3 つすべてが反時計回りです。 -
特定のクラスの入力マニフェストファイルにラベル属性を含めると、ワーカーがラベル属性を選択したすべての直方体に対して
label-category-attributesパラメータが含まれます。
1 つまたは複数の直方体が修正された場合、監査ワークフローのメタデータに adjusted に設定される adjustment-status パラメータがあります。ラベルカテゴリ構成ファイルに 1 つ以上の frameAttributes を追加した場合、フレーム属性のワーカー応答は JSON オブジェクト dataset-object-attributes に含まれます。
以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。楕円 (...) は、そのリストの続きを示します。この場合、進行中のオブジェクトと同じ形式のオブジェクトを表示できます。
{ "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame1.txt", "source-ref-metadata":{ "format": "text/xyzi", "unix-timestamp":1566861644.759115, "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/prefix", "ego-vehicle-pose": { "heading": { "qx":-0.02111296123795955, "qy":-0.006495469416730261, "qz":-0.008024565904865688, "qw":0.9997181192298087}, "position": { "x":-2.7161461413869947, "y":116.25822288149078, "z":1.8348751887989483} }, "images": [ { "fx":847.7962624528487, "fy":850.0340893791985, "cx":576.2129134707038, "cy":317.2423573573745, "k1":0, "k2":0, "k3":0, "k4":0, "p1":0, "p2":0, "skew":0, "unix-timestamp":1566861644.759115, "image-path": "images/frame_0_camera_0.jpg", "position": { "x":-2.2722515189268138, "y":116.86003310568965, "z":1.454614668542299}, "heading": { "qx":0.7594754093069037, "qy":0.02181790885672969, "qz":-0.02461725233103356, "qw":-0.6496916273040025}, "camera_model": "pinhole" } ] }, "3d-bounding-box": { "annotations": [ { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":-2.616382013657516, "center-y":125.04149850484193, "center-z":0.311272296465834, "length":2.993000265181146, "width":1.8355260519692056, "height":1.3233490884304047, "roll":0, "pitch":0, "yaw":1.6479308313703527}, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id":0, "center-x":-5.188984560617168, "center-y":99.7954483288783, "center-z":0.2226435567445657, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":1.6243170732068055} ] }, "3d-bounding-box-metadata": { "objects": [], "class_map": { "0": "Car", }, "type": "groundtruth/point_cloud_object_detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-3d-objects", "adjustment-status": "adjusted", "dataset-object-attributes": {name:value,name:value} } }
3D 点群オブジェクト追跡の出力
次に、3D 点群オブジェクト追跡のラベル付けジョブからの出力マニフェストファイルの例を示します。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。楕円 (...) は、そのリストの続きを示します。この場合、進行中のオブジェクトと同じ形式のオブジェクトを表示できます。
メタデータには、標準要素に加えて、シーケンス内に少なくとも 1 つのラベルを持つ各クラスをリストするクラスマップが含まれます。1 つまたは複数の直方体が修正された場合、監査ワークフローのメタデータに adjusted に設定される adjustment-status パラメータがあります。
{ "source-ref": "s3://amzn-s3-demo-bucket/myfolder/seq1.json", "lidar-label-attribute-ref": "s3://amzn-s3-demo-bucket/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json", "lidar-label-attribute-ref-metadata": { "objects": [ { "frame-no":300, "confidence": [] }, { "frame-no":301, "confidence": [] },...], 'class-map': {'0': 'Car', '1': 'Person'}, 'type': 'groundtruth/point_cloud_object_tracking', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'identify-3d-objects', "adjustment-status": "adjusted" } }
上の例では、seq1.json の各フレームの直方体データは、 Amazon S3 の場所 s3:// の amzn-s3-demo-bucket/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.jsonSeqLabel.json にあります。以下は、このラベルシーケンスファイルの例です。
シーケンスの各フレームで、frame-number、frame-name、該当する場合は frame-attributes と annotations のリストが表示されます。このリストには、そのフレーム用に描画された 3D 立方体が含まれます。各注釈には、以下の情報が含まれています。
-
フォーマットが
<class>:<integer>のobject-name。classがラベルカテゴリを識別し、integerはデータセット全体で一意の ID です。 -
ワーカーが直方体を描画すると、複数のフレームにわたって同じオブジェクトを識別するすべての直方体に関連付けられている一意の
object-idに関連付けられます。 -
入力マニフェストで指定した各クラスまたはラベルカテゴリは、
class-idに関連付けられています。class-mapを使用して、各クラス ID に関連付けられたクラスを識別します。 -
center-x、center-y、center-zは、ラベル付けジョブで使用される 3D 点群の入力データと同じ座標系で、直方体の中心の座標です。 -
length、width、heightは、直方体のディメンションを記述します。 -
yawは、直方体の方向 (進行方向) をラジアン単位で記述するために使用されます。注記
yawは、右手系のデカルト座標系になりました。この機能は 2022 年 9 月 2 日 19:02:17 UTC に追加されたため、これより前の出力データのyaw測定値を次のように変換できます (単位はすべてラジアン単位)。old_yaw_in_output = pi - yaw -
この定義では、+x は右側、+y は前方、+z は地表から上向きです。回転順序は x - y - z です。
roll、pitch、yawは右手系のデカルト座標系で表されます。3D 空間では、rollは X 軸、pitchは Y 軸、yawは Z 軸に沿っています。3 つすべてが反時計回りです。 -
特定のクラスの入力マニフェストファイルにラベル属性を含めると、ワーカーがラベル属性を選択したすべての直方体に対して
label-category-attributesパラメータが含まれます。
{ "tracking-annotations": [ { "frame-number":0, "frame-name": "0.txt.pcd", "frame-attributes": {name:value,name:value}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "center-x":-2.2906369208300674, "center-y":103.73924823843463, "center-z":0.37634114027023313, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":-2.6451293634707413, "center-y":124.9534455706848, "center-z":0.5020834081743839, "length":4, "width":2, "height":2.080488827301309, "roll":0, "pitch":0, "yaw":-1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id":0, "center-x":-5.205611313118477, "center-y":99.91731932137061, "center-z":0.22917217081212138, "length":3.8747142207671956, "width":1.9999999999999918, "height":2, "roll":0, "pitch":0, "yaw":1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] }, { "frame-number":1, "frame-name": "1.txt.pcd", "frame-attributes": {}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "center-x":-2.2906369208300674, "center-y":103.73924823843463, "center-z":0.37634114027023313, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":-2.6451293634707413, "center-y":124.9534455706848, "center-z":0.5020834081743839, "length":4, "width":2, "height":2.080488827301309, "roll":0, "pitch":0, "yaw":-1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id":0, "center-x":-5.221311072916759, "center-y":100.4639841045424, "center-z":0.22917217081212138, "length":3.8747142207671956, "width":1.9999999999999918, "height":2, "roll":0, "pitch":0, "yaw":1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] } ] }
3D-2D オブジェクト追跡点群オブジェクト追跡の出力
次に、3D 点群オブジェクト追跡のラベル付けジョブからの出力マニフェストファイルの例を示します。以下の例の赤色の斜体のテキストは、ラベル付けジョブの仕様と出力データによって異なります。楕円 (...) は、そのリストの続きを示します。この場合、進行中のオブジェクトと同じ形式のオブジェクトを表示できます。
メタデータには、標準要素に加えて、シーケンス内に少なくとも 1 つのラベルを持つ各クラスをリストするクラスマップが含まれます。1 つまたは複数の直方体が修正された場合、監査ワークフローのメタデータに adjusted に設定される adjustment-status パラメータがあります。
{ "source-ref": "s3://amzn-s3-demo-bucket/artifacts/gt-point-cloud-demos/sequences/seq2.json", "source-ref-metadata": { "json-paths": [ "number-of-frames", "prefix", "frames{frame-no, frame}" ] }, "3D2D-linking-ref": "s3://amzn-s3-demo-bucket/xyz/3D2D-linking/annotations/consolidated-annotation/output/0/SeqLabel.json", "3D2D-linking-ref-metadata": { "objects": [ { "frame-no":0, "confidence": [] }, { "frame-no":1, "confidence": [] }, { "frame-no":2, "confidence": [] }, { "frame-no":3, "confidence": [] }, { "frame-no":4, "confidence": [] }, { "frame-no":5, "confidence": [] }, { "frame-no":6, "confidence": [] }, { "frame-no":7, "confidence": [] }, { "frame-no":8, "confidence": [] }, { "frame-no":9, "confidence": [] } ], "class-map": { "0": "Car" }, "type": "groundtruth/point_cloud_object_tracking", "human-annotated": "yes", "creation-date": "2023-01-19T02:55:10.206508", "job-name": "mcm-linking" }, "3D2D-linking-chain-ref": "s3://amzn-s3-demo-bucket/xyz/3D2D-linking-chain/annotations/consolidated-annotation/output/0/SeqLabel.json", "3D2D-linking-chain-ref-metadata": { "objects": [ { "frame-no":0, "confidence": [] }, { "frame-no":1, "confidence": [] }, { "frame-no":2, "confidence": [] }, { "frame-no":3, "confidence": [] }, { "frame-no":4, "confidence": [] }, { "frame-no":5, "confidence": [] }, { "frame-no":6, "confidence": [] }, { "frame-no":7, "confidence": [] }, { "frame-no":8, "confidence": [] }, { "frame-no":9, "confidence": [] } ], "class-map": { "0": "Car" }, "type": "groundtruth/point_cloud_object_tracking", "human-annotated": "yes", "creation-date": "2023-01-19T03:29:49.149935", "job-name": "3d2d-linking-chain" } }
上の例では、seq2.json の各フレームの直方体データは、 Amazon S3 の場所 s3:// の amzn-s3-demo-bucket/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.jsonSeqLabel.json にあります。以下は、このラベルシーケンスファイルの例です。
シーケンスの各フレームで、frame-number、frame-name、該当する場合は frame-attributes と annotations のリストが表示されます。このリストには、そのフレーム用に描画された 3D 立方体が含まれます。各注釈には、以下の情報が含まれています。
-
フォーマットが
<class>:<integer>のobject-name。classがラベルカテゴリを識別し、integerはデータセット全体で一意の ID です。 -
ワーカーが直方体を描画すると、複数のフレームにわたって同じオブジェクトを識別するすべての直方体に関連付けられている一意の
object-idに関連付けられます。 -
入力マニフェストで指定した各クラスまたはラベルカテゴリは、
class-idに関連付けられています。class-mapを使用して、各クラス ID に関連付けられたクラスを識別します。 -
center-x、center-y、center-zは、ラベル付けジョブで使用される 3D 点群の入力データと同じ座標系で、直方体の中心の座標です。 -
length、width、heightは、直方体のディメンションを記述します。 -
yawは、直方体の方向 (進行方向) をラジアン単位で記述するために使用されます。注記
yawは、右手系のデカルト座標系になりました。この機能は 2022 年 9 月 2 日 19:02:17 UTC に追加されたため、これより前の出力データのyaw測定値を次のように変換できます (単位はすべてラジアン単位)。old_yaw_in_output = pi - yaw -
この定義では、+x は右側、+y は前方、+z は地表から上向きです。回転順序は x - y - z です。
roll、pitch、yawは右手系のデカルト座標系で表されます。3D 空間では、rollは X 軸、pitchは Y 軸、yawは Z 軸に沿っています。3 つすべてが反時計回りです。 -
特定のクラスの入力マニフェストファイルにラベル属性を含めると、ワーカーがラベル属性を選択したすべての直方体に対して
label-category-attributesパラメータが含まれます。
{ "lidar": { "tracking-annotations": [ { "frame-number":0, "frame-name": "0.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":12.172361721602815, "center-y":120.23067521992364, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "center-x":17.192725195301094, "center-y":114.55705365827872, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} }, { "frame-number":1, "frame-name": "1.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":-1.6841480600695489, "center-y":126.20198882749516, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "center-x":17.192725195301094, "center-y":114.55705365827872, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} }, { "frame-number":2, "frame-name": "2.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id":0, "center-x":-1.6841480600695489, "center-y":126.20198882749516, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "center-x":17.192725195301094, "center-y":114.55705365827872, "center-z":1.590525771183712, "length":4, "width":2, "height":2, "roll":0, "pitch":0, "yaw":0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} } ] }, "camera-0": { "tracking-annotations": [ { "frame-no":0, "frame": "0.txt.pcd", "annotations": [ { "label-category-attributes": { "Occlusion": "Partial" }, "object-name": "Car:2", "class-id":0, "width":223, "height":164, "top":225, "left":486, "object-id": "5229df60-97a4-11ed-8903-dd5b8b903715" } ], "frame-attributes": {} }, { "frame-no":1, "frame": "1.txt.pcd", "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id":0, "width":252, "height":246, "top":237, "left":473, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} } ] } }
オブジェクトの直方体と境界ボックスは、共通のオブジェクト ID でリンクされています。