Build flexible object detection pipelines with declarative configuration
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
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
python 3.6
opencv
with python bindingslibturbojpeg
requirements.txt
Some places that may be useful to look into:
bf
- provides common reusable parts for building a deep learning pipelinebf.base
- custom backbone network implementation (e.g. MobileNetV2)bf.datasets
- dataset handlingbf.preprocessing
- data augmentations and preprocessingbf.training
- callbacks; custom optimizers and learning rate schedulers; weight prunner- ...
detection
- parts of code which are used to build object detection pipelines on top ofbf
samples
- contains sample configuration files for popular network architecturesmain.py
- the entry point
- Tensorflow Object Detection API (https://github.com/tensorflow/models/tree/master/research/object_detection)
- Gluon CV (https://github.com/dmlc/gluon-cv)
- mmdetection (https://github.com/open-mmlab/mmdetection)