重要提示

您正在查看 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