ScanNet数据集详解

ScanNet

http://www.scan-net.org/ScanNet/

https://github.com/ScanNet/ScanNet

https://zhuanlan.zhihu.com/p/4107946359

https://blog.csdn.net/weixin_42888638/article/details/125263163

https://blog.csdn.net/shan_5233/article/details/128300415

https://github.com/daveredrum/ScanRefer/blob/master/data/scannet/README.md

ScanNet is an RGB-D video dataset containing 2.5 million views in more than 1500 scans, annotated with 3D camera poses, surface reconstructions, and instance-level semantic segmentations.

ScanNet 是一个 RGB-D 视频数据集,在超过 1500 次扫描中包含了 250 万个视图,并标注了 3D 相机位姿、表面重建和实例级的语义分割。为了收集这些数据,设计了一个易于使用且具有扩展性的 RGB-D 捕获系统,包括自动化的表面重建和众包的语义标注。实验表明,使用此数据可以在多个 3D 场景理解任务(如 3D 物体分类、语义体素标注和 CAD 模型检索)上取得最新的性能。

ScanNet Data

If you would like to download the ScanNet data, please fill out an agreement to the ScanNet Terms of Use, using your institutional email addresses, and send it to us at scannet@googlegroups.com.

If you have not received a response within a week, it is likely that your email is bouncing - please check this before sending repeat requests. Please do not reply to the noreply email - your email won't be seen.

Please check the changelog for updates to the data release.

如果您想下载 ScanNet 数据,请使用您的机构邮箱地址填写一份 ScanNet 使用条款协议,并发送至 scannet@googlegroups.com

如果您在一周内未收到回复,很可能是您的邮件被退回了------在重复发送请求前,请先检查此问题。请不要回复"noreply"邮箱地址,您的邮件将不会被查阅。

请查看更新日志 (changelog) 以了解数据发布的最新动态。

Data Organization

The data in ScanNet is organized by RGB-D sequence. Each sequence is stored under a directory with named scene<spaceId>_<scanId>, or scene%04d_%02d, where each space corresponds to a unique location (0-indexed). The raw data captured during scanning, camera poses and surface mesh reconstructions, and annotation metadata are all stored together for the given sequence. The directory has the following structure:

ScanNet 中的数据是按 RGB-D 序列 组织的。每个序列存储在一个名为 scene<空间ID>_<扫描ID>(或 scene%04d_%02d)的目录下,其中每个空间对应一个从0开始索引唯一 位置。扫描期间捕获的原始数据相机位姿表面网格重建 以及标注元数据一同存储在给定序列的目录中。该目录具有以下结构:

text 复制代码
<scanId>
|-- <scanId>.sens
    RGB-D sensor stream containing color frames, depth frames, camera poses and other data
|-- <scanId>_vh_clean.ply
    High quality reconstructed mesh
|-- <scanId>_vh_clean_2.ply
    Cleaned and decimated mesh for semantic annotations
|-- <scanId>_vh_clean_2.0.010000.segs.json
    Over-segmentation of annotation mesh
|-- <scanId>.aggregation.json, <scanId>_vh_clean.aggregation.json
    Aggregated instance-level semantic annotations on lo-res, hi-res meshes, respectively
|-- <scanId>_vh_clean_2.0.010000.segs.json, <scanId>_vh_clean.segs.json
    Over-segmentation of lo-res, hi-res meshes, respectively (referenced by aggregated semantic annotations)
|-- <scanId>_vh_clean_2.labels.ply
    Visualization of aggregated semantic segmentation; colored by nyu40 labels (see img/legend; ply property 'label' denotes the nyu40 label id)
|-- <scanId>_2d-label.zip
    Raw 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids
|-- <scanId>_2d-instance.zip
    Raw 2d projections of aggregated annotation instances as 8-bit pngs
|-- <scanId>_2d-label-filt.zip
    Filtered 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids
|-- <scanId>_2d-instance-filt.zip
    Filtered 2d projections of aggregated annotation instances as 8-bit pngs

这份文件清单描述了 一个 特定3D扫描场景 (<scanId>) 的所有相关数据

简单来说,这些文件可以分为五大类:

