Skip to main content

Added keras to the requirements. Added example CNN classification script in examples.

Project description

Tools for fast prototyping of object detection and classification solutions on DG imagery. Relies heavily on popular open source machine learning (ML) toolkits such as scikit-learn. It also includes a collection of auxiliary tools necessary for pre- and post- ML processing. These are:

  • data_extractors: get pixels and metadata from georeferenced imagery; uses geoio (;

  • features: functions to derive features from pixels;

  • crowdsourcing: interface with Tomnod to obtain training/test/target data and to write machine output to Tomnod DB;

  • geojson_tools: functions to manipulate geojson files.

Example scripts can be found in /examples. These can be used as a guideline to create object detection/classification workflows which involve one or more of the following steps:

  1. retrieve training, test and target data from the Tomnod database;

  2. train the algorithm;

  3. test the algorithm on the test data and compute accuracy metrics;

  4. deploy the algorithm on the target data for detection or classification;

  5. write results back to the Tomnod database.

Step 1 can be omitted if data is available from a source other than Tomnod. (However, the data must respect the geojson format found in /examples.) Step 5 can also be omitted if we don’t want to write the results back to Tomnod.


For Ubuntu, install conda with the following commands (choose default options at prompt):


For OS X, install conda with the following commands (choose default options at prompt):


Then run:


so that modifications in your .bashrc take effect.

Create a conda environment:

conda create -n env python ipython numpy scipy gdal git

Activate the environment:

source activate env

Upgrade pip (if required):

pip install pip --upgrade

Install mltools:

pip install mltools

If installation fails for some of the dependencies, (try to) install them with conda:

conda install <dependency_name>

You can now copy the scripts found in /examples in your project directory or create your own. Keep in mind that the imagery has to be in your project folder and it should have the same name as the image_name property in the geojson. Imagery in the format required by a MLA (e.g., pansharpened, multi-spectral or orthorectified) can be obtained with the gbdxtools package (

To exit your conda virtual environment:

source deactivate


Activate the conda environment:

source activate env

Clone the repo:

git clone

cd mltools

Install the requirements:

pip install -r requirements.txt

Please follow this python style guide: 80-90 columns is fine.

To exit your conda virtual environment:

source deactivate


Here is a slide my initial ideas on mltools:

The vision is to use the solutions created with mltools as part of a Crowd+Machine system along the lines of this document:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mltools-1.0.6.tar.gz (8.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page