复现nerfstudio并训练自己制作的数据集

网站:安装 - nerfstudio

GitHub - nerfstudio-project/nerfstudio:NeRF 的协作友好工作室

安装之前要确保电脑上已经有CUDA11.8或以上版本(更高版本的可以安装11.8的toolkit)

创建环境

conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
python -m pip install --upgrade pip

安装依赖

首先,如果安装了2.0.1之前的PyTorch版本,则应卸载PyTorch、functhor和miny-cuda nn的早期版本。可以通过以下命令实现:

pip uninstall torch torchvision functorch tinycudann

结合CUDA11.8,安装Pytorch2.1.2

pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

安装CUDA所需要的扩展,通过以下命令实现:

conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit

安装tiny-cuda-nn包

这里先要从github上下载tiny-cuda-nn,然后在Microsoft VIsual C++的环境下编译资源。所以如果直接执行:

pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

可能会报错,提示:

× python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\xxx\AppData\Local\Temp\pip-req-build-lz_n7l05\bindings/torch\setup.py", line 53, in <module>
          raise RuntimeError("Could not locate a supported Microsoft Visual C++ installation")
      RuntimeError: Could not locate a supported Microsoft Visual C++ installation
      Building PyTorch extension for tiny-cuda-nn version 1.7
      Obtained compute capability 86 from PyTorch
      [end of output]

这里参考了这两篇博客:安装tiny-cuda-nn时报错RuntimeError: Could not locate a supported Microsoft Visual C++ installation-CSDN博客、nerfstudio搭建 win11踩坑记录之tinycudann_nerfstudio windows-CSDN博客]

我直接说一下我的操作:

首先安装Visual Studio 2019的installer,并且选择“使用C++的桌面开发”,如下所示:

在这里插入图片描述

安装好以后记住安装路径,如果忘记了,可以在这里查看:

在这里插入图片描述

然后在path中添加环境变量,路径就是你的Visual Studio 2019安装路径后面加上\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64。

比如我的就是D:\Software\VisualStudio2019\VC\Tools\MSVC\14.29.30133\bin\Hostx64\x64:

在这里插入图片描述

在这里插入图片描述

添加好环境变量后,在虚拟环境nerfstudio中进入到 xxxxx\VC\Auxiliary\Build这个路径下,然后输入以下指令打开脚本,

.\vcvars64.bat

或者

start vcvars64.bat

接下来在弹出的新的命令行中重新输入:

pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

即可完成tiny-cuda-nn的安装。

安装ffmpeg

得到项目并配置好环境后,还需要在电脑上安装ffmpeg,否则会报错未在电脑上找到ffmpeg,这个时候我们需要单独安装ffmpeg。首先,进入ffmpeg官网:Download FFmpeg。找到以下选项,并下载essential版本。

在这里插入图片描述

在这里插入图片描述

下载压缩包并解压后,将里面bin文件夹添加进系统PATH环境变量,该文件夹下有三个exe文件:

在这里插入图片描述
在这里插入图片描述

接下来,在命令行输入:

ffmpeg -version

就可以查到ffmpeg版本了:

在这里插入图片描述

训练自己制作的数据集:

这里就不说怎么用官方提供的数据集,看看怎么把自己拍的照片拿去训练:

首先把自己拍的照片文件夹保存在一个路径下,比如我的是:D:\Project\nerfstudio\data\demorobo\images
在这里插入图片描述

官网给的指导是:

ns-process-data {video,images,polycam,record3d} --data {DATA_PATH} --output-dir {PROCESSED_DATA_DIR}

那我们就在命令行输入:

 ns-process-data images --data data/demorobo/images --output-dir data/demorobo  

这样就可以对我们的照片进行colmap操作,并且进行下采样:

在这里插入图片描述

得到的文件夹结构如下:

在这里插入图片描述

然后执行训练,官网说法是:

ns-train nerfacto --data {PROCESSED_DATA_DIR}

我们可以这样写:

ns-train nerfacto --data data/demorobo  

如果此时报错无法下载权重:

Saving config to: outputs\demorobo\nerfacto\2024-02-29_113035\config.yml             experiment_config.py:136
Saving checkpoints to: outputs\demorobo\nerfacto\2024-02-29_113035\nerfstudio_models           trainer.py:136
[11:30:36] Auto image downscale factor of 1                                                 nerfstudio_dataparser.py:484
Loading data batch ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
Started threads
Setting up evaluation dataset...
Caching all 7 images.

Downloading: "https://download.pytorch.org/models/alexnet-owt-7be5be79.pth" to C:\Users\28291/.cache\torch\hub\checkpoints\alexnet-owt-7be5be79.pth                                                      
  2%|███▋                                                                                                                                                         | 5.41M/233M [11:36<8:07:48, 8.16kB/s]
......
......
......
TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。

可以手动下载权重,在命令行输入:

curl -o C:/Users/28291/.cache/torch/hub/checkpoints/alexnet-owt-7be5be79.pth https://download.pytorch.org/models/alexnet-owt-7be5be79.pth

