位置: IT常识 - 正文

Nerf_studio 使用记录(nerf 入门)

编辑:rootadmin
Nerf_studio 使用记录 这里写自定义目录标题Nerfstudio 安装和使用记录安装训练出现 Address already in use 的错误的时候,原因是因为Port已经被占据,执行以下命令。添加Camera 之后的 Render 命令Nerfstudio 代码笔记大致梳理具体如何从DataManger 中进行Random Sample pixel 来生成 pixel_batch?render 代码阅读和梳理修改了nerfstudio 的sprial_marching 的代码Nerfstudio 安装和使用记录

推荐整理分享Nerf_studio 使用记录(nerf 入门),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nerf 入门,nerfstf,nerf worker,nerf入门推荐,nerf 入门,nerf怎么样,nerf csdn,nerf 入门,内容如对您有帮助,希望把文章链接给更多的朋友!

参考网站:https://docs.nerf.studio/en/latest/quickstart/installation.html

安装

因为服务器无法联网,采用本地安装的方法进行安装:

conda create --name nerfstudio -y python=3.8conda activate nerfstudiopython -m pip install --upgrade pippip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html

这个链接无法在服务器联网安装,服务器一般不连外网

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

可以去官网github下载

https://github.com/NVlabs/tiny-cuda-nn/

另外fmt 和 cutlass github 是给的超链接,因此上面的链接并没有下载 这两个包,需要手动下载和安装。

如果报错 ld: cannot find -lcudaexport LIBRARY_PATH="/usr/local/cuda-11.3/lib64/stubs:$LIBRARY_PATH"cd bindings/torchpython setup.py install

安装nerfstudio:

git clone git@github.com:nerfstudio-project/nerfstudio.gitcd nerfstudiopip install --upgrade pip setuptoolspip install -e .训练

下面这些配置是有顺序,更改顺序可能会报错。比如把 --viewer.skip-openrelay True 加在命令行的最后,会报错。应该跟在–viewer 的后面 在之前的权重上继续进行训练,加上 --load_dir 参数指定 ckpt 权重的 路径

ns-train nerfacto --data posters_v3/ --vis viewer --viewer.skip-openrelay True --viewer.websocket-port 7008ns-train nerfacto --data kitti360/ --load_dir ckpt_path --vis viewer --viewer.skip-openrelay True --viewer.websocket-port 7008

打开电脑浏览器的 localhost:7008,可以查看viewer中的训练过程。

ns-train nerfacto --data posters_v3/ --vis viewer --viewer.skip-openrelay True --viewer.websocket-port 7008 --load-dir ./nerfstudio-main/outputs/posters_v3/nerfacto/2022-12-29_142632/nerfstudio_models/

加上==–logdir== 参数可以从预加载模型开始训练

出现 Address already in use 的错误的时候,原因是因为Port已经被占据,执行以下命令。netstat -tunlpkill -9 pid_number

运行原始的nerf (vanilla-nerf):

## Viewerns-train vanilla-nerf --data nerf_synthetic/kitti360 --vis viewer --viewer.skip-openrelay True --viewer.websocket-port 7007## Tensorboadns-train vanilla-nerf --data nerf_synthetic/kitti360 --vis tensorboard

导出TSDF的Geometry

ns-export tsdf --load-config CONFIG.yml --output-dir OUTPUT_DIRns-extract-mesh --load-config outputs/../config.yml --output-path meshes/xxx.ply添加Camera 之后的 Render 命令Nerf_studio 使用记录(nerf 入门)

这里采用 nohup 的后端执行命令,即使关闭 Terminal 也照样执行程序代码。

nohup ns-render --load-config outputs/datasets-kitti360_mono_priors/monosdf/2023-02-06_125735/config.yml --traj filename --camera-path-filename outputs/datasets-kitti360_mono_priors/monosdf/2023-02-06_125735/camera_path.json --output-path renders/monosdf_output.mp4 &Nerfstudio 代码笔记大致梳理

Pipeline 如下:

DataParser 是什么?

DataParser 将各种形式的数据集作为输入,并且读取各个数据类别的Meta数据,返回的参数是DataparserOutputs

DataManager 是什么?

DataManger 返回的是RayBundle 和 RayGT 。对于大多数的NerfPaper ,NerfStudio 设立了 VanillaDataManger. 其随机在DataManger中随机采样了一些像素点。生成了Training Ray 的颜色和Gt 的颜色

每一次采样的 光线数量 由参数 --pipeline.datamanager.train-num-rays-per-batch 来指定,默认数值是1024

Code:

ray_bundle, batch = self.datamanager.next_train(step) Ray_bundle (1024)

具体如何从DataManger 中进行Random Sample pixel 来生成 pixel_batch?

在Sample 函数中,输入的是img_batch 参数,是一个Dict,包含image_idx 列表和 image (batch,H,W,C)的Tensor。

