重要提示
您正在查看 NeMo 2.0 文档。此版本引入了 API 的重大更改和一个新的库 NeMo Run。我们目前正在将 NeMo 1.0 的所有功能移植到 2.0。有关先前版本或 2.0 中尚不可用的功能的文档,请参阅 NeMo 24.07 文档。
数据集#
注意
每位用户有责任检查数据集的内容,查看适用的许可证,并确定其是否适合其预期用途。用户应在将数据放置在其机器上之前,查看与数据集关联的任何适用链接。
射线数据集#
射线数据集是专门的数据结构,专为计算机图形学中的应用而设计,尤其是在 3D 重建、神经渲染和光线追踪方面。
射线数据集的特征在于其射线的详细表示,每条射线都由原点 (rays_o) 和方向向量 (rays_d) 定义。 这些数据集与特定的图像尺寸(包括高度和宽度)紧密相关,这些尺寸决定了目标图像的分辨率和宽高比。 除了核心射线数据外,这些数据集通常还包括其他元数据,例如相机参数、深度值和颜色信息。 数据集的多样性和复杂性,涵盖了一系列视点和照明条件,在捕捉真实世界光行为的细微差别方面起着至关重要的作用。
随机姿势数据集#
随机姿势数据集随机生成相机姿势,每个姿势都转换为一组独特的射线,这些射线以其原点和方向为特征。 这种随机化是覆盖广泛的潜在视点和角度的关键,模仿了对 3D 场景的全面探索。 这种多样化的采样对于训练强大的 NeRF 模型至关重要,这些模型能够从以前看不见的角度准确地重建和渲染 3D 环境。
该数据集固有地考虑了射线生成的必要参数,例如目标图像的高度和宽度,确保射线与渲染或重建算法的特定要求兼容。 除了射线原点和方向之外,数据集还可以包括其他相关元数据,如相机内参和外参,从而有助于更详细和通用的训练过程。
下面显示了 RandomPosesDataset 用作训练数据集的示例
model:
data:
train_batch_size: 1
train_shuffle: false
train_dataset:
_target_: nemo.collections.multimodal.data.nerf.random_poses.RandomPosesDataset
internal_batch_size: 100
width: 512
height: 512
radius_range: [3.0, 3.5]
theta_range: [45, 105]
phi_range: [-180, 180]
fovx_range: [10, 30]
fovy_range: [10, 30]
jitter: False
jitter_center: 0.2
jitter_target: 0.2
jitter_up: 0.02
uniform_sphere_rate: 0
angle_overhead: 30
angle_front: 60
圆形姿势数据集#
圆形姿势数据集是一种专门的射线数据集,旨在生成圆形图案中射线的样本。 此数据集的关键特征是它能够模拟沿圆形路径排列的相机位置,并聚焦于中心点。 这种排列对于从多个均匀间隔的角度捕获场景特别有用,确保了围绕中心轴的全面视图。
圆形姿势数据集的定义参数是其大小,它决定了围绕圆的样本或相机姿势的数量。 较大的尺寸会导致生成更多的相机位置,从而提供更精细的粒度和圆的覆盖范围。 每个相机姿势都对应于一组独特的射线,其原点和方向根据围绕圆的位置和对中心点的焦点计算得出。
圆形姿势数据集在验证和测试期间尤其有价值,可以生成重建场景的整体视图。
下面显示了 CirclePosesDataset 用作验证数据集的示例
model:
data:
val_batch_size: 1
val_shuffle: false
val_dataset:
_target_: nemo.collections.multimodal.data.nerf.circle_poses.CirclePosesDataset
size: 5
width: 512
height: 512
angle_overhead: 30
angle_front: 60