125-structformer-learning-spatial-structure-for-language-guided-semantic-rearrangement-of-novel-obj

https://github.com/szu-advtech-2023/125-structformer-learning-spatial-structure-for-language-guided-semantic-rearrangement-of-novel-obj

Science Score: 10.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Basic Info
  • Host: GitHub
  • Owner: SZU-AdvTech-2023
  • License: other
  • Language: Python
  • Default Branch: main
  • Size: 30.5 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Citation

https://github.com/SZU-AdvTech-2023/125-StructFormer-Learning-Spatial-Structure-for-Language-Guided-Semantic-Rearrangement-of-Novel-Obj/blob/main/

# StructFormer

Pytorch implementation for ICRA 2022 paper _StructFormer: Learning Spatial Structure for Language-Guided Semantic Rearrangement of Novel Objects_. [[PDF]](https://arxiv.org/abs/2110.10189) [[Video]](https://youtu.be/6NPdpAtMawM) [[Website]](https://sites.google.com/view/structformer)

StructFormer rearranges unknown objects into semantically meaningful spatial structures based on high-level language instructions and partial-view
point cloud observations of the scene. The model use multi-modal transformers to predict both which objects to manipulate and where to place them.

drawing

## License The source code is released under the [NVIDIA Source Code License](LICENSE). The dataset is released under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/). ## Installation ``` pip install -r requirements.txt pip install -e . ``` ### Notes on Dependencies - `h5py==2.10`: this specific version is needed. - `omegaconfg==2.1`: some functions used in this repo are from newer versions ### Environments The code has been tested on ubuntu 18.04 with nvidia driver 460.91, cuda 11.0, python 3.6, and pytorch 1.7. ## Organization Source code in the StructFormer package is mainly organized as: - data loaders `data` - models `models` - training scripts `training` - inference scripts `evaluation` Parameters for data loaders and models are defined in `OmegaConf` yaml files stored in `configs`. Trained models are stored in `/experiments` ## Quick Start with Pretrained Models - Set the package root dir: `export STRUCTFORMER=/path/to/StructFormer` - Download pretrained models from [this link](https://drive.google.com/file/d/1EsptihJv_lPND902P6CYbe00QW-y-rA4/view?usp=sharing) and unzip to the `$STRUCTFORMER/models` folder - Download the test split of the dataset from [this link](https://drive.google.com/file/d/1e76qJbBJ2bKYq0JzDSRWZjswySX1ftq_/view?usp=sharing) and unzip to the `$STRUCTFORMER/data_new_objects_test_split` ### Run StructFormer ```bash cd $STRUCTFORMER/scripts/ python run_full_pipeline.py \ --dataset_base_dir $STRUCTFORMER/data_new_objects_test_split \ --object_selection_model_dir $STRUCTFORMER/models/object_selection_network/best_model \ --pose_generation_model_dir $STRUCTFORMER/models/structformer_circle/best_model \ --dirs_config $STRUCTFORMER/configs/data/circle_dirs.yaml ``` ### Evaluate Pose Generation Networks Where `{model_name}` is one of `structformer_no_encoder`, `structformer_no_structure`, `object_selection_network`, `structformer`, and `{structure}` is one of `circle`, `line`, `tower`, or `dinner`: ```bash cd $STRUCTFORMER/src/structformer/evaluation/ python test_{model_name}.py \ --dataset_base_dir $STRUCTFORMER/data_new_objects_test_split \ --model_dir $STRUCTFORMER/models/{model_name}_{structure}/best_model \ --dirs_config $STRUCTFORMER/configs/data/{structure}_dirs.yaml ``` ### Evaluate Object Selection Network Where `{structure}` is as above: ```bash cd $STRUCTFORMER/src/structformer/evaluation/ python test_object_selection_network.py \ --dataset_base_dir $STRUCTFORMER/data_new_objects_test_split \ --model_dir $STRUCTFORMER/models/object_selection_network/best_model \ --dirs_config $STRUCTFORMER/configs/data/{structure}_dirs.yaml ``` ## Training - Download vocabulary list `type_vocabs_coarse.json` from [this link](https://drive.google.com/file/d/1topawwqMSvwE8Ac-8OiwMApEqwYeR5rc/view?usp=sharing) and unzip to the `$STRUCTFORMER/data_new_objects`. - Download all data for [circle](https://drive.google.com/file/d/1PTGFcAWBrQmlglygNiJz6p7s0rqe2rtP/view?usp=sharing) and unzip to the `$STRUCTFORMER/data_new_objects`. ### Pose Generation Networks Where `{model_name}` is one of `structformer_no_encoder`, `structformer_no_structure`, `object_selection_network`, `structformer`, and `{structure}` is one of `circle`, `line`, `tower`, or `dinner`: ```bash cd $STRUCTFORMER/src/structformer/training/ python train_{model_name}.py \ --dataset_base_dir $STRUCTFORMER/data_new_objects \ --main_config $STRUCTFORMER/configs/{model_name}.yaml \ --dirs_config STRUCTFORMER/configs/data/{structure}_dirs.yaml ``` ### Object Selection Network ```bash cd $STRUCTFORMER/src/structformer/training/ python train_object_selection_network.py \ --dataset_base_dir $STRUCTFORMER/data_new_objects \ --main_config $STRUCTFORMER/configs/object_selection_network.yaml \ --dirs_config $STRUCTFORMER/configs/data/circle_dirs.yaml ``` ## Citation If you find our work useful in your research, please cite: ``` @inproceedings{structformer2022, title = {StructFormer: Learning Spatial Structure for Language-Guided Semantic Rearrangement of Novel Objects}, author = {Liu, Weiyu and Paxton, Chris and Hermans, Tucker and Fox, Dieter}, year = {2022}, booktitle = {ICRA 2022} } ```

Owner

  • Name: SZU-AdvTech-2023
  • Login: SZU-AdvTech-2023
  • Kind: organization

GitHub Events

Total
Last Year