VLA-3D|3D场景理解数据集|室内导航数据集
收藏VLA-3D 数据集
简介
VLA-3D 数据集是一个用于视觉语言基础的3D对象参考数据集,适用于视觉语言导航(VLN)等高级任务。该数据集包含900万+语言陈述,这些陈述是为7635个3D场景中的11619个区域合成生成的,这些场景来自多个3D扫描数据集。数据集作为CMU Vision-Language-Autonomy (VLA) Challenge的一部分发布。每个数据源的示例场景可以在sample_data目录下找到。
新闻
- [2024-07] 我们发布了数据集的第一个版本。下载说明请参考下载部分。
下载
安装 minio
和 tqdm:
bash
pip install minio tqdm
运行 download_dataset.py
脚本。脚本可以使用以下参数:
--download_path
: 下载数据集的输出文件夹路径。默认为VLA-3D_dataset
。--subset
: 指定要下载的数据集源名称,以仅下载数据集的子集。可选值包括 Matterport/Scannet/HM3D/Unity/ARKitScenes/3RScan。如果不提供此参数,将下载完整数据集。
数据将以zip文件的形式下载到输出目录中,每个文件对应一个3D数据集源。
bash python download_dataset.py --download_path full_dataset
原始数据
数据集包含以下六个3D扫描数据集的场景:
- Matterport3D [2]: 90个场景 - 2195个区域
- ScanNet [3]: 1513个场景
- Habitat-Matterport 3D (HM3D) [4]: 140个场景 - 1991个区域
- Unity [5]: 15个场景 + 3个场景因挑战而被省略 - 46个区域
- ARKitScenes [6]: 4494个场景
- 3RScan [7]: 1381个场景
除了Unity场景是合成生成的,其他数据集均为真实世界数据。每个场景中的对象数量从4到2264不等。
数据集格式
数据集的整体文件结构如下:
<dataset_folder>/ -- <scene_name>/ -- <scene_name>_pc_result.ply 处理后的整个场景点云 -- <scene_name>_object_split.npy 包含对象ID和分割索引的文件,用于与.ply文件一起使用 -- <scene_name>_region_split.npy 包含区域ID和分割索引的文件,用于与.ply文件一起使用 -- <scene_name>_object_result.csv 对象信息文件,包含对象ID、类别标签、边界框和每个场景中每个对象的主导颜色 -- <scene_name>_region_result.csv 区域信息文件,包含区域ID、区域名称、边界框 -- <scene_name>_scene_graph.json 场景图,包含每个场景中每个区域/房间内的对象关系 -- <scene_name>_referential_statements.json 包含生成的语言陈述的JSON文件
生成的场景图以JSON格式存储,所有对象及其属性和对象间关系按区域存储在每个场景的文件中。对象属性包括语义类别标签、边界框、大小、主导颜色和方向(如果有)。
生成的语言也以JSON格式存储,每个JSON对象包含语言陈述、目标对象和锚对象的信息、关系类型和干扰对象。目标对象以object_id、类别标签、中心点、大小(边界框的体积)和前三个主导颜色存储。
数据集生成
数据集生成流程包括三个主要步骤:1) 3D扫描数据处理,2) 场景图生成,和3) 语言生成。
3D扫描数据处理
每个数据集的3D场景存储在每个场景的单独子文件夹中。场景首先被预处理为五个文件:
- 点云.ply文件。
- 包含区域点ID和结束索引的.npy文件。
- 包含对象点ID和结束索引的.npy文件。
- 包含区域信息的CSV文件。
- 包含对象信息的CSV文件。
点云生成
全彩色场景点云按以下方式生成并存储在 <scene_name>_pc_result.ply
中:
- Matterport-3D、ScanNet和ARKitScenes将场景网格存储为带有预烘焙颜色的.ply文件,因此这些数据集的场景级点云直接从原始.ply文件中获取。
- HM3D、3RScan和Unity数据集将场景存储在.glb和.fbx网格中,并使用UV映射进行纹理处理。点云因此从这些场景中均匀采样,颜色从原始纹理中采样并烘焙到采样点中。Unity中每个场景的采样点数与每个场景中的对象数成比例,3RScan和HM3D网格的总表面积按 $2*10^{-4}$ 划分进行采样。
每个.ply文件存储点坐标和RGB值,不包含对象和区域ID。相反,点首先按区域ID排序,然后按对象ID排序。两个.npy文件:<scene_name>_object_split.npy
和 <scene_name>_region_split.npy
分别包含 n_objects x 2
和 n_regions x 2
数组。每个数组的第一列包含各自的对象和区域ID,如果某些点属于未标记的对象和区域,则可能从-1开始。第二列包含给定各自ID的区域和对象的结束索引。这些文件可以与 numpy.split
一起使用,在将.ply文件读取为numpy数组后,分别分割对象和区域点。visualizer 包含使用这些文件分割区域的示例。
区域级信息
区域CSV文件包含以下信息:
region_id
: 场景内区域的唯一IDregion_label
: 区域名称(来自源数据或基于启发式标记)region_bbox_c[xyz], region_bbox_[xyz]length, region_bbox_heading
: 区域边界框的中心点、大小和方向角(当前所有数据集的方向角为0,区域边界框为轴对齐)
ScanNet、ARKitScenes和3RScan每个场景已经包含一个区域,因此区域边界框是整个点云的边界框。Matterport-3D的区域边界框从原始数据集中获取,而HM3D和Unity的轴对齐边界框从按区域分割的点中创建。
对象级信息
object_id
: 场景内对象的唯一IDregion_id
: 对象所属区域的IDraw_label
: 原始数据集中给定的对象名称nyu_id
,nyu40_id
,nyu_label
,nyu40_label
: 基于NYUv2 和 NYU40 模式的类别索引和名称object_bbox_c[xyz], object_bbox_[xyz]length, object_bbox_heading
: 定向对象边界框的中心点、长度、宽度、高度和方向object_front_heading
: 具有规范前方向的对象的前方向object_color_[rgb][123]
: 最多前三个主导颜色的RGB值object_color_scheme[123]
: 基于颜色映射的前三个主导颜色的名称object_color_scheme_percentage[123]
: 属于前三个主导颜色的点所占百分比object_color_scheme_average_dist[123]
: 分类为前三个颜色的点与这些颜色的LAB空间中的颜色值之间的平均距离
原始作者提供的类别映射用于将ScanNet和Matterport-3D标签映射到NYUv2和NYU40标签。我们为Unity、HM3D、ARKitScenes和3RScan数据集手动创建了新的类别映射文件,位于unity、hm3d_full_mappings.csv、arkit_cat_mapping.csv 和 3rscan_full_mapping.csv。
主导颜色
为了增强对象参考陈述的颜色信息,我们将每个对象的主导颜色分类为一组15种基本颜色。对于每个分割对象,点级颜色从RGB映射到LAB空间,然后使用CSS3颜色作为锚点进行聚类。CSS3颜色标签然后使用3d_data_preprocess/utils/dominant_colors_new_lab.py中的启发式方法映射到一组15种基本颜色。如果超过10%的点被分配到特定颜色,则该颜色是主导颜色,并保存前3个或更少的主导颜色。
处理每个原始数据源场景的脚本位于3d_data_preprocess/。
自由空间生成
为了提供额外的导航目标,每个扫描还被处理以生成水平可穿越的自由空间。房间中的单独可穿越区域被分块为子区域,为这些空间生成与其他场景中对象的空间关系,以创建对这些空间的明确参考(例如“桌子附近的空间”)。
场景图生成
使用预处理文件按区域计算空间关系,并使用每种关系的启发式方法。所有使用的关系都是视图无关的,因为它们不依赖于场景的视角。此外,如果目标/锚点边界框显著重叠或包含在另一个边界框中,则过滤所有关系。使用的关系包括:
关系 | 定义 | 同义词 | 附加属性 |
---|---|---|---|
Above | 目标在锚点上方 | Over | |
Below | 目标在锚点下方 | Under, Beneath, Underneath | |
Closest | 目标是在特定类别中离锚点最近的物体 | Nearest | 跨类别 |
Farthest | 目标是在特定类别中离锚点最远的物体 | Most distant from | 跨类别 |
Between | 目标在两个锚点之间 | In the middle of, In-between | 三元关系 |
Near | 目标在锚点的一定距离阈值内 | Next to, Close to, Adjacent to, Beside | 对称 |
In | 目标在锚点内部 | Inside, within | |
On | 目标在Z轴上与锚点接触并在其上方 | On top of |
生成场景图的脚本位于scene_graph/文件夹。
语言生成
基于计算的空间关系,使用类似于Sr3D [1]的模板生成方法合成生成语言陈述。从上表中,每个关系的同义词用于增加陈述的多样性。生成的语言陈述确保:
- 视图无关:目标对象的关系谓词不依赖于场景的视角
- 唯一性:在区域中只有一种可能性存在
- 最小化:遵循人类语言,使用尽可能少的描述符来消除目标对象的歧义
每个语言生成组件的详细信息如下。
语言配置
语言配置文件包含生成人类可读句子所需的所有参数和模板。它们包含每种关系类型的模板,例如“[目标对象] 是 [关系] 到 [锚点对象]”,以及每种关系的同义词。这些结构蓝图为相同的

