Home

Awesome

Camouflaged Instance Segmentation via Explicit De-camouflaging

Official Implementation of CVPR2023 Highlight paper "Camouflaged Instance Segmentation via Explicit De-camouflaging"

DCNet

Alt text

We propose a novel De-camouflaging Network (DCNet) by jointly modeling pixel-level camouflage decoupling and instance-level camouflage suppression for Camouflaged Instance Segmentation (CIS) task.

Environment preparation

The code is tested on CUDA 11.3 and pytorch 1.10.1, change the versions below to your desired ones.

conda create -n dcnet python=3.9 -y
conda activate dcnet
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch -c conda-forge
python -m pip install detectron2 -f \
    https://dl.fbaipublicfiles.com/detectron2/wheels/cu113/torch1.10/index.html

cd DCNet
pip install -r requirements.txt
cd dcnet/modeling/PCD/ops
sh make.sh

Dataset preparation

Download the datasets

Register datasets

Change the path of the datasets as well as annotations in dcnet/data/datasets/register_cis.py.

# dcnet/data/datasets/register_cis.py
# change the paths
COD10K_ROOT = 'COD10K'  # path to your COD10K dataset
ANN_ROOT = os.path.join(COD10K_ROOT, 'annotations')
TRAIN_PATH = os.path.join(COD10K_ROOT, 'Train_Image_CAM')
TEST_PATH = os.path.join(COD10K_ROOT, 'Test_Image_CAM')
TRAIN_JSON = os.path.join(ANN_ROOT, 'train_instance.json')
TEST_JSON = os.path.join(ANN_ROOT, 'test2026.json')

NC4K_ROOT = 'NC4K'  # path to your NC4K dataset
NC4K_PATH = os.path.join(NC4K_ROOT, 'test/image')
NC4K_JSON = os.path.join(NC4K_ROOT, 'nc4k_test.json')

Train

python train_net.py \
    --config-file configs/CIS-R50.yaml \
    MODEL.WEIGHTS {PATH_TO_PRE_TRAINED_WEIGHTS}

Pre-trained models

DCNet model (ResNet-50) weights: Google

Evalation

python train_net.py \
    --eval-only \
    --config-file configs/CIS-R50.yaml \
    MODEL.WEIGHTS {PATH_TO_PRE_TRAINED_WEIGHTS}

Please replace {PATH_TO_PRE_TRAINED_WEIGHTS} to the pre-trained weights.

Citation

If you find this code useful for your research, please cite our paper:

@inproceedings{luo2023camouflaged,
  title={Camouflaged Instance Segmentation via Explicit De-Camouflaging},
  author={Luo, Naisong and Pan, Yuwen and Sun, Rui and Zhang, Tianzhu and Xiong, Zhiwei and Wu, Feng},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={17918--17927},
  year={2023}
}

Acknowledgements

Some codes are adapted from OSFormer and Mask2Former. We thank them for their excellent projects.