This is a PyTorch implementation of the Single Shot Multibox Detector: https://arxiv.org/pdf/1512.02325.pdf
The objective of this project is to help me get better acquainted with the components of SSD and how they all tie together. In addition, I would like to understand what is written in the research paper, and how it might differ from common implementations.
My implementation was heavily influenced by these implementations:
- https://github.com/NVIDIA/DeepLearningExamples/tree/49e387c788d606f9711d3071961c35092da7ac8c/PyTorch/Detection/SSD
- https://github.com/amdegroot/ssd.pytorch
- https://github.com/kuangliu/pytorch-ssd/blob/master/encoder.py
For training, I used the VOC Dataset 2017 version: http://host.robots.ox.ac.uk/pascal/VOC/
This project uses a PyTorch docker container as an environment. https://hub.docker.com/r/pytorch/pytorch
- Build the container
docker compose build
- Start the container
docker compose up -d
- SSH into the container
docker compose exec app bash
- Shutdown the container
docker compose down
All commands for the model need to be performed inside of the container. Before training, make sure to set parameters in the config file (configs/config.yaml).
- Train the model
poetry run invoke train