DualTeacher
Official implementation of the paper "Bridging Coexistence of Unlabelled Classes for Semi-supervised Incremental Object Detection"
Install / Use
/learn @chuxiuhong/DualTeacherREADME
Bridging Coexistence of Unlabelled Classes for Semi-supervised Incremental Object Detection
This is offical implementation of our paper:
Bridging Coexistence of Unlabelled Classes for Semi-supervised Incremental Object Detection

Installation
Prerequisites
- Linux
- Conda
- 4 Tesla V100 32GB GPUs
Install the CUDA and cuDNN libraries
conda create -n detectron2 python=3.8
conda activate detectron2
conda search cudatoolkit
conda search cudnn
# Please check here for a version that is compatible with your hardware environment; otherwise, subsequent installations may not be possible.
conda install cudatoolkit==9.2
conda install cudnn==7.6.5
Install Pytorch
conda install pytorch==1.7.0 torchvision==0.8.0 cudatoolkit=9.2 -c pytorch
Install Detectron2
python -m pip install detectron2==0.5 -f \
https://dl.fbaipublicfiles.com/detectron2/wheels/cu92/torch1.7/index.html
Dataset Preparation
# download coco2017 dataset
wget http://images.cocodataset.org/zips/train2017.zip
wget http://images.cocodataset.org/zips/val2017.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
Please unzip the file and place the data in the format described below:
dual_teacher/
└── datasets/
└── coco/
├── train2017/
├── val2017/
└── annotations/
├── instances_train2017.json
└── instances_val2017.json
Training
- Train a first(base) phase model
# use normal semi-supervised trainer
cp ubteacher/engine/original_trainer.py ubteacher/engine/trainer.py
Set /ubteacher/data/build.py used_class_nums as your choice(e.g. (0,16) in 5-phase setting)
Set configs/coco_supervision/mod_sup5.yaml MAX_ITERand STEPS (The size depends on the category range you choose.)
# run
python train_net.py \
--num-gpus 4 \
--config configs/coco_supervision/mod_sup5.yaml \
SOLVER.IMG_PER_BATCH_LABEL 16 SOLVER.IMG_PER_BATCH_UNLABEL 16
- Train the new phase
At this point, you should have a trained checkpoint file. We assume its path to be output/model_newclass_phase_0.pth
# use our dual-teacher trainer
cp ubteacher/engine/dual_teacher_trainer.py ubteacher/engine/trainer.py
Please modify old_teacher_paras in trainer.py to your checkpoint absolute path.
Also modify /ubteacher/data/build.py and configs/coco_supervision/mod_sup5.yaml like the previous section.
# Resume
python train_net.py \
--resume \
--num-gpus 4 \
--config configs/coco_supervision/mod_sup5.yaml \
SOLVER.IMG_PER_BATCH_LABEL 16 SOLVER.IMG_PER_BATCH_UNLABEL 16 MODEL.WEIGHTS ./output/model_newclass_phase_0.pth
Evaluation
# Evaluation
python train_net.py \
--eval-only \
--num-gpus 4 \
--config configs/coco_supervision/mod_sup5.yaml \
SOLVER.IMG_PER_BATCH_LABEL 16 SOLVER.IMG_PER_BATCH_UNLABEL 16 MODEL.WEIGHTS ./output/model_newclass_phase_0.pth
Citation
@article{yuan2023dualteacher,
title={DualTeacher: Bridging Coexistence of Unlabelled Classes for Semi-supervised Incremental Object Detection},
author={Yuan, Ziqi and Wang, Liyuan and Ding, Wenbo and Zhang, Xingxing and Zhong, Jiachen and Ai, Jianyong and Li, Jianmin and Zhu, Jun},
journal={arXiv preprint arXiv:2401.05362},
year={2023}
}
Related Skills
node-connect
349.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
