GithubHelp home page GithubHelp logo

jaedukseo / xview-yolov3 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ultralytics/xview-yolov3

0.0 0.0 0.0 61.38 MB

xView 2018 Object Detection Challenge: YOLOv3 Training and Inference.

Home Page: https://challenge.xviewdataset.org/

License: GNU Affero General Public License v3.0

Shell 2.80% Python 88.05% MATLAB 9.15%

xview-yolov3's Introduction

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.

xview-yolov3's People

Contributors

glenn-jocher avatar victor30608 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.