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

  • 荣耀50一键锁屏怎么设置(荣耀50一键锁屏找不到了)

    荣耀50一键锁屏怎么设置(荣耀50一键锁屏找不到了)

  • 苹果个人收藏在哪里设置(平果手机个人收藏)

    苹果个人收藏在哪里设置(平果手机个人收藏)

  • 荣耀x10怎么显示电量百分比(荣耀x10怎么显示时间)

    荣耀x10怎么显示电量百分比(荣耀x10怎么显示时间)

  • vivox30有隐藏功能吗(vivox30的隐藏功能)

    vivox30有隐藏功能吗(vivox30的隐藏功能)

  • 戴尔笔记本开机一直叫(戴尔笔记本开机滴滴响)

    戴尔笔记本开机一直叫(戴尔笔记本开机滴滴响)

  • 验证码是什么密码(验证码是什么密码怎么查)

    验证码是什么密码(验证码是什么密码怎么查)

  • 小米analytics是什么(小米analytics有什么用处)

    小米analytics是什么(小米analytics有什么用处)

  • oppoa92s处理器是什么(OPPOa92s处理器是多少)

    oppoa92s处理器是什么(OPPOa92s处理器是多少)

  • 微信实名认证需要什么(微信实名认证需要银行卡吗)

    微信实名认证需要什么(微信实名认证需要银行卡吗)

  • 11年的macbook还能用吗(2011年的macbookpro还能干嘛)

    11年的macbook还能用吗(2011年的macbookpro还能干嘛)

  • 苹果手机下面的小孔怎么清理(苹果手机下面的三个键怎么调出来)

    苹果手机下面的小孔怎么清理(苹果手机下面的三个键怎么调出来)

  • 朋友圈点赞有什么用(朋友圈点赞有什么说法吗)

    朋友圈点赞有什么用(朋友圈点赞有什么说法吗)

  • 苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

    苹果11安兔兔跑分多少(iphone11安兔兔能跑多少分)

  • excel2010工作簿文件的默认扩展名(excel2010工作簿以文件形式存于磁盘中,其默认扩展名为)

    excel2010工作簿文件的默认扩展名(excel2010工作簿以文件形式存于磁盘中,其默认扩展名为)

  • ie浏览器停止工作怎么解决(ie浏览器已停止工作出现了一个问题)

    ie浏览器停止工作怎么解决(ie浏览器已停止工作出现了一个问题)

  • 快手播放量怎么算一次(快手播放量怎么提高)

    快手播放量怎么算一次(快手播放量怎么提高)

  • 退款催促卖家处理按钮在哪(催买家退货)

    退款催促卖家处理按钮在哪(催买家退货)

  • 恢复被替换的excel(如何恢复替换的excel)

    恢复被替换的excel(如何恢复替换的excel)

  • r15屏幕分辨率设置(r15屏幕分辨率多少)

    r15屏幕分辨率设置(r15屏幕分辨率多少)

  • 苹果手机QQ音乐怎么导出来(苹果手机qq音乐桌面歌词怎么设置)

    苹果手机QQ音乐怎么导出来(苹果手机qq音乐桌面歌词怎么设置)

  • 电脑视频全屏按哪个键(电脑视频全屏按哪个键win11)

    电脑视频全屏按哪个键(电脑视频全屏按哪个键win11)

  • 调整Linux系统为正确时区的方法(linux的系统设置在哪)

    调整Linux系统为正确时区的方法(linux的系统设置在哪)

  • KB891711.EXE是什么进程 KB891711进程有什么用(kb4598481是什么)

    KB891711.EXE是什么进程 KB891711进程有什么用(kb4598481是什么)

  • 使用uni-app写小程序,解析含有html标签的富文本(uni-app实战教程)

    使用uni-app写小程序,解析含有html标签的富文本(uni-app实战教程)

  • php之kohana框架的安装详解(php框架symfony)

    php之kohana框架的安装详解(php框架symfony)

  • 土地税和房产税缴纳时间
  • 增值税纳税期限1日是什么意思
  • 利息收入交所得税吗
  • 房地产预售啥意思
  • 客户到期不付款如何处理
  • 从事股权投资业务如何界定
  • 新公司利润表怎么填
  • 旅游服务住宿费入什么科目
  • 公司对供应商罚款合法吗
  • 持有待售固定资产按照账面价值与可收回金额
  • 销售预付卡的成本是什么
  • 税款返点如何做财务处理呢?
  • 汽车行业保险丝
  • 工会经费有关的增值税能否抵扣?
  • 汇算清缴应纳税所得额5万要交多少税
  • 企业接受大额捐赠,可以分次确认收入缴纳企业所得税吗?
  • 专项资金需要交印花税吗
  • 计提水电费是什么凭证
  • 季度所得税报表怎么填
  • 进项税额转出的
  • 园林公司采购岗位职责
  • 如何免费获取Win11企业版
  • 三大期间费用属于什么类
  • 鸿蒙系统值得升级嘛
  • echarts w3c
  • linux 管道命令详解
  • 固定资产内部抵消
  • scrfs.exe - scrfs是什么进程 有什么用
  • 企业的存货采用计划成本核算,某年年末,结
  • 存货按实际成本计价是指每种存货的收发结存
  • word下划线怎么延长
  • 如何计提加计抵减额分录
  • paul滑雪
  • thinkphp3.x中display方法及show方法的用法实例
  • 金蝶专业版固定资产初始数据录入
  • vue组件通信方法
  • 帝国cms对接小程序
  • 收到的赔款,罚款怎么算
  • 新公司建账会计科目
  • 合伙企业分红怎么做账
  • 应付账款转入营业外收入的证明
  • 预提的管理费用,汇算清缴怎么做
  • MySQL中使用_____语句更新表中的数据
  • mongodb bi
  • SQLite学习手册(SQLite在线备份)
  • 利息支出是利息费用减利息收入吗
  • 免税公司专用发票是什么
  • 累计折旧会影响净残值吗
  • 会计记账凭证的填制要求
  • 募集资金有哪些渠道
  • 销售费用的定义是什么意思
  • 收到政府土地补偿款账务处理
  • 管理费用贷方有余额怎么处理
  • 工会经费怎么申报,怎么上交?
  • 工程项目分包需要招标吗
  • sql server错误和使用情况报告
  • mysql5.7慢查询
  • Mac怎么强制关闭窗口
  • 怎么在bios中开启cs1
  • ubuntu fsl
  • windows7显示桌面的操作方法
  • windows xp无法更改密码
  • 如何设置访问共享文件夹
  • 360tray占用大量内存
  • win7系统运行在哪
  • win10每周更新
  • freebsd连接wifi
  • css清除浮动方法有哪几种
  • bootstraptable教程
  • javascriptz
  • 详解16型人格
  • [置顶]游戏名:chivalry2
  • 增删改查的语句
  • 黑马程序员c++语言讲义
  • javascript面向对象精要pdf
  • iterator python
  • 货物税费
  • 支付宝申领失业金申请审核多久
  • 税务人员少征税款
  • 普通发票管理系统官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设