Point-Nerf复现及解析

Point-Nerf复现及解析
鸣谢:同组的李xx师兄博士(交流思路)、辰昶仪器的狗哥等人(帮忙down资源)

0.0我自己的复现工程

  代码和安装包下载地址:https://gitcode.net/qq_35789421/point-nerf。所需库的安装包在package文件夹下,代码在code文件夹下,测试数据在data文件下:离线安装直接用pip install xxx.whl,terminal下安装直接pip install xxx就行

安装包作用
torch-1.8.1+cu102-cp38-cp38-win_amd64.whl(离线安装)深度学习训练
h5py-3.11.0-cp38-cp38-win_amd64.whl (离线安装)内存大数据处理
scikit-image-0.15.0.tar.gz (离线安装)图像处理
imageio-2.34.0-py3-none-any.whl (离线安装)图像读写与存储
scipy-1.10.1-cp38-cp38-win_amd64.whl (离线安装)数值分析处理
matplotlib-3.7.5-cp38-cp38-win_amd64.whl(离线安装)数据可视化
fonttools-4.51.0-cp38-cp38-win_amd64.whl(离线安装)字体设置
pillow-10.3.0-cp38-cp38-win_amd64.whl(离线安装)图像处理
PyWavelets-1.4.1-cp38-cp38-win_amd64.whl(离线安装)小波变换
pytools-2024.1.1-py2.py3-none-any.whl(离线安装)集成工具包

  在下载之前最好使用

git config http.postBuffer 524288000

修改一下git的块缓冲内存,否则可能出现RPC failed的报错(离线安装包有点大)

0.1相关库介绍

0.1.1 pytorch

  Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。
  pytorch相对于tensorflow出现的较晚一些,主要是针对深度神经网络而开发出来,这几年发展也是十分不错;tensorflow出现的较早,它的优点是分布式计算,在面临较大数据时相对效率较高;
  pytorch是动态框架,tensorflow是静态框架,主要区别就是静态框架在构建计算图的时候提前构建好,之后则无法改变,固定了计算的流程,势必带来了不灵活性,如果我们要改变计算的逻辑,或者随着时间变化的计算逻辑,这样的动态计算TensorFlow是实现不了的;而动态框架可以根据具体计算情况进行改变
  tensorflow的库相对完备齐全,而pytorch还在完善中;所以tensorflow在可视化方面十分出色;
  pytorch对python十分友好,更加python化的框架,而tensorflow的话更加像独立的语言和框架
在这里插入图片描述

0.1.2 h5py

  使用h5py库读写超过内存的大数据 。在简单数据的读操作中,我们通常一次性把数据全部读入到内存中。读写超过内存的大数据时,有别于简单数据的读写操作,受限于内存大小,通常需要指定位置、指定区域读写操作,避免无关数据的读写。 h5py库刚好可以实现这一功能。
  h5py的优势:速度快、压缩效率高,总之,numpy.savez和cPickle存储work或不work的都可以试一试h5py!h5py文件是存放两类对象的容器,数据集(dataset)和组(group),dataset类似数组类的数据集合,和numpy的数组差不多。group是像文件夹一样的容器,它好比python中的字典,有键(key)和值(value)。group中可以存放dataset或者其他的group。”键”就是组成员的名称,”值”就是组成员对象本身(组或者数据集)

0.1.3 Scikit-Image

  Scikit-Image(skimage)是一个用于图像处理的Python库,提供了丰富的算法和工具,用于图像滤波、形态学处理、颜色转换、边缘检测、图像分割等。它的设计理念是简洁、易用和功能强大,适合快速开发和实验。

0.1.4 imageio

  imageio是一个Python库,它提供了一个简单的接口来读取和写入大量的图像数据,包括动画图像、体积数据和科学格式。它是跨平台的,运行在Python 2 .x和3。x上,并且易于安装。imageio.imread() 从指定的文件读取图像。返回一个NUMPY数组,该数组带有元数据的元属性。注意,图像数据按原样返回,并且可能不总是具有uTI8的dType(因此可能不同于例如PIL返回)。

0.1.5 scipy

  Scipy是一个用于数学、科学、工程领域的常用软件包,可以处理插值、积分、优化、图像处理、常微分方程数值解的求解、信号处理等问题。它用于有效计算Numpy矩阵,使Numpy和Scipy协同工作,高效解决问题。Scipy 由不同科学计算领域的子模块组成:
在这里插入图片描述

0.1.6 Matplotlib

  Matplotlib是一个Python中广泛使用的绘图库,可以用于创建各种类型的静态、动态或交互式图表和可视化。它提供了一系列函数和工具,使得用户可以很方便地对数据进行处理和分析,并将其以图形化的方式呈现出来。

