View a markdown version of this page

建立點雲影格輸入資訊清單檔案 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

建立點雲影格輸入資訊清單檔案

資訊清單是 UTF-8 編碼檔案,其中每一行都是完整且有效的 JSON 物件。每一行都由標準分行符號 (\n 或 \r\n) 分隔。由於每一行都必須為有效的 json 物件,您不能有未逸出的分行符號。在單一影格輸入資訊清單檔案中,資訊清單的每一行各包含單一點雲影格的資料。點雲影格資料可以儲存為二進位或 ASCII 格式 (請參閱接受的原始 3D 資料格式)。這是 3D 點雲物件偵測和語意分割所需的資訊清單檔案格式。或者,您也可以為每個點雲影格提供相機感應器融合資料。

Ground Truth 在所有模式下,支援採用世界座標系統的點雲和攝影機感應器融合。如果您可以取得 3D 感應器外部矩陣 (例如 LiDAR 外部矩陣),建議您使用外部矩陣,將 3D 點雲影格轉換為世界座標系統。如需詳細資訊,請參閱感應器融合。

但是,如果您無法以世界座標系統取得點雲,您可以採用原先用於擷取資料的原始座標系統來提供座標。如果您要提供感應器融合的相機資料,建議您以世界座標系統來提供 LiDAR 感應器和相機姿態。

若要建立單一影格輸入資訊清單檔案,您將使用 source-ref 索引鍵來識別要讓工作者標籤的每個點雲影格的位置。此外,您必須使用 source-ref-metadata 索引鍵來識別資料集的格式、該影格的時間戳記,以及 (選擇) 感應器融合資料和攝影機影像。

以下範例示範單一影格點雲標籤工作的輸入資訊清單檔案所採用的語法。此範例包括兩個點雲影格。如需每個參數的詳細資訊,請參閱此範例後面的表格。

重要

輸入資訊清單檔案中的每一行都必須為 JSON 行格式。下列程式碼區塊顯示具備兩個 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"}]}}

下表顯示您可以包含在輸入資訊清單檔案中的參數:

參數

必要

接受的值

說明

source-ref

是

String

接受的字串值格式:

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

否

String

接受的字串值:"binary/xyz"、"binary/xyzi"、"binary/xyzrgb"、"binary/xyzirgb"、"text/xyz"、"text/xyzi"、"text/xyzrgb"、"text/xyzirgb"

預設值:

當 source-ref 中識別的檔案為 .bin 副檔名時:binary/xyzi

當 source-ref 中識別的檔案為 .txt 副檔名時:text/xyzi

使用此參數來指定點雲資料的格式。如需詳細資訊,請參閱接受的原始 3D 資料格式。

unix-timestamp

是

Number

unix 時間戳記。

unix 時間戳記是自 1970 年 1 月 1 日到感應器收集資料的 UTC 時間為止的秒數。

ego-vehicle-pose

否

JSON 物件

裝置的姿態,此裝置用於收集點雲資料。如需此參數的詳細資訊,請參閱在輸入資訊清單中包含車輛姿態資訊。

prefix

否

String

接受的字串值格式:

s3://<bucket-name>/<folder-name>/

此影格的中繼資料 (例如攝影機影像) 儲存在 Amazon S3 中的位置。

字首必須以正斜線結尾:/。

images

否

清單

參數清單,描述用於感應器融合的彩色相機影像。此清單最多可以包含 8 個影像。如需每個影像所需參數的詳細資訊,請參閱在輸入資訊清單中包含相機資料。

在輸入資訊清單中包含車輛姿態資訊

使用自動駕駛汽車的位置,提供用於擷取點雲資料的車輛位置資訊。Ground Truth 使用此資訊來計算 LiDAR 外部矩陣。

Ground Truth 使用外部矩陣在 3D 場景和 2D 影像之間投影標籤。如需詳細資訊,請參閱感應器融合。

關於您提供自動駕駛車輛資訊時所需的 position 和方向 (heading) 參數,下表提供詳細資訊。

參數

必要

接受的值

說明

position

是

JSON 物件

必要參數:

x、y 和 z。輸入這些參數的數字。

自動駕駛車輛在世界座標系統中的平移向量。

heading

是

JSON 物件

必要參數:

qx、qy、qz 和 qw。輸入這些參數的數字。

安裝在車輛上感測周遭環境的裝置或感應器的參考影格方向,在座標系統中以四元數 (qx、qy、qz、qw) 測量。

在輸入資訊清單中包含相機資料

如果您想要在影格中包含攝影機資料,請使用下列參數來提供每個影像的相關資訊。當 images 參數包含在 source-ref-metadata 下的輸入資訊清單檔案中時,將套用下面的必填欄位。輸入資訊清單檔案中不需要包含影像。

如果包含相機影像,則必須包含以世界座標系統拍攝影像的相機 position 和 heading 的相關資訊。

如果影像失真,Ground Truth 可以使用您在輸入資訊清單檔案中提供的影像相關資訊來矯正影像,包括失真係數 (k1、k2、k3、k4、p1、p1)、攝影機型號和攝影機內部矩陣。內部矩陣由焦距 (fx、fy) 和主點 (cx、cy)) 組成。請參閱內部矩陣,以了解 Ground Truth 如何使用攝影機內部矩陣。如果未包含失真係數,則 Ground Truth 不會矯正影像。

參數

必要

接受的值

說明

image-path

是

String

格式範例:

<folder-name>/<imagefile.png>

影像檔案在 Amazon S3 中的相對位置。此相對路徑會附加至您在 prefix 中指定的路徑。

unix-timestamp

是

Number

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

否

Number

徑向失真係數。支援魚眼和針孔相機型號。

p1, p2

否

Number

正切失真係數。支援針孔相機型號。

skew

否

Number

用來測量影像扭曲的參數。

position

是

JSON 物件

必要參數:

x、y 和 z。輸入這些參數的數字。

安裝在車輛上拍攝影像的相機的參考影格位置或原點。

heading

是

JSON 物件

必要參數:

qx、qy、qz 和 qw。輸入這些參數的數字。

安裝在車輛上拍攝影像的相機的參考影格方向,在世界座標系統中以四元數 (qx、qy、qz、qw) 測量。

點雲影格限制

輸入資訊清單檔案中最多可包含 100,000 個點雲影格。3D 點雲標籤工作的預處理時間比其他 Ground Truth 任務類型更久。如需詳細資訊,請參閱工作預處理時間。