Skip to content

Latest commit

 

History

History
46 lines (44 loc) · 2.02 KB

README.md

File metadata and controls

46 lines (44 loc) · 2.02 KB

Single Shot Detection

Build flexible object detection pipelines with declarative configuration

Content

You are being provided with the following set of features:

  • Supporting latest PyTorch release
  • Train SSD, M2Det, RetinaNet or some custom architecture
  • Available backbones: torchvision + pretrainedmodels + custom MobileNet, MobileNetV2
  • Data augmentations
  • AdamW and SGDW optimizers, some custom learning rate schedulers
  • Weight pruning for efficient inference
  • Export to ONNX or OpenVINO
  • Tensorboard integration
  • Training callbacks

Quick start

Download PASCAL VOC or COCO dataset and start training using one of the provided sample configs:

python3 main.py --config samples/ssd_mb2_voc.py

(don't forget to adjust paths in the config first!)

To see the list of parameters:

python3 main.py --help

Requirements

  • python 3.6
  • opencv with python bindings
  • libturbojpeg
  • requirements.txt

Structure

Some places that may be useful to look into:

  • bf - provides common reusable parts for building a deep learning pipeline
    • bf.base - custom backbone network implementation (e.g. MobileNetV2)
    • bf.datasets - dataset handling
    • bf.preprocessing - data augmentations and preprocessing
    • bf.training - callbacks; custom optimizers and learning rate schedulers; weight prunner
    • ...
  • detection - parts of code which are used to build object detection pipelines on top of bf
  • samples - contains sample configuration files for popular network architectures
  • main.py - the entry point

Inspired by