ultralytics/xview-yolov3
YOLOv3 training, preprocessing, validation, and inference for object detection in xView satellite imagery and the xView detection challenge.
What it solves
This project provides a specialized implementation for training the YOLOv3 object detection model on the xView dataset, which consists of high-resolution satellite imagery. It aims to help users detect objects in remote sensing data, a task that is challenging due to the scale and variety of objects found in aerial views.
How it works
The project uses the YOLOv3 architecture and implements a specific pipeline for satellite imagery:
- Preprocessing: It cleans the data using sigma-rejection for outlier removal and generates 30 custom k-means anchors tailored to the specific bounding box sizes and aspect ratios of the xView dataset.
- Training: The model is trained on 608x608 pixel chips randomly sampled from full-resolution images. It includes a resume feature to continue training from the last saved checkpoint.
- Augmentation: To prevent overfitting and improve robustness, the system applies various image transformations during training, including rotation, translation, scaling, reflection, and HSV color adjustments.
- Inference: A dedicated script allows users to run the trained model on new satellite images to detect objects and draw bounding boxes.
Who it’s for
This is primarily for participants in the xView Challenge, researchers, and developers working on computer vision for remote sensing and satellite imagery analysis.
Highlights
- Custom Anchor Generation: Uses k-means to optimize bounding box predictions for satellite-specific objects.
- Comprehensive Augmentation: Includes a wide array of geometric and color transformations to improve model generalization.
- Checkpointing: Supports resuming training from interrupted sessions.
- Ready-to-use Inference: Provides scripts to quickly apply trained weights to new imagery.