/raster-vision

deep learning for aerial/satellite imagery

Primary LanguagePythonOtherNOASSERTION

Raster Vision

License Join the chat at https://gitter.im/azavea/raster-vision Docker Repository on Quay

Note: this project is under development and may be difficult to use at the moment.

The overall goal of Raster Vision is to make it easy to train and run deep learning models over aerial and satellite imagery. At the moment, it includes functionality for making training data, training models, making predictions, and evaluating models for the task of object detection implemented via the Tensorflow Object Detection API. It also supports running experimental workflows using AWS Batch. The library is designed to be easy to extend to new data sources, machine learning tasks, and machine learning implementation.

Our future work includes:

  • more documentation and unit tests
  • scalable predictions using parallelism
  • classification and segmentation

We are shooting for a first release in Summer 2018.

Why do we need yet another deep learning library? In traditional object detection, each image is a small PNG file and contains a few objects. In contrast, when working with satellite and aerial imagery, each image is a set of very large GeoTIFF files and contains hundreds of objects that are sparsely distributed. In addition, annotations and predictions are represented in geospatial coordinates using GeoJSON files.

Documentation

Contact and Support

You can find more information and talk to developers (let us know what you're working on!) at:

Previous work on semantic segmentation and tagging

In the past, we developed prototypes for semantic segmentation and tagging in this repo, which were discussed in our segmentation , and tagging blog posts. This implementation has been removed from the develop branch and is unsupported, but can still be found at this tag. Similarly, an outdated prototype of object detection can be found at this tag under the rv module.

Docker images

Raster Vision is publishing docker images to quay.io. The tag for the raster-vision image determines what type of image it is:

  • The cpu-* tags are for running the CPU containers.
  • The gpu-* tags are for running the GPU containers.

We publish a new tag per merge into develop, which is tagged with the first 7 characters of the commit hash. To use the latest version, pull the latest suffix, e.g. raster-vision:gpu-latest. Git tags are also published, with the github tag name as the docker tag suffix.

Contributing

We are happy to take contributions! It is best to get in touch with the maintainers about larger features or design changes before starting the work, as it will make the process of accepting changes smoother.

Everyone who contributes code to Raster Vision will be asked to sign the Azavea CLA, which is based off of the Apache CLA.

  1. Download a copy of the Raster Vision Individual Contributor License Agreement or the Raster Vision Corporate Contributor License Agreement

  2. Print out the CLAs and sign them, or use PDF software that allows placement of a signature image.

  3. Send the CLAs to Azavea by one of:

  • Scanning and emailing the document to cla@azavea.com
  • Faxing a copy to +1-215-925-2600.
  • Mailing a hardcopy to: Azavea, 990 Spring Garden Street, 5th Floor, Philadelphia, PA 19107 USA