This project is to improve YOLOv3 performance by GIOU instead of IOU and the integration of conv and batch_normalization layers
- Ubuntu 16.04
- darknet
- Python 3.5
LISA Traffic Sign Dataset: Laboratory for Intelligent and Safe Automobiles Link: http://cvrr.ucsd.edu/LISA/lisa-traffic-sign-dataset.html
- Download darknet framework Link: https://github.com/pjreddie/darknet
- Download pretrained model weight Link: https://pjreddie.com/media/files/darknet53.conv.74
- Convert the data format of LISA dataset by pip install Jinja2-2.10.1-py2.py3-none-any.whl and parse_lisa.py on LISA_TS/allAnnotations.csv
- Add data/voc-lisa.names
- Add cfg/voc-lisa.data
- Add cfg/yolov3-voc-lisa-giou.cfg with arg set up
- For the integration of conv and batch_normalization layers, define fuse_conv_batchnorm(network net) in include/darknet.h and src/network.c, and call it in src/demo.c and examples/detector.c
- For given the choice between optimizing a metric itself vs. a surrogate loss function, the optimal choice is the metric itself. The usage of GIOU insteads of l-1 and l-2 norms
- ./darknet detector train cfg/voc-lisa.data cfg/yolov3-voc-lisa-giou.cfg darknet53.conv.74 2>1
- Train model with LISA by CuDNN and OpenCV
- The visualization of training performance
- The usage of Clustering algorithms on Anchor Box size
- Compress YOLOv3
- Convert trained model to Caffe model for the deployment of Embedded system
- Darknet: Open Source Neural Networks in C, https://pjreddie.com/darknet/
- Generalized Intersection over Union: a Metric and a Loss for Bounding Box Regression, https://arxiv.org/pdf/1902.09630.pdf