This repository aims to create a YoloV3 detector in Pytorch and Jupyter Notebook. I'm trying to take a more "oop" approach compared to other existing implementations which constructs the architecture iteratively by reading the config file at Pjreddie's repo. The notebook is intended for study and practice purpose, many ideas and code snippets are taken from various papers and blogs. I will try to comment as much as possible. You should be able to just Shift-Enter to the end of the notebook and see the results.
- Python 3.6.4
- Pytorch 0.4.0
- Jupyter Notebook 5.4.0
- OpenCV 3.4.0
- Cuda Support
Just finished forward pass. Moving to back-propagation soon.
Completed:
- Basic Conv Blocks
- Residual Blocks
- Image Loading
- Darknet53
- Upsample
- Add route layer support for Darknet53
- Map2cfg - support indexing scheme from cfg file
- Yolo Detection Layer
- Weight Loading
- Bounding Box Drawing
- Letterbox Transforms
- IOU - Jaccard Overlap
- Non-max suppression (NMS)
- Post-processing from network output
- Dataset to read from folder
To Do:
- Color palette for bounding boxes
- Imaging saving
- Feed Video to detector
- Fix possible CUDA memory leaks
- Fix class and variable names
- Training
- Loss Function
- Parse COCO/VOC dataset
- Add new classes to the detector