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

  • 路由器管理ip地址怎么获取(路由器管理ip)(路由器管理ip地址)

    路由器管理ip地址怎么获取(路由器管理ip)(路由器管理ip地址)

  • 小米万能遥控怎么调空调制热(小米万能遥控怎么用不了)

    小米万能遥控怎么调空调制热(小米万能遥控怎么用不了)

  • airpods2电量能用多久(airpods2满电可以用多久)

    airpods2电量能用多久(airpods2满电可以用多久)

  • 苹果11能指纹解锁码(苹果11指纹解锁在哪里设置)

    苹果11能指纹解锁码(苹果11指纹解锁在哪里设置)

  • 电脑版怎么下载网页(steam电脑版怎么下载)

    电脑版怎么下载网页(steam电脑版怎么下载)

  • 微信朋友圈怎么发完整信息(微信朋友圈怎么批量删除)

    微信朋友圈怎么发完整信息(微信朋友圈怎么批量删除)

  • 荣耀30s微信视频怎么开美颜(荣耀30S微信视频美颜功能在哪里设置)

    荣耀30s微信视频怎么开美颜(荣耀30S微信视频美颜功能在哪里设置)

  • 苹果x怎么设置不接听陌生电话(苹果x怎么设置呼叫转移其他号码)

    苹果x怎么设置不接听陌生电话(苹果x怎么设置呼叫转移其他号码)

  • 机器智能的种类包括哪些(机器智能的种类有哪些)

    机器智能的种类包括哪些(机器智能的种类有哪些)

  • 幻灯片的版式是由什么组成的(幻灯片的版式是由 ( )组成的A文本框B表格C图标D占位符)

    幻灯片的版式是由什么组成的(幻灯片的版式是由 ( )组成的A文本框B表格C图标D占位符)

  • 苹果11热点无法连接(苹果11热点无法被发现)

    苹果11热点无法连接(苹果11热点无法被发现)

  • 启动屏幕画笔的方法是(启动屏幕画笔的快捷键)

    启动屏幕画笔的方法是(启动屏幕画笔的快捷键)

  • 苹果11pro max怎么设置铃声(苹果11pro max怎么录屏)

    苹果11pro max怎么设置铃声(苹果11pro max怎么录屏)

  • iphone8p机身尺寸(iphone8p的机身尺寸)

    iphone8p机身尺寸(iphone8p的机身尺寸)

  • 荣耀9x怎么弄小窗口(荣耀9i怎么弄小窗口)

    荣耀9x怎么弄小窗口(荣耀9i怎么弄小窗口)

  • 华为nova5谷歌商店闪退(华为nova5i谷歌)

    华为nova5谷歌商店闪退(华为nova5i谷歌)

  • 无2k不a屏是什么意思(无2k不a屏是什么意思呀)

    无2k不a屏是什么意思(无2k不a屏是什么意思呀)

  • mi8lite是什么意思(8n mile是什么意思)

    mi8lite是什么意思(8n mile是什么意思)

  • 参考文献的标注怎么弄(参考文献的标注怎么弄在右上角)

    参考文献的标注怎么弄(参考文献的标注怎么弄在右上角)

  • 手机怎么用不了耳机(万能钥匙苹果手机怎么用不了)

    手机怎么用不了耳机(万能钥匙苹果手机怎么用不了)

  • word自动生成目录怎么弄(word自动生成目录怎么编辑)

    word自动生成目录怎么弄(word自动生成目录怎么编辑)

  • 淘宝司法拍卖在哪里进入(淘宝司法拍卖收费标准)

    淘宝司法拍卖在哪里进入(淘宝司法拍卖收费标准)

  • 拼多多怎样复制链接(拼多多怎样复制链接给好友)

    拼多多怎样复制链接(拼多多怎样复制链接给好友)

  • 苹果x拆一次还防水吗(拆过的苹果x多少钱)

    苹果x拆一次还防水吗(拆过的苹果x多少钱)

  • magicbook背光键盘怎么开(华为magic book笔记本键盘背光)

    magicbook背光键盘怎么开(华为magic book笔记本键盘背光)

  • pr如何导出flv格式视频(pr2020导出flv格式)

    pr如何导出flv格式视频(pr2020导出flv格式)

  • 手机怎样给公交卡充值(手机怎样给公交车钱)

    手机怎样给公交卡充值(手机怎样给公交车钱)

  • ps怎么把文字单独分离出来(ps怎么把文字单独抠出来)

    ps怎么把文字单独分离出来(ps怎么把文字单独抠出来)

  • 期末未缴税额出现负数
  • 小规模企业收入怎么做账
  • 培训机构财务怎么做账
  • 由商场代收营业费怎么算
  • 小规模报企业所得税吗
  • 所得税申报时成本数据填错怎么办
  • 融资租赁和经营性租赁区别
  • 委托贷款的资金借出方是谁
  • 支付给员工的讲课费税前列支怎么做?
  • 销售税金及附加含增值税吗
  • 生产出口退税企业内部加工费占多少比例
  • 虚开费用发票入账
  • 购入的固定资产
  • 合同取消写什么
  • 收到购货单位货款属于什么会计科目
  • 合并报表中长期股权投资包括
  • 耕地占用税如何申报缴纳
  • 增值税普票怎么验证真伪
  • 自然人出租房屋增值税税率
  • 其他业务支出和其他业务成本的区别
  • 劳务工资要附什么合同
  • 销项负数发票会计分录怎么写
  • 员工入职体检表格模板
  • 服装加工费发票税点
  • php处理的图片格式是什么
  • linux 密码重置
  • 小规模纳税人销售货物税率是多少
  • 预算会计的核算范围
  • php在线阅读器源代码
  • 在企业扶贫捐赠活动上的讲话
  • 基于中国国情的中国式现代化具有哪些特色
  • nrm报错
  • 任意公积金可以不提取吗
  • 代开开增值税专票和自己开有什么区别
  • clh锅
  • 小规模拍卖公司怎么开票
  • 固定资产加速折旧是什么意思
  • 公司银行账号注销需要什么资料
  • java委托模式和代理模式
  • 年终奖税金怎么扣
  • mongodb document
  • 支付给非金融机构的费用
  • 资产减值损失科目
  • 暂估成本发票最晚什么时候补齐
  • 公司在银行买的金条怎么入账
  • 卖二手车买卖
  • 递延所得税资产和所得税费用的关系
  • 增值税专用发票和普通发票的区别
  • 现金流量表现金及现金等价物净增加额
  • MySQL execute、executeUpdate、executeQuery三者的区别
  • 组策略0x800704ec
  • centos7installation怎么配
  • 从几个方面论述
  • win8调分辨率
  • ubuntu鼠标不能移动
  • win7任务栏快捷启动如何设置
  • aix操作命令
  • snmptrap.exe - snmptrap是什么进程 有什么作用
  • gacrunner.exe是什么
  • win7系统自带刻录启用
  • linux常用命令查看
  • linux管理员权限命令
  • win10输入法图标消失
  • Win8如何根据需要自定义文件管理器导航窗格
  • 电脑arp攻击怎么解决
  • win10 edge浏览器怎样添加信任站点
  • win10预览体验推荐哪个通道
  • unity as
  • 批处理 写入文件
  • python 堆叠
  • javascript 触发事件列表 比较不错
  • jquery.data
  • 陕西电子税务局官网登录入口网址
  • 河北税务总局发票怎么开
  • 深圳市的各区域排名
  • 税收征收管理与税收大数据分析
  • 淮安市地税局电话号码
  • 陕西省机构改革方案获批
  • 武汉二手房交易信息
  • 会计审计和税务服务属于什么税目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设