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

  • 华为相机月亮模式在哪(华为月亮模式拍出来都一样吗)

    华为相机月亮模式在哪(华为月亮模式拍出来都一样吗)

  • 农业银行快捷支付怎么开通(农业银行快捷支付协议怎么取消)

    农业银行快捷支付怎么开通(农业银行快捷支付协议怎么取消)

  • qq年终报告在哪里呢(qq年终报告在哪里2021之前没有关注QQ团队)

    qq年终报告在哪里呢(qq年终报告在哪里2021之前没有关注QQ团队)

  • 小米小组件下面的字怎么去掉(小米小组件下面有个圆圈)

    小米小组件下面的字怎么去掉(小米小组件下面有个圆圈)

  • 微信400步大概走了多远(微信400步大概多少米)

    微信400步大概走了多远(微信400步大概多少米)

  • 京东取消退款申请没了(京东取消退款申请撤销)

    京东取消退款申请没了(京东取消退款申请撤销)

  • qq红包能申诉回来吗(qq红包还能追回吗)

    qq红包能申诉回来吗(qq红包还能追回吗)

  • 勿扰模式有来电记录吗(勿扰模式来电话会震动吗)

    勿扰模式有来电记录吗(勿扰模式来电话会震动吗)

  • 7p音频坏了什么症状(苹果手机7p音频坏了会出现什么情况)

    7p音频坏了什么症状(苹果手机7p音频坏了会出现什么情况)

  • wps剪切快捷键(wps剪切快捷键无法使用)

    wps剪切快捷键(wps剪切快捷键无法使用)

  • 笔记本触控板不能滑动了(笔记本触控板不能上下滑动)

    笔记本触控板不能滑动了(笔记本触控板不能上下滑动)

  • b站怎么知道自己被限流了(B站怎么知道自己被别人拉黑)

    b站怎么知道自己被限流了(B站怎么知道自己被别人拉黑)

  • 清理手机拉圾(清理手机拉圾方法)

    清理手机拉圾(清理手机拉圾方法)

  • oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

    oppo手机屏上时间怎么显示(oppo手机屏时间没有了怎么显示设置)

  • 先拉黑再删除还能加吗(先拉黑再删除还能看到朋友圈吗)

    先拉黑再删除还能加吗(先拉黑再删除还能看到朋友圈吗)

  • etc扫描不上是怎么回事(etc扫不到怎么办)

    etc扫描不上是怎么回事(etc扫不到怎么办)

  • ppt中图片动画效果怎么设置(ppt图片动画效果设置为进入)

    ppt中图片动画效果怎么设置(ppt图片动画效果设置为进入)

  • 美版apple watch5蜂窝国内能用吗(apple watch series 5 美版蜂窝)

    美版apple watch5蜂窝国内能用吗(apple watch series 5 美版蜂窝)

  • 探探划过的人还会出现吗(探探划过的人还能找到吗)

    探探划过的人还会出现吗(探探划过的人还能找到吗)

  • ps暂存盘文件怎么清理(ps暂存盘文件怎么删除)

    ps暂存盘文件怎么清理(ps暂存盘文件怎么删除)

  • 苹果手机缓存的文件在哪里能找到(苹果手机缓存的电视剧在哪里能找到)

    苹果手机缓存的文件在哪里能找到(苹果手机缓存的电视剧在哪里能找到)

  • ios13更新步骤(ios13.0怎么更新)

    ios13更新步骤(ios13.0怎么更新)

  • 怎样删掉拼多多里聊天记录(怎样删掉拼多多购买记录)

    怎样删掉拼多多里聊天记录(怎样删掉拼多多购买记录)

  • vivoz5什么时候发布(vivoz5什么时候停产)

    vivoz5什么时候发布(vivoz5什么时候停产)

  • 无线传输速率(无线传输速率越大越好吗)

    无线传输速率(无线传输速率越大越好吗)

  • 如何将iphone照片导入mac电脑中?iPhone图片传到MAC中的方法介绍(如何将iphone照片导入电脑里)

    如何将iphone照片导入mac电脑中?iPhone图片传到MAC中的方法介绍(如何将iphone照片导入电脑里)

  • 双栏Latex模板插入多个图片的各种排布(latex双栏图片)

    双栏Latex模板插入多个图片的各种排布(latex双栏图片)

  • 印花税入什么科目核算成本
  • 建筑业挂靠企业所得税如何收取
  • 支付短期借款利息的会计科目
  • 定额发票收入怎么报税
  • 赠送给客户的产品发货单要填写单价?
  • 退货报废计入哪类费用
  • 运输公司赔偿计入什么科目
  • 免税收入的三个条件
  • 研发设备一次性扣除账务处理
  • 个人给单位干的小工程需代扣个税吗?
  • 有开发票就要交印花税吗?
  • 含税进货价款怎么算
  • 技术开发合同免征企业所得税吗
  • 设备销售并负责安装税率是多少
  • 非汉语是什么意思
  • 公司支付个人劳务
  • 注销一定要去营业厅吗
  • 小规模建筑工程
  • 上月没交社保本人能交吗
  • 合作社人工工资账务处理
  • 预付加油卡发票可以报销吗
  • 债券利息收入的分录
  • 政府会计制度新旧衔接图
  • 出售报废固定资产的净损失计入什么科目
  • 冲销以前年度多做的其他应收款
  • win10电脑文件夹打不开
  • scanserver.exe - scanserver是什么进程 有什么用
  • 劳务公司开具劳务费发票
  • player.exe是什么意思
  • 高新技术企业的研发费用加计扣除
  • 应收账款怎么做分录
  • 什么食物含胆固醇高不能吃
  • 销项冲红可以退税吗?
  • php怎么取数组
  • 汇兑差额如何计算
  • 银行存款余额调节表是不是原始凭证
  • vue子组件监听父组件
  • yolo系列算法全家桶
  • GANs系列:CGAN(条件GAN)原理简介以及项目代码实现
  • 人人都能用英语pdf下载
  • 营改增一般纳税人简易征收的范围
  • 管理费用抵消分录
  • 公司转让注册海外公司
  • discuz设置门户
  • 纳税总额怎么算
  • mysql用户权限详解
  • mysql中You can’t specify target table for update in FROM clause错误解决方法
  • 建筑劳务公司的税率是多少
  • 公司出售二手车要交哪些税
  • 买方的现金折扣会计分录
  • 进项税已认证未缴纳
  • 城镇土地使用税减免税政策
  • 未取得发票该怎么说明
  • 空调购买攻略
  • 在建工程物资属于存货吗
  • 其他应付款个人往来的涉税风险
  • 出口收到货款怎么做账
  • 上月其他应付款本月怎么调回来
  • 其他应收款有哪些科目
  • 时段与时点
  • 材料采购办法
  • 固定资产处置有什么问题
  • 开票销售方
  • 公司增资认缴
  • redhat操作系统安装步骤
  • win7系统如何卸载流氓软件
  • 远程文件管理器
  • win7升级win10系统要多久
  • win10重启更新的时候强制关机后会发生啥
  • 电子版win10怎么安装
  • python中map函数功能
  • 不使用jsp
  • android 基础
  • 安卓手机管家怎么关闭
  • python如何通过键找对应值
  • 修复硬盘
  • javascript如何禁用
  • Android系统服务
  • 土地使用税申报流程图
  • 陕西职工医保申请流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设