Ubuntu复现NeuS(用体绘制学习神经隐式曲面用于多视图重建 )——NeRF应用:表面重建

2023-11-15

目录

一、系统配置

二、安装

可能会遇到的问题:

1.pytorch安装报错

 2.缺少安装依赖项

三、数据集文件夹设置

1.数据集链接

2.数据集组织

3.以dtu_scan24为例

四、训练(以dtu_scan24为例)

 1.无掩码训练

2.有掩码训练

3.从训练模型中提取表面(有掩码)

4. 视图插值(有掩码)

五、复现结果

1.无掩码训练得到的网格优化(60万次)

2. 有掩码训练得到的网格优化(30万次)

3.预训练有掩码监督训练得到的网格优化(30万次)

4. 渲染得到的视频(有掩码监督)


参考:https://github.com/Totoro97/NeuS

一、系统配置

1. 操作系统:ubuntu20.04

2. GPU:Nvidia RTX3090

3. CUDA:11.3 

4. python3.8.0

5. torch==1.8.0

6. opencv_python==4.5.2.52

7. trimesh==3.9.8

8. numpy==1.19.2

9. pyhocon==0.3.57

10. icecream==2.1.0

11. tqdm==4.50.2

12. scipy==1.7.0

13. PyMCube==0.1.2

二、安装

git clone https://github.com/Totoro97/NeuS.git
cd NeuS
pip install -r requirements.txt

按照以上代码在终端中运行就可以下载此项目的软件包并且完成conda环境的配置。

可能会遇到的问题:

1.pytorch安装报错

我电脑安装的cuda是11.3的,但是配置文件里面的pytorch是1.8版本的,我在pytorch官网上没有找到cuda11.3对应的pytoch==1.8版本的,如果直接安装pytorch1.8版本的话训练时会报错使用不了GPU加速,因此我安装cuda11.1版本的pytorch,可以进行训练,以下是安装指令。

pip install torch==1.8.0+cu111 -f https://download.pytorch.org/whl/cu111/torch_stable.html

 2.缺少安装依赖项

ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorboard 2.13.0 requires protobuf>=3.19.6, which is not installed.
tensorboard 2.13.0 requires requests<3,>=2.21.0, which is not installed.
google-auth 2.18.0 requires urllib3<2.0, which is not installed.
pandas 2.0.1 requires numpy>=1.20.3; python_version < "3.10", but you have numpy 1.19.2 which is incompatible.

我是新创建的NeuS环境,所以会遇到一些依赖项没有安装,按照它报错的提示把这些依赖项安装就可以了。

三、数据集文件夹设置

1.数据集链接

https://drive.google.com/drive/folders/1Nlzejs4mfPuJYORLbDEUDWlc9IZIbU0C

2.数据集组织

<case_name>
|-- cameras_xxx.npz    # camera parameters
|-- image
    |-- 000.png        # target image for each view
    |-- 001.png
    ...
|-- mask
    |-- 000.png        # target mask each view (For unmasked setting, set all pixels as 255)
    |-- 001.png
    ...

3.以dtu_scan24为例

我复现实验的数据集:NeuS复现的一个DTU数据集

NeuS
 |
 | public_data
 |   | dtu_scan24
 |   |   |-- cameras_large.npz
 |   |   |-- cameras_sphere.npz 
 |   |   |-- image
 |   |      |-- 000.png        
 |   |      |-- 001.png
 |   |      ...
 |   |   |-- mask
 |   |      |-- 000.png        
 |   |      |-- 001.png
 |   |      ...

在NeuS文件夹里面创建public_data文件夹,然后把dtu_scan24文件夹放进去数据集的放置就可以了。

四、训练(以dtu_scan24为例)

 1.无掩码训练

python exp_runner.py --mode train --conf ./confs/womask.conf --case dtu_scan24

2.有掩码训练

python exp_runner.py --mode train --conf ./confs/wmask.conf --case dtu_scan24

3.从训练模型中提取表面(有掩码)

python exp_runner.py --mode validate_mesh --conf ./confs/wmask.conf --case dtu_scan24 --is_continue

4. 视图插值(有掩码)

python exp_runner.py --mode interpolate_0_1 --conf ./confs/wmask.conf --case dtu_scan241 --is_continue 

五、复现结果

