在这个教程中,将介绍XRNeRF中模型的设计,以及数据在模型中数如何依次被处理的
在XRNeRF中,模型被分为4个部分
对于上述所有模型而言,输入都是一个字典类型的data
。模型使用字典data
中的内容来创建新的键值对,并加入data
。以origin nerf为例,最开始的data
应该包含pts
(尺寸为 n_rays, n_pts, 3) and viewdirs
(尺寸为 n_rays, n_pts, 3).
Embedder的输入是点坐标pts
和射线的角度viewdirs
,输出嵌入后的特征数据 embedded
并加入data
中去。可以阅读origin nerf's embedder 来加深对这一过程的理解。
如果要使用XRNeRF中已经存在的embedder,可以直接选择一种,然后修改配置文件即可。而如果要实现自己的embedder,可以按照下面的指引
my_embedder.py
文件MyEmbedder
类,继承自nn.Module
或者 BaseEmbedder
,并且定义 forward
方法.mlp通常接收采样点的embedded feature embedded
作为输入,产生raw data 并加入 data
.
可以阅读origin nerf's mlp 来加深对这一过程的理解。
如果要使用XRNeRF中已经存在的mlp,可以直接选择一种,然后修改配置文件即可。而如果要实现自己的mlp,操作步骤与上述过程类似
render通常接收采样点的raw data作为输入,输出图像上像素点的rgb值
产生raw data 并加入 data
.
可以阅读origin nerf's mlp 来加深对这一过程的理解。
如果要使用XRNeRF中已经存在的render,可以直接选择一种,然后修改配置文件即可。而如果要实现自己的render,操作步骤与上述过程类似
一个network包括embedder, mlp 和 render,network会负责跟mmcv的训练流程交互。对一个network而言,需要实现以下方法:train_step
和 val_step
. 这里 是如何定义network的例子。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。