• Stars
    star
    222
  • Rank 179,123 (Top 4 %)
  • Language
    Python
  • License
    GNU Affero Genera...
  • Created over 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

xView 2018 Object Detection Challenge: YOLOv3 Training and Inference.

Introduction

This directory contains software developed by Ultralytics LLC, and is freely available for redistribution under the MIT license. For more information on Ultralytics projects please visit: http://www.ultralytics.com.

Description

The https://github.com/ultralytics/xview-yolov3 repo contains code to train YOLOv3 on the xView training set for the xView challenge: https://challenge.xviewdataset.org/. Credit to Joseph Redmon for YOLO.

Requirements

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

  • numpy
  • scipy
  • torch
  • opencv-python
  • h5py
  • tqdm

Download Data

Download xView data from https://challenge.xviewdataset.org/data-download.

Training

Before training, targets are cleaned up, removing outliers via sigma-rejection and creating 30 new k-means anchors for c60_a30symmetric.cfg with the MATLAB file utils/analysis.m:

Start Training: Run train.py to begin training after downloading xView data with and specifying xView path on line 41 (local) or line 43 (cloud).

Resume Training: Run train.py -resume 1 to resume training from the most recently saved checkpoint latest.pt.

Each epoch consists of processing 8 608x608 sized chips randomly sampled from each (augmented) image at full resolution. An Nvidia GTX 1080 Ti will run about 100 epochs per day. Loss plots for the bounding boxes, objectness and class confidence should appear similar to results shown here. Note that overtraining starts to become a significant issue past about 200 epochs. Best validation mAP is 0.16 after 300 epochs (3 days), corresponding to a training mAP of 0.30.

Image Augmentation

datasets.py applies random OpenCV-powered (https://opencv.org/) augmentation to the full-resolution input images in accordance with the following specifications. 8 608 x 608 sized chips are then selected at random from the augmented image for training. Augmentation is applied only during training, not during inference. Bounding boxes are automatically tracked and updated with the images.

Augmentation Description
Translation +/- 1% (vertical and horizontal)
Rotation +/- 20 degrees
Shear +/- 3 degrees (vertical and horizontal)
Scale +/- 30%
Reflection 50% probability (vertical and horizontal)
HSV Saturation +/- 50%
HSV Intensity +/- 50%

Inference

Checkpoints will be saved in /checkpoints directory. Run detect.py to apply trained weights to an xView image, such as 5.tif from the training set, shown here.

Citation

DOI

Contact

Issues should be raised directly in the repository. For additional questions or comments please email Glenn Jocher at [email protected] or visit us at https://contact.ultralytics.com.

More Repositories

1

yolov5

YOLOv5 πŸš€ in PyTorch > ONNX > CoreML > TFLite
Python
45,908
star
2

ultralytics

NEW - YOLOv8 πŸš€ in PyTorch > ONNX > OpenVINO > CoreML > TFLite
Python
28,373
star
3

yolov3

YOLOv3 in PyTorch > ONNX > CoreML > TFLite
Python
9,822
star
4

JSON2YOLO

Convert JSON annotations into YOLO format.
Python
448
star
5

flickr_scraper

Simple Flickr Image Scraper
Python
173
star
6

assets

Ultralytics assets
99
star
7

hub

Ultralytics HUB tutorials and support
Jupyter Notebook
70
star
8

velocity

Structure From Motion (SFM) for vehicle speed
Python
31
star
9

stars

Count GitHub Stars ⭐
Python
23
star
10

kinect

3D Scene Reconstruction in MATLAB with the Microsoft Kinect depth sensor.
MATLAB
14
star
11

wave

WAveform Vector Exploitation (WAVE): Machine Learning for particle physics detectors.
Python
14
star
12

functions-matlab

Common functions employed throughout various Ultralytics projects.
MATLAB
11
star
13

ultralytics.github.io

Ultralytics Docs at http://docs.ultralytics.com
HTML
9
star
14

petsys

LYSO-SiPM gamma scatter analysis from data collected by Ultralytics at PETSYS labs in Lisbon, Portugal, 2017.
Python
7
star
15

pip

Python package template repository
Python
7
star
16

docs

Ultralytics Docs at https://docs.ultralytics.com/
7
star
17

.github

Ultralytics GitHub default .github repository.
6
star
18

xview-docker

xView 2018 Object Detection Challenge: Docker container submission code
Python
6
star
19

mnist

MNIST Sandbox for testing neural network architectures.
Python
5
star
20

agm2015

AntiNeutrino Global Map (AGM) 2015 production code
MATLAB
5
star
21

miniTimeCube

miniTimeCube (mTC) antineutrino detector simulation and analysis.
MATLAB
4
star
22

msvm

Minimum Separation Vector Mapping (MSVM)
MATLAB
3
star
23

ntc

Neutron TimeCube (NTC) neutron detector simulation and analysis
MATLAB
3
star
24

sandd

Python
2
star
25

magellan

Earth observation software powered by Machine Learning (ML). Viewable in Google Maps and WebGL Earth.
MATLAB
2
star
26

package-framework

Repository structure framework for future Ultralytics projects
Python
2
star
27

ios_screenshots

Python
2
star
28

mkdocs

MkDocs plugin for Ultralytics Docs at https://docs.ultralytics.com
Python
2
star
29

nudar

NeUtrino Detection and Ranging (NUDAR): earth modeling and neutrino detection simulation software
MATLAB
2
star
30

host

1
star
31

iSky

Swift
1
star
32

handbook

A guide to Ultralytics' mission, vision, values, and practices, providing key insights and resources for aligning with our goals.
1
star
33

yolo-ios-app

Ultralytics YOLO iOS App source code for using YOLO in your own iOS apps!
Swift
1
star