View a markdown version of this page

建立點雲序列輸入資訊清單 - Amazon SageMaker AI

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

建立點雲序列輸入資訊清單

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

當資訊清單的每一行都是序列檔案時,以下範例示範輸入資訊清單檔案所採用的語法。輸入資訊清單檔案中的每一行都必須為 JSON 行格式。

{"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":[{...}] }, ... ] }

下表提供序列檔案最上層參數的相關詳細資訊。如需序列檔案中個別影格所需參數的詳細資訊,請參閱個別點雲影格的參數。

參數

必要

接受的值

說明

seq-no

是

Integer

序列的順序號碼。

prefix

是

String

接受的值:

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

序列檔案所在的 Amazon S3 位置。

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

number-of-frames

是

Integer

序列檔案包含的影格總數。此數字必須符合下一列的 frames 參數中列出的影格總數。

frames

是

JSON 物件清單

影格資料的清單。清單的長度必須等於 number-of-frames。在工作者使用者介面中,序列中的影格與此陣列中的影格順序相同。

關於每個影格的格式,如需詳細資訊,請參閱個別點雲影格的參數。

個別點雲影格的參數

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

參數

必要

接受的值

說明

frame-no

否

Integer

影格號碼。這是由客戶指定的選用識別符,以識別序列中的影格。Ground Truth 未使用。

unix-timestamp

是

Number

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

每個影格的時間戳記必須不同,且因用於線性插補,時間戳記必須依照順序。理想情況下,這應該是收集資料時的真實時間戳記。如果無法使用,您必須使用增量時間戳記序列,其中序列檔案的第一個影格對應至序列的第一個時間戳記。

frame

是

String

格式範例

<folder-name>/<sequence-file.json>

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

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 資料格式。

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 參數包含在輸入資訊清單檔案中時,將套用下表中的必填欄位。輸入資訊清單檔案中不需要包含影像。

如果包含相機影像,則必須包含用於拍攝影像的相機 position 和方向 (heading) 的相關資訊。

如果影像失真,Ground Truth 可以使用您在輸入資訊清單檔案中提供的影像相關資訊來矯正影像,包括失真係數 (k1、k2、k3、k4、p1、p1)、攝影機型號、焦距 (fx、fy) 和主點 (cx、cy))。若要進一步了解這些係數和矯正影像,請參閱使用 OpenCV 校準相機。如果未包含失真係數,則 Ground Truth 不會矯正影像。

參數

必要

接受的值

說明

image-path

是

String

格式範例:

<folder-name>/<imagefile.png>

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

unix-timestamp

是

Number

影像的時間戳記。

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 個點雲序列。每個序列檔案中最多可包含 500 個點雲影格。

請記住,3D 點雲標籤工作的預處理時間比其他 Ground Truth 任務類型更久。如需詳細資訊,請參閱工作預處理時間。