输出数据 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

输出数据

标签任务的输出放置在您在控制台或CreateLabelingJob操作调用中指定的 Amazon S3 位置。当工作人员提交一项或多项任务或任务到期时,输出数据将显示在此位置。请注意,在工作人员提交任务或任务过期后,输出数据可能需要几分钟才能显示在 Amazon S3 中。

输出数据文件的每一行都与清单文件完全相同,此外添加了分配给输入对象的标记的属性和值。该值的属性名称在控制台中或在对 CreateLabelingJob 操作的调用中定义。您不能在标签属性名称中使用 -metadata。如果您运行图像语义分割、3D 点云语义分割或 3D 点云对象跟踪作业,则标签属性必须以 -ref 结尾。对于任何其他类型的作业,属性名称不能以 -ref 结尾。

标记作业的输出是标签键值对的值。标签和值将用新值覆盖输入文件中任何现有的 JSON 数据。

例如,以下是图像分类标签作业的输出,其中输入数据文件存储在 Amazon S3 中AWSDOC-EXAMPLE-BUCKET,标签属性名称定义为sport。在本示例中,JSON 对象设置为便于阅读的格式;在实际输出文件中,JSON 对象位于单行上。有关数据格式的更多信息,请参阅 JSON 行

{ "source-ref": "s3://AWSDOC-EXAMPLE-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。在这种情况下,标签的值是分类表中此类的索引。其他作业类型(如边界框)具有更复杂的值。

输入清单文件中除标签属性之外的任何密钥值对在输出文件中都保持不变。您可以使用此功能将数据传递到您的应用程序。

一个标记作业的输出可以用作另一个标记作业的输入。在将标记作业连接在一起时,您可以使用此功能。例如,您可以发送一个标记作业以确定正在开展的运动。然后,您可以发送另一个使用相同数据的作业,以确定此运动是室内还是室外的。通过将第一个作业的输出数据作为第二个作业的清单,您可以将两个作业的结果整合为一个输出文件,以便应用程序可以更轻松地进行处理。

当作业正在进行时,输出数据文件将定期地写入到输出位置。这些中间文件对于清单文件中的每一行都包含一行。如果标记了一个对象,则会包含标签。如果未标记该对象,则将其写入到中间输出文件中,写入方式与清单文件完全相同。

输出目录

Ground Truth 在您的Amazon S3 输出路径中创建了多个目录。这些目录包含标记作业的结果和该作业的其他项目。标注作业的顶级目录与标注作业的名称相同;输出目录位于其下方。例如,如果您命名了标注任务find-people,则输出将位于以下目录中:

s3://AWSDOC-EXAMPLE-BUCKET/find-people/activelearning s3://AWSDOC-EXAMPLE-BUCKET/find-people/annotations s3://AWSDOC-EXAMPLE-BUCKET/find-people/inference s3://AWSDOC-EXAMPLE-BUCKET/find-people/manifests s3://AWSDOC-EXAMPLE-BUCKET/find-people/training

每个目录都包含以下输出:

Active Learning 目录

activelearning 目录仅在您使用自动数据标记时才出现。它包含为自动数据标记设置的输入和输出验证以及自动标记数据的输入和输出文件夹。

Annotations 目录

annotations 目录包含人力所做的所有注释。这些是来自各个工作人员的响应,这些响应尚未整合到数据对象的单个标签中。

annotations 目录中有三个子目录。

  • 第一个子目录是 worker-response,它包含来自各个工作人员的响应。这包含用于每次迭代的一个子目录,其中反过来又包含该迭代中每个数据对象的一个子目录。每个数据对象的工作响应数据存储在带有时间戳的 JSON 文件中,该文件包含每个工作人员为该数据对象提交的答案,如果您使用的是私人员工,则包含有关这些工作人员的元数据。要了解有关此元数据的更多信息,请参阅工作线程数据

  • 第二个子目录是 consolidated-annotation,它包含将当前批次中的注释合并到数据对象标签所需的信息。

  • 第三个子目录是 intermediate,其中包含当前批次的输出清单以及任何已完成的标签。当完成每个数据对象的标签时,该文件会更新。

注意

我们建议您不要使用文档中未提及的文件。

Inference 目录

inference 目录仅在您使用自动数据标记时才出现。此目录包含标记数据对象时使用的 SageMaker 批处理转换的输入和输出文件。

Manifest 目录

manifest 目录包含来自标记作业的输出清单。清单目录 output 中有一个子目录。output 目录包含标记作业的输出清单文件。此文件命名为 output.manifest

Training 目录

training 目录仅在您使用自动数据标记时才出现。此目录包含用于训练自动数据标记模型的输入和输出文件。

置信度得分

当您有多个工作人员为单个任务添加注释时,您的标签是由注释合并产生的。Ground Truth 计算每个标签的置信度分数。置信度分数是介于 0 到 1 之间的数字,表示标签中 Ground Truth 的信心程度。您可以使用置信度得分相互比较已标记的数据对象,并确定最不可信和最可信的标签。

您不应将置信度分数的值解释为绝对值,也不应比较不同标签作业的置信度分数。例如,如果所有置信度得分都在 0.98 和 0.998 之间,您只应在数据对象之间进行比较,而不应依赖于这些高的置信度得分。

您不能将人工标记的数据对象和自动标记的数据对象的置信度得分进行比较。人类的置信度分数是使用任务的注释合并函数计算的,而自动标签的置信度分数是使用包含对象特征的模型计算的。两个模型通常具有不同的规模和平均置信度。

对于装箱贴标作业,Ground Truth 会计算每个箱子的置信度分数。对于相同的标记类型(人工或自动),您可以在一个图像中或跨图像比较置信度得分。您不能跨标记作业比较置信度得分。

如果单个工作人员对任务进行注释(在控制台中设置NumberOfHumanWorkersPerDataObject1或在控制台中,为每个数据集对象的工作人员数输入 1),则置信度分数将设置为0.00

工作线程数据

Ground Truth 提供的信息可用于跟踪任务输出数据中的个人工作人员。以下数据位于的目录下Annotations 目录worker-response

  • acceptanceTime这是工作人员接受任务的时间。此日期和时间戳的格式YYYY-MM-DDTHH:MM:SS.mmmZ为年 (YYYY)、月 (MM)、日 (DD)、小时 (HH)、分钟 (MM)、秒 (SS) 和毫秒 (mmm)。日期和时间由 T 分隔。

  • submissionTime是工作人员使用 “提交” 按钮提交注释的时间。此日期和时间戳的格式YYYY-MM-DDTHH:MM:SS.mmmZ为年 (YYYY)、月 (MM)、日 (DD)、小时 (HH)、分钟 (MM)、秒 (SS) 和毫秒 (mmm)。日期和时间由 T 分隔。

  • timeSpentInSeconds报告工作人员积极处理该任务的总时间(秒)。此指标不包括工作人员暂停或休息的时间。

  • workerId 对于每个工作人员都是唯一的。

  • 如果您使用私人劳动力workerMetadata,则会看到以下内容。

    • identityProviderType是用于管理私人劳动力的服务。

    • issuer是 Cognito 用户池或 OIDC 身份提供者 (IdP) 发行者,与分配给该人工审查任务的工作团队相关联。

    • 唯一标sub识符是指工作人员。如果您使用 Amazon Cognito 创建员工,则可以使用 Amazon Cognito 使用此 ID 检索有关该工作人员的详细信息(例如姓名或用户名)。要了解如何操作,请参阅 Amazon Cognito 开发者指南中的管理和搜索用户账户

以下是您使用 Amazon SIN Cogino 创建私人劳动线程时可能会看到的输出示例。这是在中确定的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" } }

以下是workerMetadata您使用自己的 OIDC IdP 创建私人劳动力时可能会看到的示例:

"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://AWSDOC-EXAMPLE-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)包含完成此任务的至少一个工作人员选择的所有标签的数组。此数组包含与 class-map 中找到的标签对应的整数键(例如 [1,0,8])。在多标签图像分类示例中,至少一个完成图像标记任务的工作人员已为图像 exampleimage.jpg 选择 bicyclepersonclothing

confidence-map显示了 Ground Truth 为工作人员选择的每个标签分配的置信度分数。要了解有关 Ground Truth 置信度分数的更多信息,请参阅置信度得分

以下示例中的红色斜体文本 取决于标记作业规范和输出数据。

以下是多标签图像分类输出清单文件的示例。

{ "source-ref": "s3://AWSDOC-EXAMPLE-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" } }

