Segment-Any-Point-Cloud

GitHub
636 31 较难 1 次阅读 2天前其他
AI 解读 由 AI 自动生成,仅供参考

Segment-Any-Point-Cloud(简称 Seal)是一个专为自动驾驶场景设计的自监督学习框架,旨在实现对任意点云序列的精准分割。它主要解决了传统 3D 点云处理严重依赖昂贵人工标注数据,以及在动态场景中难以保持时空一致性的难题。

Seal 的核心创新在于“知识蒸馏”技术:它能直接将成熟的 2D 视觉基础模型(VFMs)中蕴含的丰富语义知识,迁移到 3D 点云领域。通过构建摄像头与激光雷达之间的 2D-3D 对应关系,并在预训练阶段强制约束空间与时间的一致性,Seal 无需任何 2D 或 3D 标注即可进行高效学习。这使得它不仅具备极强的可扩展性,还能轻松适应不同分辨率、规模甚至含有噪声的真实或合成数据集,展现出卓越的泛化能力。

该工具特别适合从事自动驾驶感知、机器人导航及计算机视觉研究的研究人员与开发者使用。如果你正在探索如何利用海量无标签数据提升 3D 感知性能,或者需要构建对复杂环境具有强鲁棒性的分割系统,Seal 提供了一个无需标注、开箱即用的强大基线方案,能显著降低数据准备成本并加速研发进程。

使用场景

某自动驾驶初创公司的感知团队正致力于提升其激光雷达系统在复杂城市路况下的动态物体分割能力,以支持更精准的路径规划。

没有 Segment-Any-Point-Cloud 时

  • 标注成本高昂:团队需耗费数周时间人工标注海量 3D 点云数据中的车辆与行人,严重拖慢模型迭代速度。
  • 跨模态对齐困难:难以将摄像头采集的丰富 2D 视觉语义有效迁移到稀疏的 3D 点云上,导致小目标检测漏检率高。
  • 时序一致性差:在处理连续帧点云序列时,分割结果常出现闪烁或跳变,影响追踪算法的稳定性。
  • 泛化能力受限:针对雨天、夜间等特定场景训练的模型,一旦遇到未见过的腐蚀数据或不同分辨率雷达,性能急剧下降。

使用 Segment-Any-Point-Cloud 后

  • 实现零标注预训练:直接利用现成的视觉基础模型(VFMs)知识蒸馏到点云领域,无需任何 2D 或 3D 人工标注即可完成预训练。
  • 强化时空一致性:通过强制约束相机到激光雷达的空间关系及点云序列的时间关系,显著提升了跨模态表征学习的鲁棒性。
  • 无缝迁移下游任务:能够以“开箱即用”的方式将知识迁移至各类下游任务,无论是合成数据还是真实低分辨率数据均表现稳定。
  • 抗干扰能力增强:在面对噪声干扰或不同规模的点云输入时,依然能保持高精度的分割效果,大幅减少了场景适配工作。

Segment-Any-Point-Cloud 通过蒸馏视觉大模型知识,彻底解决了 3D 点云分割对昂贵标注的依赖,并实现了跨模态、跨场景的通用感知能力。

运行环境要求

操作系统
  • 未说明
GPU

未说明 (项目涉及视觉基础模型蒸馏和点云处理,通常隐含需要 NVIDIA GPU,但 README 正文未明确具体型号或显存要求)

内存

未说明

依赖
notesREADME 中未直接包含具体的运行环境配置(如 OS、GPU、Python 版本等),所有安装细节均指向外部文档 `docs/document/INSTALL.md`。该项目依赖视觉基础模型(VFMs,如 SAM、SEEM)进行知识蒸馏,并支持多种点云数据集(nuScenes, Waymo 等)。建议查阅 `INSTALL.md` 获取准确的依赖列表和环境配置。
python未说明
未说明 (README 指出详情见 INSTALL.md,此处未列出具体库及版本)
Segment-Any-Point-Cloud hero image

快速开始

English | 简体中文

通过蒸馏视觉基础模型实现任意点云序列的分割

