Tensorflow SSD implementation from scratch. MobileNetV2 and VGG16 backbones are supported.
It's implemented and tested with tensorflow 2.0, 2.1, and 2.2
Project models created in virtual environment using miniconda. You can also create required virtual environment with conda.
To create virtual environment (tensorflow-2 gpu environment):
conda env create -f environment.yml
There are two different backbone, first one the legacy vgg16 backbone and the second and default one is mobilenet_v2. You can easily specify the backbone to be used with the --backbone parameter.
To train and test SSD model:
python trainer.py --backbone mobilenet_v2
python predictor.py --backbone vgg16
If you have GPU issues you can use -handle-gpu flag with these commands:
python trainer.py -handle-gpu
- VOC 2007 Dataset [dataset]
- VOC 2012 Dataset [dataset]
- SSD: Single Shot MultiBox Detector [paper]
- MobileNetV2: Inverted Residuals and Linear Bottlenecks [paper]
- Original caffe implementation [code]
- ParseNet: Looking Wider to See Better [paper]
- AutoAugment: Learning Augmentation Policies from Data [paper]
- Data Augmentation Steps for SSD [blog]