以下是多标签文本分类输出清单文件的示例。在该示例中,approvingsadcritical 是由完成位于 AWSDOC-EXAMPLE-BUCKET 中的 exampletext.txt 对象的标记任务的至少一个工作人员选择的。

{ "source-ref": "AWSDOC-EXAMPLE-BUCKET/text_file.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" } }

边界框作业输出

以下是边界框作业中的示例输出(输出清单文件)。对于此任务,返回三个边界框。标签值包含有关图像大小和边界框位置的信息。

class_id 元素是框的类在该任务的可用类列表中的索引。class-map 元数据元素包含类的文本。

对于每个边界框,元数据有一个单独的置信度得分。元数据还包含 class-map 元素,该元素将 class_id 映射到类的文本值。有关更多信息,请参阅物体检测-MXNet

以下示例中的红色斜体文本 取决于标记作业规范和输出数据。

{ "source-ref": "s3://AWSDOC-EXAMPLE-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 保持不变并列出了两个新作业,每个作业都在原始属性名称前加上“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 字段。此字段的值为 adjustedunadjusted。如果多个工作人员已查看了对象,并且至少有一个工作人员调整了标签,则状态为 adjusted

命名实体识别

以下是命名实体识别 (NER) 标签任务的输出清单文件示例。对于此任务,将返回七entities个。

在输出清单中,JSON 对象包含您提供的labels(标签类别)列表。annotations

工作人员的响应位于名为的列表中entities。此列表中的每个实体都是一个 JSON 对象,它包含一个与labels列表中的一个label值相匹配的startOffset值、一个用于标记的 span 的起始 Unicode 偏移量的整数endOffset值和一个表示结束 Unicode 偏移量的整数值。

元数据对每个实体都有单独的置信度分数。如果单个工作人员标记了每个数据对象,则每个实体的置信值将为零。

以下示例中的红色斜体文本取决于对工作输入和工作人员回复的标签。

{ "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://AWSDOC-EXAMPLE-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."} ] } }