这样就可以正常训练了,能看到以下内容说明训练开始:
在这里插入图片描述

在服务器:http://localhost:7007里就可以实时查看训练进度。

看到以下内容说明训练结束:

在这里插入图片描述

输入ctrl+c退出训练。

评估训练指标

如果想评估训练指标,官网给的指令是:

ns-eval --load-config={PATH_TO_CONFIG} --output-path=output.json

就是把输出文件夹替换掉这个目录即可:

ns-eval --load-config=outputs/demorobo/nerfacto/2024-02-29_120354/config.yml --output-path=output.json

这样可以在项目根目录下的看到一个output.json文件,用记事本打开就可以看到指标:

{
  "experiment_name": "demorobo",
  "method_name": "nerfacto",
  "checkpoint": "outputs\\demorobo\\nerfacto\\2024-02-29_120354\\nerfstudio_models\\step-000029999.ckpt",
  "results": {
    "psnr": 22.653573989868164,
    "psnr_std": 2.9266517162323,
    "ssim": 0.7372194528579712,
    "ssim_std": 0.10289175808429718,
    "lpips": 0.08905620872974396,
    "lpips_std": 0.026574086397886276,
    "num_rays_per_sec": 244670.8125,
    "num_rays_per_sec_std": 78561.875,
    "fps": 0.46850264072418213,
    "fps_std": 0.1504325270652771
  }
}

如果想在关闭后查看渲染情况,官网给的指令是:

ns-viewer --load-config {outputs/.../config.yml}

比如我的就是:

ns-viewer --load-config outputs/demorobo/nerfacto/2024-02-29_120354/config.yml 

然后点击Viser就可以打开可视化工具了。因为我训练的图片数量比较少,且分辨率比较低,所以目前只能得到这样的效果:

在这里插入图片描述

当然也可以在这里查看深度图等其他类型的可视化:

在这里插入图片描述

至于更多的使用方式,可以在官网查看介绍视频,说的很详细。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/427178.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pandas基础介绍

文章目录 Pandas简介什么是Pandas&#xff1f;Pandas数据结构Pandas 应用 Pandas简介 什么是Pandas&#xff1f; Pandas 是一个开源的数据分析和数据处理库&#xff0c;它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具&#xff0c;特别适用于处…

santa-walks-into-a-bar攻防世界MISC

题目&#xff1a; 下载文件得到list.zip和santa-id.png list.zip中是大量png图片&#xff0c;内容均为二维码。 注意到santa-id.png上的ID&#xff1a;7ab7df3f4425f4c446ea4e5398da8847&#xff0c;可以发现存在对应名称的图片&#xff0c;扫码得到&#xff1a; Now I have Xa…

Bililive-go 实现直播自动监控录制

前言 最近有直播录制的需求&#xff0c;但是自己手动录制太麻烦繁琐&#xff0c;于是用了开源项目Bililive-go进行全自动监控录制&#xff0c;目前这个项目已经有3K stars了 部署 为了方便我使用了docker compose 部署 version: 3.8 services:bililive:image: chigusa/bilil…

前端根据域名发送请求通过nginx匹配转发至java网关gateway

1.图片请求展示&#xff1a; 2.流程阐述 当发起请求 https://test.parkidcode.net/api/asset/parkAccess/page 时&#xff0c;请求的处理流程如下&#xff1a; HTTPS请求&#xff1a;首先&#xff0c;通过HTTPS协议发送请求到 https://test.parkidcode.net/api/asset/parkAcce…

西交大轴承振动数据集的多通道推送例程

1说明 西交大轴承振动数据集XJTU-SY滚动轴承加速寿命试验数据集解读预测与健康管理对保障机械装备安全服役、提高生产效率、增加经济效益至关重要。高质量的全寿命周期数据是预测与健康管理领域的基础性资源&#xff0c;这些数据承载着反映装备服役性能完整退化过程与规律的关…

【活动】金三银四,前端工程师如何把握求职黄金期

随着春意盎然的气息弥漫大地&#xff0c;程序员群体中也迎来了一年一度的“金三银四”求职热潮。这个时间段对于广大前端工程师而言&#xff0c;不仅象征着生机勃发的新起点&#xff0c;更是他们职业生涯中至关重要的转折点。众多知名公司在这一时期大规模开启招聘通道&#xf…

递归实现n的k次方(C语言)

编写一个函数实现n的k次方&#xff0c;使用递归实现。 下面来说一下思路 5的3次方&#xff1a;就是5*(5的3-1次方) 7的4次方&#xff1a;就是7*&#xff08;7的4-1次方&#xff09; 以此类推 n的k次方就是&#xff1a;n* n的&#xff08;k-1&#xff09;次方 int Func(int n,…

mac使用sequl的报错说明

出现下图错误&#xff0c;则到此地址下载test-builds版本 Test Builds 使用 sequel pro 的时候出现了 SequelPro encountered an unexpected error 表现为&#xff1a;测试通过&#xff0c;链接就卡住报错的问题。 解决办法 这是软件的问题&#xff0c;下载使用这个 TEST…