- 1VLA-3D: A Dataset for 3D Semantic Scene Understanding and Navigation卡内基梅隆大学机器人研究所 · 2024年
Breast Ultrasound Images (BUSI)
小型(约500×500像素)超声图像,适用于良性和恶性病变的分类和分割任务。
github 收录
Titanic Dataset
Titanic Data Analysis: A Journey into Passenger Profiles and Survival Dynamics
kaggle 收录
中国高分辨率高质量PM2.5数据集(2000-2023)
ChinaHighPM2.5数据集是中国高分辨率高质量近地表空气污染物数据集(ChinaHighAirPollutants, CHAP)中PM2.5数据集。该数据集利用人工智能技术,使用模式资料填补了卫星MODIS MAIAC AOD产品的空间缺失值,结合地基观测、大气再分析和排放清单等大数据生产得到2000年至今全国无缝隙地面PM2.5数据。数据十折交叉验证决定系数R2为0.92,均方根误差RMSE为10.76 µg/m3。主要范围为整个中国地区,空间分辨率为1 km,时间分辨率为日、月、年,单位为µg/m3。注意:该数据集持续更新,如需要更多数据,请发邮件联系作者(weijing_rs@163.com; weijing@umd.edu)。 数据文件中包含NC转GeoTiff的四种代码(Python、Matlab、IDL和R语言)nc2geotiff codes。
国家青藏高原科学数据中心 收录
OpenSonarDatasets
OpenSonarDatasets是一个致力于整合开放源代码声纳数据集的仓库,旨在为水下研究和开发提供便利。该仓库鼓励研究人员扩展当前的数据集集合,以增加开放源代码声纳数据集的可见性,并提供一个更容易查找和比较数据集的方式。
github 收录
FAOSTAT Agricultural Data
FAOSTAT Agricultural Data 是由联合国粮食及农业组织(FAO)提供的全球农业数据集。该数据集涵盖了农业生产、贸易、价格、土地利用、水资源、气候变化、人口统计等多个方面的详细信息。数据包括了全球各个国家和地区的农业统计数据,旨在为政策制定者、研究人员和公众提供全面的农业信息。
www.fao.org 收录