

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

# 3D 点云标注作业的输入清单文件
<a name="sms-point-cloud-input-manifest"></a>

在创建标注作业时，您可以提供一个输入清单文件，其中，清单的每一行描述注释者要完成的任务单元。输入清单文件格式取决于任务类型。
+ 如果要创建 3D 点云**对象检测**或**语义分割**标注作业，则输入清单文件中的每一行包含有关单个 3D 点云帧的信息。这称为*点云帧输入清单*。要了解更多信息，请参阅[创建点云帧输入清单文件](sms-point-cloud-single-frame-input-data.md)。
+ 如果要创建 3D 点云**对象跟踪**标注作业，则输入清单文件的每一行包含一个 3D 点云帧序列和关联的数据。这称为*点云序列输入清单*。要了解更多信息，请参阅[创建点云序列输入清单](sms-point-cloud-multi-frame-input-data.md)。

# 创建点云帧输入清单文件
<a name="sms-point-cloud-single-frame-input-data"></a>

清单是一个 UTF-8 编码文件，其中每行都是一个完整有效的 JSON 对象。每行都以标准换行符 \$1n 或 \$1r\$1n 分隔。由于每行都必须是有效的 JSON 对象，因此您不能使用未转义的换行符。在单帧输入清单文件中，清单中的每一行包含单个点云帧的数据。可以使用二进制或 ASCII 格式存储点云帧数据（请参阅[接受的原始 3D 数据格式](sms-point-cloud-raw-data-types.md)）。这是 3D 点云对象检测和语义分割所需的清单文件格式。（可选）您也可以为每个点云帧提供摄像机传感器融合数据。

对于所有模式，Ground Truth 在[世界坐标系](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-world-coordinate-system)中支持点云和视频摄像机传感器融合。如果您可以获取 3D 传感器外部矩阵（例如 LiDAR 外部矩阵），我们建议您使用外部矩阵将 3D 点云帧变换为世界坐标系。有关更多信息，请参阅 [传感器融合](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-sensor-fusion)。

不过，如果无法在世界坐标系中获取点云，您可以在捕获数据的原始坐标系中提供坐标。如果提供用于传感器融合的摄像机数据，建议您在世界坐标系中提供 LiDAR 传感器和摄像机姿势。

要创建单帧输入清单文件，可以使用 `source-ref` 键指定您希望工作人员标注的每个点云帧的位置。此外，您必须使用 `source-ref-metadata` 键指定数据集的格式、该帧的时间戳以及传感器融合数据和视频摄像机图像（可选）。

以下示例说明了用于单帧点云标注作业的输入清单文件的语法。该示例包含两个点云帧。有关每个参数的详细信息，请参阅该示例后面的表。

