This repository is the official PyTorch implementation of Active Learning for Deep Object Detection via Probabilistic Modeling, ICCV 2021.
The proposed method is implemented based on the SSD pytorch.
Our approach relies on mixture density networks to estimate, in a single forward pass of a single model, both localization and classification uncertainties, and leverages them in the scoring function for active learning.
Our method performs on par with multiple model-based methods (e.g., ensembles and MC-Dropout). Therefore, our method provides the best trade-off between accuracy and computational cost.
License
--------
To view a NVIDIA Source Code License for this work, visit https://github.com/NVlabs/AL-MDN/blob/main/LICENSE
Requirements
----------------------
For setup and data preparation, please refer to the README in [SSD pytorch](https://github.com/amdegroot/ssd.pytorch).
Code was tested in virtual environment with `Python 3+` and `Pytorch 1.1`.
Training
--------
- Make directory `mkdir weights` and `cd weights`.
- Download the [FC-reduced VGG-16 backbone weight](https://s3.amazonaws.com/amdegroot-models/vgg16_reducedfc.pth) in the `weights` directory, and `cd ..`.
- If necessary, change the `VOC_ROOT` in `data/voc0712.py` or `COCO_ROOT` in `data/coco.py`.
- Please refer to `data/config.py` for configuration.
- Run the training code:
```
# Supervised learning
CUDA_VISIBLE_DEVICES=