XLD
收藏数据集概述
数据预处理
-
解压压缩文件(例如
carla_pic_0603_Town**.zip)。 -
从数据链接下载
intrinscis.zip和extrinsics.zip并解压。 -
将
intrinscis和extrinsics移动到相应的文件夹。 bash cp -r intrinsics data/carla_pic_0603_Town01 cp -r extrinsics data/carla_pic_0603_Town01 cp -r intrinsics data/carla_pic_0603_Town02 cp -r extrinsics data/carla_pic_0603_Town02 cp -r intrinsics data/carla_pic_0603_Town03 cp -r extrinsics data/carla_pic_0603_Town03 cp -r intrinsics data/carla_pic_0603_Town04 cp -r extrinsics data/carla_pic_0603_Town04 cp -r intrinsics data/carla_pic_0603_Town05 cp -r extrinsics data/carla_pic_0603_Town05 cp -r intrinsics data/carla_pic_0603_Town10 cp -r extrinsics data/carla_pic_0603_Town10 -
数据结构应如下所示:
generate_offset_0_test.py rename.py convert_XLD_transforms.py data ├── carlc_pic_0603_Town0N ├────────────|─────────── intrinsics ├────────────|─────────────── | ───────── 0.txt ├────────────|─────────────── | ───────── 1.txt ├────────────|─────────────── | ───────── 2.txt ├────────────|─────────── extrinsics ├────────────|─────────────── | ───────── 0.txt ├────────────|─────────────── | ───────── 1.txt ├────────────|─────────────── | ───────── 2.txt ├────────────|─────────── train_pic ├────────────|─────────────── | ───────── camera_extrinscs_00000N.json ├────────────|─────────────── | ───────── cameraX_0000N.png ├────────────|─────────────── | ───────── lidar_0000N.ply ├────────────|─────────── test_pic ├────────────|─────────────── | ───────── offset_left_0m (dont exist, run generate_offset_0_test.py) ├────────────|─────────────── | ─────────────── | ───────── camera_extrinscs_00000N.json ├────────────|─────────────── | ─────────────── | ───────── cameraX_0000N.png ├────────────|─────────────── | ─────────────── | ───────── lidar_0000N.ply ├────────────|─────────────── | ───────── offset_left_1m ├────────────|─────────────── | ─────────────── | ───────── camera_extrinscs_00000N.json ├────────────|─────────────── | ─────────────── | ───────── cameraX_0000N.png ├────────────|─────────────── | ─────────────── | ───────── lidar_0000N.ply ├────────────|─────────────── | ───────── offset_left_4m ├────────────|─────────────── | ─────────────── | ───────── camera_extrinscs_00000N.json ├────────────|─────────────── | ─────────────── | ───────── cameraX_0000N.png ├────────────|─────────────── | ─────────────── | ───────── lidar_0000N.ply
-
生成0m偏移的测试集: bash python generate_offset_0_test.py
-
将训练图像重命名为
train_**,测试图像重命名为eval_**,以符合NeRFStudio的格式: bash python rename.py -
生成
transforms.json用于NeRF和3D-GS: bash python convert_XLD_transforms.py -
注意,根据不同的相机设置和偏移设置,修改参数
num_cams、camera_list和offset_meters: python多相机,偏移=1m
generate_json_file(scene_path = data/carla_pic_0603_Town10, num_cams=3, camera_list=[1,0,2], offset_meters=1)
仅前向相机,偏移=1m
generate_json_file(scene_path = data/carla_pic_0603_Town10, num_cams=1, camera_list=[0], offset_meters=1)
模型训练
NeRFacto训练
bash cd carla_pic_0603_Town01_cam1
训练
CUDA_VISIBLE_DEVICES=1 ns-train nerfacto --pipeline.model.camera-optimizer.mode off --experiment-name nerfacto_offset_1m nerfstudio-data --eval-mode filename --data ./
评估
CUDA_VISIBLE_DEVICES=2 ns-eval --load-config outputs/nerfacto_offset_1m/nerfacto/2024-06-06_145158/config.yml --output-path ./nerfacto_offset_1/result.json --render-output-path ./nerfacto_offset_1
Instant-NGP训练
bash cd carla_pic_0603_Town01_cam1
训练
CUDA_VISIBLE_DEVICES=0 ns-train instant-ngp --experiment-name instant_ngp_offset_1 nerfstudio-data --eval-mode filename --data ./
评估
CUDA_VISIBLE_DEVICES=0 ns-eval --load-config outputs/instant_ngp_offset_1/instant-ngp/2024-06-06_165753/config.yml --output-path ./instant-ngp_offset_1m/result.json --render-output-path ./instant-ngp_offset_1m
高斯方法训练
Colmap格式数据预处理
运行Python脚本将 transforms.json 转换为3D-GS格式:
bash
python convert_XLD_transforms.py. # 生成 transforms.json
python merge_lidar.py # 合并3D LiDAR点云作为初始化
python transform2colmap.py # 将 transforms.json 转换为colmap格式
创建 images 文件夹并将训练和测试图像链接到其中:
bash
mkdir -p carla_pic_0603_Town01_cam3/images
cd carla_pic_0603_Town01_cam3/images
ln -s ../../data/carla_pic_0603_Town01/train_pic/train_camera0_00* ./ && ln -s ../../data/carla_pic_0603_Town01/train_pic/train_camera1_00* ./
ln -s ../../data/carla_pic_0603_Town01/train_pic/train_camera2_00* ./ && ln -s ../../data/carla_pic_0603_Town01/test_pic/offset_left_0m/eval_camera0_00* ./
cd ../../
GaussianPro & 3D-GS训练
bash cd carla_pic_0603_Town01_cam1 CUDA_VISIBLE_DEVICES=0 python train.py -s carla_pic_0603_Town01_cam1 -m ./carla_pic_0603_Town01_cam1/output --position_lr_init 0.000016 --scaling_lr 0.001 --percent_dense 0.0005 --port 1021 --eval