虽然原始边界框输出上的 typegroundtruth/object-detection,但新的 typegroundtruth/label-verification。另请注意,worker-feedback 数组提供工作人员注释。如果工作人员不提供注释,则合并期间将排除空字段。

语义分割作业输出

以下是语义分割标记作业中的输出清单文件。此任务的标签值是对 Amazon S3 存储桶中的 PNG 文件的引用。

除标准元素外,标签的元数据还包括一个色彩映射表,该色彩映射表定义了用于标注图像的颜色、与颜色相关的类名以及每种颜色的置信度分数。有关更多信息,请参阅语义分割算法

以下示例中的红色斜体文本 取决于标记作业规范和输出数据。

{ "source-ref": "s3://AWSDOC-EXAMPLE-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://AWSDOC-EXAMPLE-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://AWSDOC-EXAMPLE-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", } }

视频帧物体检测输出

以下是视频帧对象检测标签作业的输出清单文件。以下示例中的红色斜体文本 取决于标记作业规范和输出数据。

除标准元素外,元数据还包括一个类映射,该类映射列出了序列中至少有一个标签的每个类。元数据还包括您job-name为标注作业分配的名称。对于调整任务,如果修改了一个或多个边界框,则审计工作流的元数据中有一个adjustment-status参数设置为adjusted

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectDetection-ref": "s3://AWSDOC-EXAMPLE-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 为每个被标记的视频帧序列创建一个输出序列文件。每个输出序列文件都包含以下内容:

  • JSON 对象detection-annotations列表中序列中所有帧的所有注释。

  • 对于由工作程序注释的每个帧,帧文件名 (frame)、数字 ()、包含注释的 JSON 对象列表 (annotations) 以及(如果适用)frame-attributesframe-no此列表的名称由您使用的任务类型定义:polylinespolygonskeypoints、和用于边界框的任务类型annotations

    每个 JSON 对象都包含有关单个注和关联标签的信息。下表概述了您将看到的每种视频帧任务类型的参数。

    任务类型 参数

    Bounding Box

    包装盒尺寸:heightwidth

    箱顶、左角像素位置:topleft

    关键点

    关键点顶点:{ "x": int, "y": int }

    多边形顶点列表:vertices

    多边形顶点:{ "x": int, "y": int }

    多边形是封闭的形状,因此第一个点也将代表最后一个点。

    多边形

    多段线顶点列表:vertices

    多段线顶点:{ "x": int, "y": int }

    除了任务类型的特定值外,您还将在每个 JSON 对象中看到以下内容:

    • label-category-attributes该标签指定的任何值。

    • class-id子的。在输出清单文件class-map中使用来查看此 ID 映射到哪个标签类别。

