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

  • 魅族18spro屏幕尺寸(2021魅族18pro屏幕尺寸)

    魅族18spro屏幕尺寸(2021魅族18pro屏幕尺寸)

  • 京东省省卡0.1元开通会自动续费吗(京东省省卡0.1元推荐吗)

    京东省省卡0.1元开通会自动续费吗(京东省省卡0.1元推荐吗)

  • realmex50pro屏幕刷新率是多少(realmex50pro刷miui)

    realmex50pro屏幕刷新率是多少(realmex50pro刷miui)

  • 米notelte什么型号(小米notelte参数)

    米notelte什么型号(小米notelte参数)

  • 快手没有浏览设置怎么办(快手为什么没有浏览记录)

    快手没有浏览设置怎么办(快手为什么没有浏览记录)

  • 耳机漏电是怎么回事(耳机漏电怎么修)

    耳机漏电是怎么回事(耳机漏电怎么修)

  • 华为收不到app推送(华为收不到app推送消息)

    华为收不到app推送(华为收不到app推送消息)

  • 为什么uc浏览器打不开网页(为什么uc浏览器云收藏一直等待中)

    为什么uc浏览器打不开网页(为什么uc浏览器云收藏一直等待中)

  • 钉钉可以在电脑上面下载吗(钉钉可以在电脑上用吗)

    钉钉可以在电脑上面下载吗(钉钉可以在电脑上用吗)

  • 华为保时捷有几个型号(华为保时捷有几个摄像头)

    华为保时捷有几个型号(华为保时捷有几个摄像头)

  • 云手机怎么用(红手指云手机怎么用)

    云手机怎么用(红手指云手机怎么用)

  • 相机专业模式s是什么意思(相机专业模式是什么档)

    相机专业模式s是什么意思(相机专业模式是什么档)

  • 苹果xs处理器型号(苹果xs处理器是多少g的)

    苹果xs处理器型号(苹果xs处理器是多少g的)

  • 苹果黑暗模式怎么设置(苹果黑暗模式怎么调)

    苹果黑暗模式怎么设置(苹果黑暗模式怎么调)

  • 手机怎样看电视直播(手机怎样看电视回放节目)

    手机怎样看电视直播(手机怎样看电视回放节目)

  • 快手怎么看具体时间(快手怎么看具体粉丝量超过一万的怎么看)

    快手怎么看具体时间(快手怎么看具体粉丝量超过一万的怎么看)

  • 区块链技术是什么(区块链技术是什么意思怎么赚钱)

    区块链技术是什么(区块链技术是什么意思怎么赚钱)

  • b站直播怎么关掉礼物(b站直播怎么关闭麦克风)

    b站直播怎么关掉礼物(b站直播怎么关闭麦克风)

  • 华为怎么解除风险应用(华为怎么解除风险应用管控)

    华为怎么解除风险应用(华为怎么解除风险应用管控)

  • 三星s10是双卡吗(三星s10手机是双卡双待吗)

    三星s10是双卡吗(三星s10手机是双卡双待吗)

  • etc怎么知道激活了(etc怎么重新激活)

    etc怎么知道激活了(etc怎么重新激活)

  • 用身份证计算年龄公式(用身份证计算年龄的函数公式)

    用身份证计算年龄公式(用身份证计算年龄的函数公式)

  • 手机高清语音怎样打开(手机 高清语音)

    手机高清语音怎样打开(手机 高清语音)

  • 微信如何设置图案锁屏(微信如何设置图片自动下载)

    微信如何设置图案锁屏(微信如何设置图片自动下载)

  • 智联招聘如何不让公司看到自己(智联招聘如何不被前公司看到)

    智联招聘如何不让公司看到自己(智联招聘如何不被前公司看到)

  • 加黑名单和删除的区别(拉到黑名单里的人怎么恢复)

    加黑名单和删除的区别(拉到黑名单里的人怎么恢复)

  • 房屋租赁服务增值税税率是多少
  • 政府补助利得要交企业所得税吗怎么算
  • 会计利润和应纳税所得额的区别和联系
  • 财务软件大概多少钱
  • 未入账分期金额是什么意思
  • 劳务税能退税吗现在
  • 差额增税可以抵扣吗
  • 对母公司的其他说法
  • 小规模没有计提增值税直接缴纳了
  • 商贸公司运输发票怎么开
  • 房屋置换以房换房政策2019
  • 供应商发出货物,将发货单提交给
  • 别人垫付的医药费,可以报销吗
  • 税收优惠包括哪三个方面的内容
  • 税务局返还的代征代扣要交增值税吗
  • 红字专用发票信息表需要盖章吗
  • 红字信息表没有编号
  • 公司账上的资金与注册资金不一致可以吗?
  • 研发人员的工会经费计入研发费用吗
  • 一般纳税人增值税及附加税费申报表怎么填
  • 专票当普票入帐有问题吗
  • 小规模税局代增值税专用发票怎么交税
  • 跨年度残保金退税怎么算
  • 小规模季报资产总额填错了有影响吗
  • 无偿转让股权需要交什么税
  • 先扣社保再发工资可以吗
  • 收到科技局研发的短信
  • 小微企业 记账
  • 固定资产出售收入属于什么收入
  • 坏账的税务处理方法
  • 固定资产多少可以费用化
  • php如何读取文件内容
  • 浏览器无痕浏览后警察能查到吗
  • 应纳税所得额准予扣除的有
  • uniapp控制硬件设备
  • 清包劳务有措施费吗
  • PHP5.5.15+Apache2.4.10+MySQL5.6.20配置方法分享
  • 艾罗芒阿
  • php判断语句
  • source命令怎么用
  • php如何使用
  • 商品流通的企业
  • python有没有指针
  • 律师事务所主要业务范围介绍
  • 保税区里的企业叫什么
  • 基于vue的开源甘特图控件
  • 电子发票和纸质发票的优缺点
  • access speed
  • 费用计入什么表
  • 一人有限公司和个人独资企业区别
  • 应付账款重分类是什么意思
  • 利润分配贷方余额怎么处理
  • 投资性房地产与持有待售资产的区别
  • 银行代发工资业务收费吗
  • 存货换入无形资产账务处理
  • 应收票据背书转让分录
  • 银行帐户维护费怎么算
  • 技术服务费会计处理
  • 业务招待费管理草案探讨
  • 数据库left joins
  • 台式电脑二级网页打不开怎么办
  • ubuntu20.04.2
  • 多屏协同苹果系统有吗
  • win8.1使用技巧大全
  • psimsvc.exe - psimsvc是什么进程 有什么用
  • windows7可以打开多个窗口
  • centos安装选项怎么选
  • win7系统安装office2019
  • 常用的批处理命令
  • Setver、Share、Subst命令的使用方法
  • unity3d常用代码总结
  • dos命令 获取文件名
  • c和unity3d
  • vue自定义方法
  • 圣诞树代码html
  • js文本框只能输入字母
  • 如何在电子税务局看本月应申报的税
  • 深圳公寓出售要交什么税
  • 税务上门核查要看什么
  • 房屋赠与给子女要交多少税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设