在 pixel_sampler.py 代码中,调用sample_method 均匀采样pixel。具体算法是生成均匀采样的随机数t(batch,3) 和 tensor([num_images, image_height, image_width]) 进行相乘,返回一个Tensor.

indices = torch.floor( torch.rand((batch_size, 3), device=device) * torch.tensor([num_images, image_height, image_width], device=device) ).long()Model是什么?

Model 是实际执行的 Nerf-based 算法。Model读取RayBundle 对象返回的是每一条Ray对应的 rendered color

一般包含的模块有:

# Fields # Ray Samplers # Colliders # Renderers # Losses # MetricsField 是什么?

Field 是 Model 模块中的一个重要的Component 。在大多数经典的应用当中,输入是3D 的Location 和 View direction 输出是 density 和 color 数值。

Pipeline 是什么?

在Nerfstudio 的代码中,Pipeline 包含Nerf方法所有的代码。在代码中有一个 Vanilla Implementation 类,负责从DataManger 中读取数据然后feed到Model当中。

render 代码阅读和梳理

对于在nerfstudio 的 Viewer 中会生成 camera.json 文件,解析这个json 文件,从其中读出 需要渲染的 相机的信息,包括 相机的 c2w 矩阵, 相机的内参数cx,cy 等。

elif self.traj == "filename": with open(self.camera_path_filename, "r", encoding="utf-8") as f: camera_path = json.load(f) seconds = camera_path["seconds"] camera_path = get_path_from_json(camera_path)

came_path 包含的信息如下所示: 得到了相机的参数,主要通过 _render_trajectory_video 进行渲染:

def _render_trajectory_video( pipeline: Pipeline, cameras: Cameras, output_filename: Path, rendered_output_names: List[str], rendered_resolution_scaling_factor: float = 1.0, seconds: float = 5.0, output_format: Literal["images", "video"] = "video",) -> None: """Helper function to create a video of the spiral trajectory. Args: pipeline: Pipeline to evaluate with. cameras: Cameras to render. output_filename: Name of the output file. rendered_output_names: List of outputs to visualise. rendered_resolution_scaling_factor: Scaling factor to apply to the camera image resolution. seconds: Length of output video. output_format: How to save output data. """修改了nerfstudio 的sprial_marching 的代码

可以按照相机的位姿 进行螺旋前景跑完整个场景

python scripts/render.py --load-config outputs/data_leader-train_00/nerfacto/2023-03-17_223503/config.yml --traj spiral --output-path trai00.mp4
本文链接地址:https://www.jiuchutong.com/zhishi/297382.html 转载请保留说明!

上一篇:无需公网IP,远程连接SQL Server数据库【内网穿透】(没有公网ip如何实现外网访问路由器)

