• Stars
    star
    122
  • Rank 292,031 (Top 6 %)
  • Language
    Python
  • Created over 7 years ago
  • Updated over 7 years ago

Reviews

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

Repository Details

YOLO/YOLOv2 inspired deep network for object detection on satellite images (Tensorflow, Numpy, Pandas).

Object detection on satellite images

YOLO/YOLOv2 inspired deep neural network for object detection on satellite images. Built using Tensorflow. Keys features:

  • the model is using an architecture similar to YOLOv2 (batch_norm after each layers, no fully connected layers at the end).
  • We predict only one box per feature map cell instead of 2 as in YOLO.
  • No passthrough layer is used. Predictions are based only on the last layer.
  • There is no Imagenet classification pretraining. The full loss is used from the start.
  • The input images are 250x250 instead of ~450x450. Results should improve with a bigger image size.
  • The learning rate is kept constant throughout training.

Installation

Dependencies: pip install -r requirements.txt

The dataset is/was available on https://www.datasciencechallenge.org/challenges/1/safe-passage/ . preprocess.py lets you transform the 2000x2000 images into 250x250 images and a CSV file with all the objects annotations. The dataset contains only the position of the center of the objects (no bounding boxes). A bounding box is generated. It's just a square centered on the provided position (x,y). The size of the square varies depending on the type of vehicle.

How to use

Train the network with : python main.py --logdir=logs/ --batch_size=64 --ckptdir=checkpoints/

Inference (it will randomly select 10 images and draw bounding boxes): python detect.py

Example

We're using 8 object classes: Motorcycle, Light short rear, Light long rear, Dark short rear, Dark long rear, Red short rear, Red long rear, Light van. Other types of vehicles are ignored.

After training for 100 epochs, you will get the following. The results are generally OK. However some cars are sometimes not detected (for example the red car at the bottom) or found in position with no vehicles. mAP has not been calculated.

example