📸 原始传感器数据
  • <scanId>.sens
    • 这是最原始的输入 ,一个包含所有信息的"录像带"。它记录了扫描时的 彩色图像 (RGB)深度图像 (Depth)相机移动轨迹。所有后续的文件都是基于它生成的。
🧊 3D场景模型
  • <scanId>_vh_clean.ply
    • 高质量的3D模型 。这是根据 .sens 文件重建出的最精细、最完整的场景样貌。
  • <scanId>_vh_clean_2.ply
    • 用于标注的简化版3D模型。为了方便进行标注,这个版本在保留主要结构的同时,减少了面数,文件更小、处理更快。
🏷️ 语义标注文件 (核心)

这些 .json 文件是"说明书",用数据描述了3D模型里的物体是什么。

  • <scanId> ... segs.json
    • 预分割文件。将3D模型拆分成很多小碎块,是为物体标注做准备。
  • <scanId> ... aggregation.json
    • 最终的物体标注文件。这个文件是核心,它将上面的小碎块"聚合"成有意义的物体(例如,哪些碎块组合起来是"椅子",哪些是"桌子"),并给每个物体一个唯一的ID。
🎨 可视化标注模型
  • <scanId>_vh_clean_2.labels.ply
    • 一个彩色的3D模型。它直接将标注结果用颜色画在了简化的3D模型上(比如椅子是红色,桌子是蓝色),让你能非常直观地看到标注结果。
🖼️ 2D投影数据

这些 .zip 压缩包是将3D的标注信息"拍扁"成2D图片的结果,对应原始视频的每一帧。

  • <scanId>_2d-label.zip
    • 2D类别图 :图片里的每个像素值代表它属于哪个类别 (如:椅子、桌子)。
  • <scanId>_2d-instance.zip
    • 2D实例图 :图片里的每个像素值代表它属于哪个具体的物体 (如:椅子1号、椅子2号)。
  • ...-filt.zip
    • 是上述2D图的优化过滤版,去除了噪点,标注更干净。

这个数据文件夹包含了从 ①原始扫描数据 ,到 ②重建的3D模型 ,再到 ③对模型中每个物体的文字标注 ,最后生成了 ④可供预览的彩色模型⑤可用于2D图像分析的标注图片 的全套资料。

Data Formats

The following are overviews of the data formats used in ScanNet:

Reconstructed surface mesh file (*.ply): Binary PLY format mesh with +Z axis in upright orientation.

RGB-D sensor stream (*.sens): Compressed binary format with per-frame color, depth, camera pose and other data. See ScanNet C++ Toolkit for more information and parsing code. See SensReader/python for a very basic python data exporter.

Surface mesh segmentation file (*.segs.json)

重建的表面网格文件 (*.ply) : 二进制 PLY 格式的网格文件,其中 +Z 轴为垂直向上方向

RGB-D 传感器流 (*.sens) : 一种压缩的二进制格式,包含每一帧的彩色、深度、相机位姿 及其他数据。更多信息和解析代码,请参阅 ScanNet C++ 工具包 (ScanNet C++ Toolkit)。如果需要一个非常基础的 Python 数据导出工具,请参阅 SensReader/python

表面网格分割文件 (*.segs.json)

json 复制代码
{
  "params": {  // segmentation parameters
   "kThresh": "0.0001",
   "segMinVerts": "20",
   "minPoints": "750",
   "maxPoints": "30000",
   "thinThresh": "0.05",
   "flatThresh": "0.001",
   "minLength": "0.02",
   "maxLength": "1"
  },
  "sceneId": "...",  // id of segmented scene
  "segIndices": [1,1,1,1,3,3,15,15,15,15],  // per-vertex index of mesh segment
}

Aggregated semantic annotation file (*.aggregation.json)

json 复制代码
{
  "sceneId": "...",  // id of annotated scene
  "appId": "...", // id + version of the tool used to create the annotation
  "segGroups": [
    {
      "id": 0,
      "objectId": 0,
      "segments": [1,4,3],
      "label": "couch"
    },
  ],
  "segmentsFile": "..." // id of the *.segs.json segmentation file referenced
}

BenchmarkScripts/util_3d.py gives examples to parsing the semantic instance information from the *.segs.json, *.aggregation.json, and *_vh_clean_2.ply mesh file, with example semantic segmentation visualization in BenchmarkScripts/3d_helpers/visualize_labels_on_mesh.py.

