LoG项目完全指南:从零开始搭建大规模3D场景渲染系统
【免费下载链接】LoGLevel of Gaussians项目地址: https://gitcode.com/gh_mirrors/log6/LoG
LoG(Level of Gaussians)是一个强大的3D场景渲染系统,能够利用单张RTX 4090显卡训练高度逼真的城市级模型并实现实时渲染。本指南将帮助你从零开始搭建并运行这一先进的3D渲染系统,即使你是3D建模领域的新手也能轻松上手。
🚀 为什么选择LoG?
LoG项目凭借其创新的高斯层级技术,在3D场景渲染领域脱颖而出。它不仅能够处理大规模场景,还能在保证渲染质量的同时实现实时交互,为开发者和设计师提供了一个高效、灵活的3D建模解决方案。无论是城市规划、游戏开发还是虚拟现实应用,LoG都能满足你的需求。
📋 准备工作
在开始安装LoG之前,请确保你的系统满足以下要求:
- 操作系统:Linux(推荐Ubuntu)
- 显卡:NVIDIA RTX 4090(或同等性能的GPU)
- 已安装Anaconda或Miniconda
- 足够的存储空间(至少20GB)
🔧 安装步骤
1. 创建并激活虚拟环境
首先,我们需要创建一个专门的Python环境来运行LoG项目:
conda create --name LoG python=3.10 -y conda activate LoG2. 安装PyTorch和相关依赖
LoG需要特定版本的PyTorch和torchvision以支持CUDA 11.8:
pip install torch==2.0.1+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 pip install torchvision==0.15.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu1183. 克隆项目仓库
接下来,克隆LoG项目仓库并安装所需的依赖包:
git clone https://gitcode.com/gh_mirrors/log6/LoG cd LoG pip install -r requirements.txt4. 安装必要的子模块
LoG依赖于一些外部库,需要单独安装:
mkdir submodules && cd submodules git clone https://github.com/graphdeco-inria/diff-gaussian-rasterization.git --recursive pip install ./diff-gaussian-rasterization -v git clone https://github.com/chingswy/diff-gaussian-rasterization.git mydiffgaussian --recursive cd mydiffgaussian git checkout antialias pip install . -v cd .. git clone https://gitlab.inria.fr/bkerbl/simple-knn.git pip install ./simple-knn -v cd ..5. 安装LoG包
最后,以可编辑模式安装LoG包,方便后续开发和修改:
pip install -e .6. 安装MiDaS(可选)
如果你需要使用深度估计功能,可以安装MiDaS:
git clone https://github.com/isl-org/MiDaS.git --depth=1 cd MiDaS/weights wget -c https://github.com/isl-org/MiDaS/releases/download/v3_1/dpt_beit_large_512.pt cd .. cp ../../docs/external/run_midas.py ./ pip install timm==0.6.12 imutils7. 设置交互式GUI(可选)
LoG提供了一个交互式GUI,用于可视化和操作3D模型:
cd submodules git clone https://github.com/zju3dv/EasyVolcap.git cd EasyVolcap pip install -v -e . --no-deps pip install pdbr h5py PyGLM imgui-bundle addict yapf ujson scikit-image cuda-python ruamel.yaml cd ../..📊 数据集准备
使用示例数据集
LoG提供了一个示例数据集,你可以通过以下链接获取:示例数据集。下载并解压后,将其放置在data/feicuiwan_sample_folder目录下。
验证数据集完整性:
python3 apps/test_dataset.py --cfg config/example/test/dataset.yml split dataset检查点云投影是否正确:
python3 apps/test_pointcloud.py --cfg config/example/test/dataset.yml split dataset radius 0.01输出结果将保存在debug/目录中。
准备自己的数据集
如果你想使用自己的数据集,需要按照以下步骤进行准备:
1. 图像组织
将你的图像按照以下结构组织:
<data> ├── images │ ├── DJI_0144.JPG │ ├── DJI_0145.JPG │ └── ...如果使用多个相机拍摄,可以按相机组织图像:
<data> └── images ├── h ├── q ├── x ├── y └── z2. 运行COLMAP
使用COLMAP进行稀疏重建:
data=<path_to_your_dataset> # 单相机 colmap feature_extractor --database_path ${data}/database.db --image_path ${data}/images --ImageReader.camera_model OPENCV --ImageReader.single_camera 1 --SiftExtraction.use_gpu 0 # 多相机 colmap feature_extractor --database_path ${data}/database.db --image_path ${data}/images --ImageReader.camera_model OPENCV --ImageReader.single_camera_per_folder 1 --SiftExtraction.use_gpu 0 # 匹配和重建 colmap exhaustive_matcher --database_path ${data}/database.db --SiftMatching.use_gpu 0 mkdir -p ${data}/sparse colmap mapper --database_path ${data}/database.db --image_path ${data}/images --output_path ${data}/sparse3. 检查COLMAP结果
python3 apps/calibration/read_colmap.py ${data}/sparse/0 --min_views 2🚀 开始训练
完成数据集准备后,你可以开始训练模型了。使用以下命令启动训练:
python3 apps/train.py --cfg config/example/test/train.yml对于大型场景,如UrbanScene3D中的Hospital或Campus数据集,你可以使用相应的配置文件:
# Hospital数据集 python3 apps/train.py --cfg config/example/Hospital/train_wdepth.yml # Campus数据集 python3 apps/train.py --cfg config/example/Campus/train_wdepth.yml👀 可视化训练结果
训练完成后,你可以使用GUI工具可视化结果:
python3 apps/gui.py filename=config/example/test/train.yml ckptname=output/example/test/log/model_latest_wotrain.pth在GUI中,你可以使用鼠标进行交互:
- 拖动:旋转视角
- 滚轮:缩放
- 右键拖动:平移
- W/A/S/D键:移动相机
📚 进阶技巧
处理大规模场景
对于大规模场景,LoG提供了专门的预处理方法。例如,处理UrbanScene3D的Hospital数据集:
# 特征提取 colmap feature_extractor --database_path ${data}/database.db --image_path ${data}/images --ImageReader.camera_model OPENCV --ImageReader.single_camera_per_folder 1 --SiftExtraction.use_gpu 0 # 匹配 colmap vocab_tree_matcher --database_path ${data}/database.db --VocabTreeMatching.vocab_tree_path ./vocab_tree_flickr100K_words1M.bin --VocabTreeMatching.num_images 100 --SiftMatching.use_gpu 0 # 重建 mkdir ${data}/sparse colmap mapper --database_path ${data}/database.db --image_path ${data}/images --output_path ${data}/sparse # 对齐 python3 apps/calibration/align_with_cam.py --colmap_path ${data}/sparse/0 --target_path ${data}/sparse_align python3 apps/calibration/read_colmap.py ${data}/sparse_align --min_views 3使用GPS信息
如果你的数据集包含GPS信息,可以利用GPS进行图像匹配和对齐:
# 读取GPS信息 python3 apps/calibration/read_gps_info.py --image_path ${data}/images --output_path ${data}/gps.npy --multifolder # 使用GPS对齐 python3 apps/calibration/align_with_gps.py --gps_path ${data}/gps.npy --colmap_path ${data}/sparse/0 --output_colmap_path ${data}/sparse_align🛠️ 项目结构
LoG项目的主要结构如下:
- model/: 包含核心的高斯层级模型实现,如model/level_of_gaussian.py
- render/: 渲染相关代码,包括render/renderer.py
- dataset/: 数据集处理模块,如dataset/colmap.py
- apps/: 应用程序入口,包括训练和测试脚本
- config/: 配置文件,如config/example/test/train.yml
- docs/: 项目文档,如docs/install.md和docs/preprocess.md
📝 总结
通过本指南,你已经了解了如何从零开始搭建和使用LoG项目进行大规模3D场景渲染。从环境配置到数据集准备,再到模型训练和结果可视化,每一步都详细介绍了操作方法。无论你是3D建模的新手还是有经验的开发者,LoG都能为你提供一个强大而灵活的工具来创建逼真的3D场景。
现在,是时候开始你的3D渲染之旅了!如有任何问题,可以参考项目的官方文档或在社区寻求帮助。祝你使用LoG项目创造出令人惊叹的3D作品!
【免费下载链接】LoGLevel of Gaussians项目地址: https://gitcode.com/gh_mirrors/log6/LoG
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考