[ECCV2024] Learning Camouflaged Object Detection from Noisy Pseudo Label (Poster)

December 16, 2025 · View on GitHub

This is the open-source repository for our paper Learning Camouflaged Object Detection from Noisy Pseudo Label, accepted at ECCV 2024!

Our Paper Can Be Seen at Paper

Framework Architecture

Framework Architecture

Proposed Models

Performance

Performance

Performance

Comparison

Training Process

Task Definition: Weakly Semi-Supervised Camouflaged Object Detection (WSSCOD)

We introduce a novel training protocol named Weakly Semi-Supervised Camouflaged Object Detection (WSSCOD), utilizing boxes as prompts to generate high-quality pseudo labels. WSSCOD leverages box annotations, complemented by a minimal amount of pixel-level annotations, to generate high-accuracy pseudo labels.

  1. Dataset Division:

    • Dm={Xm,Fm,Bm}m=1M\mathcal{D}_m = \{\mathcal{X}_m, \mathcal{F}_m, \mathcal{B}_m\}_{m=1}^M: Pixel-level annotations Fm\mathcal{F}_m, box annotations Bm\mathcal{B}_m, and training images Xm\mathcal{X}_m.
    • Dn={Xn,Bn}n=1N\mathcal{D}_n = \{\mathcal{X}_n, \mathcal{B}_n\}_{n=1}^N: Box annotations and images, where M+NM+N represents the number of training sets.
  2. Training ANet:

    • Train ANet using dataset Dm\mathcal{D}_m.
    • Use Bm\mathcal{B}_m as prompts and Fm\mathcal{F}_m for supervision.
  3. Generating Pseudo Labels:

    • Use the trained ANet and dataset Dn\mathcal{D}_n to predict pseudo labels Wn\mathcal{W}_n.
  4. Constructing the Weakly Semi-Supervised Dataset:

    • Combine {Xm,Fm}m=1M\{\mathcal{X}_m, \mathcal{F}_m\}_{m=1}^M and {Xn,Wn}n=1N\{\mathcal{X}_n, \mathcal{W}_n\}_{n=1}^N to form Dt\mathcal{D}_t.
  5. Training PNet:

    • Train PNet using the dataset Dt\mathcal{D}_t.
    • Evaluate performance with different MM and NN ratios:
      • PNetF1_{F1}: M=1%M=1\%, N=99%N=99\%
      • PNetF5_{F5}: M=5%M=5\%, N=95%N=95\%
      • PNetF10_{F10}: M=10%M=10\%, N=90%N=90\%
      • PNetF20_{F20}: M=20%M=20\%, N=80%N=80\%

Details: ANet and PNet Training

AspectANet (Auxiliary Network)PNet (Primary Network)
StageFirstSecond
ObjectiveGenerate high-accuracy pseudo labelsMain camouflaged object detection
Data InputSubset Dm\mathcal{D}_m with pixel and box annotationsWeakly semi-supervised dataset Dt\mathcal{D}_t
Training DatasetDm={Xm,Fm,Bm}m=1M\mathcal{D}_m = \{\mathcal{X}_m, \mathcal{F}_m, \mathcal{B}_m\}_{m=1}^MDt={Xm,Fm}m=1M{Xn,Wn}n=1N\mathcal{D}_t = \{\mathcal{X}_m, \mathcal{F}_m\}_{m=1}^M \cup \{\mathcal{X}_n, \mathcal{W}_n\}_{n=1}^N
AnnotationsPixel-level Fm\mathcal{F}_m and box Bm\mathcal{B}_mPseudo labels Wn\mathcal{W}_n and pixel-level Fm\mathcal{F}_m
SupervisionPixel-level Fm\mathcal{F}_m for pseudo label generationPseudo labels Wn\mathcal{W}_n and pixel-level Fm\mathcal{F}_m
Input PromptsBox annotations Bm\mathcal{B}_m for camouflaged objectsImages Xm\mathcal{X}_m and Xn\mathcal{X}_n
Performance Evaluation-Different settings: PNetF1_{F1}, PNetF5_{F5}, PNetF10_{F10}, PNetF20_{F20}
Training GoalGenerate high-quality pseudo labels Wn\mathcal{W}_nImprove detection accuracy with various MM and NN ratios

1. Download the Training and Test Sets

We have made the training and test sets available for download via the following links:

Once downloaded, place data.zip in the code/data directory and unzip it.

2. Train ANet

python code/TrainANet/TrainDDP.py --gpu_id 0 --ration 1 
# ration represents the proportion of pixel-level labels
# we find that one card training is better than four or eight cards

3. Generate Pseudo Labels

python code/TrainANet/Test.py --ration 1 
# ration represents the proportion of pixel-level labels

4. Train PNet

python code/TrainANet/TrainDDP.py --gpu_id 0 --ration 1 --q_epoch 20 --batchsize_fully 6 --batchsize_weakly 24 
# ration represents the proportion of pixel-level labels
# q_epoch means we change the q to 1 at this epoch 
# batchsize_fully means the number of fully annotated samples in a batch
# batchsize_weakly means the number of weakly annotated samples in a batch

5. Testing Process

python code/TrainPNet/Test.py --ration 1 
# ration represents the proportion of pixel-level labels

Pretrained Weights and COD Results

For ANet

We release the weight and prediction maps of N=99%N=99\%, N=95%N=95\%, N=90%N=90\% and N=20%N=20\% at Biadu Link.

For PNet

ModelPretrained WeightPrediction Description
PNetF1_{F1}Google LinkM=1%M=1\%, N=99%N=99\%
PNetF5_{F5}Google LinkM=5%M=5\%, N=95%N=95\%
PNetF10_{F10}Google LinkM=10%M=10\%, N=90%N=90\%
PNetF20_{F20}Google LinkM=20%M=20\%, N=80%N=80\%

References

@inproceedings{zhang2025learning,
  title={Learning Camouflaged Object Detection from Noisy Pseudo Label},
  author={Zhang, Jin and Zhang, Ruiheng and Shi, Yanjiao and Cao, Zhe and Liu, Nian and Khan, Fahad Shahbaz},
  booktitle={European Conference on Computer Vision},
  pages={158--174},
  year={2025},
  organization={Springer}
}