[ECCV'24] HAC
HAC: 基于哈希网格辅助上下文的3D高斯散射压缩的官方PyTorch实现。
陈奕航、 吴倩怡、 林伟耀、 Mehrtash Harandi、 蔡剑飞
链接
🎉 CNC [CVPR'24] 已发布,用于高效NeRF压缩![论文
] [项目主页
] [GitHub
]
概述
我们的方法引入了二进制哈希网格来建立连续的空间一致性,使我们能够通过精心设计的上下文模型揭示锚点的内在空间关系。为了便于熵编码,我们利用高斯分布准确估计每个量化属性的概率,其中提出了一个自适应量化模块,以实现这些属性的高精度量化,从而提高保真度还原。此外,我们还采用了自适应掩蔽策略来消除无效的高斯和锚点。重要的是,我们的工作是首次探索基于上下文的3DGS表示压缩,实现了显著的尺寸缩减。
性能
安装
我们在Ubuntu 20.04.1、CUDA 11.8、GCC 9.4.0的服务器上测试了我们的代码
- 解压文件
cd submodules
unzip diff-gaussian-rasterization.zip
unzip gridencoder.zip
unzip simple-knn.zip
cd ..
- 安装环境
conda env create --file environment.yml
conda activate HAC_env
数据
首先,在项目路径内创建一个data/
文件夹:
mkdir data
数据结构将按如下方式组织:
data/
├── dataset_name
│ ├── scene1/
│ │ ├── images
│ │ │ ├── IMG_0.jpg
│ │ │ ├── IMG_1.jpg
│ │ │ ├── ...
│ │ ├── sparse/
│ │ └──0/
│ ├── scene2/
│ │ ├── images
│ │ │ ├── IMG_0.jpg
│ │ │ ├── IMG_1.jpg
│ │ │ ├── ...
│ │ ├── sparse/
│ │ └──0/
...
- 例如:
./data/blending/drjohnson/
- 例如:
./data/bungeenerf/amsterdam/
- 例如:
./data/mipnerf360/bicycle/
- 例如:
./data/nerf_synthetic/chair/
- 例如:
./data/tandt/train/
公开数据集(我们遵循Scaffold-GS的建议)
- BungeeNeRF数据集可在Google Drive/百度网盘[提取码:4whv]获取。
- MipNeRF360场景由论文作者在此处提供。我们测试了其全部9个场景
bicycle, bonsai, counter, garden, kitchen, room, stump, flowers, treehill
。 - Tanks&Temples和Deep Blending的SfM数据集由3D-Gaussian-Splatting在此处托管。下载并解压到
data/
文件夹中。
自定义数据
对于自定义数据,您应使用Colmap处理图像序列以获取SfM点和相机姿态。然后,将结果放入data/
文件夹中。
训练
为了训练场景,我们提供以下训练脚本:
- Tanks&Temples:
run_shell_tnt.py
- MipNeRF360:
run_shell_mip360.py
- BungeeNeRF:
run_shell_bungee.py
- Deep Blending:
run_shell_db.py
- Nerf Synthetic:
run_shell_blender.py
使用以下命令运行它们:
python run_shell_xxx.py
代码将自动运行整个过程:训练、编码、解码、测试。
- 训练日志将记录在输出目录的
output.log
中。详细的保真度、详细的大小、详细的时间结果都将被记录 - 编码后的比特流将存储在输出目录的
./bitstreams
中。 - 评估后的输出图像将保存在输出目录的
./test/ours_30000/renders
中。 - 您可以选择在这些
run_shell_xxx.py
脚本中更改lmbda
以尝试不同的比特率。 - 训练后,原始模型
point_cloud.ply
被无损压缩为./bitstreams
。您应该参考./bitstreams
来获取最终的模型大小,而不是point_cloud.ply
。如果您愿意,甚至可以删除point_cloud.ply
:)。
联系方式
引用
如果您发现我们的工作有帮助,请考虑引用:
@inproceedings{hac2024,
title={HAC: Hash-grid Assisted Context for 3D Gaussian Splatting Compression},
author={Chen, Yihang and Wu, Qianyi and Lin, Weiyao and Harandi, Mehrtash and Cai, Jianfei},
booktitle={European Conference on Computer Vision},
year={2024}
}
许可证
请遵循3D-GS的许可证。
致谢
- 我们感谢3D-GS的所有作者提供了如此出色的工作。
- 我们感谢Scaffold-GS的所有作者提供了如此出色的工作。