Project Icon

DyCo3D

动态卷积实现鲁棒3D点云实例分割

DyCo3D提出了一种新型3D点云实例分割方法,采用动态卷积技术处理实例尺度变化问题。该方法结合大范围上下文信息和轻量级Transformer,在ScanNetV2和S3DIS数据集上取得领先结果,推理速度提升25%以上。DyCo3D简化了传统bottom-up方法的复杂流程,对超参数不敏感,为3D点云实例分割领域提供了高效且鲁棒的新方案。

DyCo3d

DyCo3d: 通过动态卷积实现3D点云的鲁棒实例分割(CVPR 2021)

概览

论文《DyCo3D: 通过动态卷积实现3D点云的鲁棒实例分割》(CVPR 2021)的代码。

作者: Tong He, Chunhua Shen, Anton van den Hengel

[arxiv]

简介

以往点云实例分割的顶级方法采用自下而上的策略,通常包括低效的操作或复杂的流程,如对过度分割的组件进行分组、引入额外的细化步骤或设计复杂的损失函数。实例尺度的不可避免变化可能导致自下而上的方法对超参数值特别敏感。为此,我们提出了一种动态的、无提议的、数据驱动的方法,该方法根据实例的性质生成适当的卷积核。为了使卷积核具有区分性,我们通过收集共享相同语义类别并对几何中心投票接近的同质点来探索大范围上下文。然后通过几个简单的卷积层解码实例。由于稀疏卷积引入的感受野有限,我们还设计了一个小型轻量级的transformer来捕捉点样本之间的长程依赖和高层交互。所提出的方法在ScanNetV2和S3DIS数据集上都取得了有希望的结果,并且这种性能对所选择的特定超参数值具有鲁棒性。与当前最先进的方法相比,它还将推理速度提高了25%以上。

安装

要求

  • Python 3.7.0
  • Pytorch 1.1.0
  • CUDA 10.1

虚拟环境

conda create -n dyco3d python==3.7
conda activate dyco3d

安装 DyCo3d(按照PointGroup的安装步骤进行)

(1) 克隆DyCo3d仓库。

git clone https://github.com/aim-uofa/DyCo3D.git
cd DyCo3D

(2) 安装依赖库。

pip install -r requirements.txt
conda install -c bioconda google-sparsehash 

(3) 对于SparseConv,我们使用PointGroup的仓库

  • 要编译spconv,首先安装依赖库。
conda install libboost
conda install -c daleydeng gcc-5 # 需要gcc-5.4用于sparseconv

lib/spconv/CMakeLists.txt中添加包含boost$INCLUDE_PATH$。(如果能找到则不需要。)

include_directories($INCLUDE_PATH$)
  • 编译spconv库。
cd lib/spconv
python setup.py bdist_wheel
  • 运行cd distpip install生成的.whl文件。

(4) 编译pointgroup_ops库。

cd lib/pointgroup_ops
python setup.py develop

如果找不到任何头文件,请运行以下命令。

python setup.py build_ext --include-dirs=$INCLUDE_PATH$
python setup.py develop

$INCLUDE_PATH$是包含找不到的头文件的文件夹路径。

数据准备

(1) 下载ScanNet v2数据集。

(2) 将数据放入相应的文件夹。

  • 根据ScanNet v2训练/验证划分,将文件[scene_id]_vh_clean_2.ply[scene_id]_vh_clean_2.labels.ply[scene_id]_vh_clean_2.0.010000.segs.json[scene_id].aggregation.json复制到dataset/scannetv2/traindataset/scannetv2/val文件夹中。

  • 根据ScanNet v2测试划分,将文件[scene_id]_vh_clean_2.ply复制到dataset/scannetv2/test文件夹中。

  • 将文件scannetv2-labels.combined.tsv放在dataset/scannetv2文件夹中。

数据集文件组织如下。

DyCo3D
├── dataset
│   ├── scannetv2
│   │   ├── train
│   │   │   ├── [scene_id]_vh_clean_2.ply & [scene_id]_vh_clean_2.labels.ply & [scene_id]_vh_clean_2.0.010000.segs.json & [scene_id].aggregation.json
│   │   ├── val
│   │   │   ├── [scene_id]_vh_clean_2.ply & [scene_id]_vh_clean_2.labels.ply & [scene_id]_vh_clean_2.0.010000.segs.json & [scene_id].aggregation.json
│   │   ├── test
│   │   │   ├── [scene_id]_vh_clean_2.ply 
│   │   ├── scannetv2-labels.combined.tsv

(3) 为实例分割生成输入文件[scene_id]_inst_nostuff.pth

cd dataset/scannetv2
python prepare_data_inst.py --data_split train
python prepare_data_inst.py --data_split val
python prepare_data_inst.py --data_split test

您也可以从这里(约13G)下载数据。 数据集文件组织如下

DyCo3D
├── dataset
│   ├── scannetv2
│   │   ├── train
│   │   ├── val
│   │   ├── test
│   │   ├── val_gt

训练

CUDA_VISIBLE_DEVICES=0,1,2 python -m torch.distributed.launch --nproc_per_node=3 --master_port=$((RANDOM + 10000)) train.py --config config/dyco3d_multigpu_scannet.yaml  --output_path OUTPUT_DIR  --use_backbone_transformer

推理和评估

要使用预训练模型进行测试,请运行

CUDA_VISIBLE_DEVICES=0 python test.py --config config/dyco3d_multigpu_scannet.yaml --output_path exp/model --resume MODEL --use_backbone_transformer

预训练模型

我们提供了在ScanNet v2数据集上训练的预训练模型。可以从这里下载。它在ScanNet v2验证集上的性能为35.5/57.6/72.9(mAP/mAP50/mAP25)。(掩码头大小为16)

ScanNet基准测试结果

提交时在ScanNet测试集上的定量结果。 scannet_result

引用

如果您在研究中发现这项工作有用,请引用:

@inproceedings{He2021dyco3d,
  title     =   {{DyCo3d}: Robust Instance Segmentation of 3D Point Clouds through Dynamic Convolution},
  author    =   {Tong He and Chunhua Shen and Anton van den Hengel},
  booktitle =   {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
  year      =   {2021}
}

致谢

本仓库基于PointGroupspconvcondinst构建。

联系

如果您对本仓库有任何问题或建议,请随时联系我(tonghe90@gmail.com)。

项目侧边栏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号