ZODデータのアップロード
このチュートリアルでは、Zenseact Open Dataset(ZOD)を使用してさまざまなシーンタイプをアップロードする手順を説明します。このページの目的は、録画をKognicシーンに変換するために必要な手順をいくつか示すことです。
このガイドでは、このページのすべてのスニペットの完全なソースファイルを含むKognic IO ZOD examples repositoryのサンプルコードを使用して、ZODデータを使用したシーンのアップロードプロセスを説明します。データが利用可能でKognic認証が設定されている場合、サンプルは実行可能です。
この例は、LiDARとカメラのシーケンス例と同じ構造に従っています。
集約シーンは、LiDARデータがフレーム全体にわたって単一のポイントクラウドに集約される、LiDAR+カメラシーケンスシーンの特殊なケースです。これにより、すべてのフレームにわたってシーン全体を表す密な静的ポイントクラウドが得られます。
集約シーンは、すべてのフレームにポイントクラウドを提供してKognicプラットフォームに集約を処理させることで作成できます。または、最初のフレームにポイントクラウドを指定し、その後のフレームには何も指定しないことで、事前集約してアップロードすることもできます。
ZODデータの場合、フレームごとのポイントクラウドのみが利用可能なため、サンプルではすべてのフレームにポイントクラウドをアップロードし、集約をプラットフォームに委ねます。そのため、以下の点を除いて、LiDAR+カメラシーケンスの例と非常に似ています
1.シーンタイプが異なります:LidarsAndCamerasSequenceの代わりにAggregatedLidarsAndCamerasSequenceを使用します。
def convert_scene(zod_sequence: ZodSequence, external_id: str, max_nr_frames: int) -> AggregatedLidarsAndCamerasSequence:
frames = convert_frames(zod_sequence, max_nr_frames)
return AggregatedLidarsAndCamerasSequence(external_id=external_id, frames=frames, calibration_id="<to be set later>")2. フレームは集約シーン固有のタイプです。
frames.append(
ALCSFrame(
relative_timestamp=ns_to_ms(frame_ts_ns) - start_ts_ms,
frame_id=str(frame_ts_ns),
images=[convert_zod_camera_frame_to_image(camera_frame)],
point_clouds=[point_cloud],
ego_vehicle_pose=convert_to_ego_vehicle_pose(ego_pose),
unix_timestamp=frame_ts_ns,
)
)3. ego poseデータが必須です。
それ以外の点では、2つのアプローチは非常に似ています。Lidars and Cameras Sequenceタブを参照してください。