[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-ScanNet--ScanNet":3,"similar-ScanNet--ScanNet":118},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":6,"owner_name":6,"owner_avatar_url":14,"owner_bio":7,"owner_company":7,"owner_location":7,"owner_email":7,"owner_twitter":7,"owner_website":7,"owner_url":15,"languages":16,"stars":55,"forks":56,"last_commit_at":57,"license":58,"difficulty_score":59,"env_os":60,"env_gpu":60,"env_ram":60,"env_deps":61,"category_tags":67,"github_topics":71,"view_count":77,"oss_zip_url":7,"oss_zip_packed_at":7,"status":78,"created_at":79,"updated_at":80,"faqs":81,"releases":117},6842,"ScanNet\u002FScanNet","ScanNet",null,"ScanNet 是一个大规模 RGB-D 视频数据集，专为推动三维场景理解研究而构建。它收录了超过 1500 个真实室内场景的扫描数据，包含 250 万帧视图，并提供了精确的 3D 相机姿态、高质量表面重建模型以及实例级的语义分割标注。\n\n在三维视觉领域，获取带有精细标注的真实世界数据一直是个难题。ScanNet 通过提供成对的彩色与深度图像序列，结合自动化的网格重建和人工校验的语义标签，有效解决了训练深度学习模型时“数据荒”的问题，让算法能更准确地识别和理解复杂的空间结构。\n\n这套数据主要面向计算机视觉研究人员、AI 开发者及机器人领域的工程师。无论是开发室内导航系统、构建数字孪生应用，还是训练语义分割网络，ScanNet 都能提供坚实的基础设施支持。其独特亮点在于不仅提供了原始的传感器流数据，还附带了从超分割网格到聚合语义标签的完整处理链路，甚至包含了 2D 投影标注，极大地方便了多模态算法的验证与对比。借助官方提供的解析工具，用户可以轻松提取所需的几何与语义信息，快速开展前沿探索。","# ScanNet\n\nScanNet 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.\n\n## ScanNet Data\n\nIf you would like to download the ScanNet data, fill out an agreement to the [ScanNet Terms of Use](http:\u002F\u002Fkaldir.vc.cit.tum.de\u002Fscannet\u002FScanNet_TOS.pdf), using your institutional email addresses, and send it to us at scannet@googlegroups.com. \n\nIf 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.\n\nPlease check the [changelog](http:\u002F\u002Fwww.scan-net.org\u002Fchangelog) for updates to the data release.\n\n\n### Data Organization\nThe data in ScanNet is organized by RGB-D sequence. Each sequence is stored under a directory with named `scene\u003CspaceId>_\u003CscanId>`, 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:\n```shell\n\u003CscanId>\n|-- \u003CscanId>.sens\n    RGB-D sensor stream containing color frames, depth frames, camera poses and other data\n|-- \u003CscanId>_vh_clean.ply\n    High quality reconstructed mesh\n|-- \u003CscanId>_vh_clean_2.ply\n    Cleaned and decimated mesh for semantic annotations\n|-- \u003CscanId>_vh_clean_2.0.010000.segs.json\n    Over-segmentation of annotation mesh\n|-- \u003CscanId>.aggregation.json, \u003CscanId>_vh_clean.aggregation.json\n    Aggregated instance-level semantic annotations on lo-res, hi-res meshes, respectively\n|-- \u003CscanId>_vh_clean_2.0.010000.segs.json, \u003CscanId>_vh_clean.segs.json\n    Over-segmentation of lo-res, hi-res meshes, respectively (referenced by aggregated semantic annotations)\n|-- \u003CscanId>_vh_clean_2.labels.ply\n    Visualization of aggregated semantic segmentation; colored by nyu40 labels (see img\u002Flegend; ply property 'label' denotes the nyu40 label id)\n|-- \u003CscanId>_2d-label.zip\n    Raw 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids\n|-- \u003CscanId>_2d-instance.zip\n    Raw 2d projections of aggregated annotation instances as 8-bit pngs\n|-- \u003CscanId>_2d-label-filt.zip\n    Filtered 2d projections of aggregated annotation labels as 16-bit pngs with ScanNet label ids\n|-- \u003CscanId>_2d-instance-filt.zip\n    Filtered 2d projections of aggregated annotation instances as 8-bit pngs\n```\n\n### Data Formats\nThe following are overviews of the data formats used in ScanNet:\n\n**Reconstructed surface mesh file (`*.ply`)**:\nBinary PLY format mesh with +Z axis in upright orientation.\n\n**RGB-D sensor stream (`*.sens`)**:\nCompressed binary format with per-frame color, depth, camera pose and other data.  See [ScanNet C++ Toolkit](#scannet-c-toolkit) for more information and parsing code. See [SensReader\u002Fpython](SensReader\u002Fpython) for a very basic python data exporter.\n\n**Surface mesh segmentation file (`*.segs.json`)**:\n```javascript\n{\n  \"params\": {  \u002F\u002F segmentation parameters\n   \"kThresh\": \"0.0001\",\n   \"segMinVerts\": \"20\",\n   \"minPoints\": \"750\",\n   \"maxPoints\": \"30000\",\n   \"thinThresh\": \"0.05\",\n   \"flatThresh\": \"0.001\",\n   \"minLength\": \"0.02\",\n   \"maxLength\": \"1\"\n  },\n  \"sceneId\": \"...\",  \u002F\u002F id of segmented scene\n  \"segIndices\": [1,1,1,1,3,3,15,15,15,15],  \u002F\u002F per-vertex index of mesh segment\n}\n```\n\n**Aggregated semantic annotation file (`*.aggregation.json`)**:\n```javascript\n{\n  \"sceneId\": \"...\",  \u002F\u002F id of annotated scene\n  \"appId\": \"...\", \u002F\u002F id + version of the tool used to create the annotation\n  \"segGroups\": [\n    {\n      \"id\": 0,\n      \"objectId\": 0,\n      \"segments\": [1,4,3],\n      \"label\": \"couch\"\n    },\n  ],\n  \"segmentsFile\": \"...\" \u002F\u002F id of the *.segs.json segmentation file referenced\n}\n```\n[BenchmarkScripts\u002Futil_3d.py](BenchmarkScripts\u002Futil_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\u002F3d_helpers\u002Fvisualize_labels_on_mesh.py](BenchmarkScripts\u002F3d_helpers\u002Fvisualize_labels_on_mesh.py).\n\n**2d annotation projections (`*_2d-label.zip`, `*_2d-instance.zip`, `*_2d-label-filt.zip`, `*_2d-instance-filt.zip`)**:\nProjection of 3d aggregated annotation of a scan into its RGB-D frames, according to the computed camera trajectory. \n\n### ScanNet C++ Toolkit\nTools for working with ScanNet data. [SensReader](SensReader) loads the ScanNet `.sens` data of compressed RGB-D frames, camera intrinsics and extrinsics, and IMU data.\n\n### Camera Parameter Estimation Code\nCode 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](CameraParameterEstimation) for details.\n\n### Mesh Segmentation Code\nMesh supersegment computation code which we use to preprocess meshes and prepare for semantic annotation. Refer to [Segmentator](Segmentator) directory for building and using code.\n\n## BundleFusion Reconstruction Code\n\nScanNet uses the [BundleFusion](https:\u002F\u002Fgithub.com\u002Fniessner\u002FBundleFusion) code for reconstruction. Please refer to the BundleFusion repository at https:\u002F\u002Fgithub.com\u002Fniessner\u002FBundleFusion . If you use BundleFusion, please cite the original paper:\n```\n@article{dai2017bundlefusion,\n  title={BundleFusion: Real-time Globally Consistent 3D Reconstruction using On-the-fly Surface Re-integration},\n  author={Dai, Angela and Nie{\\ss}ner, Matthias and Zoll{\\\"o}fer, Michael and Izadi, Shahram and Theobalt, Christian},\n  journal={ACM Transactions on Graphics 2017 (TOG)},\n  year={2017}\n}\n```\n\n## ScanNet Scanner iPad App\n[ScannerApp](ScannerApp) is designed for easy capture of RGB-D sequences using an iPad with attached Structure.io sensor.\n\n## ScanNet Scanner Data Server\n[Server](Server) contains the server code that receives RGB-D sequences from iPads running the Scanner app.\n\n## ScanNet Data Management UI\n[WebUI](WebUI) contains the web-based data management UI used for providing an overview of available scan data and controlling the processing and annotation pipeline.\n\n## ScanNet Semantic Annotation Tools\nCode and documentation for the ScanNet semantic annotation web-based interfaces is provided as part of the [SSTK](https:\u002F\u002Fgithub.com\u002Fsmartscenes\u002Fsstk) library. Please refer to https:\u002F\u002Fgithub.com\u002Fsmartscenes\u002Fsstk\u002Fwiki\u002FScan-Annotation-Pipeline for an overview.\n\n## Benchmark Tasks\nWe provide code for several scene understanding benchmarks on ScanNet:\n* 3D object classification\n* 3D object retrieval\n* Semantic voxel labeling\n\nTrain\u002Ftest splits are given at [Tasks\u002FBenchmark](Tasks\u002FBenchmark).   \nLabel mappings and trained models can be downloaded with the ScanNet data release.\n\nSee [Tasks](Tasks).\n\n### Labels\nThe label mapping file (`scannet-labels.combined.tsv`) in the ScanNet task data release contains mappings from the labels provided in the ScanNet annotations (`id`) to the object category sets of [NYUv2](http:\u002F\u002Fcs.nyu.edu\u002F~silberman\u002Fdatasets\u002Fnyu_depth_v2.html), [ModelNet](http:\u002F\u002Fmodelnet.cs.princeton.edu\u002F), [ShapeNet](https:\u002F\u002Fwww.shapenet.org\u002F), and [WordNet](https:\u002F\u002Fwordnet.princeton.edu\u002F) synsets. Download with along with the task data (`--task_data`) or by itself (`--label_map`).\n\n## Citation\nIf you use the ScanNet data or code please cite:\n```\n@inproceedings{dai2017scannet,\n    title={ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes},\n    author={Dai, Angela and Chang, Angel X. and Savva, Manolis and Halber, Maciej and Funkhouser, Thomas and Nie{\\ss}ner, Matthias},\n    booktitle = {Proc. Computer Vision and Pattern Recognition (CVPR), IEEE},\n    year = {2017}\n}\n```\n\n## Help\nIf you have any questions, please contact us at scannet@googlegroups.com\n\n\n## Changelog\n\n## License\nThe data is released under the [ScanNet Terms of Use](http:\u002F\u002Fkaldir.vc.in.tum.de\u002Fscannet\u002FScanNet_TOS.pdf), and the code is released under the MIT license.\n\nCopyright (c) 2017\n","# ScanNet\n\nScanNet 是一个 RGB-D 视频数据集，包含超过 1500 次扫描中的 250 万帧图像，并标注了 3D 相机位姿、表面重建以及实例级语义分割。\n\n## ScanNet 数据\n\n如果您希望下载 ScanNet 数据，请使用您的机构邮箱填写并签署 [ScanNet 使用条款](http:\u002F\u002Fkaldir.vc.cit.tum.de\u002Fscannet\u002FScanNet_TOS.pdf)，然后将其发送至 scannet@googlegroups.com。\n\n如果您在一周内未收到回复，很可能是您的邮件被退回——请在重复发送请求之前先检查这一点。请勿回复“noreply”邮件，因为该邮件不会被查看。\n\n请查看 [变更日志](http:\u002F\u002Fwww.scan-net.org\u002Fchangelog)，以获取数据发布的最新信息。\n\n\n### 数据组织\nScanNet 中的数据按 RGB-D 序列组织。每个序列存储在一个名为 `scene\u003CspaceId>_\u003CscanId>` 或 `scene%04d_%02d` 的目录下，其中每个空间对应一个唯一的地点（从 0 开始编号）。在扫描过程中捕获的原始数据、相机位姿、表面网格重建以及标注元数据都存储在同一序列的目录中。该目录的结构如下：\n```shell\n\u003CscanId>\n|-- \u003CscanId>.sens\n    RGB-D 传感器流，包含彩色帧、深度帧、相机位姿及其他数据\n|-- \u003CscanId>_vh_clean.ply\n    高质量重建的网格\n|-- \u003CscanId>_vh_clean_2.ply\n    清理并简化后的网格，用于语义标注\n|-- \u003CscanId>_vh_clean_2.0.010000.segs.json\n    标注网格的过度分割\n|-- \u003CscanId>.aggregation.json, \u003CscanId>_vh_clean.aggregation.json\n    分别在低分辨率和高分辨率网格上聚合的实例级语义标注\n|-- \u003CscanId>_vh_clean_2.0.010000.segs.json, \u003CscanId>_vh_clean.segs.json\n    分别对应低分辨率和高分辨率网格的过度分割（由聚合的语义标注引用）\n|-- \u003CscanId>_vh_clean_2.labels.ply\n    聚合语义分割的可视化；按 NYU40 标签着色（参见 img\u002Flegend；PLY 属性 'label' 表示 NYU40 标签 ID）\n|-- \u003CscanId>_2d-label.zip\n    聚合标注标签的原始 2D 投影，以 16 位 PNG 格式保存，带有 ScanNet 标签 ID\n|-- \u003CscanId>_2d-instance.zip\n    聚合标注实例的原始 2D 投影，以 8 位 PNG 格式保存\n|-- \u003CscanId>_2d-label-filt.zip\n    过滤后的聚合标注标签 2D 投影，以 16 位 PNG 格式保存，带有 ScanNet 标签 ID\n|-- \u003CscanId>_2d-instance-filt.zip\n    过滤后的聚合标注实例 2D 投影，以 8 位 PNG 格式保存\n```\n\n### 数据格式\n以下是 ScanNet 中使用的数据格式概述：\n\n**重建表面网格文件 (`*.ply`)**：\n二进制 PLY 格式的网格，+Z 轴为竖直方向。\n\n**RGB-D 传感器流 (`*.sens`)**：\n压缩的二进制格式，每帧包含颜色、深度、相机位姿及其他数据。更多信息及解析代码请参阅 [ScanNet C++ 工具包](#scannet-c-toolkit)。[SensReader\u002Fpython](SensReader\u002Fpython) 提供了一个非常基础的 Python 数据导出工具。\n\n**表面网格分割文件 (`*.segs.json`)**：\n```javascript\n{\n  \"params\": {  \u002F\u002F 分割参数\n   \"kThresh\": \"0.0001\",\n   \"segMinVerts\": \"20\",\n   \"minPoints\": \"750\",\n   \"maxPoints\": \"30000\",\n   \"thinThresh\": \"0.05\",\n   \"flatThresh\": \"0.001\",\n   \"minLength\": \"0.02\",\n   \"maxLength\": \"1\"\n  },\n  \"sceneId\": \"...\",  \u002F\u002F 被分割场景的 ID\n  \"segIndices\": [1,1,1,1,3,3,15,15,15,15],  \u002F\u002F 网格每个顶点所属的分割区域索引\n}\n```\n\n**聚合语义标注文件 (`*.aggregation.json`)**：\n```javascript\n{\n  \"sceneId\": \"...\",  \u002F\u002F 被标注场景的 ID\n  \"appId\": \"...\", \u002F\u002F 用于创建标注的工具 ID 和版本\n  \"segGroups\": [\n    {\n      \"id\": 0,\n      \"objectId\": 0,\n      \"segments\": [1,4,3],\n      \"label\": \"沙发\"\n    },\n  ],\n  \"segmentsFile\": \"...\" \u002F\u002F 引用的 *.segs.json 分割文件 ID\n}\n```\n[BenchmarkScripts\u002Futil_3d.py](BenchmarkScripts\u002Futil_3d.py) 提供了从 `*.segs.json`、`*.aggregation.json` 和 `*_vh_clean_2.ply` 网格文件中解析语义实例信息的示例，并在 [BenchmarkScripts\u002F3d_helpers\u002Fvisualize_labels_on_mesh.py](BenchmarkScripts\u002F3d_helpers\u002Fvisualize_labels_on_mesh.py) 中展示了语义分割的可视化效果。\n\n**2D 标注投影文件 (`*_2d-label.zip`, `*_2d-instance.zip`, `*_2d-label-filt.zip`, `*_2d-instance-filt.zip`)**：\n根据计算出的相机轨迹，将扫描的 3D 聚合标注投影到其 RGB-D 帧中。\n\n### ScanNet C++ 工具包\n用于处理 ScanNet 数据的工具。[SensReader](SensReader) 可加载 ScanNet `.sens` 文件，提取压缩的 RGB-D 帧、相机内参和外参以及 IMU 数据。\n\n### 相机参数估计代码\n用于估计相机参数和深度去畸变的代码。这是计算传感器校准文件所必需的，这些文件会被管道服务器用来对深度进行去畸变。详细信息请参阅 [CameraParameterEstimation](CameraParameterEstimation)。\n\n### 网格分割代码\n我们用于预处理网格并准备语义标注的网格超分割计算代码。有关构建和使用该代码的说明，请参阅 [Segmentator](Segmentator) 目录。\n\n## BundleFusion 重建代码\n\nScanNet 使用 [BundleFusion](https:\u002F\u002Fgithub.com\u002Fniessner\u002FBundleFusion) 代码进行重建。请参考 BundleFusion 仓库：https:\u002F\u002Fgithub.com\u002Fniessner\u002FBundleFusion。如果您使用 BundleFusion，请引用原始论文：\n```\n@article{dai2017bundlefusion,\n  title={BundleFusion: 实时全局一致的 3D 重建，采用即时表面重集成},\n  author={戴安吉拉、尼瑟纳、佐勒费尔、伊扎迪、特奥巴尔特},\n  journal={ACM 图形学汇刊 2017 (TOG)},\n  year={2017}\n}\n```\n\n## ScanNet 扫描仪 iPad 应用程序\n\n[ScannerApp](ScannerApp) 旨在通过配备 Structure.io 传感器的 iPad 轻松捕获 RGB-D 序列。\n\n## ScanNet 扫描仪数据服务器\n\n[Server](Server) 包含接收来自运行 Scanner 应用程序的 iPad 的 RGB-D 序列的服务器代码。\n\n## ScanNet 数据管理 UI\n\n[WebUI](WebUI) 包含基于 Web 的数据管理界面，用于提供可用扫描数据的概览，并控制处理和标注流程。\n\n## ScanNet 语义标注工具\n\nScanNet 语义标注基于 Web 的接口的代码和文档作为 [SSTK](https:\u002F\u002Fgithub.com\u002Fsmartscenes\u002Fsstk) 库的一部分提供。有关概述，请参阅 https:\u002F\u002Fgithub.com\u002Fsmartscenes\u002Fsstk\u002Fwiki\u002FScan-Annotation-Pipeline。\n\n## 基准任务\n\n我们在 ScanNet 上提供了多个场景理解基准测试的代码：\n* 3D 物体分类\n* 3D 物体检索\n* 语义体素标注\n\n训练\u002F测试划分可在 [Tasks\u002FBenchmark](Tasks\u002FBenchmark) 中找到。标签映射和训练好的模型可随 ScanNet 数据发布一起下载。\n详情请参阅 [Tasks](Tasks)。\n\n### 标签\nScanNet 任务数据发布中的标签映射文件（`scannet-labels.combined.tsv`）包含从 ScanNet 注释中提供的标签（`id`）到 [NYUv2](http:\u002F\u002Fcs.nyu.edu\u002F~silberman\u002Fdatasets\u002Fnyu_depth_v2.html)、[ModelNet](http:\u002F\u002Fmodelnet.cs.princeton.edu\u002F)、[ShapeNet](https:\u002F\u002Fwww.shapenet.org\u002F) 以及 [WordNet](https:\u002F\u002Fwordnet.princeton.edu\u002F) 同义词集的对象类别集合的映射。可随任务数据一起下载（`--task_data`），也可单独下载（`--label_map`）。\n\n## 引用\n如果您使用了 ScanNet 数据或代码，请引用以下文献：\n```\n@inproceedings{dai2017scannet,\n    title={ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes},\n    author={Dai, Angela and Chang, Angel X. and Savva, Manolis and Halber, Maciej and Funkhouser, Thomas and Nie{\\ss}ner, Matthias},\n    booktitle = {Proc. Computer Vision and Pattern Recognition (CVPR), IEEE},\n    year = {2017}\n}\n```\n\n## 帮助\n如有任何问题，请通过 scannet@googlegroups.com 联系我们。\n\n\n## 更改记录\n\n## 许可证\n数据根据 [ScanNet 使用条款](http:\u002F\u002Fkaldir.vc.in.tum.de\u002Fscannet\u002FScanNet_TOS.pdf) 发布，代码则采用 MIT 许可证授权。\n\n版权所有 © 2017","# ScanNet 快速上手指南\n\nScanNet 是一个包含超过 1500 个扫描场景、250 万帧视图的 RGB-D 视频数据集，标注了 3D 相机姿态、表面重建网格以及实例级语义分割。本指南将帮助您快速获取数据并解析核心文件。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 16.04+) 或 macOS。Windows 用户建议使用 WSL2。\n*   **编程语言**:\n    *   Python 3.x (用于数据解析和基准测试脚本)\n    *   C++ 11+ (用于编译 SensReader 等底层工具)\n*   **核心依赖库**:\n    *   `numpy`, `scipy`\n    *   `Pillow` (处理图像投影)\n    *   `open3d` 或 `trimesh` (用于可视化 `.ply` 网格文件)\n    *   `zlib` (C++ 编译依赖，用于解压 `.sens` 数据)\n*   **硬件建议**: 由于数据集庞大（单个场景可达数 GB），建议预留至少 500GB 硬盘空间，并配备 NVIDIA GPU 以运行相关的深度学习基准任务。\n\n## 安装步骤\n\nScanNet 的数据访问需要签署协议，代码库则直接克隆即可。\n\n### 1. 获取数据访问权限\nScanNet 数据不直接公开下载，需按以下步骤申请：\n1.  下载并签署 [ScanNet 使用条款](http:\u002F\u002Fkaldir.vc.cit.tum.de\u002Fscannet\u002FScanNet_TOS.pdf)。\n2.  使用**机构邮箱**（如 .edu 或公司邮箱）将签署后的文件发送至 `scannet@googlegroups.com`。\n3.  等待回复（通常在一周内），您将收到包含数据下载链接的邮件。\n    *   *注意：请勿回复 `noreply` 邮件，若一周未收到回复，请检查垃圾邮件箱或确认邮箱是否被退回。*\n\n### 2. 克隆代码仓库\n获取官方提供的数据处理工具和基准测试代码：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet.git\ncd ScanNet\n```\n\n### 3. 安装 Python 依赖\n进入目录并安装必要的 Python 包：\n\n```bash\npip install numpy scipy Pillow open3d trimesh\n```\n\n### 4. 编译 C++ 工具 (可选但推荐)\n为了高效读取压缩的 `.sens` 原始数据流，建议编译官方提供的 `SensReader` 工具：\n\n```bash\ncd SensReader\u002Fc++\nmkdir build && cd build\ncmake ..\nmake\n```\n*编译完成后，可在 `SensReader\u002Fc++\u002Fbuild` 目录下找到可执行文件用于导出帧数据。*\n\n## 基本使用\n\n以下是加载和解析 ScanNet 数据的核心流程示例。\n\n### 1. 数据目录结构\n下载并解压数据后，每个场景文件夹（如 `scene0000_00`）包含以下关键文件：\n*   `.sens`: 原始 RGB-D 传感器数据流（颜色、深度、位姿）。\n*   `_vh_clean_2.ply`: 清洗后的高精度三维网格模型。\n*   `.aggregation.json`: 实例级语义标注信息。\n*   `.segs.json`: 网格的超像素分割索引。\n\n### 2. 解析语义标注与网格 (Python)\n官方提供了实用脚本用于将语义标签映射到 3D 网格顶点。您可以直接使用 `BenchmarkScripts\u002Futil_3d.py` 中的逻辑。\n\n以下是一个简单的加载示例，展示如何读取网格和对应的 NYU40 语义标签：\n\n```python\nimport os\nimport numpy as np\nimport open3d as o3d\n\n# 假设数据路径\nscene_path = \"data\u002Fscans\u002Fscene0000_00\"\nmesh_file = os.path.join(scene_path, \"scene0000_00_vh_clean_2.labels.ply\")\n\n# 1. 加载带有标签信息的 PLY 文件\n# label 属性存储了 NYU40 的分类 ID\nmesh = o3d.io.read_triangle_mesh(mesh_file)\nlabels = np.asarray(mesh.vertex_colors) # 颜色通常已根据标签渲染，或直接读取 vertex_properties\n\n# 如果读取原始无颜色 mesh 并关联标签：\nmesh_clean = o3d.io.read_triangle_mesh(os.path.join(scene_path, \"scene0000_00_vh_clean_2.ply\"))\n# 需配合 util_3d.py 解析 aggregation.json 和 segs.json 来生成顶点标签数组\n# 此处仅为示意，具体映射逻辑请参考 BenchmarkScripts\u002Futil_3d.py 中的 read_aggregation 和 read_segmentation\n\nprint(f\"Mesh vertices: {len(mesh.vertices)}\")\nprint(\"Data loaded successfully.\")\n\n# 2. 可视化\no3d.visualization.draw_geometries([mesh])\n```\n\n### 3. 读取原始 RGB-D 序列 (.sens)\n若需获取原始图像帧和深度图，推荐使用编译好的 `SensReader` 或官方提供的简易 Python 导出器：\n\n```bash\n# 使用编译好的 C++ 工具导出特定场景的帧\n.\u002FSensReader\u002Fc++\u002Fbuild\u002FSensReader --filename data\u002Fscans\u002Fscene0000_00\u002Fscene0000_00.sens --output_path output_frames\u002F\n```\n\n或者使用仓库中提供的简易 Python 脚本（位于 `SensReader\u002Fpython`）：\n```bash\ncd SensReader\u002Fpython\npython reader.py --filename ..\u002F..\u002Fdata\u002Fscans\u002Fscene0000_00\u002Fscene0000_00.sens --export_color_images --export_depth_images --export_poses --export_intrinsics\n```\n\n### 4. 使用基准测试标签映射\n进行模型训练时，需使用 `scannet-labels.combined.tsv` 文件将 ScanNet 内部 ID 映射到 NYUv2、ModelNet 等标准类别集。该文件通常随任务数据包（Task Data）一同下载。\n\n```python\nimport pandas as pd\n\n# 加载标签映射表\nlabel_map = pd.read_csv('scannet-labels.combined.tsv', sep='\\t')\nprint(label_map.head())\n```\n\n---\n*注：更多高级功能（如相机参数估计、网格分割预处理）请参考仓库中 `CameraParameterEstimation` 和 `Segmentator` 目录下的源码文档。*","某机器人团队正在开发一款能在复杂室内环境中自主导航并识别物体的服务机器人，需要训练高精度的 3D 语义感知模型。\n\n### 没有 ScanNet 时\n- **数据获取成本极高**：团队需自行搭建昂贵的激光雷达与深度相机阵列，耗费数周时间扫描真实房间，且难以覆盖多样化的家居布局。\n- **标注工作几乎不可行**：人工对数百万帧 RGB-D 图像进行像素级 3D 实例分割标注（如区分“沙发”与“椅子”的具体边界）耗时数月，且极易出错。\n- **缺乏统一基准验证**：由于缺少包含精确相机位姿和重建网格的标准数据集，算法效果无法在公平环境下与其他前沿研究对比，迭代方向模糊。\n- **多模态数据对齐困难**：自行采集的彩色图、深度图与 3D 点云往往存在时间或空间上的微小错位，导致模型训练收敛缓慢甚至失败。\n\n### 使用 ScanNet 后\n- **即刻拥有海量高质量数据**：直接下载包含 1500+ 个真实场景、250 万视角的 RGB-D 视频流，涵盖各种光照条件和房间类型，无需自建采集系统。\n- **开箱即用的精细标注**：直接利用已提供的实例级语义分割标签和过分割网格文件，将原本数月的标注周期缩短为零，团队可立即投入模型训练。\n- **建立标准化评估体系**：基于 ScanNet 官方基准测试脚本，快速量化模型在 3D 检测与分割任务上的精度，清晰定位技术短板并优化算法。\n- **完美的多模态同步**：利用数据集中预校准的相机位姿和重建网格，确保颜色、深度与几何信息严格对齐，显著提升了模型训练的稳定性和最终精度。\n\nScanNet 通过提供大规模、全标注且严格对齐的 3D 室内场景数据，将研发重心从繁琐的数据工程转移到了核心算法创新上，极大加速了具身智能技术的落地进程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FScanNet_ScanNet_10f23aae.png","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FScanNet_4e18b738.png","https:\u002F\u002Fgithub.com\u002FScanNet",[17,21,25,29,33,37,41,45,48,52],{"name":18,"color":19,"percentage":20},"C","#555555",37.3,{"name":22,"color":23,"percentage":24},"Objective-C","#438eff",29.8,{"name":26,"color":27,"percentage":28},"C++","#f34b7d",17.8,{"name":30,"color":31,"percentage":32},"Python","#3572A5",5.2,{"name":34,"color":35,"percentage":36},"Objective-C++","#6866fb",3.8,{"name":38,"color":39,"percentage":40},"JavaScript","#f1e05a",2.3,{"name":42,"color":43,"percentage":44},"Lua","#000080",1.1,{"name":46,"color":47,"percentage":44},"Cuda","#3A4E3A",{"name":49,"color":50,"percentage":51},"Pug","#a86454",0.4,{"name":53,"color":54,"percentage":51},"MATLAB","#e16737",2270,368,"2026-04-12T00:26:41","NOASSERTION",5,"未说明",{"notes":62,"python":60,"dependencies":63},"ScanNet 主要是一个数据集而非单一的 AI 模型工具。README 中未提供具体的深度学习运行环境需求（如 GPU 型号、Python 版本等）。数据使用需签署协议并通过机构邮箱申请。提供的代码组件（如 C++ Toolkit、BundleFusion、Segmentator）通常需要自行编译。部分基准测试脚本依赖 Python，但具体版本和库未在文中列出。",[64,65,66],"C++ Toolkit (用于解析.sens 文件)","BundleFusion (用于重建，需单独编译)","SSTK (用于语义标注工具)",[68,69,70],"开发框架","其他","图像",[72,73,74,75,76],"rgbd","3d-reconstruction","computer-vision","computer-graphics","deep-learning",2,"ready","2026-03-27T02:49:30.150509","2026-04-12T16:18:56.022304",[82,87,92,97,102,107,112],{"id":83,"question_zh":84,"answer_zh":85,"source_url":86},30860,"如何将彩色图像与深度图像对齐（例如调整为 640x480）？","如果仅将 RGB-D 数据作为输入使用，可以直接将彩色图像和深度图像缩放到目标尺寸，无需在 xyz 空间中进行额外对齐，因为它们已经被视为对齐。但如果需要将深度转换为 xyz 坐标，应先在原始深度图像中转换得到三通道 xyz 映射图，然后再进行缩放。注意：缩放图像后，内参（intrinsic）也会随之改变。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F28",{"id":88,"question_zh":89,"answer_zh":90,"source_url":91},30861,"提交基准测试时遇到'Could not archive the uploaded file'错误如何解决？","该错误通常是由于提交文件的命名问题导致的。尝试将提交名称更改为论文的完整名称（full name of my paper），许多用户反馈修改后提交成功。如果系统显示无法编辑方法名称，请检查文件名或元数据配置是否正确。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F129",{"id":93,"question_zh":94,"answer_zh":95,"source_url":96},30862,"读取 aggregation.json 时出现'index out of range'错误怎么办？","这是因为 '.aggregation.json' 中存储的段索引（segment indices）可能包含未标注的段。'.segs.json' 定义了所有段的唯一 ID，而 '.aggregation.json' 仅包含属于特定实例的段 ID。部分段可能没有对应的实例标注，因此在访问时需先过滤或处理这些无标注的段，避免直接通过索引访问导致越界。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F47",{"id":98,"question_zh":99,"answer_zh":100,"source_url":101},30863,"如何生成用于实例分割评估的 ground truth 文件？","可以使用官方脚本生成实例级别的 GT 文件。命令示例：\npython export_train_mesh_for_evaluation.py --scan_path \u003C场景路径> --output_file \u003C输出文件路径> --label_map_file \u003C标签映射文件> --type instance\n生成的文件格式每行包含：预测掩码文件路径、类别 ID、置信度（如：pred_mask\u002Foutput_1.txt 9 1.000000）。评估脚本内部会将 ID 解析为 label_id*1000+inst_id 格式。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F23",{"id":103,"question_zh":104,"answer_zh":105,"source_url":106},30864,"测试集（scene0707_00 到 scene0806_00）的房间标签（room label）在哪里？","测试集中的场景（从 scene0707_00 开始）并未提供房间标签（room label）标注。虽然场景目录下存在 .txt 文件，但其内容不包含房间级别的语义标注。这是数据集设计的限制，训练集才有完整的房间标签。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F162",{"id":108,"question_zh":109,"answer_zh":110,"source_url":111},30865,"加载 16 位 PNG 深度图时报错'libpng error: bad adaptive filter value'如何解决？","该问题可通过以下两种方式解决：\n1. 修改 SensorData.py 脚本：取消注释第 87 行，并注释掉其后的 4 行代码（参考 GitHub 链接中的具体行数）。\n2. 升级 pypng 库到指定版本：pip install pypng==0.0.20（注意：此方法在 Python 3.8 + OpenCV 3.4.8 环境下可能无效）。\n推荐使用第一种修改源码的方式。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F148",{"id":113,"question_zh":114,"answer_zh":115,"source_url":116},30866,"彩色图像和深度图像分辨率不同，如何将彩色点映射到深度点？","ScanNet 数据集中的彩色图像和深度图像已经是空间对齐的（aligned），因此可以直接重采样（resample）到相同分辨率进行使用。尽管两者的内参（intrinsic parameters）不同，但数据集发布时已做过对齐处理，无需手动进行复杂的坐标变换。","https:\u002F\u002Fgithub.com\u002FScanNet\u002FScanNet\u002Fissues\u002F2",[],[119,130,138,147,155,164],{"id":120,"name":121,"github_repo":122,"description_zh":123,"stars":124,"difficulty_score":125,"last_commit_at":126,"category_tags":127,"status":78},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[128,68,70,129],"Agent","数据工具",{"id":131,"name":132,"github_repo":133,"description_zh":134,"stars":135,"difficulty_score":125,"last_commit_at":136,"category_tags":137,"status":78},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[68,70,128],{"id":139,"name":140,"github_repo":141,"description_zh":142,"stars":143,"difficulty_score":77,"last_commit_at":144,"category_tags":145,"status":78},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",151314,"2026-04-11T23:32:58",[68,128,146],"语言模型",{"id":148,"name":149,"github_repo":150,"description_zh":151,"stars":152,"difficulty_score":77,"last_commit_at":153,"category_tags":154,"status":78},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[68,70,128],{"id":156,"name":157,"github_repo":158,"description_zh":159,"stars":160,"difficulty_score":77,"last_commit_at":161,"category_tags":162,"status":78},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[163,128,70,68],"插件",{"id":165,"name":166,"github_repo":167,"description_zh":168,"stars":169,"difficulty_score":77,"last_commit_at":170,"category_tags":171,"status":78},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[163,68]]