• Stars
    star
    132
  • Rank 272,635 (Top 6 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created about 2 years ago
  • Updated about 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An official implementation of the PseCo (ECCV2022)

PseCo (ECCV 2022)

arXiv visitors PWC PWC PWC

PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection

Gang Li, Xiang Li, Yujie Wang, Yichao Wu, Ding Liang, Shanshan Zhang.

This repo is the official implementation of ECCV2022 paper "PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection". PseCo delves into two key techniques of semi-supervised learning (e.g., pseudo labeling and consistency training) for SSOD, and integrate object detection properties into them.

🧪Main Results

Partial Labeled Data

Following the common practice, all experimental results are averaged on 5 different data folds.

1% labeled data

Method mAP Model Weights
Supervised Baseline 12.20 -
PseCo 22.43 BaiduYun,Google Drive

2% labeled data

Method mAP Model Weights
Supervised Baseline 16.53 -
PseCo 27.77 BaiduYun,Google Drive

5% labeled data

Method mAP Model Weights
Supervised Baseline 21.17 -
PseCo 32.50 BaiduYun,Google Drive

10% labeled data

Method mAP Model Weights
Supervised Baseline 26.90 -
PseCo 36.06 BaiduYun,Google Drive

Full Labeled Data

Method mAP Model Weights
Supervised Baseline 41.0 -
PseCo 46.1 BaiduYun,Google Drive

➡️Usage

Since this repo is built on the Soft Teacher, some setup instructions are cloned from it.

Requirements

  • Ubuntu 16.04
  • Anaconda3 with python=3.6
  • Pytorch=1.9.0
  • mmdetection=2.16.0+fe46ffe
  • mmcv=1.3.9

Installation

pip install -r requirements.txt
cd thirdparty/mmdetection && pip install -e .
cd ../.. && pip install -e .

Data Preparation

  • Download the COCO dataset
  • Execute the following command to generate data set splits:
# YOUR_DATA should be a directory contains coco dataset.
# For eg.:
# YOUR_DATA/
#  coco/
#     train2017/
#     val2017/
#     unlabeled2017/
#     annotations/
ln -s ${YOUR_DATA} data
bash tools/dataset/prepare_coco_data.sh conduct

For concrete instructions of what should be downloaded, please refer to tools/dataset/prepare_coco_data.sh line 11-24

Training

  • To train model on the partial labeled data setting:

For 5% and 10% labelling ratios:

bash tools/dist_train_partially_labeled.sh

While for 1% and 2% labelling ratios, half of training iterations are enough:

bash tools/dist_train_partially_labeled_90k_iter.sh
  • To train model on the full labeled data setting:
bash tools/dist_train_fully_labeled.sh 

All experiments are trained on 8 GPUs by default.

Evaluation

bash tools/test.sh

Please specify your config and checkpoint path in the tools/test.sh.

🧱To-do List

  • Release PseCo codes.
  • Apply PseCo to the one-stage detector.
  • Release codes of our latest semi-supervised object detection method: DTG.

👍Acknowledgement

We would like to thank the authors of Soft Teacher and mmdetection.

✏️Citation

Consider cite PseCo in your publication if it helps your research.

@article{li2022pseco,
  title={PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection},
  author={Li, Gang and Li, Xiang and Wang, Yujie and Zhang, Shanshan and Wu, Yichao and Liang, Ding},
  journal={arXiv preprint arXiv:2203.16317},
  year={2022}
}