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

  • 团队不熟悉的新业务应该怎么样快速开展?(大部分团队成员不熟悉的一项新技术)

    团队不熟悉的新业务应该怎么样快速开展?(大部分团队成员不熟悉的一项新技术)

  • 电脑大小写怎么切换(电脑大小写怎么切换拼音打字)

    电脑大小写怎么切换(电脑大小写怎么切换拼音打字)

  • 小米air2se怎么设置触摸(小米Air2se怎么设置单耳模式)

    小米air2se怎么设置触摸(小米Air2se怎么设置单耳模式)

  • 怎么关闭微信号展示(怎么关闭微信号搜索功能)

    怎么关闭微信号展示(怎么关闭微信号搜索功能)

  • 三相电有几根火线(三相电 几个火线)

    三相电有几根火线(三相电 几个火线)

  • 几年前的微信聊天记录能恢复吗(几年前的微信聊天记录删除了怎么恢复)

    几年前的微信聊天记录能恢复吗(几年前的微信聊天记录删除了怎么恢复)

  • 微信怎么实名制(企业微信怎么实名制)

    微信怎么实名制(企业微信怎么实名制)

  • soul注册设备已达上限(soul注册显示设备异常)

    soul注册设备已达上限(soul注册显示设备异常)

  • 闲鱼收货后多久收到款(闲鱼收货后多久自动确认)

    闲鱼收货后多久收到款(闲鱼收货后多久自动确认)

  • 微视提现实名信息不一致(微视提现怎么解除绑定身份证实名认证)

    微视提现实名信息不一致(微视提现怎么解除绑定身份证实名认证)

  • 4g卡怎么办(4G卡怎么办)

    4g卡怎么办(4G卡怎么办)

  • 小米手环34区别(小米手环3 4 5)

    小米手环34区别(小米手环3 4 5)

  • 三星s8快充是多少瓦(三星s8标准充电和快速充电)

    三星s8快充是多少瓦(三星s8标准充电和快速充电)

  • 快捷中心在哪里设置(快捷中心怎么打开)

    快捷中心在哪里设置(快捷中心怎么打开)

  • 苹果6怎么下载软件(苹果6怎么下载爱思助手)

    苹果6怎么下载软件(苹果6怎么下载爱思助手)

  • 小米9pro怎么设置闹钟(小米9pro操作技巧)

    小米9pro怎么设置闹钟(小米9pro操作技巧)

  • 怎么用抖音号查微信号(怎么用抖音号查找对方详细信息)

    怎么用抖音号查微信号(怎么用抖音号查找对方详细信息)

  • 苹果蓝牙耳机上一曲怎么按(苹果蓝牙耳机上没有任何字)

    苹果蓝牙耳机上一曲怎么按(苹果蓝牙耳机上没有任何字)

  • 微信公众号流量主收益怎么计算(微信公众号流量主)

    微信公众号流量主收益怎么计算(微信公众号流量主)

  • 一加8pro什么时候上市(一加8pro什么时候停产的)

    一加8pro什么时候上市(一加8pro什么时候停产的)

  • 3dtouch怎么按出来(3dtouch有啥用怎么设置好)

    3dtouch怎么按出来(3dtouch有啥用怎么设置好)

  • 打qq电话对方暂时无法接听(打qq电话对方暂无法接通)

    打qq电话对方暂时无法接听(打qq电话对方暂无法接通)

  • 为什么电脑网络显示感叹号(为什么电脑网络不显示)

    为什么电脑网络显示感叹号(为什么电脑网络不显示)

  • 苹果6的电池容量是多少(苹果6的电池容量在哪儿看)

    苹果6的电池容量是多少(苹果6的电池容量在哪儿看)

  • iphonex白苹果怎么修复(iphonex白苹果怎么进入dfu模式)

    iphonex白苹果怎么修复(iphonex白苹果怎么进入dfu模式)

  • 小米mee7s是什么型号(小米型号mee7)

    小米mee7s是什么型号(小米型号mee7)

  • iphonexr的录屏在哪里(iphonexr的录屏怎么才有声音)

    iphonexr的录屏在哪里(iphonexr的录屏怎么才有声音)

  • yolox改进--添加Coordinate Attention模块(CVPR2021)(yolo改进方法)

    yolox改进--添加Coordinate Attention模块(CVPR2021)(yolo改进方法)

  • 微软 New Bing AI 申请与使用保姆级教程(免魔法)(微软 new bing 广告收入)

    微软 New Bing AI 申请与使用保姆级教程(免魔法)(微软 new bing 广告收入)

  • 核定征收企业所得税率是多少
  • 公司房屋修缮账务流程
  • 购销金额多少的情况下必须需要签合同?
  • 增值税未缴款能清卡吗
  • 在电子税务里怎么查以前年度亏损数据
  • 无形资产处置收益计入
  • 企业收到的投资者的超出其在企业
  • 股权转让企业所得税税率
  • 员工福利费是不是加班费
  • pe市盈率法
  • 报无票收入又开发票了怎么办?
  • 验资帐户
  • 包装物一次摊销的会计分录
  • 利润表的企业所得税怎么查询
  • 进项税小于销项税怎么处理
  • 住房公积金如何在手机上提取
  • 怎么才能知道开户行行号
  • 零税率购房发票
  • 发票复印件怎么打印
  • 增值税普通发票税率
  • 国税发200931号文解读
  • 保安服务费可以开具专票吗
  • 税收分类编码选错了会罚款么
  • 2017年广告费税率
  • 递延所得税企业合并
  • 预提费用和待摊费用是根据以下哪项原则设置的会计科目
  • 现金折扣发票如何开具
  • 小规模纳税人自己可以开专票吗
  • 转让股权凭证怎么写
  • 跨省银行承兑汇票可以接受吗
  • 投资资本回报率多少合适
  • 营业外支出的税额要进项转出吗
  • 对公账户发放工资要固定几号打吗
  • 挂靠借用资质账务处理?
  • 对于在某一时点履行义务,企业应当在
  • php获取手机型号
  • 赠送客户商品分录
  • vue中的proxy代理
  • labview oop
  • js浅拷贝和深拷贝的方法
  • bert数据增强
  • 发票作废税款什么时候退
  • 如何理性看待国企改革
  • 失业保险金退回告知书
  • 进项税额已抵扣转出会计分录
  • 作价出资土地与出让区别
  • 绩效奖个人所得税是多少
  • sql2008附加数据库错误3456
  • sql server 内存管理
  • 购销合同印花税税率表
  • 发票隔月可以重开吗
  • 工资能否当月计提当月发放
  • 附加税怎么算出来的
  • 工程结算在资产中的作用
  • 建筑企业预缴税
  • 固定资产怎么入费用
  • 公司预支款应注意什么
  • 在筹建期间的费用属于什么
  • 企业间贴现手续怎么办理
  • 事业单位企业所得税汇算清缴怎么做
  • mysql深度解析
  • win10周年版
  • Win10年度更新(RS1)怎么样升级?升级方法一览
  • 在mac中运行exe
  • win7免费升win8
  • win10地图不显示
  • u深度如何装win7系统
  • win8打开蓝牙设置
  • win10mobile更新出错
  • dos命令检测硬盘坏道
  • centos7开不了机
  • 简单的安卓代码
  • Windows10下安装fastdfs
  • python如何获取
  • jquery unload
  • 安卓手机管家哪个好用
  • js数组用法
  • 政治轮训的效果
  • 增值税抵扣联怎么装订
  • 如何代扣个人所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设