**重要**  
输入清单文件中的每一行都必须采用 [JSON 行](http://jsonlines.org/)格式。下面的代码块显示了一个包含两个 JSON 对象的输入清单文件。每个 JSON 对象都用于指向单个点云帧并提供有关单个点云帧的详细信息。为便于阅读，JSON 对象已展开，但在创建输入清单文件时，必须将每个 JSON 对象最小化，使其适合放在一行中。此代码块下提供了一个示例。

```
{
    "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame1.bin",
    "source-ref-metadata":{
        "format": "binary/xyzi",
        "unix-timestamp": 1566861644.759115,
        "ego-vehicle-pose":{
            "position": {
                "x": -2.7161461413869947,
                "y": 116.25822288149078,
                "z": 1.8348751887989483
            },
            "heading": {
                "qx": -0.02111296123795955,
                "qy": -0.006495469416730261,
                "qz": -0.008024565904865688,
                "qw": 0.9997181192298087
            }
        },
        "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/",
        "images": [
        {
            "image-path": "images/frame300.bin_camera0.jpg",
            "unix-timestamp": 1566861644.759115,
            "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,
            "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"
        }]
    }
}
{
    "source-ref": "s3://amzn-s3-demo-bucket/examplefolder/frame2.bin",
    "source-ref-metadata":{
        "format": "binary/xyzi",
        "unix-timestamp": 1566861632.759133,
        "ego-vehicle-pose":{
            "position": {
                "x": -2.7161461413869947,
                "y": 116.25822288149078,
                "z": 1.8348751887989483
            },
            "heading": {
                "qx": -0.02111296123795955,
                "qy": -0.006495469416730261,
                "qz": -0.008024565904865688,
                "qw": 0.9997181192298087
            }
        },
        "prefix": "s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/",
        "images": [
        {
            "image-path": "images/frame300.bin_camera0.jpg",
            "unix-timestamp": 1566861644.759115,
            "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,
            "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"
        }]
    }
}
```

创建输入清单文件时，必须折叠 JSON 对象，使其适合放在一行中。例如，上面的代码块在输入清单文件中将显示如下：

```
{"source-ref":"s3://amzn-s3-demo-bucket/examplefolder/frame1.bin","source-ref-metadata":{"format":"binary/xyzi","unix-timestamp":1566861644.759115,"ego-vehicle-pose":{"position":{"x":-2.7161461413869947,"y":116.25822288149078,"z":1.8348751887989483},"heading":{"qx":-0.02111296123795955,"qy":-0.006495469416730261,"qz":-0.008024565904865688,"qw":0.9997181192298087}},"prefix":"s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/","images":[{"image-path":"images/frame300.bin_camera0.jpg","unix-timestamp":1566861644.759115,"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,"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"}]}}
{"source-ref":"s3://amzn-s3-demo-bucket/examplefolder/frame2.bin","source-ref-metadata":{"format":"binary/xyzi","unix-timestamp":1566861632.759133,"ego-vehicle-pose":{"position":{"x":-2.7161461413869947,"y":116.25822288149078,"z":1.8348751887989483},"heading":{"qx":-0.02111296123795955,"qy":-0.006495469416730261,"qz":-0.008024565904865688,"qw":0.9997181192298087}},"prefix":"s3://amzn-s3-demo-bucket/lidar_singleframe_dataset/someprefix/","images":[{"image-path":"images/frame300.bin_camera0.jpg","unix-timestamp":1566861644.759115,"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,"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"}]}}
```

下表显示了可包含在输入清单文件中的参数：


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `source-ref`  |  是  |  字符串 **接受的字符串值格式**： `s3://<bucket-name>/<folder-name>/point-cloud-frame-file`  |  单个点云帧的 Amazon S3 位置。  | 
|  `source-ref-metadata`  |  是  |  JSON 对象 **接受的参数**： `format`, `unix-timestamp`, `ego-vehicle-pose`, `position`, `prefix`, `images`  |  可以使用该参数在 `source-ref` 中包含有关点云的其他信息，并提供用于传感器融合的摄像机数据。  | 
|  `format`  |  否  |  字符串 **接受的字符串值**：`"binary/xyz"`、`"binary/xyzi"`、`"binary/xyzrgb"`、`"binary/xyzirgb"`、`"text/xyz"`、`"text/xyzi"`、`"text/xyzrgb"`、`"text/xyzirgb"` **默认值**： `binary/xyzi`（在 `source-ref` 中指定的文件具有 .bin 扩展名时） `text/xyzi`（在 `source-ref` 中指定的文件具有 .txt 扩展名时）  |  可以使用该参数以指定点云数据的格式。有关更多信息，请参阅 [接受的原始 3D 数据格式](sms-point-cloud-raw-data-types.md)。  | 
|  `unix-timestamp`  |  是  |  数字 Unix 时间戳。  |  Unix 时间戳是 1970 年 1 月 1 日到传感器收集数据的 UTC 时间之间的秒数。  | 
|  `ego-vehicle-pose`  |  否  |  JSON 对象  |  用于收集点云数据的设备的姿势。有关该参数的更多信息，请参阅 [在输入清单中包含车辆姿势信息](#sms-point-cloud-single-frame-ego-vehicle-input)。  | 
|  `prefix`  |  否  |  字符串 **接受的字符串值格式**： `s3://<bucket-name>/<folder-name>/`  |  在 Amazon S3 中存储该帧的元数据（例如摄像机图像）的位置。 前缀必须以正斜杠结尾：`/`。  | 
|  `images`  |  否  |  列表  |  描述用于传感器融合的彩色摄像机图像的参数列表。您最多可以在该列表中包含 8 个图像。有关每个图像所需的参数的更多信息，请参阅[在输入清单中包含摄像机数据](#sms-point-cloud-single-frame-image-input)。  | 

## 在输入清单中包含车辆姿势信息
<a name="sms-point-cloud-single-frame-ego-vehicle-input"></a>

可以使用自主车辆位置以提供有关用于捕获点云数据的车辆的位置的信息。Ground Truth 使用该信息以计算 LiDAR 外部矩阵。

Ground Truth 使用外部矩阵以在 3D 场景和 2D 图像之间投影标签。有关更多信息，请参阅 [传感器融合](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-sensor-fusion)。

下表提供了有关在提供自主车辆信息时所需的 `position` 和方向 (`heading`) 参数的更多信息。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `position`  |  是  |  JSON 对象 **必需的参数**： `x`、`y` 和 `z`。为这些参数输入数字。  |  自主车辆在世界坐标系中的平移向量。  | 
|  `heading`  |  是  |  JSON 对象 **必需的参数**： `qx`、`qy`、`qz` 和 `qw`。为这些参数输入数字。  |  安装在车辆上的设备或传感器（用于检测周围环境）的参照系的方向，在坐标系中以[四元数](https://en.wikipedia.org/wiki/Quaternion) (`qx`, `qy`, `qz`, `qw`) 表示。  | 

## 在输入清单中包含摄像机数据
<a name="sms-point-cloud-single-frame-image-input"></a>

如果要将视频摄像机数据与帧包含在一起，请使用以下参数以提供有关每个图像的信息。当 `images` 参数包含在输入清单文件中的 `source-ref-metadata` 下时，下面的**必需**列适用。您无需在输入清单文件中包含图像。

如果包含摄像机图像，您必须包含有关用于在世界坐标系中捕获图像的摄像机 `position` 和 `heading` 的信息。

如果图像发生畸变，Ground Truth 可以使用您在输入清单文件中提供的图像相关信息以自动校正畸变，包括畸变系数 (`k1`, `k2`, `k3`, `k4`, `p1`, `p1`)、摄像机型号和摄像机内部矩阵。内部矩阵由焦距 (`fx`, `fy`) 和主点 (`cx`, `cy)`) 组成。请参阅[内部矩阵](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-intrinsic)，了解 Ground Truth 如何使用摄像机内部矩阵。如果不包含畸变系数，则 Ground Truth 不会校正图像畸变。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `image-path`  |  是  |  字符串 **格式示例**： `<folder-name>/<imagefile.png>`  |  图像文件在 Amazon S3 中的相对位置。该相对路径将附加到您在 `prefix` 中指定的路径后面。  | 
|  `unix-timestamp`  |  是  |  数字  |  Unix 时间戳是 1970 年 1 月 1 日到摄像机收集数据的 UTC 时间之间的秒数。  | 
|  `camera-model`  |  否  |  字符串： **接受的值**： `"pinhole"`, `"fisheye"` **默认值**： `"pinhole"`  |  用于捕获图像的摄像机型号。该信息用于校正摄像机图像畸变。  | 
|  `fx, fy`  |  是  |  数字  |  摄像机在 x (`fx`) 和 y (`fy`) 方向上的焦距。  | 
|  `cx, cy`  |  是  | 数字 |  主点的 x (`cx`) 和 y (`cy`) 坐标。  | 
|  `k1, k2, k3, k4`  |  否  |  数字  |  径向畸变系数。**鱼眼**和**针孔**摄像机型号支持。  | 
|  `p1, p2`  |  否  |  数字  |  切向畸变系数。**针孔**摄像机型号支持。  | 
|  `skew`  |  否  |  数字  |  测量图像偏斜的参数。  | 
|  `position`  |  是  |  JSON 对象 **必需的参数**： `x`、`y` 和 `z`。为这些参数输入数字。  | 安装在车辆上的摄像机（用于捕获图像）的参照系的位置或原点。 | 
|  `heading`  |  是  |  JSON 对象 **必需的参数**： `qx`、`qy`、`qz` 和 `qw`。为这些参数输入数字。  |  安装在车辆上的摄像机（用于在世界坐标系中捕获图像）的参照系的方向，以[四元数](https://en.wikipedia.org/wiki/Quaternion) (`qx`, `qy`, `qz`, `qw`) 表示。  | 

## 点云帧限制
<a name="sms-point-cloud-single-frame-limits"></a>

您最多可以在输入清单文件中包含 10 万个点云帧。3D 点云标注作业的预处理时间比其他 Ground Truth 任务类型长。有关更多信息，请参阅 [作业预处理时间](sms-point-cloud-general-information.md#sms-point-cloud-job-creation-time)。

# 创建点云序列输入清单
<a name="sms-point-cloud-multi-frame-input-data"></a>

清单是一个 UTF-8 编码文件，其中每行都是一个完整有效的 JSON 对象。每行都以标准换行符 \$1n 或 \$1r\$1n 分隔。由于每行都必须是有效的 JSON 对象，因此您不能使用未转义的换行符。在点云序列输入清单文件中，清单中的每一行包含一个点云帧序列。可以使用二进制或 ASCII 格式存储序列中的每个帧的点云数据。有关更多信息，请参阅 [接受的原始 3D 数据格式](sms-point-cloud-raw-data-types.md)。这是 3D 点云对象跟踪所需的清单文件格式。（可选）您也可以为每个点云帧提供点属性和摄像机传感器融合数据。在创建序列输入清单文件时，您必须在[世界坐标系](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-world-coordinate-system)中提供 LiDAR 和视频摄像机传感器融合数据。

以下示例说明了在清单中的每一行是序列文件时用于输入清单文件的语法。输入清单文件中的每一行都必须采用 [JSON 行](http://jsonlines.org/)格式。

```
{"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq1.json"}
{"source-ref": "s3://amzn-s3-demo-bucket/example-folder/seq2.json"}
```

每个点云帧序列的数据需要存储在 JSON 数据对象中。以下是用于序列文件的格式示例。有关每个帧的信息将包含为 JSON 对象并在 `frames` 列表中列出。这是一个序列文件的示例，其中包含两个点云帧文件 `frame300.bin` 和 `frame303.bin`。*...*用于指示您应在何处包含有关其他帧的信息。为序列中的每个帧添加一个 JSON 对象。

下面的代码块包括一个用于单个序列文件的 JSON 对象。为便于阅读，JSON 对象已展开。

```
{
  "seq-no": 1,
  "prefix": "s3://amzn-s3-demo-bucket/example_lidar_sequence_dataset/seq1/",
  "number-of-frames": 100,
  "frames":[
    {
        "frame-no": 300, 
        "unix-timestamp": 1566861644.759115, 
        "frame": "example_lidar_frames/frame300.bin", 
        "format": "binary/xyzi", 
        "ego-vehicle-pose":{
            "position": {
                "x": -2.7161461413869947,
                "y": 116.25822288149078,
                "z": 1.8348751887989483
            },
            "heading": {
                "qx": -0.02111296123795955,
                "qy": -0.006495469416730261,
                "qz": -0.008024565904865688,
                "qw": 0.9997181192298087
            }
        }, 
        "images": [
        {
            "image-path": "example_images/frame300.bin_camera0.jpg",
            "unix-timestamp": 1566861644.759115,
            "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,
            "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"
        }]
    },
    {
        "frame-no": 303, 
        "unix-timestamp": 1566861644.759115, 
        "frame": "example_lidar_frames/frame303.bin", 
        "format": "text/xyzi", 
        "ego-vehicle-pose":{...}, 
        "images":[{...}]
    },
     ...
  ]
}
```

下表提供了有关序列文件的顶级参数的详细信息。有关序列文件中的各个帧所需的参数的详细信息，请参阅[各个点云帧的参数](#sms-point-cloud-multi-frame-input-single-frame)。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `seq-no`  |  是  |  整数  |  序列的有序编号。  | 
|  `prefix`  |  是  |  字符串 **接受的值**： `s3://<bucket-name>/<prefix>/`  |  序列文件所在的 Amazon S3 位置。 前缀必须以正斜杠结尾：`/`。  | 
|  `number-of-frames`  |  是  |  整数  |  序列文件中包含的总帧数。该数字必须与下一行中的 `frames` 参数列出的总帧数匹配。  | 
|  `frames`  |  是  |  JSON 对象列表  |  帧数据列表。列表长度必须等于 `number-of-frames`。在工作人员 UI 中，序列中的帧与该数组中的帧顺序相同。 有关每个帧的格式的详细信息，请参阅[各个点云帧的参数](#sms-point-cloud-multi-frame-input-single-frame)。  | 

## 各个点云帧的参数
<a name="sms-point-cloud-multi-frame-input-single-frame"></a>

下表显示了可包含在输入清单文件中的参数。


****  

|  参数  |  必需  |  接受的值  |  说明  | 
| --- | --- | --- | --- | 
|  `frame-no`  |  否  |  整数  |  帧编号。这是客户指定的可选标识符，用于识别序列中的帧。Ground Truth 不使用该标识符。  | 
|  `unix-timestamp`  |  是  |  数字  |  Unix 时间戳是 1970 年 1 月 1 日到传感器收集数据的 UTC 时间之间的秒数。 每帧的时间戳必须不同，并且时间戳必须是连续的，因为它们用于长方体插值。理想情况下，这应该是收集数据时的真实时间戳。如果不可用，则必须使用增量时间戳序列，其中序列文件中的第一个帧对应于序列中的第一个时间戳。  | 
|  `frame`  |  是  |  字符串 **格式示例** `<folder-name>/<sequence-file.json>`  |  序列文件在 Amazon S3 中的相对位置。该相对路径将附加到您在 `prefix` 中指定的路径后面。  | 
|  `format`  |  否  |  字符串 **接受的字符串值**：`"binary/xyz"`、`"binary/xyzi"`、`"binary/xyzrgb"`、`"binary/xyzirgb"`、`"text/xyz"`、`"text/xyzi"`、`"text/xyzrgb"`、`"text/xyzirgb"` **默认值**： `binary/xyzi`（在 `source-ref` 中指定的文件具有 .bin 扩展名时） `text/xyzi`（在 `source-ref` 中指定的文件具有 .txt 扩展名时）  |  可以使用该参数以指定点云数据的格式。有关更多信息，请参阅 [接受的原始 3D 数据格式](sms-point-cloud-raw-data-types.md)。  | 
|  `ego-vehicle-pose`  |  否  |  JSON 对象  |  用于收集点云数据的设备的姿势。有关该参数的更多信息，请参阅 [在输入清单中包含车辆姿势信息](#sms-point-cloud-multi-frame-ego-vehicle-input)。  | 
|  `prefix`  |  否  |  字符串 **接受的字符串值格式**： `s3://<bucket-name>/<folder-name>/`  |  在 Amazon S3 中存储该帧的元数据（例如摄像机图像）的位置。 前缀必须以正斜杠结尾：`/`。  | 
|  `images`  |  否  |  列表  |  描述用于传感器融合的彩色摄像机图像的列表参数。您最多可以在该列表中包含 8 个图像。有关每个图像所需的参数的更多信息，请参阅[在输入清单中包含摄像机数据](#sms-point-cloud-multi-frame-image-input)。  | 

## 在输入清单中包含车辆姿势信息
<a name="sms-point-cloud-multi-frame-ego-vehicle-input"></a>

可以使用自主车辆位置以提供有关用于捕获点云数据的车辆姿势的信息。Ground Truth 使用该信息以计算 LiDAR 外部矩阵。

Ground Truth 使用外部矩阵以在 3D 场景和 2D 图像之间投影标签。有关更多信息，请参阅 [传感器融合](sms-point-cloud-sensor-fusion-details.md#sms-point-cloud-sensor-fusion)。

下表提供了有关在提供自主车辆信息时所需的 `position` 和方向 (`heading`) 参数的更多信息。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `position`  |  是  |  JSON 对象 **必需的参数**： `x`、`y` 和 `z`。为这些参数输入数字。  |  自主车辆在世界坐标系中的平移向量。  | 
|  `heading`  |  是  |  JSON 对象 **必需的参数**： `qx`、`qy`、`qz` 和 `qw`。为这些参数输入数字。  |  安装在车辆上的设备或传感器（用于检测周围环境）的参照系的方向，在坐标系中以[四元数](https://en.wikipedia.org/wiki/Quaternion) (`qx`, `qy`, `qz`, `qw`) 表示。  | 

## 在输入清单中包含摄像机数据
<a name="sms-point-cloud-multi-frame-image-input"></a>

如果要将彩色摄像机数据与帧包含在一起，请使用以下参数以提供有关每个图像的信息。当 `images` 参数包含在输入清单文件中时，下表中的**必需**列适用。您无需在输入清单文件中包含图像。

如果包含摄像机图像，则必须包含有关用于捕获图像的摄像机的 `position` 和方向 (`heading`) 信息。

如果图像发生畸变，Ground Truth 可以使用您在输入清单文件中提供的图像相关信息以自动校正畸变，包括畸变系数 (`k1`, `k2`, `k3`, `k4`, `p1`, `p1`)、摄像机型号和焦距 (`fx`, `fy`) 以及主点 (`cx`, `cy)`)。要了解这些系数和校正图像畸变的更多信息，请参阅[使用 OpenCV 校准摄像机](https://docs.opencv.org/2.4.13.7/doc/tutorials/calib3d/camera_calibration/camera_calibration.html)。如果不包含畸变系数，则 Ground Truth 不会校正图像畸变。


****  

|  参数  |  必需  |  接受的值  |  Description  | 
| --- | --- | --- | --- | 
|  `image-path`  |  是  |  字符串 **格式示例**： `<folder-name>/<imagefile.png>`  |  图像文件在 Amazon S3 中的相对位置。该相对路径将附加到您在 `prefix` 中指定的路径后面。  | 
|  `unix-timestamp`  |  是  |  数字  |  图像的时间戳。  | 
|  `camera-model`  |  否  |  字符串： **接受的值**： `"pinhole"`, `"fisheye"` **默认值**： `"pinhole"`  |  用于捕获图像的摄像机型号。该信息用于校正摄像机图像畸变。  | 
|  `fx, fy`  |  是  |  数字  |  摄像机在 x (`fx`) 和 y (`fy`) 方向上的焦距。  | 
|  `cx, cy`  |  是  | 数字 |  主点的 x (`cx`) 和 y (`cy`) 坐标。  | 
|  `k1, k2, k3, k4`  |  否  |  数字  |  径向畸变系数。**鱼眼**和**针孔**摄像机型号支持。  | 
|  `p1, p2`  |  否  |  数字  |  切向畸变系数。**针孔**摄像机型号支持。  | 
|  `skew`  |  否  |  数字  |  测量图像中的任何已知偏斜的参数。  | 
|  `position`  |  是  |  JSON 对象 **必需的参数**： `x`、`y` 和 `z`。为这些参数输入数字。  |  安装在车辆上的摄像机（用于捕获图像）的参照系的位置或原点。  | 
|  `heading`  |  是  |  JSON 对象 **必需的参数**： `qx`、`qy`、`qz` 和 `qw`。为这些参数输入数字。  |  安装在车辆上的摄像机（用于捕获图像）的参照系的方向，以[四元数](https://en.wikipedia.org/wiki/Quaternion) (`qx`, `qy`, `qz`, `qw`) 表示。  | 

## 序列文件和点云帧限制
<a name="sms-point-cloud-multi-frame-limits"></a>

您最多可以在输入清单文件中包含 10 万个点云帧序列。您最多可以在每个序列文件中包含 500 个点云帧。

请注意，3D 点云标注作业的预处理时间比其他 Ground Truth 任务类型长。有关更多信息，请参阅 [作业预处理时间](sms-point-cloud-general-information.md#sms-point-cloud-job-creation-time)。