This is a Keras port of the SSD model architecture introduced by Wei Liu et al. in the paper SSD: Single Shot MultiBox Detector. This implementation is focussed towards two important points (which were missing in originall implementation):
-
Training and inference can be done on mediocre discreate local system GPUs (like I have used Nvidia gtx 1660 on my local setup).
-
A universal note book to perform all task:- training, training on custom dataset, inference on video or images, etc.
This apis will be need to train any custom dataset. (Though some are common in both training and inference)
Enable Tensorflow's limiting memory graph. This will need if the job is performed on local setup. True: To enable False: To disable
What job to perform, either 'training' or 'inference'
Height of image
Width of image
Color channel, 3 for RGB
Loading annotation
Format of annotation, either 'csv' or 'xml'
True:Will load all images into memory; False: Keeeps on disk, but much slower
same as above
Dataset location
csv or path containing training data
To be used only in coco data set.
validation data
vidation data annotation
To used only in coco dataset.
list of all classes
no of classes
Training Hyperparameters
L2 regularization penalizing factor
IOU threshold used for localization
Learning rate to train
no of steps per epoch to take
size of batch of data to train
no of epoch to train on
Saving training assets
path to save weights
path to save training job monitor csv
This apis will be used for inference job
Enable Tensorflow's limiting memory graph. This will need if the job is performed on local setup. True: To enable False: To disable
What job to perform, either 'training' or 'inference'
Height of image
Width of image
Color channel, 3 for RGB
path to load trained weights
Threshold to select prediction
Saving Inference Assets
frames with predicted bounding box will be saved here
video with predicted bounding box will be saved here
Python, Keras (Tensorflow:114),OpenCV, FFmpeg, Nvidia cuda
MLflow (tracking experiments), DVC(version control data), Git(version control project)