1.无掩码训练得到的网格优化(60万次)

2. 有掩码训练得到的网格优化(30万次)

3.预训练有掩码监督训练得到的网格优化(30万次)

4. 渲染得到的视频(有掩码监督)

NeuS render

ps:如果使用无掩码监督的权重渲染视频的话得不到物体的模型哦,打开是一个非常模糊的景象。总之复现出来的结果与原论文上面的结果差距是非常大的,都是训练30万次,可是结果是很差。在rtx3090上训练有掩码监督的话需要大概7个小时,没有掩码的话大概需要9个小时。总之NeuS 主要的关注点即是几何重建,往往能得到相比之前方法更优秀的代理几何结果,最大贡献就在于将体渲染和 SDF 有机结合,二者建立联系,共同优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu复现NeuS(用体绘制学习神经隐式曲面用于多视图重建 )——NeRF应用:表面重建 的相关文章

  • sonar 配置sonarqube分析unity中的C# 代码

    参考文档 使用SonarQube对Unity项目进行代码分析的问题记录 zerozabuu 博客园 一文搞定 SonarQube 接入 C NET 代码质量分析 狂师 博客园 需要分析的代码是unity下的C 代码 配置流程主要参考上面两个
  • React hook 判断语句内不能使用useEffect(乱序问题)

    const Parent gt const count setCount useState 0 如果这样写控制台会报错 原因继续往下看 if count gt 1 useEffect gt console log 大于1
  • win7可关闭服务

    Adaptive brightness 如果你没有使用触摸屏一类的智能调节屏幕亮度的设备 该功能就可以放心禁用 ApplicationLayer Gateway Service 为Internet连接共享提供第三方协议插件的支持 Appli
  • 数码管时钟显示按键控制 fpga实现

    目录 原理 实现 原理 数码管原理 并且该数码管是共阳极 所以段选低电平有效 片选低电平有效 段选共用8个引脚 实现 思路 分三个模块实现 1 按键消抖 按键消抖 2 计数器模块 产生需要的时钟信号数据 3 数码管驱动 将输入的数据转换为段
  • BIG Endian 和 Little Endian(small endian)模式的区别

    BIG Endian 和 Little Endian small endian 模式的区别 谈到字节序的问题 必然牵涉到两大CPU派系 那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU PowerPC系列采用b

