BobLiu20 / YOLOv3_PyTorch

Full implementation of YOLOv3 in PyTorch
623 stars 190 forks source link
object-detection pytorch yolo yolov3

YOLOv3

Full implementation of YOLOv3 in PyTorch.

Overview

YOLOv3: An Incremental Improvement

[Paper]
[Original Implementation]

Why this project

Installation

Environment

Training

Download pretrained weights
  1. See weights readme for detail.
  2. Download pretrained backbone wegiths from Google Drive or Baidu Drive
  3. Move downloaded file darknet53_weights_pytorch.pth to wegihts folder in this project.
    Modify training parameters
  4. Review config file training/params.py
  5. Replace YOUR_WORKING_DIR to your working directory. Use for save model and tmp file.
  6. Adjust your GPU device. see parallels.
  7. Adjust other parameters.
    Start training
    cd training
    python training.py params.py
    Option: Visualizing training
    #  please install tensorboard in first
    python -m tensorboard.main --logdir=YOUR_WORKING_DIR   

Evaluate

Download pretrained weights
  1. See weights readme for detail.
  2. Download pretrained yolo3 full wegiths from Google Drive or Baidu Drive
  3. Move downloaded file official_yolov3_weights_pytorch.pth to wegihts folder in this project.
    Start evaluate
    cd evaluate
    python eval_coco.py params.py

Quick test

pretrained weights

Please download pretrained weights official_yolov3_weights_pytorch.pth or use yourself checkpoint.

Start test
cd test
python test_images.py params.py

You can got result images in output folder.

Measure FPS

pretrained weights

Please download pretrained weights official_yolov3_weights_pytorch.pth or use yourself checkpoint.

Start test
cd test
python test_fps.py params.py
Results
Imp. Backbone Input Size Batch Size Inference Time FPS
Paper Darknet53 320 1 22ms 45
Paper Darknet53 416 1 29ms 34
Paper Darknet53 608 1 51ms 19
Our Darknet53 416 1 28ms 36
Our Darknet53 416 8 17ms 58

Credit

@article{yolov3,
    title={YOLOv3: An Incremental Improvement},
    author={Redmon, Joseph and Farhadi, Ali},
    journal = {arXiv},
    year={2018}
}

Reference