Project Icon

PointTransformerV3

先进的点云处理框架

PointTransformerV3是一个创新的点云处理框架,在多个基准测试中展现出卓越性能。该项目优化了模型结构,提升了运行速度和处理能力。它适用于室内外场景的语义分割,通过多数据集预训练进一步增强了效果。研究人员可利用开源代码和预训练模型轻松复现结果或应用于自身项目。

点云变换器V3

PWC
PWC
PWC
PWC
PWC

这个仓库是论文**《点云变换器V3:更简单、更快速、更强大》**的官方项目仓库,主要用于发布日程安排、更新说明、分享实验记录(包含模型权重)和处理问题。代码将在_Pointcept v1.5_中更新。
[ 骨干网络 ] [PTv3] - [ arXiv ] [ 引用 ] [ 代码 ]

teaser

亮点

  • 2024年4月5日:PTv3被CVPR'24选为90个口头报告之一(3.3%的接受论文,0.78%的投稿)!
  • 2024年2月28日:PTv3被CVPR'24接受 🎉🎉🎉。
  • 2023年12月31日:我们发布了PTv3的模型代码,现已提供从头训练的ScanNet和ScanNet200实验记录。更多内容将很快可用。
  • 2023年12月19日:我们发布了PTv3的项目仓库,如果您对我们的工作有任何问题,请随时提出问题。通过填写表单订阅我们的更新,可以通过编辑表单取消订阅。

概览

日程安排

为了尽快提供我们优化过的代码和复现的实验,这次我们将在验证后立即发布已完成的内容,而不是等所有工作完成后一起发布。我们列出了以下任务列表:

  • 发布PTv3的模型代码;
  • 发布从头训练的室内语义分割配置和记录;
    • ScanNet
    • ScanNet200
    • S3DIS
    • S3DIS 6折(带交叉验证脚本)
  • 发布预训练的室内语义分割配置和记录;
    • ScanNet(ScanNet + S3DIS + Structured3D)
    • ScanNet200(基于上述模型微调)
    • S3DIS(ScanNet + S3DIS + Structured3D)
    • S3DIS 6折(基于ScanNet + Structured3D微调)
  • 发布从头训练的室外语义分割配置和记录;
    • NuScenes
    • SemanticKITTI
    • Waymo
  • 发布预训练的室外语义分割配置和记录;
    • NuScenes(NuScenes + SemanticKITTI + Waymo)
    • SemanticKITTI(NuScenes + SemanticKITTI + Waymo)
    • Waymo(NuScenes + SemanticKITTI + Waymo)
  • 发布室内实例分割的配置和记录;
    • ScanNet(从头训练和基于PPT预训练的PTv3微调)
    • ScanNet200(从头训练和基于PPT预训练的PTv3微调)
  • 发布ScanNet数据高效基准的配置和记录;
  • 发布Waymo物体检测基准的配置和记录;
  • 发布ImageNet分类的配置和记录;
    • ImageClassifier(使Pointcept中的所有3D骨干网络支持图像分类)
    • 配置和记录(PTv3 + SparseUNet)

引用

如果您发现_PTv3_对您的研究有用,请引用我们的工作以表示感谢。(੭ˊ꒳​ˋ)੭✧

@inproceedings{wu2024ptv3,
    title={Point Transformer V3: Simpler, Faster, Stronger},
    author={Wu, Xiaoyang and Jiang, Li and Wang, Peng-Shuai and Liu, Zhijian and Liu, Xihui and Qiao, Yu and Ouyang, Wanli and He, Tong and Zhao, Hengshuang},
    booktitle={CVPR},
    year={2024}
}

@inproceedings{wu2024ppt,
    title={Towards Large-scale 3D Representation Learning with Multi-dataset Point Prompt Training},
    author={Wu, Xiaoyang and Tian, Zhuotao and Wen, Xin and Peng, Bohao and Liu, Xihui and Yu, Kaicheng and Zhao, Hengshuang},
    booktitle={CVPR},
    year={2024}
}
@inproceedings{wu2022ptv2,
    title={点变换器V2:分组向量注意力和基于分区的池化},
    author={Wu, Xiaoyang and Lao, Yixing and Jiang, Li and Liu, Xihui and Zhao, Hengshuang},
    booktitle={NeurIPS},
    year={2022}
}

