Skyfall-GS训练全攻略:掌握两阶段 curriculum-driven 迭代优化技术
【免费下载链接】Skyfall-GS[ECCV 2026] Skyfall-GS: Synthesizing Immersive 3D Urban Scenes from Satellite Imagery项目地址: https://gitcode.com/gh_mirrors/sk/Skyfall-GS
Skyfall-GS是一个突破性的3D城市场景生成框架,它能够从卫星图像中合成沉浸式的3D城市场景,无需昂贵的3D标注数据。本文将详细介绍如何使用curriculum-driven迭代优化技术进行Skyfall-GS的完整训练流程,帮助你轻松掌握这一先进技术。
准备工作:环境搭建与数据集准备 🛠️
环境配置
首先,克隆Skyfall-GS仓库并创建conda环境:
git clone --recurse-submodules https://gitcode.com/gh_mirrors/sk/Skyfall-GS cd Skyfall-GS conda create -y -n skyfall-gs python=3.10 conda activate skyfall-gs然后安装所需依赖:
conda install cuda-toolkit=12.8 cuda-nvcc=12.8 -c nvidia pip install -r requirements.txt pip install --force-reinstall torch torchvision torchaudio pip install submodules/diff-gaussian-rasterization-depth pip install submodules/simple-knn pip install submodules/fused-ssim数据集准备
Skyfall-GS需要特定格式的数据集进行训练。JAX和NYC数据集可从Hugging Face下载:
Download from Hugging Face 🤗
下载后解压到data/目录:
unzip datasets_JAX.zip -d data/ unzip datasets_NYC.zip -d data/数据集目录结构应如下:
data/ ├── datasets_JAX/ │ ├── JAX_004 │ ├── JAX_068 │ └── ... └── datasets_NYC/ ├── NYC_004 ├── NYC_010 └── ...两阶段训练流程:从粗重建到精优化 🌟
Skyfall-GS采用curriculum-driven迭代优化策略,分为两个主要训练阶段,逐步提升几何完整性和纹理真实感。
图1:Skyfall-GS从多视角卫星图像生成沉浸式3D城市场景的流程展示,左侧为输入的卫星图像,右侧为生成的3D城市模型
第一阶段:初始3D场景重建
第一阶段专注于从卫星图像重建初始3D场景。使用以下命令启动训练:
python train.py \ -s ./data/datasets_JAX/JAX_068/ \ -m ./outputs/JAX/JAX_068 \ --eval \ --port 6209 \ --kernel_size 0.1 \ --resolution 1 \ --sh_degree 1 \ --appearance_enabled \ --lambda_depth 0 \ --lambda_opacity 10 \ --densify_until_iter 21000 \ --densify_grad_threshold 0.0001 \ --lambda_pseudo_depth 0.5 \ --start_sample_pseudo 1000 \ --end_sample_pseudo 21000 \ --size_threshold 20 \ --scaling_lr 0.001 \ --rotation_lr 0.001 \ --opacity_reset_interval 3000 \ --sample_pseudo_interval 10主要参数说明:
-s: 指定训练数据集路径-m: 指定模型输出路径--densify_until_iter: 密集化过程持续到的迭代次数--lambda_opacity: 不透明度损失的权重--lambda_pseudo_depth: 伪深度损失的权重
自动化脚本:对于JAX数据集,可以直接使用自动化脚本:scripts/run_jax.py;对于NYC数据集,使用scripts/run_nyc.py。
第二阶段:迭代数据集更新(IDU)优化
第二阶段使用迭代数据集更新策略来优化几何结构并合成高质量纹理。此阶段需要使用第一阶段训练好的模型作为预训练模型:
python train.py \ -s ./data/datasets_JAX/JAX_068/ \ -m ./outputs/JAX_idu/JAX_068 \ --start_checkpoint ./outputs/JAX/JAX_068/chkpnt30000.pth \ --iterative_datasets_update \ --eval \ --port 6209 \ --kernel_size 0.1 \ --resolution 1 \ --sh_degree 1 \ --appearance_enabled \ --lambda_depth 0 \ --lambda_opacity 0 \ --idu_opacity_reset_interval 5000 \ --idu_refine \ --idu_num_samples_per_view 2 \ --densify_grad_threshold 0.0002 \ --idu_num_cams 6 \ --idu_use_flow_edit \ --idu_render_size 1024 \ --idu_flow_edit_n_min 4 \ --idu_flow_edit_n_max 10 \ --idu_grid_size 3 \ --idu_grid_width 512 \ --idu_grid_height 512 \ --idu_episode_iterations 10000 \ --idu_iter_full_train 0 \ --idu_opacity_cooling_iterations 500 \ --lambda_pseudo_depth 0.5 \ --idu_densify_until_iter 9000 \ --idu_train_ratio 0.75关键IDU参数说明:
--iterative_datasets_update: 启用迭代数据集更新--start_checkpoint: 第一阶段训练的模型 checkpoint 路径--idu_num_cams: 每次迭代使用的相机数量--idu_use_flow_edit: 使用 FlowEdit 技术增强数据--idu_episode_iterations: 每个迭代周期的训练次数
自动化脚本:JAX数据集使用scripts/run_jax_idu.py,NYC数据集使用scripts/run_nyc_idu.py。
训练结果可视化与评估 📊
生成融合PLY模型
训练完成后,不要直接使用训练输出目录下的原始.ply文件进行可视化,需要先生成融合PLY模型:
python create_fused_ply.py \ -m ./outputs/JAX_idu/JAX_068 \ --output_ply ./fused/JAX_068_fused.ply \ --iteration 80000 \ --load_from_checkpoints渲染视频
使用训练好的模型和指定的相机路径渲染视频:
python render_video.py \ -m ./outputs/JAX_idu/JAX_068 \ --camera_path camera_paths/JAX/068/r352_e27_fov20.json \ --load_from_checkpoints \ --iteration 80000 \ --save_images \ --depth也可以直接从融合的PLY文件渲染视频:
python render_video_from_ply.py \ --ply_path ./fused/JAX_068_fused.ply \ --camera_path camera_paths/JAX/068/r352_e27_fov20.json图2:Skyfall-GS生成的高质量3D城市场景,展示了不同视角下的城市景观
模型评估
使用eval.py脚本评估模型性能,计算各种指标:
python eval.py \ --data_dir results_eval/data_eval_JAX \ --temp_dir temp_frames_JAX \ --methods mip-splatting sat-nerf eogs corgs ours_stage1 ours_stage2 \ --output_file metrics_results_JAX.csv \ --frame_rate 30 \ --resolution 1024 \ --batch_size 64评估指标包括:
- PSNR: 峰值信噪比
- SSIM: 结构相似性指数
- LPIPS: 学习感知图像块相似性
- CLIP-FID: 使用CLIP特征计算的FID分数
- CMMD: CLIP最大均值差异
总结与扩展
通过本文介绍的两阶段curriculum-driven迭代优化技术,你可以使用Skyfall-GS从卫星图像生成高质量的3D城市场景。这种方法不需要昂贵的3D标注数据,通过逐步优化策略,能够生成具有几何完整性和真实感纹理的3D场景。
除了本文介绍的基本训练流程,Skyfall-GS还提供了许多高级功能和脚本,可以进一步扩展和定制你的3D场景生成 pipeline:
align_ges.py: 通过与地面真实数据比较找到最佳目标高度gen_render_path.py: 生成围绕目标点的轨道视图相机路径render_videos.py: 批量渲染多个模型和相机路径的视频sat_utils.py: 处理卫星图像和地理参考数据的实用函数
掌握Skyfall-GS的训练技术,你将能够创建出令人惊叹的沉浸式3D城市环境,为虚拟现实、城市规划、游戏开发等领域开辟新的可能性。
祝你训练顺利,创造出精彩的3D城市场景!🚀
【免费下载链接】Skyfall-GS[ECCV 2026] Skyfall-GS: Synthesizing Immersive 3D Urban Scenes from Satellite Imagery项目地址: https://gitcode.com/gh_mirrors/sk/Skyfall-GS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考