[CVPR2024] GPT4Point : 一个用于点语言理解与生成的统一框架
🔥 最新消息
🔥 2024/04/27:我们修改了点编码器部分,现在评估功能更加完善,但训练部分仍需修改。
🔥 2024/04/13:我们发布了GPT4Point v1.0,包括训练和3D标注评估代码。
🔥 2024/04/05:我们的论文GPT4Point被选为CVPR'24 亮点 2.84% (324/11532)!
🔥 2024/02/27:我们的论文GPT4Point被CVPR'24接受!
🔥 2024/01/19:我们发布了Objaverse-XL (点云格式) 下载和提取方式。
🔥 2023/12/05:论文 GPT4Point (arxiv) 已发布,我们统一了点语言理解与生成。
🔥 2023/08/13:发布了PointBLIP的两阶段预训练代码。
🔥 2023/08/13:部分使用的数据集和结果文件已上传。
🏠 概述
本项目介绍了GPT4Point ,一个将3D点云与语言对齐的3D多模态模型。更多详情请见项目页面。
-
点语言理解与生成的统一框架。 我们提出了点语言理解与生成的统一框架GPT4Point,包括用于点文本任务的3D MLLM和受控的3D生成。
-
自动点云数据集注释引擎Pyramid-XL。 我们基于Objaverse-XL引入了自动点云数据集注释引擎Pyramid-XL,目前包含100万对不同粒度的配对数据,且可经济高效地扩展。
-
物体级点云基准。 建立了一个新的物体级点云基准,包含综合评价指标,用于3D点云语言任务的评估。该基准全面评估了模型的理解能力,并促进了生成的3D物体的评估。
🧭 版本
- v1.0 (2024/04/13)。 我们发布了训练和评估(3D标注)代码。
数据集和文本注释:Cap3D。
LLM模型:OPT 2.7b
🔧 安装
- (可选)创建conda环境
conda create -n gpt4point python=3.8
conda activate gpt4point
- 从 PyPI 安装
pip install salesforce-lavis
- 或者,你可以从源代码构建,适用于开发
git clone https://github.com/salesforce/LAVIS.git
cd LAVIS
pip install -e .
📦 数据准备
-
注释: 所有注释将通过hugging_face自动下载。
-
点云: 你可以通过Google Drive链接下载Cap3D点云数据集。下载后应解压这10个压缩文件,并将它们放在一起。 整体文件结构如下:
GPT4Point
├── data
│ ├── cap3d
│ │ ├── points
│ │ │ ├── Cap3D_pcs_8192_xyz_w_color
│ │ │ │ ├── <point cloud id>.pkl
│ │ │ │ ├── ...
│ │ │ │ ├── <point cloud id>.pkl
│ │ ├── annotations
│ │ │ ├── cap3d_caption_train.json
│ │ │ ├── cap3d_caption_val.json
│ │ │ ├── cap3d_real_and_chatgpt_caption_test.json
│ │ │ ├── cap3d_real_and_chatgpt_caption_test_gt.json (用于评估)
🚆 训练
- 第一阶段训练:
python -m torch.distributed.run --master_port=32339 --nproc_per_node=4 train.py --cfg-path lavis/projects/gpt4point/train/pretrain_stage1_cap3d.yaml
- 第二阶段训练:
python -m torch.distributed.run --master_port=32339 --nproc_per_node=4 train.py --cfg-path lavis/projects/gpt4point/train/pretrain_stage2_cap3d_opt2.7b.yaml
🏁 评估
python -m torch.distributed.run --master_port=32239 --nproc_per_node=1 evaluate.py --cfg-path lavis/projects/gpt4point/eval/captioning3d_cap3d_opt2.7b_eval.yaml
📦 点云数据集和数据注释引擎(可选)
Objaverse-XL 点云数据集下载方式
请注意,你应该在Objaverse-xl_Download目录中执行操作。
cd ./Objaverse-xl_Download
然后请参见文件夹 Objaverse-xl_Download 获取详情。
Objaverse-XL 点云数据生成
请参见 Extract_Pointcloud 获取详情。
📝 待办事项
数据集和数据引擎
- [✔] 发布arxiv论文和项目页面
- [✔] 发布数据集(Objaverse-Xl)下载方式
- [✔] 发布数据集(Objaverse-Xl)渲染(点云)方式
- [✔] 发布预训练代码和3D标注验证代码
- 发布数据集和数据注释引擎(Pyramid-XL)
- 发布更多评估代码
- 发布更多训练代码
- 发布更多模型
🔗 引用
如果你觉得我们的工作有帮助,请引用:
@inproceedings{GPT4Point,
title={GPT4Point: A Unified Framework for Point-Language Understanding and Generation},
author={张扬·齐, 叶·方, 泽一·孙, 小洋·吴, 童·吴, 嘉琪·王, 大华·林, 恒双·赵},
booktitle={CVPR},
year={2024},
}
📄 许可
本作品采用知识共享署名-非商业性-相同方式共享4.0国际许可协议进行许可。
📚 相关工作
让我们共同努力,使3D的大型语言模型(Large Language Models)更出色!
- Point-Bind & Point-LLM:它将点云与Image-Bind对齐,以在没有3D指令数据训练的情况下推理多模态输入。
- 3D-LLM:使用2D基础模型对3D点云的多视角图像进行编码。
- PointLLM:使用3D点云与LLaVA结合。