刘友权1,*    孔令东1,2,*    岑俊3    陈润楠4    张文伟1,5
潘亮5    陈凯1    刘子威5
1上海人工智能实验室    2新加坡国立大学    3香港科技大学    4香港大学    5南洋理工大学S-Lab

Seal :seal:

Seal是一个多功能的自监督学习框架,能够利用现成的视觉基础模型(VFM)知识,并在表征学习阶段鼓励这些知识的空间和时间一致性,从而对任意汽车点云进行分割。

:sparkles: 亮点

  • :rocket: 可扩展性: Seal直接将VFM的知识蒸馏到点云中,无需在预训练阶段进行2D或3D标注。
  • :balance_scale: 一致性: Seal在相机到LiDAR以及点到分割两个阶段都强制执行空间和时间关系,从而促进跨模态表征学习。
  • :rainbow: 通用性: Seal以即插即用的方式实现知识迁移,适用于涉及多种点云的下游任务,包括真实/合成、低/高分辨率、大/小规模以及干净/损坏的数据集。

:oncoming_automobile: 2D-3D对应关系

:movie_camera: 视频演示

演示1 演示2 演示3
链接 :arrow_heading_up: 链接 :arrow_heading_up: 链接 :arrow_heading_up:

更新

  • [2023.12] - 我们将在ICRA 2024上举办RoboDrive挑战赛。:blue_car:
  • [2023.09] - Seal被选为NeurIPS 2023的:sparkles:亮点:sparkles:。
  • [2023.09] - Seal已被NeurIPS 2023接受!:tada:
  • [2023.07] - 我们发布了用于生成语义超像素和超点的代码,基于SLICSAMSEEM。更多VFM即将推出!
  • [2023.06] - 我们的论文已在arXiv上发布,点击这里查看。代码稍后会公开!

大纲

安装

请参阅INSTALL.md以获取安装详情。

数据准备

nuScenes SemanticKITTI Waymo Open ScribbleKITTI
RELLIS-3D SemanticPOSS SemanticSTF DAPS-3D
SynLiDAR Synth4D nuScenes-C

请参阅DATA_PREPARE.md以获取准备这些数据集的详细信息。

超像素生成

原始点云 语义超像素 真值

有关如何使用视觉基础模型生成语义超像素和超点的详细信息,请参阅 SUPERPOINT.md

入门指南

有关本代码库的更多用法,请参阅 GET_STARTED.md

主要结果

:unicorn: 框架概述

Seal :seal: 框架的概览。我们针对每个时间戳 t 的 {激光雷达, 摄像头} 对以及时间戳 t + n 的另一帧激光雷达,利用视觉基础模型生成语义超像素和超点。随后形成两个相关目标:配对的激光雷达和摄像头特征之间的空间对比学习,以及不同时间戳片段之间的时间一致性正则化

:car: 余弦相似度

在我们的 Seal :seal: 框架中,查询点(红点)与使用 SLIC 和不同视觉基础模型学习到的特征之间的余弦相似度。从上到下示例中的查询语义类别分别为:“汽车”、“人造物”和“卡车”。颜色由紫色渐变至黄色,分别表示低和高的相似度分数。

:blue_car: 基准测试

方法 nuScenes KITTI Waymo Synth4D
LP 1% 5% 10% 25% Full 1% 1% 1%
Random 8.10 30.30 47.84 56.15 65.48 74.66 39.50 39.41 20.22
PointContrast 21.90 32.50 - - - - 41.10 - -
DepthContrast 22.10 31.70 - - - - 41.50 - -
PPKT 35.90 37.80 53.74 60.25 67.14 74.52 44.00 47.60 61.10
SLidR 38.80 38.30 52.49 59.84 66.91 74.79 44.60 47.12 63.10
ST-SLidR 40.48 40.75 54.69 60.75 67.70 75.14 44.72 44.93 -
Seal :seal: 44.95 45.84 55.64 62.97 68.41 75.60 46.63 49.34 64.50

:bus: 线性探测