以下是边界框视频帧对象检测标签作业中的SeqLabel.json文件示例。此文件将位于s3://your-output-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} } ] }

视频帧对象跟踪输出

以下是视频帧对象跟踪标签作业的输出清单文件。以下示例中的红色斜体文本 取决于标记作业规范和输出数据。

除标准元素外,元数据还包括一个类映射,该类映射列出了帧序列中至少有一个标签的每个类。元数据还包括您job-name为标注作业分配的名称。对于调整任务,如果修改了一个或多个边界框,则审计工作流的元数据中有一个adjustment-status参数设置为adjusted

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectTracking-ref": "s3://AWSDOC-EXAMPLE-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 为每个被标记的视频帧序列创建一个输出序列文件。每个输出序列文件都包含以下内容:

  • JSON 对象tracking-annotations列表中序列中所有帧的所有注释。

  • 对于由工作程序注释的每个框架,框架 (frame)、数字 (frame-no)、包含注释 () 的 JSON 对象列表,以及帧属性 (frame-attributes)(如果适用)。annotations此列表的名称由您使用的任务类型定义:polylinespolygonskeypoints、和用于边界框的任务类型annotations

    每个 JSON 对象都包含有关单个注和关联标签的信息。下表概述了您将看到的每种视频帧任务类型的参数。

    任务类型 参数

    Bounding Box

    包装盒尺寸:heightwidth

    箱顶、左角像素位置:topleft

    关键点

    关键点顶点:{ "x": int, "y": int }

    多边形顶点列表:vertices

    多边形顶点:{ "x": int, "y": int }

    多边形是封闭的形状,因此第一个点也将代表最后一个点。

    多边形

    多段线顶点列表:vertices

    多段线顶点:{ "x": int, "y": int }

    除了任务类型的特定值外,您还将在每个 JSON 对象中看到以下内容:

    • label-category-attributes该标签指定的任何值。

    • class-id子的。在输出清单文件class-map中使用来查看此 ID 映射到哪个标签类别。

    • object-id用于标识标签实例的。如果工作程序在多个帧中识别了同一个对象的同一个实例,则此 ID 在各帧间将是相同的。例如,如果一辆汽车出现在多个帧中,则用于识别该汽车的所有边界框都将具有相同的边框object-id

    • 这是object-name该注解的实例 ID。

以下是来自边界框视频帧对象跟踪标注任务中的SeqLabel.json文件的示例。此文件将位于s3://your-output-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 点云语义分割标注作业的输出清单文件。