2d annotation projections (*_2d-label.zip, *_2d-instance.zip, *_2d-label-filt.zip, *_2d-instance-filt.zip): Projection of 3d aggregated annotation of a scan into its RGB-D frames, according to the computed camera trajectory.

1. 表面网格分割文件 (*.segs.json)
  • 这是什么?

    • 简单说,这个文件负责把完整的3D模型"预先"切分成许多小碎块 。它本身并不认识物体,只是为后续的标注做准备。
  • 怎么理解?

    • "params": 切割算法所使用的参数,决定了切得多细、碎块多大等。
    • "segIndices": 核心内容 。它是一个长长的列表,记录了3D模型中的每一个顶点 分别属于哪个编号的碎块。
      • 例如:[1,1,1,3,3, ...] 的意思是,3D模型的前3个顶点属于1号碎块,第4、5个顶点属于3号碎块,以此类推。
2. 聚合语义标注文件 (*.aggregation.json)
  • 这是什么?

    • 这是最核心的"贴标签"文件。它负责将上一步生成的"小碎块"组合起来,并告诉我们这个组合体是什么物体。
  • 怎么理解?

    • "segGroups": 这里定义了每一个物体 (Object)

    • 看一个例子:

      json 复制代码
       {
         "segments": [1, 4, 3], // 把1号、4号、3号碎块组合起来
         "label": "couch"      // 告诉我们这个组合的名字叫"沙发"
         "objectId": 0,       // 给这个沙发一个唯一的ID(比如"0号沙发")
       }
    • 所以,这个文件通过引用 segs.json 里的碎块编号,完成了从无意义的碎块到 有意义的物体(如:沙发、桌子、椅子) 的识别。

辅助工具脚本 (BenchmarkScripts/...)
  • 这是什么?

    • 官方提供的 Python 范例代码 ,教你如何读取和使用上述这些复杂的数据。
  • 它们能做什么?

    • util_3d.py: 告诉你如何整合模型文件 (.ply)碎块文件 (.segs.json)标注文件 (.aggregation.json),从而在代码里知道哪个物体包含了哪些顶点。
    • visualize_labels_on_mesh.py: 一个可视化脚本,展示如何将物体的标签(如"沙发")用不同的颜色画在3D模型上,让你能直观地看到标注结果。
2D标注投影文件 (*.zip)
  • 这是什么?

    • 简单理解:就是把3D世界里的标注信息,重新"拍扁"并"贴"回到原始的2D彩色照片上
  • 怎么理解?

    • 原始数据里有每一帧的彩色照片。这些文件就是为每一帧照片 生成了对应的"标注图",图上用不同的像素颜色或值来表示"这个像素点属于沙发"或者"这个像素点属于0号椅子"。这对于同时需要2D和3D信息的任务非常有用。

原始视频流 (.sens) → 重建成3D模型 (.ply) → 模型被切成小碎块 (.segs.json) → 碎块被组合并贴上物体标签 (.aggregation.json) → 最后,这些3D标签信息可以被重新投影回 2D图像上 (.zip)

ScanNet C++ Toolkit

Tools for working with ScanNet data. SensReader loads the ScanNet .sens data of compressed RGB-D frames, camera intrinsics and extrinsics, and IMU data.

Camera Parameter Estimation Code

Code for estimating camera parameters and depth undistortion. Required to compute sensor calibration files which are used by the pipeline server to undistort depth. See CameraParameterEstimation for details.

Mesh Segmentation Code

Mesh supersegment computation code which we use to preprocess meshes and prepare for semantic annotation. Refer to Segmentator directory for building and using code.

这段文字介绍了三个与 ScanNet 数据集配套使用的 C++ 工具包。它们是处理和使用 ScanNet 原始数据不可或缺的工具。

简单来说,这三者的顺序是:先用「相机参数估计工具」校准相机,再用「C++主工具包」读取原始数据,最后用「网格分割工具」对生成的3D模型进行预处理

ScanNet C++ Toolkit(主工具包)
  • 这是什么? 一个数据读取器
  • 作用 :它的核心功能是读取和解析 ScanNet 特有的 .sens 格式文件。这个文件就像一条压缩的"录像带",里面包含了扫描时的 彩色(RGB)和深度(D)画面、相机内外参数、以及 IMU(惯性测量单元)数据。如果没有这个工具,你就无法使用最原始的扫描数据。
