pythonkerasobject-detectionconv-neural-networksatellite-image

Suggested CNN Frameworks for Object Detection in Satellite Imagery?


I'm looking to detect boats in large satellite scenes of the ocean. I'm successfully applied matterport's Mask-RCNN setup on small subsets of satellite imagery but it is way too slow to analyze huge images like WorldView. I'm looking for something fast that can do bounding boxes, is in python, implemented in Keras, and ideally optimized (or well documented so I can optimize it) for satellite imagery. Any suggestions?

I've found a couple promising leads:

I may try to customize this implementation of RetinaNet in Keras for satellite imagery following the suggestions from the YOLT paper but would love other suggestions!


Solution

  • This question is now long unanswered so I thought I'd answer with my solution. I implemented retinanet for a number of satellite detection problems with good results. This CNN is outlined in the paper Focal Loss for Dense Object Detection which you can find here: https://arxiv.org/abs/1708.02002. I used this keras library for implementation: https://github.com/fizyr/keras-retinanet.

    I've used it to detect seals in drone imagery: https://bigdata.duke.edu/projects/deep-learning-aerial-wildlife-surveillance

    Birds in drone imagery: https://research.repository.duke.edu/concern/datasets/kp78gh20s

    And even whales in satellite imagery. All of which it did well with minimal adjustment.