README.md
September 7, 2023 ยท View on GitHub
3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment
Ziyu Zhu, Xiaojian Ma, Yixin Chen, Zhidong Deng๐ง, Siyuan Huang๐ง, Qing Li๐ง
This repository is the official implementation of the ICCV 2023 paper "3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment".
Paper | arXiv | Project | HuggingFace Demo | Checkpoints
Abstract
3D vision-language grounding (3D-VL) is an emerging field that aims to connect the 3D physical world with natural language, which is crucial for achieving embodied intelligence. Current 3D-VL models rely heavily on sophisticated modules, auxiliary losses, and optimization tricks, which calls for a simple and unified model. In this paper, we propose 3D-VisTA, a pre-trained Transformer for 3D Vision and Text Alignment that can be easily adapted to various downstream tasks. 3D-VisTA simply utilizes self-attention layers for both single-modal modeling and multi-modal fusion without any sophisticated task-specific design. To further enhance its performance on 3D-VL tasks, we construct ScanScribe, the first large-scale 3D scene-text pairs dataset for 3D-VL pre-training. ScanScribe contains 2,995 RGB-D scans for 1,185 unique indoor scenes originating from ScanNet and 3R-Scan datasets, along with paired 278K scene descriptions generated from existing 3D-VL tasks, templates, and GPT-3. 3D-VisTA is pre-trained on ScanScribe via masked language/object modeling and scene-text matching. It achieves state-of-the-art results on various 3D-VL tasks, ranging from visual grounding and dense captioning to question answering and situated reasoning. Moreover, 3D-VisTA demonstrates superior data efficiency, obtaining strong performance even with limited annotations during downstream task fine-tuning.
Install
- Install conda package
conda env create --name 3dvista --file=environments.yml
- install pointnet2
cd vision/pointnet2
python3 setup.py install
Prepare dataset
- Follow Vil3dref and download scannet data under
data/scanfamily/scan_data, this folder should look like
./data/scanfamily/scan_data/
โโโ instance_id_to_gmm_color
โโโ instance_id_to_loc
โโโ instance_id_to_name
โโโ pcd_with_global_alignment
- Download scanrefer+referit3d, scanqa, and sqa3d, and put them under
/data/scanfamily/annotations
data/scanfamily/annotations/
โโโ meta_data
โ โโโ cat2glove42b.json
โ โโโ scannetv2-labels.combined.tsv
โ โโโ scannetv2_raw_categories.json
โ โโโ scanrefer_corpus.pth
โ โโโ scanrefer_vocab.pth
โโโ qa
โ โโโ ScanQA_v1.0_test_w_obj.json
โ โโโ ScanQA_v1.0_test_wo_obj.json
โ โโโ ScanQA_v1.0_train.json
โ โโโ ScanQA_v1.0_val.json
โโโ refer
โ โโโ nr3d.jsonl
โ โโโ scanrefer.jsonl
โ โโโ sr3d+.jsonl
โ โโโ sr3d.jsonl
โโโ splits
โ โโโ scannetv2_test.txt
โ โโโ scannetv2_train.txt
โ โโโ scannetv2_val.txt
โโโ sqa_task
โโโ answer_dict.json
โโโ balanced
โโโ v1_balanced_questions_test_scannetv2.json
โโโ v1_balanced_questions_train_scannetv2.json
โโโ v1_balanced_questions_val_scannetv2.json
โโโ v1_balanced_sqa_annotations_test_scannetv2.json
โโโ v1_balanced_sqa_annotations_train_scannetv2.json
โโโ v1_balanced_sqa_annotations_val_scannetv2.json
- Download all checkpoints and put them under
project/pretrain_weights
| Checkpoint | Link | Note |
|---|---|---|
| Pre-trained | link | 3D-VisTA Pre-trained checkpoint. |
| ScanRefer | link | Fine-tuned ScanRefer from pre-trained checkpoint. |
| ScanQA | link | Fine-tined ScanQA from pre-trained checkpoint. |
| Sr3D | link | Fine-tuned Sr3D from pre-trained checkpoint. |
| Nr3D | link | Fine-tuned Nr3D from pre-trained checkpoint. |
| SQA | link | Fine-tuned SQA from pre-trained checkpoint. |
| Scan2Cap | link | Fine-tuned Scan2Cap from pre-trained checkpoint. |
Run 3D-VisTA
To run 3D-VisTA, use the following command, task includes scanrefer, scanqa, sr3d, nr3d, sqa, and scan2cap.
python3 run.py --config project/vista/{task}_config.yml
Acknowledgement
We would like to thank the authors of Vil3dref and for their open-source release.
News
- [ 2023.08 ] First version!
- [ 2023.09 ] We release codes for all downstream tasks.
Citation:
@article{zhu2023vista,
title={3D-VisTA: Pre-trained Transformer for 3D Vision and Text Alignment},
author={Zhu, Ziyu and Ma, Xiaojian and Chen, Yixin and Deng, Zhidong and Huang, Siyuan and Li, Qing},
journal={ICCV},
year={2023}
}