我们 Seal :seal: 框架在 nuScenes 数据集上预训练(未使用真值标签),并使用冻结的主干网络和线性分类头进行线性探测后的定性结果。为突出差异,正确/错误的预测分别以灰色/红色标注。

:articulated_lorry: 下游泛化能力

方法 ScribbleKITTI RELLIS-3D SemanticPOSS SemanticSTF SynLiDAR DAPS-3D
1% 10% 1% 10% Half Full Half Full 1% 10% Half Full
Random 23.81 47.60 38.46 53.60 46.26 54.12 48.03 48.15 19.89 44.74 74.32 79.38
PPKT 36.50 51.67 49.71 54.33 50.18 56.00 50.92 54.69 37.57 46.48 78.90 84.00
SLidR 39.60 50.45 49.75 54.57 51.56 55.36 52.01 54.35 42.05 47.84 81.00 85.40
Seal :seal: 40.64 52.77 51.09 55.03 53.26 56.89 53.46 55.36 43.58 49.26 81.88 85.90

:truck: 鲁棒性探测

初始化 主干网络 mCE mRR 湿 运动 光束 交叉 回波 传感器
随机 PolarNet 115.09 76.34 58.23 69.91 64.82 44.60 61.91 40.77 53.64 42.01
随机 CENet 112.79 76.04 67.01 69.87 61.64 58.31 49.97 60.89 53.31 24.78
随机 WaffleIron 106.73 72.78 56.07 73.93 49.59 59.46 65.19 33.12 61.51 44.01
随机 Cylinder3D 105.56 78.08 61.42 71.02 58.40 56.02 64.15 45.36 59.97 43.03
随机 SPVCNN 106.65 74.70 59.01 72.46 41.08 58.36 65.36 36.83 62.29 49.21
随机 MinkUNet 112.20 72.57 62.96 70.65 55.48 51.71 62.01 31.56 59.64 39.41
PPKT MinkUNet 105.64 76.06 64.01 72.18 59.08 57.17 63.88 36.34 60.59 39.57
SLidR MinkUNet 106.08 75.99 65.41 72.31 56.01 56.07 62.87 41.94 61.16 38.90
Seal :seal: MinkUNet 92.63 83.08 72.66 74.31 66.22 66.14 65.96 57.44 59.87 39.85

:tractor: 定性评估

Seal :seal: 与先前在 nuScenes 上预训练(未使用真实标签)并用 1% 标注数据微调的方法的定性结果。为了突出差异,正确/错误的预测分别以灰色/红色标出。

待办事项清单

  • 初始发布。 :rocket:
  • 添加许可证。更多详情请参见 此处
  • 添加视频演示 :movie_camera:
  • 添加安装说明。
  • 添加数据准备说明。
  • 支持语义超像素生成。
  • 支持语义超点生成。
  • 添加评估说明。
  • 添加训练说明。

引用

如果您觉得这项工作有帮助,请考虑引用我们的论文:

@inproceedings{liu2023segment,
  title = {通过蒸馏视觉基础模型分割任意点云序列},
  author = {刘友权、孔令东、岑俊、陈润楠、张文伟、潘亮、陈凯、刘子威},
  booktitle = {神经信息处理系统进展}, 
  year = {2023},
}
@misc{liu2023segment_any_point_cloud,
  title = {任意点云分割代码库},
  author = {刘友权、孔令东、岑俊、陈润楠、张文伟、潘亮、陈凯、刘子威},
  howpublished = {\url{https://github.com/youquanl/Segment-Any-Point-Cloud}},
  year = {2023},
}

许可证

知识共享许可
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

致谢

本项目基于 MMDetection3D 代码库开发。


MMDetection3D 是一个基于 PyTorch 的开源目标检测工具箱,旨在打造下一代通用 3D 目标检测平台。它是 MMLab 开发的 OpenMMLab 项目的一部分。

本代码库的部分内容改编自 SLidRSegment AnythingX-DecoderOpenSeeDSegment Everything Everywhere All at OnceLaserMixRobo3D

:heart: 我们感谢上述开源项目作出的杰出贡献!

常见问题

相似工具推荐

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架

PaddleOCR

PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来,转换成计算机可读取的结构化数据,让机器真正“看懂”图文内容。 面对海量纸质或电子文档,PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域,它扮演着连接图像与大型语言模型(LLM)的桥梁角色,能将视觉信息直接转化为文本输入,助力智能问答、文档分析等应用场景落地。 PaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显:不仅支持全球 100 多种语言的识别,还能在 Windows、Linux、macOS 等多个系统上运行,并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目,PaddleOCR 既能满足快速集成的需求,也能支撑前沿的视觉语言研究,是处理文字识别任务的理想选择。

74.9k|★★★☆☆|今天
语言模型图像开发框架

awesome-machine-learning

awesome-machine-learning 是一份精心整理的机器学习资源清单,汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点,这份清单按编程语言(如 Python、C++、Go 等)和应用场景(如计算机视觉、自然语言处理、深度学习等)进行了系统化分类,帮助使用者快速定位高质量项目。 它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库,还是资深工程师对比不同语言的技术选型,都能从中获得极具价值的参考。此外,清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源,构建了从学习到实践的全链路支持体系。 其独特亮点在于严格的维护标准:明确标记已停止维护或长期未更新的项目,确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”,awesome-machine-learning 以开源协作的方式持续更新,旨在降低技术探索门槛,让每一位从业者都能高效地站在巨人的肩膀上创新。

72.1k|★☆☆☆☆|2天前
开发框架其他

scikit-learn

scikit-learn 是一个基于 Python 构建的开源机器学习库,依托于 SciPy、NumPy 等科学计算生态,旨在让机器学习变得简单高效。它提供了一套统一且简洁的接口,涵盖了从数据预处理、特征工程到模型训练、评估及选择的全流程工具,内置了包括线性回归、支持向量机、随机森林、聚类等在内的丰富经典算法。 对于希望快速验证想法或构建原型的数据科学家、研究人员以及 Python 开发者而言,scikit-learn 是不可或缺的基础设施。它有效解决了机器学习入门门槛高、算法实现复杂以及不同模型间调用方式不统一的痛点,让用户无需重复造轮子,只需几行代码即可调用成熟的算法解决分类、回归、聚类等实际问题。 其核心技术亮点在于高度一致的 API 设计风格,所有估算器(Estimator)均遵循相同的调用逻辑,极大地降低了学习成本并提升了代码的可读性与可维护性。此外,它还提供了强大的模型选择与评估工具,如交叉验证和网格搜索,帮助用户系统地优化模型性能。作为一个由全球志愿者共同维护的成熟项目,scikit-learn 以其稳定性、详尽的文档和活跃的社区支持,成为连接理论学习与工业级应用的最

65.6k|★☆☆☆☆|今天
开发框架其他数据工具

keras

Keras 是一个专为人类设计的深度学习框架,旨在让构建和训练神经网络变得简单直观。它解决了开发者在不同深度学习后端之间切换困难、模型开发效率低以及难以兼顾调试便捷性与运行性能的痛点。 无论是刚入门的学生、专注算法的研究人员,还是需要快速落地产品的工程师,都能通过 Keras 轻松上手。它支持计算机视觉、自然语言处理、音频分析及时间序列预测等多种任务。 Keras 3 的核心亮点在于其独特的“多后端”架构。用户只需编写一套代码,即可灵活选择 TensorFlow、JAX、PyTorch 或 OpenVINO 作为底层运行引擎。这一特性不仅保留了 Keras 一贯的高层易用性,还允许开发者根据需求自由选择:利用 JAX 或 PyTorch 的即时执行模式进行高效调试,或切换至速度最快的后端以获得最高 350% 的性能提升。此外,Keras 具备强大的扩展能力,能无缝从本地笔记本电脑扩展至大规模 GPU 或 TPU 集群,是连接原型开发与生产部署的理想桥梁。

63.9k|★★☆☆☆|昨天
开发框架数据工具其他