除标准元素外,标签的元数据还包括一个色彩映射表,该色彩映射表定义了用于标注图像的颜色、与颜色相关的类名以及每种颜色的置信度分数。此外,审计工作流的元数据中有一个adjustment-status参数,adjusted如果修改了色彩蒙版,则该参数设置为。如果您在标签类别配置文件中添加了一个或多frameAttributes个,则帧属性的工作响应位于 JSON 对象中dataset-object-attributes

your-label-attribute-ref 参数包含具有 .zlib 扩展名的压缩文件的位置。解压缩此文件时,它包含一个数组。数组中的每个索引对应于输入点云中带注释的点的索引。给定索引处的数组值根据color-map参数中的语义颜色映射给出点云中相同索引处的点的类别metadata

您可以使用类似于以下内容的 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)

上面的代码块将生成类似于以下内容的输出。打印数组的每个元素都包含点云中该索引处的点的类。例如,输入点云point[0]中的my_int_array_data[0] = 1均值有一个类1。在以下输出清单文件示例中,类01"Background"、with 和2 wCar ith 对应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://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp": 1566861644.759115, "ego-vehicle-pose":{...}, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET/lidar_singleframe_dataset/prefix", "images": [{...}] }, "lidar-ss-label-attribute-ref": "s3://your-output-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 长方体的数据是在名为 annotations 的列表上的 3d-bounding-box 参数中返回的。在该列表中,每个 3D 长方体是使用以下信息描述的。

  • 您在输入清单中指定的每个类或标签类别都与相关联class-id。可以使用 class-map 标识与每个类 ID 关联的类。

  • 这些类用于为每个 3D 长方体提供一个采用 <class>:<integer> 格式的 object-name,其中 integer 是用于在帧中标识该长方体的唯一数字。

  • center-xcenter-y,和center-z是长方体中心的坐标,与标注作业中使用的 3D 点云输入数据采用相同的坐标系。

  • lengthwidth,并height描述长方体的尺寸。

  • yaw用于描述以弧度为单位的长方体的方向(方向)。

    注意

    yaw现在采用右手笛卡尔系统。由于此功能是在世界标准时间 2022 年 9 月 2 日 19:02:17 添加的,因此您可以使用以下方法转换在此之前输出数据中的yaw测量值(所有单位均以弧度为单位):

    old_yaw_in_output = pi - yaw
  • 在我们的定义中,+x 向右,+y 向前,+z 从地面向上。旋转顺序为 x-y-z。pitchyaw用右手笛卡尔系统表示。roll在 3D 空间中,沿 x 轴pitch,沿 y 轴yaw,沿 z 轴。roll这三个都是逆时针的。

  • 如果您在给定类的输入清单文件中包含了标签属性,则所有工作者为其选择了标签属性的立方体都会包含一个label-category-attributes参数。

在审核工作流的元数据中具有 adjustment-status 参数;如果修改了一个或多个长方体,该参数将设置为 adjusted。如果您在标签类别配置文件中添加了一个或多frameAttributes个,则帧属性的工作响应位于 JSON 对象中dataset-object-attributes

以下示例中的红色斜体文本 取决于标记作业规范和输出数据。省略号 (...) 表示该列表的延续,其中可能显示与前面对象格式相同的其他对象。

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.txt", "source-ref-metadata":{ "format": "text/xyzi", "unix-timestamp": 1566861644.759115, "prefix": "s3://AWSDOC-EXAMPLE-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 点云对象跟踪标签作业的输出清单文件示例。以下示例中的红色斜体文本 取决于标记作业规范和输出数据。省略号 (...) 表示该列表的延续,其中可能显示与前面对象格式相同的其他对象。

除标准元素外,元数据还包括一个类映射,该类映射列出了序列中至少有一个标签的每个类。在审核工作流的元数据中具有 adjustment-status 参数;如果修改了一个或多个长方体,该参数将设置为 adjusted

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/myfolder/seq1.json", "lidar-label-attribute-ref": "s3://<CustomerOutputLocation>/<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.jsonSeqLabel.json于 Amazon S3 位置s3://<customerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json。以下是此标签序列文件的示例。

