Awesome
<div align="center"> <h1> Object Discovery via Contrastive Learning for Weakly Supervised Object Detection</h1> </div><div align="center"> <h3>Jinhwan Seo, Wonho Bae, Danica J. Sutherland, Junhyug Noh, and Daijin Kim</h3> </div> </div><div align="center"> <h3><a href="https://github.com/jinhseo/OD-WSCL">[Paper]</a>, <a href="https://jinhseo.github.io/research/wsod.html">[Project page]</a></h3> </div> <br /><div align="center"> <img src="./teaser.png" alt="result" width="900"/> </div>The official implementation of ECCV2022 paper: "Object Discovery via Contrastive Learning for Weakly Supervised Object Detection"
Environment setup:
git clone https://github.com/jinhseo/OD-WSCL/
cd OD-WSCL
conda create --name OD-WSCL python=3.7
conda activate OD-WSCL
pip install ninja yacs cython matplotlib tqdm opencv-python tensorboardX pycocotools
conda install pytorch==1.7.1 torchvision==0.8.2 cudatoolkit=11.0 -c pytorch
git clone --branch 22.04-dev https://github.com/NVIDIA/apex.git
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./
cd ../
python setup.py build develop
Dataset:
mkdir -p datasets/{coco/voc}
datasets/
├── voc/
│ ├── VOC2007
│ │ ├── Annotations/
│ │ ├── JPEGImages/
│ │ ├── ...
│ ├── VOC2012/
│ │ ├── ...
├── coco/
│ ├── annotations/
│ ├── train2014/
│ ├── val2014/
│ ├── train2017/
│ ├── ...
├── ...
Proposal:
Download .pkl file from Dropbox
mkdir proposal
proposal/
├── SS/
│ ├── voc
│ │ ├── SS-voc07_trainval.pkl/
│ │ ├── SS-voc07_test.pkl/
│ │ ├── ...
├── MCG/
│ ├── voc
│ │ ├── ...
│ ├── coco
│ │ ├── MCG-coco_2014_train_boxes.pkl/
│ │ ├── ...
├── ...
Train:
python -m torch.distributed.launch --nproc_per_node={NO_GPU} tools/train_net.py
--config-file "configs/{config_file}.yaml"
OUTPUT_DIR {output_dir}
nms {nms threshold}
lmda {lambda value}
iou {iou threshold}
temp {temperature}
Example:
python -m torch.distributed.launch --nproc_per_node=1 tools/train_net.py
--config-file "configs/voc07_contra_db_b8_lr0.01_mcg.yaml"
OUTPUT_DIR OD-WSCL/output
nms 0.1
lmda 0.03
iou 0.5
temp 0.2
Note: We trained our model on a single large-memory GPU (<em>e.g.</em>, A100 40GB) to maintain large mini-batch size for the best performance.
The hyperparameter settings may vary with multiple small GPUs, and results will be provided later.
Eval:
python -m torch.distributed.launch --nproc_per_node={NO_GPU} tools/test_net.py
--config-file "configs/{config_file}.yaml"
TEST.IMS_PER_BATCH 8
OUTPUT_DIR {output_dir}
MODEL.WEIGHT {model_weight}.pth
Example:
python -m torch.distributed.launch --nproc_per_node=1 tools/test_net.py
--config-file "configs/voc07_contra_db_b8_lr0.01_mcg.yaml"
TEST.IMS_PER_BATCH 8
OUTPUT_DIR OD-WSCL/output
MODEL.WEIGHT OD-WSCL/output/model_final.pth
Citation:
If you find helpful our work in your research, please consider cite this:
@inproceedings{seo2022object,
title={Object discovery via contrastive learning for weakly supervised object detection},
author={Seo, Jinhwan and Bae, Wonho and Sutherland, Danica J and Noh, Junhyug and Kim, Daijin},
booktitle={European Conference on Computer Vision},
pages={312--329},
year={2022},
organization={Springer}
}
We borrowed the main code from <a href="https://github.com/NVlabs/wetectron">wetectron</a>, please consider cite it as well.
Thank you for sharing your great work!
@inproceedings{ren-cvpr020,
title = {Instance-aware, Context-focused, and Memory-efficient Weakly Supervised Object Detection},
author = {Zhongzheng Ren and Zhiding Yu and Xiaodong Yang and Ming-Yu Liu and Yong Jae Lee and Alexander G. Schwing and Jan Kautz},
booktitle = {IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2020}
}
Acknowledgement:
This work was supported by Institute of Information & communications Technology Planning & Evaluation(IITP) grant funded by the Korea government(MSIT) (No.2017-0-00897, Development of Object Detection and Recognition for Intelligent Vehicles)