位置: 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前端开发学什么)

  • iPhone14参数(iphone14plus参数)

    iPhone14参数(iphone14plus参数)

  • 钉钉文件怎么保存到手机(钉钉文件怎么保存到本地)

    钉钉文件怎么保存到手机(钉钉文件怎么保存到本地)

  • 支付宝开通酷喵会员怎么取消自动续费(支付宝开通酷喵自动续费怎么取消)

    支付宝开通酷喵会员怎么取消自动续费(支付宝开通酷喵自动续费怎么取消)

  • 微信转给别人的钱怎么撤回(微信转给别人的钱还能要回来吗)

    微信转给别人的钱怎么撤回(微信转给别人的钱还能要回来吗)

  • 什么是录屏(什么是录屏类微课)

    什么是录屏(什么是录屏类微课)

  • 购买相机时需要注意什么问题(购买相机时需要注意什么)

    购买相机时需要注意什么问题(购买相机时需要注意什么)

  • 淘宝退款卖家不处理系统自动退款吗(淘宝退款卖家不上传凭证怎么办)

    淘宝退款卖家不处理系统自动退款吗(淘宝退款卖家不上传凭证怎么办)

  • 小米sdcard文件可以删除吗(小米sd卡文件夹是哪个)

    小米sdcard文件可以删除吗(小米sd卡文件夹是哪个)

  • 苹果手机来电有声音 其余没有声音(苹果手机来电有震动没有响铃什么原因)

    苹果手机来电有声音 其余没有声音(苹果手机来电有震动没有响铃什么原因)

  • 页眉有一条线怎么去掉(页眉上有根线)

    页眉有一条线怎么去掉(页眉上有根线)

  • 剪视频用什么笔记本(剪视频用什么笔记本电脑好)

    剪视频用什么笔记本(剪视频用什么笔记本电脑好)

  • 快手降权了多久能恢复(快手降权了找谁可以解决)

    快手降权了多久能恢复(快手降权了找谁可以解决)

  • 云服务是干什么的(云服务是干什么用的)

    云服务是干什么的(云服务是干什么用的)

  • c函数可以嵌套定义吗(c函数嵌套定义)

    c函数可以嵌套定义吗(c函数嵌套定义)

  • 手机复制的东西在哪里(手机复制的东西到哪个文件里找)

    手机复制的东西在哪里(手机复制的东西到哪个文件里找)

  • long和int区别(long int与int有区别吗)

    long和int区别(long int与int有区别吗)

  • 为什么抖音上传的照片很模糊(为什么抖音上传的视频很卡)

    为什么抖音上传的照片很模糊(为什么抖音上传的视频很卡)

  • 怎么删抖音喜欢的作品(怎么删抖音喜欢全部)

    怎么删抖音喜欢的作品(怎么删抖音喜欢全部)

  • 怎么看自己的手机号(怎么看自己的手机有没有被人定位)

    怎么看自己的手机号(怎么看自己的手机有没有被人定位)

  • 抖音怎么换已停机号码(抖音账号停机换绑怎么操作)

    抖音怎么换已停机号码(抖音账号停机换绑怎么操作)

  • 华为P30怎么解除滑动解锁(华为p30怎么解除限制)

    华为P30怎么解除滑动解锁(华为p30怎么解除限制)

  • airpods一只连不上(airpods突然一只连得上 一只连不上)

    airpods一只连不上(airpods突然一只连得上 一只连不上)

  • iphone怎样防止误删应用app(苹果手机怎么防止误碰)

    iphone怎样防止误删应用app(苹果手机怎么防止误碰)

  • mvvm模式和mvc的区别(mvvm模式和mvc的区别面试)

    mvvm模式和mvc的区别(mvvm模式和mvc的区别面试)

  • Nvidia Jetson TX2入门指南(白话版)(jetson nano nvidia-smi)

    Nvidia Jetson TX2入门指南(白话版)(jetson nano nvidia-smi)

  • 企业所得税行业所得率
  • 什么叫差额征税呢
  • 拿工资要开发票,发票去哪儿开?
  • 去年开的专票今年可以作废吗
  • 弥补上年亏损的成语
  • 支付土地使用权的会计处理
  • 企业应收票据贴现给银行所获得的现金计入现金流量表
  • 公对公房产转让税费
  • 企业将自用设备进行出租
  • 车辆保险代交车船使用税会计分录怎么写?
  • 所有者权益的利得和损失
  • 税金及附加与期间费用区别
  • 汽车修理费增值税税率
  • 小微企业季度超过45万如何填申报表
  • 不征税收入税屋
  • 劳务费税收分类是什么
  • 这些常用的发票知识,你都知道了吗?
  • 以前年度补交的税款进什么科目?
  • 小规模纳税人购车好处
  • 公司买回来做样衣的服装怎么做会计分录?
  • 固定资产清理账户期末有余额吗
  • 应发工资包含
  • xp系统怎么删除打印机驱动程序
  • 无形资产一般采用直线法摊销也可采用加速法进行摊销
  • iTunesHelper.exe是什么进程?iTunesHelper.exe系统错误怎么解决?
  • 销售人员奖励办法
  • createsystem
  • 微软win11预览版
  • 睡莲怎样养
  • php aes
  • php 银行卡支付
  • 浅谈如何培养孩子的注意力
  • 华为od机试无法测用例
  • php判断包含指定内容
  • php array合并
  • 期末结转主营业务收入负数
  • 怎样计提购销合同印花税
  • python中列表的索引用法
  • 税务机关代开的增值税发票要加盖发票专用章吗?
  • 签三方协议需要法人本人去吗
  • 增值税发票记账联用途
  • sqlserver连接到服务器登录名
  • 营改增后房屋租赁税变化
  • 任意盈余公积金的用途
  • 房产出租税率是多少
  • 值税多缴税款能退回来吗
  • 资产负债表中的固定资产怎么算
  • 开发商出售商铺税费
  • 公司没有车油费可以报销吗
  • 除了住房公积金还有什么基金
  • 发票报销有限制吗
  • 负债项目的排列顺序
  • 报关单是美元收欧元
  • 购买税控盘用银行抵扣吗
  • 农业生产成本核算方法
  • 实际到货跟采购不一致
  • 无形资产摊销怎么计算月摊销额
  • 购进货物的发票确认定虚开,所得税处理
  • 收到供应商赠送原材料
  • 填制会计凭证要求的是
  • 什么是个人独资企业营业执照
  • 制造费用不结转成本 报表平吗
  • 私营企业会计退休年龄50还是55
  • sql中isnull是什么意思
  • php的每条语句以什么结尾
  • win2008 安装无线服务卡住了
  • ubuntu怎么录音
  • mac系统命名规律
  • win10系统开机桌面图标不见了
  • linux入门知识
  • 地形图高程点坐标高程提取
  • js for循环给数组赋值
  • Node.js中的包管理工具是什么
  • node语句
  • python文本怎么运行
  • javascript基于什么的语言
  • Android EventBus实战
  • python 终端
  • 青海国税局领导班子
  • 个人所得税的网址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设