@misc{pointcept2023,
    title={Pointcept:一个用于点云感知研究的代码库},
    author={Pointcept贡献者},
    howpublished={\url{https://github.com/Pointcept/Pointcept}},
    year={2023}
}

安装

要求

PTv3依赖于FlashAttention,而FlashAttention依赖于以下要求,请确保您的本地Pointcept环境满足这些要求:

(推荐)

  • Ubuntu: 20.04及以上
  • CUDA: 11.6及以上
  • PyTorch: 1.12.0及以上

如果您无法将本地环境升级以满足上述推荐要求,以下是运行带Pointcept的PTv3的最低要求,您需要禁用Flash Attention以启用PTv3:

(最低)

  • Ubuntu: 18.04及以上
  • CUDA: 11.3及以上
  • PyTorch: 1.10.0及以上

环境

  • 基础环境
conda create -n pointcept python=3.8 -y
conda activate pointcept
conda install ninja -y
# 在此选择您想要的版本:https://pytorch.org/get-started/previous-versions/
# 我们在开发PTv3时使用CUDA 11.8和PyTorch 2.1.0
conda install pytorch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 pytorch-cuda=11.8 -c pytorch -c nvidia
conda install h5py pyyaml -c anaconda -y
conda install sharedarray tensorboard tensorboardx yapf addict einops scipy plyfile termcolor timm -c conda-forge -y
conda install pytorch-cluster pytorch-scatter pytorch-sparse -c pyg -y
pip install torch-geometric

cd libs/pointops
python setup.py install
cd ../..

# spconv (SparseUNet)
# 参考 https://github.com/traveller59/spconv
pip install spconv-cu118  # 选择与您本地cuda版本匹配的版本

# Open3D (可视化,可选)
pip install open3d
  • Flash Attention

按照Flash Attention仓库中的README安装PTv3的Flash Attention。这个安装是可选的,但我们建议为PTv3启用Flash Attention。

数据准备

请进一步参考Pointcept readme的数据准备部分。

快速开始

两种运行场景

我们为PTv3提供了两种运行场景,Pointcept驱动和自定义框架驱动。对于前者,您只需将Pointcept的代码克隆到本地,然后按照Pointcept中的快速开始运行PTv3:

git clone https://github.com/Pointcept/Pointcept.git
sh scripts/train.sh -p ${INTERPRETER_PATH} -g ${NUM_GPU} -d ${DATASET_NAME} -c ${CONFIG_NAME} -n ${EXP_NAME}

对于后一种场景,我们提供了一个与我们的Pointcept框架分离的PTv3独立实例。要将此代码整合到您的项目中,请克隆项目仓库并将以下文件/文件夹复制到您的项目中:

git clone https://github.com/Pointcept/PointTransformerV3.git
cp model.py ${PATH_TO_YOUR_PROJECT}
cp -r serialization ${PATH_TO_YOUR_PROJECT}

调整我们的模型文件中定义的输入字典,模型将返回给定批次点云的编码特征。

Flash Attention

完整的PTv3依赖于Flash Attention,而Flash Attention依赖于CUDA 11.6及以上,请确保您的本地Pointcept环境满足这些要求。

如果您无法将本地环境升级以满足要求(CUDA >= 11.6),那么您可以通过将模型参数enable_flash设置为false并将enc_patch_sizedec_patch_size降低到一定水平(例如128)来禁用FlashAttention。

FlashAttention强制禁用RPE并强制将精度降低到fp16。如果您需要这些功能,请禁用enable_flash并调整enable_rpeupcast_attentionupcast_softmax

模型库

1. 室内语义分割

模型基准测试额外数据GPU数量验证mIoU配置Tensorboard实验记录
PTv3ScanNet477.6%链接链接链接
PTv3 + PPTScanNet878.5%链接链接链接
PTv3ScanNet200435.3%链接链接链接
PTv3 + PPTScanNet200✓ (f.t.)4
PTv3S3DIS (Area5)473.6%链接链接链接
PTv3 + PPTS3DIS (Area5)875.4%链接链接链接
_*由于PTv3的模型结构进行了调整,已发布的模型权重暂时无效。_

以下是示例运行脚本:

# 从头训练ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# PPT联合训练(ScanNet + Structured3D)并在ScanNet上评估
sh scripts/train.sh -g 8 -d scannet -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme

# 从头训练ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# 从PPT联合训练(ScanNet + Structured3D)模型微调ScanNet200
# 待完成

# 从头训练S3DIS,S3DIS依赖RPE,同时也是禁用flash attention的示例
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-0-rpe -n semseg-pt-v3m1-0-rpe
# PPT联合训练(ScanNet + S3DIS + Structured3D)并在ScanNet上评估
sh scripts/train.sh -g 8 -d s3dis -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme

# 更多PTv3的配置和实验记录将很快推出。

2.室外语义分割

模型基准额外数据GPU数量验证集mIoU配置Tensorboard实验记录
PTv3nuScenes480.3链接链接链接
PTv3 + PPTnuScenes8
PTv3SemanticKITTI4
PTv3 + PPTSemanticKITTI8
PTv3Waymo471.2链接链接链接 (仅日志)
PTv3 + PPTWaymo8

_*由于PTv3的模型结构进行了调整,已发布的模型权重暂时无效。_ _*由于Waymo开放数据集的规定,使用该数据集训练的模型权重无法公开发布。_

以下是示例运行脚本:

# 从头训练ScanNet
sh scripts/train.sh -g 4 -d scannet -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# PPT联合训练(ScanNet + Structured3D)并在ScanNet上评估
sh scripts/train.sh -g 8 -d scannet -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme

# 从头训练ScanNet200
sh scripts/train.sh -g 4 -d scannet200 -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# 从PPT联合训练(ScanNet + Structured3D)模型微调ScanNet200
# 待完成

# 从头训练S3DIS,S3DIS依赖RPE,同时也是禁用flash attention的示例
sh scripts/train.sh -g 4 -d s3dis -c semseg-pt-v3m1-0-rpe -n semseg-pt-v3m1-0-rpe
# PPT联合训练(ScanNet + S3DIS + Structured3D)并在ScanNet上评估
sh scripts/train.sh -g 8 -d s3dis -c semseg-pt-v3m1-1-ppt-extreme -n semseg-pt-v3m1-1-ppt-extreme
# S3DIS 6折交叉验证
# 1. 默认配置在Area_5上评估,修改"data.train.split"、"data.val.split"和"data.test.split",使配置分别在Area_1 ~ Area_6上评估。
# 2. 在每个区域分割上训练和评估模型,并将位于"exp/s3dis/EXP_NAME/result/Area_x.pth"的结果文件收集到一个文件夹中,记为RECORD_FOLDER。
# 3. 运行以下脚本获取S3DIS 6折交叉验证性能:
export PYTHONPATH=./
python tools/test_s3dis_6fold.py --record_root ${RECORD_FOLDER}

# 从头训练nuScenes
sh scripts/train.sh -g 4 -d nuscenes -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base
# 从头训练Waymo
sh scripts/train.sh -g 4 -d waymo -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base

# 更多PTv3的配置和实验记录将很快推出。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号