Awesome
PseCo (ECCV 2022)
PseCo: Pseudo Labeling and Consistency Training for Semi-Supervised Object Detection
Gang Li, Xiang Li, Yujie Wang, Yichao Wu, Ding Liang, Shanshan Zhang.
<img src=./docs/framework.png width="70%">
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
withpython=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}
}