Git Product home page Git Product logo

robust-ref-seg's Introduction


Towards Robust Referring Image Segmentation


Jianzong Wu · Xiangtai Li · Xia Li · Henghui Ding · Yunhai Tong · Dacheng Tao

arXiv PDF Project Page


Our work is the first to explore robustness in referring image segmentation, including task definition, benchmark, and baseline models.

⭐ Abstract

Referring Image Segmentation (RIS) is a fundamental vision-language task that outputs object masks based on text descriptions. Many works have achieved considerable progress for RIS, including different fusion method designs. In this work, we explore an essential question, “What if the text description is wrong or misleading?” For example, the described objects are not in the image. We term such a sentence as a negative sentence. However, existing solutions for RIS cannot handle such a setting. To this end, we propose a new formulation of RIS, named Robust Referring Image Segmentation (R-RIS). It considers the negative sentence inputs besides the regular positive text inputs. To facilitate this new task, we create three R-RIS datasets by augmenting existing RIS datasets with negative sentences and propose new metrics to evaluate both types of inputs in a unified manner. Furthermore, we propose a new transformer based model, called RefSegformer, with a token-based vision and language fusion module. Our design can be easily extended to our R-RIS setting by adding extra blank tokens. Our proposed RefSegformer achieves state-of-the-art results on both RIS and R-RIS datasets, establishing a solid baseline for both settings.

📢 Updates

  • [2024.3.1] Our code has been released!
  • [2024.1.30] The added negative sentences can be downloaded at this link (together with original refcoco annotations).
  • [2022.9.17] The robust referring image segmentation datasets R-RefCOCO, R-RefCOCO+, and R-RefCOCOg are released!

🏆 Contributions

  • Robust Referring Image Segmentation Task. We present the Robust Referring Image Segmentation (R-RIS) task, the first robust-based RIS, which extends the RIS task to account for the possibility of incorrect referring expressions.

  • R-RefCOCO Series Dataset. We construct three benchmarks for the R-RIS task and propose new metrics to evaluate R-RIS models. We also benchmark several baseline methods for R-RIS.

  • Strong R-RIS Model. We develop RefSegformer, a Transformer-based model incorporating VLTF modules specially designed for the R-RIS task. RefSegformer achieves state-of-the-art performance on six datasets from both RIS and R-RIS tasks, demonstrating its effectiveness and robustness

⚡ RefSegformer

The components of RefSegformer are cohesively designed to handle both RIS and R-RIS tasks, allowing for robust interaction between vision and language information.

👁️ Visualization

An visualization of RefSegformer. Sentences in italic describe non-existent objects.


Environment preparation

Please see install.md for the installation guidance.

Download data

Our model can perform both RIS and R-RIS tasks.

First, please follow the RefCOCO repo to download RefCOCO, RefCOCO+, and RefCOCOg. The images for these datasets (and our R-RefCOCO datasets) are from COCO. Please download the train2014 set.

To train and evaluate on the proposed R-RIS task, please download the R-RefCOCO, R-RefCOCO+, and R-RefCOCOg datasets from this link.

All the datasets should be organized in the following folder format:

data
  |- images
    |- mscoco
      |- train2014
  |- refcoco
  |- refcoco+
  |- refcocog
  |- rrefcoco
  |- rrefcoco+
  |- rrefcocog

Download models

First, download pretrained models, which are used by RefSegFormer.

Organize the pretrained models as follows:

checkpoints
  |- bert-base-uncased
    |- pytorch_model.bin
    |- bpe_simple_vocab_16e6.txt.gz
    |- config.json
    |- vocab.txt
  |- swin-base
    |- swin_base_patch4_window12_384_22k.pth

Then, download our RefSegFormer checkpoint and put it to logs/ Please rename and put the checkpoint to logs/{exp_name_you_want}/ckpt.pth

training data checkpoint link
R-RefCOCO link

Training

Training and evaluation are by running main.py. The --dataset parameter can be [refcoco|refcoco+|refcocog|rrefcoco|rrefcoco+|rrefcocog]. Adjust --nproc_per_node according to the number of GPUs used.

python -m torch.distributed.launch --master_port 1234 --nproc_per_node 8 main.py --exp rrefcoco --dataset rrefcoco --batch_size 6 --use_mask --use_exist --use_pixel_decoder

The trained model and the training log are in /logs.

Evaluation

Evaluation is also run by main.py. The batch size should be set to 1 when evaluation.

python -m torch.distributed.launch --master_port 1234 --nproc_per_node 8 main.py --exp rrefcoco --dataset rrefcoco --batch_size 1 --use_mask --use_exist --use_pixel_decoder --eval

📜 Citation

If you find our work useful in your research, please consider citing:

@article{wu2022towards,
  title={Towards robust referring image segmentation},
  author={Wu, Jianzong and Li, Xiangtai and Li, Xia and Ding, Henghui and Tong, Yunhai and Tao, Dacheng},
  journal={IEEE-TIP},
  year={2024}
}

🙏 Acknowledgement

Thanks to the excellent works and repos: MAttNet, EFN, LAVT and LAVT-pytorch.

robust-ref-seg's People

Contributors

jianzongwu avatar lxtgh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

robust-ref-seg's Issues

Question about the specific metrics of each validation set.

Hi, Jianzong.
First of all, I appreciate your work very much. When I read your paper, I could not find the specific metrics for each set (e.g. val,testA,testB) In the paper, only the following table is presented, which makes me feel confused.
image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.