对于序列中的每一帧,您将看到frame-numberframe-nameframe-attributes、(如果适用)和的列表annotations。此列表包含为该帧绘制的 3D 立方体。每个注都包含以下信息:

  • 采用object-nameclass标识标签类别<class>:<integer>的格式,integer是整个数据集的唯一 ID。

  • 在工作人员绘制长方体时,它与唯一的 object-id 相关联,后者与在多个帧中标识同一对象的所有长方体相关联。

  • 您在输入清单中指定的每个类或标签类别与 class-id 关联。可以使用 class-map 标识与每个类 ID 关联的类。

  • center-xcenter-y,和center-z是长方体中心的坐标,与标注作业中使用的 3D 点云输入数据采用相同的坐标系。

  • lengthwidth,并height描述长方体的尺寸。

  • yaw用于描述以弧度为单位的长方体的方向(方向)。

    注意

    yaw现在采用右手笛卡尔系统。由于此功能是在世界标准时间 2022 年 9 月 2 日 19:02:17 添加的,因此您可以使用以下方法转换在此之前输出数据中的yaw测量值(所有单位均以弧度为单位):

    old_yaw_in_output = pi - yaw
  • 在我们的定义中,+x 向右,+y 向前,+z 从地面向上。旋转顺序为 x-y-z。pitchyaw用右手笛卡尔系统表示。roll在 3D 空间中,沿 x 轴pitch,沿 y 轴yaw,沿 z 轴。roll这三个都是逆时针的。

  • 如果您在给定类的输入清单文件中包含了标签属性,则所有工作者为其选择了标签属性的立方体都会包含一个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 点云对象跟踪标签作业的输出清单文件示例。以下示例中的红色斜体文本 取决于标记作业规范和输出数据。省略号 (...) 表示该列表的延续,其中可能显示与前面对象格式相同的其他对象。

除标准元素外,元数据还包括一个类映射,该类映射列出了序列中至少有一个标签的每个类。在审核工作流的元数据中具有 adjustment-status 参数;如果修改了一个或多个长方体,该参数将设置为 adjusted

{ "source-ref": "s3://iad-groundtruth-lidar-test-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://iad-groundtruth-lidar-test-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://iad-groundtruth-lidar-test-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.jsonSeqLabel.json于 Amazon S3 位置s3://<customerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json。以下是此标签序列文件的示例。

对于序列中的每一帧,您将看到frame-numberframe-nameframe-attributes、(如果适用)和的列表annotations。此列表包含为该帧绘制的 3D 立方体。每个注都包含以下信息:

  • 采用object-nameclass标识标签类别<class>:<integer>的格式,integer是整个数据集的唯一 ID。

  • 在工作人员绘制长方体时,它与唯一的 object-id 相关联,后者与在多个帧中标识同一对象的所有长方体相关联。

  • 您在输入清单中指定的每个类或标签类别与 class-id 关联。可以使用 class-map 标识与每个类 ID 关联的类。

  • center-xcenter-y,和center-z是长方体中心的坐标,与标注作业中使用的 3D 点云输入数据采用相同的坐标系。

  • lengthwidth,并height描述长方体的尺寸。

  • yaw用于描述以弧度为单位的长方体的方向(方向)。

    注意

    yaw现在采用右手笛卡尔系统。由于此功能是在世界标准时间 2022 年 9 月 2 日 19:02:17 添加的,因此您可以使用以下方法转换在此之前输出数据中的yaw测量值(所有单位均以弧度为单位):

    old_yaw_in_output = pi - yaw
  • 在我们的定义中,+x 向右,+y 向前,+z 从地面向上。旋转顺序为 x-y-z。pitchyaw用右手笛卡尔系统表示。roll在 3D 空间中,沿 x 轴pitch,沿 y 轴yaw,沿 z 轴。roll这三个都是逆时针的。

  • 如果您在给定类的输入清单文件中包含了标签属性,则所有工作者为其选择了标签属性的立方体都会包含一个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": {} } ] } }

对象的长方体和边界框通过一个通用的 object-ID 链接在一起。