Home

Awesome

DSU Source Code

Source repository for our paper entilted "Promoting Saliency From Depth: Deep Unsupervised RGB-D Saliency Detection" accepted by ICLR 2022 conference.


Pre-Implementation

  1. vim ./DenseCRF/README.md
  2. DenseCRF Installation: Refer to DenseCRF Readme.md, and run demo successfully.
  3. Pytorch Environment: Run conda install pytorch torchvision cudatoolkit=10.1 -c pytorch.
  4. Run pip install tqdm.
  5. Run pip install pandas.
  6. Run pip install tensorboardX.
  7. Run pip install fairseq. Possible Question "SyntaxError: invalid syntax", please see FAQ-Q1 below.
  8. Run pip install scipy.
  9. Run pip install matplotlib.

Dataset & Evaluation

  1. The dataset used in this paper you can download directly (Baidu Cloud (Passworde: bn1t) or Google Drive), including training set with initial pseudo-labels, and test set.
  2. We use this toolbox for evaluating all SOD models.

Our DSU Implementation

  1. Modify the path of dataset in python DSU_test.py and python DSU_train.py.
  2. Inference stage (Test your own dataset): python DSU_test.py; Using Pre-trained Model in ./ckpt (Baidu Cloud (Passworde: w5bg) or Google Drive).
  3. Training stage: CUDA_VISIBLE_DEVICES=0 python DSU_train.py
  4. Check the log file: cat ./result.txt

Saliency Results

Our deep unsupervised saliency results can be approached in Baidu Cloud (Passworde: ws1k) or Google Drive. If you want to use our DSU to test on your own dataset, you can load our pretrained ckpt and run python DSU_test.py directly.

Bibtex

@inproceedings{
ji2022promoting,
title={Promoting Saliency From Depth: Deep Unsupervised {RGB}-D Saliency Detection},
author={Wei Ji and Jingjing Li and Qi Bi and Chuan Guo and Jie Liu and Li Cheng},
booktitle={International Conference on Learning Representations},
year={2022}
}

Contact Us

If you have any questions, please contact us ( wji3@ualberta.ca ).


Question1: When installing fairseq, post an 'SyntaxError: invalid syntax'

Answer1: You can directly update python version, e.g., conda install python=3.7. More details can be found in this channel.

Question2: You should replace the inplace operation by an out-of-place one.

Answer2: This is because *= is not compatible with Python 3.9. q *= self.scaling -> q = q * self.scaling