/ Machine Learning

YOLOv3 - Training and inference in PyTorch

YOLOv3 - Training and inference in PyTorch


This directory contains software developed by Ultralytics LLC. For more information on Ultralytics projects please visit: http://www.ultralytics.com


Python 3.6 or later with the following pip3 install -U -r requirements.txt packages:

  • numpy
  • torch
  • opencv-python


Run train.py to begin training after downloading COCO data with data/get_coco_dataset.sh. Each epoch trains on 120,000 images from the train and validate COCO sets, and tests on 5000 images from the COCO validate set. An Nvidia GTX 1080 Ti will process ~10 epochs/day with full augmentation, or ~15 epochs/day without input image augmentation. Loss plots for the bounding boxes, objectness and class confidence should appear similar to results shown here (coming soon)


Checkpoints will be saved in /checkpoints directory. Run detect.py to apply trained weights to an image, such as zidane.jpg from the data/samples folder, shown here.


Run test.py to test the latest checkpoint on the 5000 validation images. Joseph Redmon's official YOLOv3 weights produce a mAP of .581 using this PyTorch implementation, compared to .579 in darknet (https://arxiv.org/abs/1804.02767).