随机推荐

  • QT 打开指定目录并选中指定文件

    目录 方法一 使用Qt自带的方法 方法二 使用windows自带工具 有时自动生成文件之后 点击某个按钮我们希望能够自动跳转到文件所在目录 打开之后不依附于运行程序 可能还需要选中该文件 环境 win10 Qt5 9 6 MinGW 方法一
  • 江苏大学计算机学院林琳,计算机学院教师岗副高及以下、其它专技中级及以下人员岗位聘用结果公示...

    副教授五级 6人 按姓名拼音排序 下同 毕建良 李峰 林庆 毛启容 王良民 朱利平 副教授六级 14人 陈伟鹤 韩飞 李莉 李星毅 潘雨青 钱少先 王洪金 熊书明 杨利霞 曾兰玲 赵念强 周从华 朱小龙 邹志文 副教授七级 13人 蔡涛 陈
  • Docker启动一个Centos镜像

    搜索可用的centos的docker镜像 docker search
  • 第三届国际金融科技论坛开幕,神州信息专家参与蓉城“论道”

    10月30日至31日 由西南财经大学 加州大学伯利克分校国际风险数据分析联盟 成都市地方金融监督管理局联合主办的 第三届国际金融科技论坛 SWUFE CDAR 2020 在成都举行 神州信息金融战略本部副总裁潘志江 神州信息金融科技首席风控
  • google 图片下载

    def xia url headers headers user agent Mozilla 5 0 Windows NT 10 0 WOW64 AppleWebKit 537 36 KHTML like Gecko Chrome 78 0
  • Cadence 17.4 使用TIPS: Orcad 输出PDF

    首先File gt Export gt PDF PDF Export 设置页面 其中有4个输出工具供选择 此处我选择第一个Acrobat Distiller 这个是电脑里安装了咱们常用的Adobe Acrobat DC 就会自带的程序 如果
  • 线性分组码最小汉明距离_信息与编码系列(六)线性码~线性代数

    目录 序 线性码的矩阵描述 线性码的等价性 线性码的最小距离 标准数组 Standard Array 校验子解码 Syndrome Decoding 序 这篇文章相当于做一篇 索引 将线性代数的东西和线性码对应起来 方便日后出现问题能够快速
  • jsp调用服务器上的其他程序(C程序)

    String area dz String req getParameter area String id dz String req getParameter id String ip 10 xxx x xx String encodeS
  • SAM-DETR学习笔记Accelerating DETR Convergence via Semantic-Aligned Matching

    Abstract 最近开发的DEtection TRansformer DETR 通过消除一系列手工制作的组件 建立了一个新的对象检测范式 然而 DETR的收敛速度非常慢 这大大增加了培训成本 我们观察到 慢收敛主要归因于在不同特征嵌入空间
  • dropout层

    深度神经网 DNN 中经常会存在一个常见的问题 模型只学会在训练集上分类 过拟合现象 dropout就是为了减少过拟合而研究出的一种方法 一 简介 当训练模型较大 而训练数据很少的话 很容易引起过拟合 一般情况我们会想到用正则化 或者减小网
  • EIGamal数字签名的实现(c++)——大三密码学实验

    实验原理 1 密钥产生 Alice要对一个消息签名 她选择一个大素数p和一个本原根g 选择一个秘密整数 并且计算 p g y 公开 x秘密保存 注 EIGamal签名方案的安全性在于x的保密性 由于离散对数学问题难解 很难由 p g y 确
  • 电脑上显示打印机无法连接服务器错误代码,电脑怎么连接打印机显示错误代码的解决办法...

    下面来看看小编为您整理的电脑怎么连接打印机显示错误代码的答案 电脑怎么连接打印机显示错误代码内容导航1 连接不上打印机错误0x00000709 打印机出现0x00000709错误代码可能是因为网络或者打印设置错误 具体解决步骤如下 1 首先
  • 关于APP接口设计

    最近一段时间一直在做APP接口 总结一下APP接口开发过程中的注意事项 1 效率 接口访问速度 APP有别于WEB服务 对服务器端要求是比较严格的 在移动端有限的带宽条件下 要求接口响应速度要快 所有在开发过程中尽量选择效率高的框架 PHP
  • golang获取当前时间,前n天时间,以及时间格式的转化

    获取当前时间 currentTime time Now currentTime 的结果为go的时间time类型 2018 09 27 13 24 58 287714118 0000 UTC 获取前n天的时间 获取两天前的时间 current
  • idea中jar包依赖了但还是找不到类的解决方案

    新项目check到本地 导入到idea中后 编译的时候很多类都报错了 打开发现有些框架中的类找不到 现象为 控制台报错 点击这个包 明明发现是有这个依赖的 说明项目是依赖了这个jar包的 打开项目配置 查看依赖树 问题找到 idea这里将这
  • 机器学习实验基础

    文章目录 一 机器学习是什么 二 实验方法和原则 1 评价指标 1回归任务 2分类任务 3特定任务 2 数据集 3 实验验证 随机重复实验 K fold 交叉实验 三 总结 课程链接 学堂在线 张敏老师机器学习算法训练营 一 机器学习是什么
  • sparkStreaming对接kafka

    ReceiverAPI 需要一个专门的Executor去接收数据 然后发送给其他的Executor做计算 存在的问题 接收数据的Executor和计算的Executor速度会有所不同 特别在接收数据的Executor速度大于计算的Execu
  • shell脚本编程之循环

    内容预知 1 循环的定义 2 for循环 2 1 for循环的基本用法 运用演示1 列表打印 运用演示二 分类打印 运用演示三 累加求和 2 2 for循环读取文件作为循环条件 运用演示 2 3 for循环的多线程运用 运用演示 2 4 f
  • 计算机系统课程 笔记总结 CSAPP第七章 链接(7.1-7.13)

    GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
  • Ubuntu复现NeuS(用体绘制学习神经隐式曲面用于多视图重建 )——NeRF应用:表面重建

    目录 一 系统配置 二 安装 可能会遇到的问题 1 pytorch安装报错 2 缺少安装依赖项 三 数据集文件夹设置 1 数据集链接 2 数据集组织 3 以dtu scan24为例 四 训练 以dtu scan24为例 1 无掩码训练 2