Phytoplankton species classifier

By DEEP-Hybrid-DataCloud Consortium | Created: - Updated:

tensorflow, docker, deep learning, trainable, inference, pre-trained, image classification, api-v1

License: Apache 2.0

Build Status

Citizen science has become a powerful force for scientific inquiry, providing researchers with access to a vast array of data points while connecting non scientists to the real process of science. This citizen-researcher relationship creates a very interesting synergy, allowing for the creation, execution, and analysis of research projects. With this in mind, a Convolutional Neural Network has been trained to identify phytoplankton in collaboration with the Vlaams Instituut voor de Zee.

This Docker container contains a trained Convolutional Neural network optimized for phytoplankton identification using images. The architecture used is an Xception [1] network using Keras on top of Tensorflow.

The PREDICT method expects an RGB image as input (or the url of an RGB image) and will return a JSON with the top 5 predictions.

As training dataset we have used a collection of images from the Vlaams Instituut voor de Zee which consists of around 650K images from 60 classes of phytoplankton.

This service is based in the Image Classification with Tensorflow model.


[1]: Chollet, Francois. Xception: Deep learning with depthwise separable convolutions arXiv preprint (2017): 1610-02357.

Run locally on your computer

Using Docker

You can run this module directly on your computer, assuming that you have Docker installed, by following these steps:

$ docker pull deephdc/deep-oc-phytoplankton-classification-tf
$ docker run -ti -p 5000:5000 deephdc/deep-oc-phytoplankton-classification-tf

Using udocker

If you do not have Docker available or you do not want to install it, you can use udocker within a Python virtualenv:

$ virtualenv udocker
$ source udocker/bin/activate
$ git clone
$ cd udocker
$ pip install .
$ udocker pull deephdc/deep-oc-phytoplankton-classification-tf
$ udocker create deephdc/deep-oc-phytoplankton-classification-tf
$ udocker run -p 5000:5000  deephdc/deep-oc-phytoplankton-classification-tf

Once running, point your browser to and you will see the API documentation, where you can test the module functionality, as well as perform other actions (such as training).

For more information, refer to the user documentation.