0.1.7 fonttools

  FontTools 是一个开源的Python库,专为字体设计和排版专业人士打造,用于处理各种字体文件格式。这个项目由Adobe、Mozilla以及其他贡献者共同维护,其强大的功能和灵活的API使得它在字体工程领域中独树一帜。

0.1.8 Pillow

  Pillow库是一个Python的第三方库。在Python2中,PIL(Python Imaging Library)是一个非常好用的图像处理库,但PIL不支持Python3,所以有人(Alex Clark和Contributors)提供了Pillow,可以在Python3中使用。

0.1.9 PyWavelets

  PyWavelets是Python 编程语言的免费开源小波变换软件。

0.2.复现简介

  首先我是在windows 10下的pycharm编译器环境下进行复现的,选择了conda虚拟环境下复现,python版本为3.8。源代码链接是参考的https://github.com/zswang666/PnP-Depth,电脑已经安装了cuda10.2了,opencv用的是(opencv_python-3.4.9.31-cp38-cp38-win_amd64.whl),

0.2.1安装库步骤

①pip install torch-1.8.1+cu102-cp38-cp38-win_amd64.whl
②pip install torchvision-0.9.1+cu102-cp38-cp38-win_amd64.whl
③pip install torchaudio-0.8.1-cp38-none-win_amd64.whl
④pip install h5py-3.11.0-cp38-cp38-win_amd64.whl
⑤pip install scikit_image-0.16.2-cp38-cp38-win_amd64.whl
⑤<1>pip install scipy-1.10.1-cp38-cp38-win_amd64.whl(补充下载)
⑤<2>pip install matplotlib-3.7.5-cp38-cp38-win_amd64.whl(补充下载)
⑤<2-1>pip install fonttools-4.51.0-cp38-cp38-win_amd64.whl(补充下载)
⑤<2-2>pip install pillow-10.3.0-cp38-cp38-win_amd64.whl(补充下载)
⑤<3>pip install imageio-2.34.0-py3-none-any.whl(补充下载)
⑤<4>pip install networkx-3.1-py3-none-any.whl(补充下载)
⑤<5>pip install PyWavelets-1.4.1-cp38-cp38-win_amd64.whl (补充下载)
⑥pip install pycuda-2024.1.tar.gz
⑥<1>pip install pytools-2024.1.1-py2.py3-none-any.whl(补充下载)
⑦pip install torch_scatter-2.0.8.tar.gz

0.2.2 运行测试错误解决

  • 1.缺少部分库,自己缺啥装啥(例如opencv等,其中kornia是0.5.7版本

 下面是我缺少的库的清单与版本(能pip install 的这里就没有列),通过下载离线安装包进行安装的,建议去清华源下载

库名版本
opencv3.4.9.31
kornia0.5.7

0.3.参考链接

1.【论文精读】Point-NeRF:Point-based Neural Radiance Fields
2.Point-NeRF 可以被有效渲染,训练速度提升30倍
3.Point-NeRF: Point-based Neural Radiance Fields论文翻译笔记
4.论文阅读笔记—CVPR2022—Point-NeRF
5.NeRF神经辐射场学习笔记(三)——Point-NeRF论文解读
6.论文随记|Point-NeRF: Point-based Neural Radiance Fields
7.复现point-nerf踩坑记录(可以运行测试)

1.0数据准备

源代码提供的数据集下载链接为:https://drive.google.com/drive/folders/1kqbbdbbN1bQnwYglRe4iV8dKnyCvoOFS?usp=sharing
在这里插入图片描述

1.0.0DTU数据集

<1>简介

DTU是一个MVS数据集,常被被用来做MVS、NeRF方法的训练集。它是一个大型数据集,包含受控实验室环境中的128个场景,其模型使用结构光扫描仪捕获。在7种不同的照明条件下,在相同的49或64个相机位置扫描每个场景,生成分辨率为1200×1600像素的RGB图像。由于数据集涵盖了各种对象和材料,因此非常适合在现实条件下训练和测试深度学习MVS方法。因为参考模型是点云,地面真实深度图应根据网格模型进行渲染,网格模型是使用表面重建方法(例如筛选泊松screened Poisson surface reconstruction)从参考模型生成的表面重建方法。在大多数工作中,数据集被分为三个子集,即训练、测试和验证划分。评估指标是准确度Accuracy和完整度Completeness,DTU数据集中给了MATLAB的点云评估代码。

<2>下载链接

1.0.1nerf_synthetic

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值