windows 上运行 NeSF 代码

NeSF简介

NeSF 是 NeRF 在语义分割上的应用,核心思想是使用NeRF的模型训练一个密度场,将密度场投入3D-Unet网络进行训练,得到空间中每一点的语义信息。并使用给出的 2D 语义图作为监督,损失最小化。
得到新视角下语义图的过程使用了体渲染的方法,将图片上每个像素点都通过体渲染的方法在空间中采样,结合体密度加权求和,获得新视角下的 2D 语义图。

下面是NeSF的网络结构:

windows 上运行 NeSF 代码_第1张图片

损失:

包括渲染出的语义值与用于监督的2D语义值的损失,以及平滑正则项损失(用于约束一点的语义值尽可能与周围相同)。
windows 上运行 NeSF 代码_第2张图片

运行代码过程

下载

google 不提供单独的 NeSF 项目,要下载 jax3d 项目合集
https://github.com/google-research/jax3d
安装 python 3.7 环境

配置环境

第一个坑:

安装 requirements.txt 给出的包时,不要用 conda 和pycharm,速度会很慢。
下面是关键:jax 包暂不提供 windows 支持,找到了一种非官方的方法。
下面是它的项目主页,可以在上面找到其他版本的信息:
https://github.com/cloudhan/jax-windows-builder
在NeSF中,只需要使用如下命令安装即可。

pip install jaxlib[cuda111] -f https://whls.blob.core.windows.net/unstable/index.html --use-deprecated legacy-resolver
第二个坑:

flax.optim not found
在 flax 版本更替的过程中,移除了optim这个包,但代码中要用,所以要装老版本的flax,需要下载 0.5.3 版本。

pip install flax==0.5.3

其他应该没什么问题,如果有的话,无非就是下载得慢了点,找不到包,我使用的是清华源,每个包都能在那里找到。

https://pypi.tuna.tsinghua.edu.cn/simple

运行

第三个坑:

我使用的是3060显卡,显存12G,但是实际运行的时候,显存爆掉了。

报错为:Process finished with exit code -1073741819 (0xC0000005)

调整为建议的参数之后成功运行。
windows 上运行 NeSF 代码_第3张图片
主要是修改文档中红线部分的参数。
windows 上运行 NeSF 代码_第4张图片
还有一点,不要在命令行运行代码,不然有些包无法正常导入。
运行方法:
windows 上运行 NeSF 代码_第5张图片
gin_file:配置文件
gin_bindings:
DatasetParams.data_dir:数据文件夹
DatasetParams.train_scenes:训练的场景
DatasetParams.train_dir:输出结果的目录

注意:双引号 “” 中不能嵌套双引号,要使用单引号

windows 上运行 NeSF 代码_第6张图片

END

你可能感兴趣的:(NeRF,tensorflow)