下一篇:web前端开发期末大作业 ——个人主页(可自取源码)(web前端开发学什么)

  • 回收站删除的文件怎么恢复手机(回收站删除的文件怎么恢复)(回收站删除的文件)

    回收站删除的文件怎么恢复手机(回收站删除的文件怎么恢复)(回收站删除的文件)

  • 高清播放器app免费(高清播放器)(高清播放器 推荐)

    高清播放器app免费(高清播放器)(高清播放器 推荐)

  • 怎么删除ppt动画效果(怎么删除ppt动画效果wps)

    怎么删除ppt动画效果(怎么删除ppt动画效果wps)

  • 工控机是什么设备(工控机是什么设备类型)

    工控机是什么设备(工控机是什么设备类型)

  • 腾讯视频用手机号码怎么登录(腾讯视频用手机号码充了会员)

    腾讯视频用手机号码怎么登录(腾讯视频用手机号码充了会员)

  • 荣耀30pro刷新率多少(荣耀30pro刷新率设置鸿蒙)

    荣耀30pro刷新率多少(荣耀30pro刷新率设置鸿蒙)

  • ai嵌入快捷键(ai嵌入快捷键是什么)

    ai嵌入快捷键(ai嵌入快捷键是什么)

  • 手机玩一会儿就发烫怎么办(手机玩一会儿就发烫怎么解决)

    手机玩一会儿就发烫怎么办(手机玩一会儿就发烫怎么解决)

  • 通过私信添加什么意思(私信加微信怎么加)

    通过私信添加什么意思(私信加微信怎么加)

  • 微信是什么字体(微信是什么字体几号字)

    微信是什么字体(微信是什么字体几号字)

  • 苹果11突然死机是怎么回事(苹果11突然死机了 关不了 咋办)

    苹果11突然死机是怎么回事(苹果11突然死机了 关不了 咋办)

  • 数字信号和离散信号的区别和联系(数字信号和离散时间信号)

    数字信号和离散信号的区别和联系(数字信号和离散时间信号)

  • 微信群邀请链接多久失效(微信群邀请链接怎么弄)

    微信群邀请链接多久失效(微信群邀请链接怎么弄)

  • 微信商家收款码和个人收款码有什么区别(微信商家收款码手续费是多少)

    微信商家收款码和个人收款码有什么区别(微信商家收款码手续费是多少)

  • html的扩展名是啥(html 文档的扩展名为.htm 或.html)

    html的扩展名是啥(html 文档的扩展名为.htm 或.html)

  • 短信送达是对方看了吗(短信送达是对方收到了吗)

    短信送达是对方看了吗(短信送达是对方收到了吗)

  • word2007文档无法编辑(word2007文档无法编辑怎么办)

    word2007文档无法编辑(word2007文档无法编辑怎么办)

  • 华为nova6什么时候发布(华为nova6什么时候上市)

    华为nova6什么时候发布(华为nova6什么时候上市)

  • 抖音怎么做商品橱窗(抖音怎么做商品推广)

    抖音怎么做商品橱窗(抖音怎么做商品推广)

  • 全民k歌游客怎么设置(全民k歌游客模式会留痕迹吗)

    全民k歌游客怎么设置(全民k歌游客模式会留痕迹吗)

  • 小影如何去水印(小影怎么去除水印)

    小影如何去水印(小影怎么去除水印)

  • 手机说话别人听不到(手机说话别人听不到,开免提就可以)

    手机说话别人听不到(手机说话别人听不到,开免提就可以)

  • 闲鱼怎么保存别人视频(闲鱼怎么保存别人的宝贝)

    闲鱼怎么保存别人视频(闲鱼怎么保存别人的宝贝)

  • OS X Yosemite 公测版兑换码获取教程(苹果系统公测版)

    OS X Yosemite 公测版兑换码获取教程(苹果系统公测版)

  • Python大作业-网络爬虫程序(python大作业小游戏)

    Python大作业-网络爬虫程序(python大作业小游戏)

  • 蚁群算法详解-解决TSP问题(蚁群算法是什么)

    蚁群算法详解-解决TSP问题(蚁群算法是什么)

  • 人工费用分配表分配率
  • 无票收入是否要交税
  • 自产农产品增值税申报表填10行吗
  • 30万的车税可以抵多少钱
  • 外包工加工工资怎么结算
  • 企业与政府土地合作开发模式
  • 缴纳社保的会计分录怎么做
  • 补交增值税怎么处理
  • 金穗开发票时怎样添加商品?
  • 不小心开了发票
  • 运输费发票备注栏填不下
  • 没发票大额费用支出能税前扣除吗?
  • 税务局代开发票需要什么资料
  • 公司转让税费如何计算
  • 金税盘的用户名
  • 公司购买五金用交税吗
  • window10的帮助与支持窗口在哪
  • 营业外收入冲减销售费用
  • 其他应付款无法支付的账务处理方法
  • 应交增值税和实缴增值税差额怎么做账
  • 房地产开发企业建造的商品房,在出售前
  • 电脑系统如何安装字体
  • 软件测试费计入什么科目
  • vue打包速度优化
  • linux的安装和使用
  • 冲销以前年度多计提的工资资产负债表怎么平
  • .fas文件病毒
  • php traits
  • 车辆运输费计入什么科目
  • 租车接送员工上班怎么样
  • 神舟战神k670c-g4e1游戏笔记本怎么样?
  • 固定资产非正常损失
  • 安装windows(install windows)
  • vue框架是什么样子的
  • 利润分配财务管理
  • mysql表设计原则
  • dedecms51
  • phpcms缩略图不要自动裁剪的设置方法
  • 帝国cms登录
  • 股权转让会计分录摘要怎么写
  • 电子商业汇票是指
  • 注册资本印花税最新政策2023年
  • 新会计准则套期利息计算
  • sql server 2008 安装 1935
  • 支付水费委托收款
  • 一般纳税人的建筑企业可以选择简易征收的条件
  • 一般纳税人附加税减半征收政策2023
  • 会计人要求
  • 借用别人公司
  • 总公司可以给子公司开票吗
  • 三栏明细账本怎样填写
  • 当月支付当月租金需要计提吗
  • 退货与销售折让的区别
  • 月末未完工半成品的分录
  • 营业外支出增加说明了什么
  • sql server的相关技术知识
  • ef使用sql语句
  • mysql5.7.27安装教程
  • SQLServer XML查询18句话入门教程
  • centos yum报错
  • win10系统安装了打印机驱动找不到打印机
  • 中文版windows7的安装方式
  • 如何查看winxp系统的运行内存
  • linux系统bug
  • win8删除所有内容并重新安装windows
  • win10任务快速切换
  • win7开机屏幕狂闪不停怎么解决
  • win8怎么恢复出厂设置找不到恢复环境
  • dos 批处理
  • texturepackergui
  • javascript用什么写
  • jquery从左到右渐渐显示
  • 网页文件的标记是
  • 基于JAVASCRIPT实现的可视化工具是
  • 携程怎么订
  • 增值税发票税控开票软件卸载不了
  • 存款利息需要交税吗
  • 车辆购置税查询不到应征欠税信息,不能进行扣款操作
  • 国家税务总局商洛市税务局
  • 购买税控盘怎么抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设