怎么找靠谱游戏开发公司?

在寻找靠谱的游戏开发公司时&#xff0c;有几个关键因素需要考虑。选择合适的游戏开发团队对于确保项目的成功和高质量成果至关重要。以下是一些有助于您找到靠谱游戏开发公司的建议&#xff1a; 首先&#xff0c;评估公司的经验和专业知识是至关重要的。您可以查看公司的历史和…

浅谈去耦电容的作用、选择、布局及其它电容的区别!

在一些文章资料中&#xff0c;去耦电容器被认为是旁路电容器。在其他资料中&#xff0c;去耦电容和旁路电容的区别在于&#xff1a;“旁路电容以输入信号中的干扰为滤波对象&#xff0c;而去耦电容以输出信号的干扰为滤波对象&#xff0c;防止干扰信号返回到输出端。”力量。”…

SpringBootWeb快速入门

1.创建springboot工程&#xff0c;新建module 2.勾选web开发相关依赖 3.删除多余文件 4.新建类 5.启动类中运行main方法 6.启动 默认端口号8080 7.打开浏览器&#xff0c;地址栏输入 8.报错 9.原因&#xff0c;控制层位置放错&#xff0c;剪切controller层放进com.example …

SwiftUI中Alert与ActionSheet的集成

在SwiftUI中&#xff0c;Alert和ActionSheet是两个用于显示提示信息和选项的组件。Alert用于显示简单的提示信息&#xff0c;而ActionSheet用于显示多个选项供用户选择。 要在SwiftUI中使用Alert&#xff0c;首先需要在视图中定义一个State属性来存储是否显示Alert&#xff0c…

【大厂AI课学习笔记NO.58】(11)混淆矩阵

混淆矩阵&#xff08;confusion matrix&#xff09;—— 混淆矩阵&#xff08;Confusion Matrix&#xff09;是人工智能领域&#xff0c;特别是在机器学习和深度学习中&#xff0c;用于衡量分类模型性能的重要工具。它通过统计分类模型的真实分类与预测分类之间的结果&#xf…

【小白学机器学习5】MSE, RMSE,MAE, MAPE, WMAPE

目录 1 评价误差的各种度量指标 2 从误差的评价开始捋这个问题 2.1 误差问题的由来&#xff1a;回归模型预测值和真实值的差距 2.2 如何评价某函数的预测值是否足够好&#xff1f; 如何比较不同的预测函数的预测值的好坏呢&#xff1f; 2.3 最小二乘法&#xff1a;应该叫最…

Vue——携带参数跳转路由

Vue学习之——跳转路由 前情回顾 当我们进行点击修改时&#xff0c;会进行跳转到修改页面&#xff0c;为了完成回显数据&#xff08;根据对应id查找&#xff09;&#xff0c;我们需要携带对应选择中的id跳转到修改页面&#xff0c;让其进行查找回显 学习useRoute和useRoute…

企业要想构建 AI 竞争力,就必须“私藏”大模型

3 月 3 日&#xff0c;由深圳市产学研合作促进会举办的海峡两岸暨港澳人工智能与机器人发展论坛在深圳市福田区会展中心开幕。极狐GitLab CEO 柳钢受邀出席此次活动&#xff0c;并做了题为 《创新与安全并重&#xff1a;大模型私藏之道》 的主题分享。 人工智能之新曦 自 Chat…

链表理论:基础概念与实战技巧!

推荐阅读 算法day01_ 27. 移除元素、977.有序数组的平方 算法day02_209.长度最小的子数组 算法day03_ 59.螺旋矩阵II 目录 推荐阅读链表理论知识单向链表&#xff08;单链表&#xff09;定义单链表单链表添加下一个节点单链表中插入一个节点单链表中删除下一节点遍历单链表 双…

《GitHub新手入门指南:从零开始掌握基本用法》

在现代软件开发和技术社区中,GitHub已经成为了一个不可或缺的平台。它不仅是一个代码托管平台,更是一个技术交流、学习分享的社交平台。但对于初学者来说,GitHub可能会有些令人望而却步。本文将详细介绍GitHub的基本用法,帮助新手快速入门并融入这个充满活力的技术社区。 …

Linux 实现打印彩色进度条

文章目录 预备知识一、理解回车换行二、认识行缓冲1、代码一、二&#xff08;回车换行理解&#xff09;2、代码三、四&#xff08;sleep函数和ffush函数理解&#xff09; 三、简单倒计时1. 倒计时代码2、效果展示 四、进度条1、效果展示2、进度条代码makefileProcessBar.hProce…

从零开始搭建web组态

成果展示&#xff1a;by组态[web组态插件] 一、技术选择 目前只有两种选择&#xff0c;canvas和svg Canvas: 是一个基于像素的渲染引擎&#xff0c;使用JavaScript API在画布上绘制图像&#xff0c;它的优点包括&#xff1a; Canvas渲染速度快&#xff0c;适合处理大量图像和…