Mip-Nerf三维重建代码复现教程——环境配置

2023-10-11 23:59

本文主要是介绍Mip-Nerf三维重建代码复现教程——环境配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mip-Nerf三维重建Pytorch使用Pycharm运行0基础教程

在这里插入图片描述
项目论文
项目Github

你好! 这里是“出门吃三碗饭”本人,本文章接下来将介绍如何从0运行2020会议Mip-Nerf的Pytorch版本,让你自己动手渲染第一个三维模型。视频解说可以关注B站,搜索 出门吃三碗饭 ,),另外可以关注《AI知识物语》 公众号获取更多详情信息。

挖个坑,争取文章发布一周内更新好其代码讲解

1:百度搜索"PaperCode"

PaperCode网址放在这里了

2:左上角输入MipNerf 右键Enter

在这里插入图片描述

2:选择第3个代码库(第2个也强烈推荐,其包含多个Nerf的复现)

在这里插入图片描述

3:选择用git指令下载or zip包下载

在这里我们看到文件目录里面是没有 数据集文件的

在这里插入图片描述

4:选择用git指令下载or zip包下载

这里只需要下载画横线的那个压缩包即可

数据集下载地址 Google Drive 需要科学上网
在这里插入图片描述

5:确认项目目录

把下载好的数据集文件放入项目的data(没有就自己创建)文件夹下,如下图

在这里插入图片描述

6:创建python环境

具体需要安装的包在 requirements.txt

在这里插入图片描述

在这里插入图片描述
因为下载比较慢,建议使用镜像下载,

python -m pip install pytorch-lightning==1.5.2 einops==0.3.2 opencv-python==4.5.4.58 matplotlib==3.5.0 imageio==2.10.4 scipy==1.8.0 imageio-ffmpeg==0.4.5 tqdm==4.64.0 open3d==0.14.1 -i https://pypi.douban.com/simple使用镜像下载的命令  把pytorch-lightning==1.5.2 换成自己需要下载的包即可
python -m pip install pytorch-lightning==1.5.2  -i https://pypi.douban.com/simple这个是安装 torch的,我显卡版本是11.6  后面是cu116, 根据自己显卡情况改
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu116

在安装完包后,记得去查看每个.py 文件看看是否有import 方面的报错,有的话就 install对应的包来解决

7:开始训练

使用指令

训练单视角的Lego
python train.py --out_dir OUT_DIR --data_path UZIP_DATA_DIR --dataset_name blender exp_name EXP_NAME训练多视角的Lego
python train.py --out_dir OUT_DIR --data_path OUT_DATA_DIR --dataset_name multi_blender exp_name EXP_NAME我使用的命令(根据自己目录情况修改)
python train.py --out_dir out --data_path ./data/nerf_synthetic/lego --dataset_name blender exp_name exp

成功运行如下

在这里插入图片描述

如果遇到缓存报错
在这里插入图片描述

解决办法:
1:调整batch_size num_samples等大小
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2:在mip_nerf.py 修改代码,大概109行左右,目的是对报错的该行代码添加一个if条件,释放无关内存

view_direction = repeat(view_direction, 'batch feature -> batch sample feature', sample=num_samples)x = torch.cat([bottleneck, view_direction], dim=-1)#  if hasattr(torch.cuda, 'empty_cache'):#         x = torch.cat([bottleneck, view_direction], dim=-1) #这里取了条件前置# Here use 1 extra layer to align with the original nerf model.x = self.view_layers(x)raw_rgb = self.color_layer(x)return raw_rgb, raw_density

3:换云服务器or更好的显卡

8:测试(生成3D模型,以视频形式输出方便观察)
使用以下指令评估单尺度和多尺度模型,将所有目录更改为您的目录
# eval single scale model
python eval.py --ckpt CKPT_PATH --out_dir OUT_DIR --scale 1 --save_image
# eval multi scale model
python eval.py --ckpt CKPT_PATH --out_dir OUT_DIR --scale 4 --save_image
# summarize the result again if you have saved the pnsr.txt and ssim.txt
python eval.py --ckpt CKPT_PATH --out_dir OUT_DIR --scale 4 --summa_only渲染球面路径视频
# Render spheric video
python render_video.py --ckpt CKPT_PATH --out_dir OUT_DIR --scale 4
# generate video if you already have images
python render_video.py --gen_video_only --render_images_dir IMG_DIR_RENDER

在这里插入图片描述

到这里就大功告成了,本文项目可以关注微信公众号发送关键词 资源 获得

这篇关于Mip-Nerf三维重建代码复现教程——环境配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/191773

相关文章

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

如何使用Nginx配置将80端口重定向到443端口

《如何使用Nginx配置将80端口重定向到443端口》这篇文章主要为大家详细介绍了如何将Nginx配置为将HTTP(80端口)请求重定向到HTTPS(443端口),文中的示例代码讲解详细,有需要的小伙... 目录1. 创建或编辑Nginx配置文件2. 配置HTTP重定向到HTTPS3. 配置HTTPS服务器

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效