论文链接:https://arxiv.org/pdf/2301.09632.pdf
项目地址:https://caoang327.github.io/HexPlane/
HexPlane简介
来自的密歇根大学的研究者提出了「HexPlane」,一种能高效合成动态场景新视图的方法。
在三维视觉中,动态三维场景的建模和重渲染是一项具有挑战性的任务。目前许多基于NeRF的方法在该任务中依赖于隐式表示,由于大量的MLP评估,这相对较慢,限制了现实世界中的应用。
作者发现动态3D场景可以由六个特征平面显式表示,从而产生了一个名为HexPlane的优雅解决方案。作为一种显式表示,HexPlane通过融合从每个平面提取的向量来计算时空点的特征,这是有效且高效的。通过微小的MLP,它为动态新视图合成提供了令人印象深刻的结果,与先前工作的图像质量相匹配,但将训练时间提高了100倍以上。
注意
HexPlane是使用 pytorch 预训练模型 VGG16 来进行预训练的
因此要格外注意是否能直接使用给的官方网址来进行下载
过程涉及到使用梯子
但也可以直接找其他博主下载好的
配置环境
# create conda environment
conda create --name hexplane python=3.8
# activate env
conda activate hexplane
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.6 -c pytorch -c conda-forge
# pip install
pip install -r requirements.txt
python setup.py develop
这些应该配置起来都比较顺利
数据准备
D-NeRF数据集和 Plenoptic数据集都是可以的(点击即可下载对应的数据集)
接着在 dnerf_slim.yaml 文件中修改数据集地址
记得在下载的数据集中再添加一层 data 子目录,不然会一直报错,说找不到 json 文件
例如,我使用的是 lego 数据集
我就现在 lego 文件下新建一个data 目录
然后再把原本 lego 中的所有文件移到 data 目录下
训练
python main.py config=dnerf_slim.yaml
我一开始使用重建命令时一直报错(找不到文件)
只需要直接把 dnerf_slim.yaml 文件从config文件中复制一个到大的 HexPlane 目录下就 ok 了
可视化结果
tensorboard
先使用 conda install tensorboard 命令下载 tensorboard
只使用这一条命令即可使用
不用额外编译什么的
然后输入下面这条命令(原封不动输入就好,不需要修改什么参数)
tensorboard --logdir=../models/'seg/cls'
接着运行完之后,在浏览器中输入这网站
打开之后,再在 Windows 的 cmd 中输入下面的可视化命令
ssh -L 6006:localhost:6006 主机名
刷新网页
即可得到 loss 等参数信息
渲染视频
首先需要在目录下查找是否有蓝色字体的目录名
如有则说明渲染成功
我这边从 logs 目录开始就被隐藏了
需要把隐藏目录显示出来,直接上网搜索即可,不多赘述
点击蓝色目录名的目录
即可找到渲染成功的视频
虽然上述复现步骤非常简洁
但我复现的时候依旧踩了很多很多的坑
因为不了解代码的作用、GitHub的文件信息
所有绝大部分时间都处于无从下手的状态
已经决定后面要多在源码上下功夫了wwwwwww