Conus species classifier

Classify conus images among 70 species.


Model | Trainable | Inference | Pre-trained

Published by DEEP-Hybrid-DataCloud Consortium
Created: - Updated:

Model Description

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 conus marine snails at species level [1] in collaboration with the Natural Science Museum of Madrid. The taxonomy of these snails has changed significantly several times during recent years and the introduction of Deep Learning techniques allowing to classify them is a very valuable tool for the experts.

This Docker container contains a trained Convolutional Neural network optimized for conus identification using images. The architecture used is an Xception [2] 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.

The training dataset has been provided by the Natural Science Museum of Madrid and it consists on a dataset containing images of 68 species of conus covering three different regions: the Panamic region; the South African region; and the Western Atlantic and Mediterranean region.

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

References

[1]: Puillandre, N.; Duda, T.F.; Meyer, C.; Olivera, B.M.; Bouchet, P. (2014). One, four or 100 genera? A new classification of the cone snails. Journal of Molluscan Studies. 81 (1): 1-23.

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

Test this module

You can test and execute this module in various ways.

Excecute 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-conus-classification-tf
$ docker run -ti -p 5000:5000 deephdc/deep-oc-conus-classification-tf

Execute on your computer 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
(udocker) $ pip install udocker
(udocker) $ udocker pull deephdc/deep-oc-conus-classification-tf
(udocker) $ udocker create deephdc/deep-oc-conus-classification-tf
(udocker) $ udocker run -p 5000:5000  deephdc/deep-oc-conus-classification-tf

In either case, once the module is running, point your browser to http://127.0.0.1:5000/ 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.

Train this module

You can train this model using the DEEP framework. In order to execute this module in our pilot e-Infrastructure you would need to be registered in the DEEP IAM.

Once you are registedered, you can go to our training dashboard to configure and train it.

For more information, refer to the user documentation.

Configure and train

Get the code

Github Docker Hub

Get the data

Dataset Training files

Citing this module

Citation