Camera Parameter Estimation Code(相机参数估计工具)
  • 这是什么? 一个相机校准工具
  • 作用 :任何相机镜头都有畸变,尤其是在测量深度时。这个工具的作用就是估算这些畸变参数并进行校正,生成一个"校准文件"。后续的处理流程会使用这个文件来进行"去畸变",以获得更精确的深度数据。
Mesh Segmentation Code(网格分割工具)
  • 这是什么? 一个3D模型预处理工具
  • 作用 :在对3D模型进行语义标注 (即标记出哪个是桌子、哪个是椅子)之前,直接在复杂的原始模型上操作会非常困难。这个工具能自动将完整的3D网格模型预先分割成许多有意义的"超像素"或"小碎块"。这一步极大地简化了后续的人工标注工作。

BundleFusion Reconstruction Code

ScanNet uses the BundleFusion code for reconstruction. Please refer to the BundleFusion repository at https://github.com/niessner/BundleFusion . If you use BundleFusion, please cite the original paper:

BibTeX 复制代码
@article{dai2017bundlefusion,
  title={BundleFusion: Real-time Globally Consistent 3D Reconstruction using On-the-fly Surface Re-integration},
  author={Dai, Angela and Nie{\ss}ner, Matthias and Zoll{\"o}fer, Michael and Izadi, Shahram and Theobalt, Christian},
  journal={ACM Transactions on Graphics 2017 (TOG)},
  year={2017}
}

ScanNet 项目的完整工具链和应用,涵盖了从数据采集、管理、标注到最终算法评测的全过程。

ScanNet 团队是如何构建 出这个庞大的数据集,以及研究人员可以利用这个数据集来进行哪些标准化的学术研究

ScanNet Scanner iPad App(扫描仪iPad应用)
  • 这是什么? 一个用于数据采集App
  • 作用 :ScanNet 的原始数据并不是用昂贵的专业设备扫描的,而是通过给 iPad 外接一个名为 Structure.io 的 3D传感器,再使用这个 App 来进行三维场景的扫描与捕捉。
ScanNet Scanner Data Server(扫描数据服务器)
  • 这是什么? 一个数据接收 服务程序
  • 作用:iPad 上的 App 完成扫描后,会通过网络将采集到的 RGB-D 序列(彩色+深度视频流)发送到这台服务器上,实现集中存储和统一管理。
ScanNet Data Management UI(数据管理网页界面)
  • 这是什么? 一个基于网页数据控制面板
  • 作用 :这个 WebUI 界面让工作人员能够直观地查看所有已扫描的数据,并对后续处理流程进行管理(例如触发模型重建、数据分割等操作)。
ScanNet Semantic Annotation Tools(语义标注工具)
  • 这是什么? 一套网页版的3D标注工具
  • 作用 :在数据采集和预处理完成后,标注人员使用这套名为 SSTK 的工具,在网页界面上为3D模型中的物体添加标签(比如框出沙发并标记为 "couch")。这些就是数据集中所有语义标签的来源。
Benchmark Tasks(基准测试任务)
  • 这是什么? 官方定义的标准化"测试题"
  • 作用 :ScanNet 不仅提供数据,还定义了一系列标准的研究任务,使研究人员能在统一的标准下公平比较各自算法的性能。这些任务包括:
    • 3D物体分类(3D object classification):识别单个物体的类别。
    • 3D物体检索(3D object retrieval):根据一个物体找到场景中所有相似的物体。
    • 体素级别的语义标注(Semantic voxel labeling):对场景中每一个3D点(体素)进行分类。
  • 资源:官方为这些任务提供了代码、训练/测试数据划分、以及预训练模型,方便研究者快速入门。

ScanNet 的生态系统:使用 iPad App 扫描场景 → 通过 Server 接收数据 → 在 WebUI 上进行管理 → 使用 Annotation Tools 进行人工标注 → 最终将标注好的数据用于各种 Benchmark Tasks,推动学术研究的发展

Labels (标签)
  • 这是什么? 一个非常重要的标签映射文件 ,名为 scannet-labels.combined.tsv
  • 作用 :可以把它理解成一本"多功能词典 "。ScanNet 内部有自己的一套物体ID,而这个文件则建立了 ScanNet 的 ID 与其他著名数据集(如 NYUv2 , ModelNet , ShapeNet )以及词汇库 WordNet 中对应类别的映射关系
  • 为什么重要? 有了这个文件,研究人员就可以方便地在不同数据集之间转换和比较模型性能,实现了标签体系的"跨平台兼容"。

Citation:如果您在自己的学术论文或研究中使用了 ScanNet 的数据或代码,您必须按照这里提供的 BibTeX 格式来引用 ScanNet 的原始论文。这是学术界的基本规范,旨在对原作者的贡献表示承认和尊重。

Help (帮助) : 如果您在使用过程中遇到任何问题,可以通过发送电子邮件到 scannet@googlegroups.com 来联系 ScanNet 团队。

License (许可证)
  • 这是什么? 法律授权条款,规定了您如何能合法地使用 ScanNet。
  • 作用 :这里明确了两件事:
    1. 数据 :在 ScanNet 使用条款 (ScanNet Terms of Use) 下发布。这通常意味着您需要同意一份协议,可能会对商业用途等有特定限制。
    2. 代码 :在 MIT 许可证下发布。这是一个非常宽松的开源协议,允许您自由地使用、修改和分发代码。
  • 请注意,数据和代码的授权协议是不同的

对于一个深度学习数据集,为了高效且正确地使用它,你最少需要弄清楚以下六个方面的核心信息。你可以把这看作一个最小化的"必知清单"。

核心信息清单 (Minimum Checklist)

类别 核心问题 为什么重要?
1. 目标与任务 (Goal & Task) 这个数据集是用来解决什么问题的?输入输出是什么? 定义了你的模型方向和结构。
2. 数据量与规模 (Volume & Scale) 有多少数据?训练/验证/测试集如何划分? 决定了模型选择、训练策略和可能遇到的挑战(如过拟合)。
3. 数据格式与结构 (Format & Structure) 数据以什么文件格式存储?目录结构是怎样的? 直接关系到你如何编写代码来读取和解析数据。
4. 标签信息 (Label Information) 标签是什么?以什么形式提供? 模型学习的目标,决定了损失函数和输出层的设计。
5. 数据来源与背景 (Source & Context) 数据从哪里来?有无偏见或限制? 帮助理解数据的局限性,避免模型泛化能力差或滥用数据。
6. 评估指标 (Evaluation Metric) 应该用什么指标来衡量模型好坏? 定义了"成功"的标准,指导你如何比较和选择模型。
1. 数据集的目标与任务 (Goal & Task)

这是最首要的问题,你需要弄清楚:

  • 根本问题是什么? 例如,是为了进行猫狗分类,还是为了检测图像中的所有车辆?是为了将英文翻译成中文,还是为了根据影评判断情感倾向?
  • 任务类型是什么?
    • 图像领域: 图像分类 (Image Classification)、目标检测 (Object Detection)、语义分割 (Semantic Segmentation) 等。
    • 自然语言处理领域: 文本分类 (Text Classification)、命名实体识别 (Named Entity Recognition)、机器翻译 (Machine Translation)、文本生成 (Text Generation) 等。
  • 输入和输出分别是什么?
    • 输入 (Input): 一张 224x224 的彩色图片?一段最大长度为 512 个词的文本?
    • 输出 (Output): 一个类别标签(如 "猫")?一组边界框坐标 [x, y, w, h]?另一段文本?
2. 数据量与规模 (Data Volume & Scale)

"没有数据就没智能",数据量直接影响你的工作。

  • 样本总数: 有多少张图片、多少段文字或多少条记录?(例如:10,000 张图片)
  • 划分比例: 训练集 (Training set)、验证集 (Validation set) 和测试集 (Test set) 是如何划分的?它们的样本数量分别是多少?(例如:8000 训 / 1000 验 / 1000 测)
  • 类别分布: 数据是否均衡 (Balanced)?如果是一个分类任务,各个类别的样本数量是否大致相同?(例如:一个二分类任务,95% 的样本是A类,5% 是B类,这就是典型的不均衡数据,需要特殊处理)。
3. 数据格式与结构 (Data Format & Structure)

这是最实际的工程问题,决定了你如何写数据加载器 (DataLoader)。

  • 文件格式:
    • 图片:是 JPG, PNG,还是 BMP 格式?
    • 文本/表格:是 CSV, JSON, TXT, 还是 XML
    • 特定格式:是否是 TFRecord, HDF5 等为深度学习优化的格式?
  • 目录结构: 数据文件是如何组织的?
    • 常见模式1:按类别存放在不同文件夹下,如 data/train/cat/cat_001.jpg
    • 常见模式2:所有图片放在一个文件夹,标签信息在另外一个 CSVJSON 文件里,通过文件名进行关联。
  • 单个样本的结构: 一条数据记录里包含哪些字段?(例如,一个CSV文件里,每行可能包含 image_id, file_path, label)。
4. 标签信息 (Label Information)

标签是模型学习的监督信号。

  • 标签的含义: 标签 0, 1, 2 分别代表什么?通常会有一个 label_map.txtclasses.txt 文件来解释。
  • 标签的格式:
    • 分类任务: 是整数索引 (integer index) 还是独热编码 (one-hot encoding)?
    • 目标检测任务: 边界框 (bounding box) 的坐标格式是什么?是 [x_min, y_min, x_max, y_max] 还是 [x_center, y_center, width, height]?坐标是绝对像素值还是相对比例?
    • 分割任务: 掩码图 (mask) 是单通道的灰度图还是三通道的彩色图?
5. 数据来源与背景 (Data Source & Context)

理解数据的"前世今生"至关重要。

  • 收集方式: 数据是人工标注的,还是从网络爬取的?是来自真实的工业场景,还是模拟生成的?这会影响数据的噪声水平和真实性。
  • 许可证 (License): 这个数据集可以免费用于学术研究吗?可以用于商业产品吗?(例如 CC-BY-NC 协议禁止商业使用)。
  • 已知的偏见 (Bias) 和局限性:
    • 人脸识别数据集是否主要包含某一族裔的人脸?
    • 自动驾驶数据集是否只在白天的晴朗天气下采集?
    • 文本数据集是否包含攻击性或歧视性语言?
      了解这些能帮你预判模型在真实世界中的表现,并采取措施缓解这些偏见。
6. 评估指标 (Evaluation Metric)

没有度量,就无法优化。

  • 官方/通用指标: 数据集的发布者通常会指定一个或多个评估指标。
    • 分类: 准确率 (Accuracy), 精确率 (Precision), 召回率 (Recall), F1-Score, AUC。
    • 目标检测: 平均精度均值 (mAP, mean Average Precision)。
    • 分割: 交并比 (IoU, Intersection over Union)。
    • 自然语言处理: BLEU (翻译), ROUGE (摘要), 困惑度 (Perplexity, 语言模型)。
  • 为什么是这个指标? 理解为什么选择这个指标能让你更深刻地理解任务的侧重点(例如,在医疗诊断中,召回率可能比准确率更重要)。

一个黄金法则:数据可视化

在弄清楚以上理论信息后,一定要亲眼看看你的数据。这是最重要、最直接的步骤。

  • 随机抽取几十个样本来看一看。 图片长什么样?文本通顺吗?标签打得对吗?
  • 做一些简单的统计分析。 比如画出类别分布的直方图,分析文本长度的分布等。

通过可视化,你可能会发现很多文档里没提到的"惊喜",比如标签错误、低质量图片、数据格式不一致等问题。这将为你节省大量的调试时间。

类别 核心信息 ScanNet V2 关键信息
1. 目标与任务 (Goal & Task) - 用途 - 输入/输出 - 任务类型 - 用途 :室内场景的 3D 重建、2D/3D 语义分割、目标检测 - 输入 :RGB-D 视频序列(1296×968 RGB + 640×480 深度)、稠密点云 - 输出 :相机位姿、清洗后网格(.ply)、实例级语义标签(2D/3D)
2. 数据量与规模 (Volume & Scale) - 样本总数 - 数据大小 - 划分比例 - 场景数 :1513 个独立室内扫描 - 帧数 :约 250 万 RGB-D 帧 - 存储 :全量 ~1.2 TB;子集 scannet_frames_25k(25k 帧 ≈5.6 GB)、scannet_frames_test(100 场景 ≈0.61 GB) - 划分:训练 1201 / 验证 312 / 测试 100 场景
3. 数据格式与结构 (Format & Structure) - 文件格式 - 目录组织 - 样本结构 - 原始.sens(RGB-D 原始流) - 重建网格vh_clean.ply(稠密)、vh_clean_2.ply(清洗) - 语义标注*_segs.json*_aggregation.json*_labels.ply;2D 投影标签为 PNG(16 位语义、8 位实例) - 目录scans/scans_test/scannetv2-labels.combined.tsv(Label Map)
4. 标签信息 (Label Information) - 类别数与含义 - 标签格式 - 映射文件 - 类别 :40 个 NYU40 类别(Benchmark 常聚为 20 类) - 格式 :体素级语义标签、实例 ID、2D 投影 PNG;标签 ID 与名称/颜色映射见 .tsv 文件 - Label Mapscannetv2-labels.combined.tsv 提供类别 ID↔名称↔颜色
5. 数据来源与背景 (Source & Context) - 采集方式 - 场景类型 - 偏见与许可 - 采集 :使用 Kinect/RealSense RGB-D 设备,自动化 3D 重建 + 众包标注 - 场景 :办公室、住宅、教室、餐厅等日常室内环境 - 偏见 :仅室内数据,不含室外场景;可能缺少极端光照/家具配置 - License:学术研究免费(需签署 TOS),商业使用需申请
6. 评估指标 (Evaluation Metric) - 语义分割评价 - 实例分割/检测评价 - 工具支持 - 3D 语义分割 :mean IoU (mIoU) - 实例分割/目标检测 :mean Average Precision (mAP) - 支持:官方评估脚本 & 在线 benchmark
  • 快速调试 :可先下载 scannet_frames_25k 子集进行代码验证。
  • Label Map :务必加载 .tsv 文件确保类别映射一致。
  • 评估对比:采用官方脚本生成指标,保证实验可复现且结果可比。

ScanRefer DataFormat

bash 复制代码
"scene_id": [ScanNet scene id, e.g. "scene0000_00"],
"object_id": [ScanNet object id (corresponds to "objectId" in ScanNet aggregation file), e.g. "34"],
"object_name": [ScanNet object name (corresponds to "label" in ScanNet aggregation file), e.g. "coffee_table"],
"ann_id": [description id, e.g. "1"],
"description": [...],
"token": [a list of tokens from the tokenized description] 
相关推荐
semantist@语校1 小时前
日本语言学校:签证制度类 Prompt 的结构整理路径与策略
人工智能·百度·ai·语言模型·prompt·github·数据集
前网易架构师-高司机2 天前
手机识别数据集,2628张原始图片,支持yolo,coco json,pasical voc xml等格式的标注
人工智能·手机·数据集
HyperAI超神经5 天前
OmniGen2 多模态推理×自我纠正双引擎,引领图像生成新范式;95 万分类标签!TreeOfLife-200M 解锁物种认知新维度
人工智能·数据挖掘·数据集·图像生成·医疗健康·在线教程·数学代码
zzc92110 天前
时频图数据集更正程序,去除坐标轴白边及调整对应的标签值
人工智能·深度学习·数据集·标签·时频图·更正·白边
zzc92125 天前
不同程度多径效应影响下的无线通信网络电磁信号仿真数据生成程序
网络·matlab·数据集·无线信道·无线通信网络拓扑推理·多径效应
飞翔的佩奇1 个月前
【完整源码+数据集+部署教程】石材实例分割系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·毕业设计·数据集·yolo11·石材实例分割系统
飞翔的佩奇1 个月前
【完整源码+数据集+部署教程】安检爆炸物检测系统源码和数据集:改进yolo11-REPVGGOREPA
python·yolo·计算机视觉·毕业设计·数据集·yolo11·安检爆炸物检测
飞翔的佩奇1 个月前
【完整源码+数据集+部署教程】甘蔗叶片病害检测系统源码和数据集:改进yolo11-GhostDynamicConv
python·yolo·计算机视觉·毕业设计·数据集·yolo11·甘蔗叶片病害检测
丁先生qaq1 个月前
热成像实例分割电力设备数据集(3类,838张)
人工智能·计算机视觉·目标跟踪·数据集