Gaussian YOLOv3 (An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving (ICCV, 2019)) implementation in Keras and Tensorflow
This is an implementation of Gaussian YOLOv3 on Keras and Tensorflow. The project is based on qqwweee/keras-yolo3 and fizyr/keras-retinanet. Thanks for their hard work. The official implementation is jwchoi384/Gaussian_YOLOv3
As in the official implementation, there is a hyper parameter sigma_const
. I get best result on Pascal VOC when set it to be 0.3.
The best result (mAP50 0.8535) is a little better than the one (mAP50 0.8500) I got by original YOLOv3. I am not sure whether the improvement is due to random training or benefits from Gaussian logic.
python3 yolo/inference.py
to test your image by specifying image path and model path there.
python3 train.py --freeze-body yolo --gpu 0 --batch-size 32 --random-transform --compute-val-loss pascal datasets/VOC2012
to start training with lr=1e-3 then stop when val mAP keep dropping.python3 train.py --snapshot <xxx> --freeze-body darknet --gpu 0 --batch-size 32 --random-transform --compute-val-loss pascal datasets/VOC2012
to start training with lr=1e-4 then top when val mAP keep dropping.python3 train.py --snapshot <xxx> --freeze-body none --gpu 0 --batch-size 32 --random-transform --compute-val-loss pascal datasets/VOC2012
to start training with lr=1e-5 and then set lr=1e-6 when val mAP when keep dropping.python3 eval/common.py
to evaluate by specifying model path there.