Code Implementation of "Unsupervised Recognition of Unknown Objects for Open-World Object Detection" (arXiv 2308.16527)
The pre-trained SOCO backbone, pre-computed proposals and trained weight of MEPU can be downloaded from GoogleDrive.
Please first download the MS COCO dataset and the directory structure should be like:
mepu-owod/
└── datasets/
└── coco/
├── annotations/
├── train2017/
└── val2017/
Prepare dataset for S-OWOD:
sh prepare_dataset.sh
The training dataset for S-OWODB and M-OWODB should be like:
mepu-owod/
└── datasets/
└── mowod/
├── Annotations/
├── ImageSets/
└── JPEGImages/
└── sowod/
├── Annotations/
├── ImageSets/
└── JPEGImages/
conda create -n mepu python=3.8
conda activate mepu
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=10.2 -c pytorch
git clone https://github.com/facebookresearch/detectron2.git
cd detectron2
pip install -e .
cd ..
pip install -r requirements.txt
Unsupervised pretraining of REW:
sh script/train_rew.sh
Train MEPU on the S-OWOD benchmark:
sh script/train_mepu_fs.sh
Evaluate MEPU on the S-OWOD benchmark:
sh script/eval_owod.sh
Task1 | Task2 | Task3 | Task4 | ||||
---|---|---|---|---|---|---|---|
Method | U-Recall | mAP | U-Recall | mAP | U-Recall | mAP | mAP |
ORE-EBUI | 1.5 | 61.4 | 3.9 | 40.6 | 3.6 | 33.7 | 31.8 |
OW-DETR | 5.7 | 71.5 | 6.2 | 43.8 | 6.9 | 38.5 | 33.1 |
PROB | 17.6 | 73.5 | 22.3 | 50.4 | 24.8 | 42.0 | 39.9 |
CAT | 24.0 | 74.2 | 23.0 | 50.7 | 24.6 | 45.0 | 42.8 |
MEPU-FS (Ours) | 37.9 | 74.3 | 35.8 | 54.3 | 35.7 | 46.2 | 41.2 |
MEPU-SS (Ours) | 33.3 | 74.2 | 34.2 | 53.6 | 33.6 | 45.8 | 40.8 |