Dogs breed detector

Identify a dogs breed on the image (133 known breeds)


Model | Trainable | Inference | Pre-trained

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

Model Description

Build Status

The application applies Transfer learning for dog's breed identification, which is implemented by the means of Tensorflow and Keras:

From a pre-trained CNN model (VGG16 | VGG19 | Resnet50 | InceptionV3 [1]) the last layer is removed, then new Fully Connected (FC) layers are added, which are trained on the dog's dataset.

The original dataset ([2]) consists of 8351 dog's images for 133 breeds divided into:

  • training set (6680 pictures)
  • validation set (835)
  • test set (836)

and amounts for 1080 MB in zipped format (see the dataset link).

N.B.: pre-trained weights can be found here

References

[1] CNN articles:

  • VGG: Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition. CoRR abs/1409.1556 (2014); http://arxiv.org/abs/1409.1556
  • Resnet: He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun: Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, pp. 770-778. 2016. https://arxiv.org/abs/1512.03385
  • InceptionV3: Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jon Shlens, Zbigniew Wojna; The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016, pp. 2818-2826. https://arxiv.org/abs/1512.00567

[2] Dogs dataset: https://s3-us-west-1.amazonaws.com/udacity-aind/dog-project/dogImages.zip

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-dogs_breed_det
$ docker run -ti -p 5000:5000 deephdc/deep-oc-dogs_breed_det

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
$ git clone https://github.com/indigo-dc/udocker
$ cd udocker
$ pip install .
$ udocker pull deephdc/deep-oc-dogs_breed_det
$ udocker create deephdc/deep-oc-dogs_breed_det
$ udocker run -p 5000:5000  deephdc/deep-oc-dogs_breed_det

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.

Categories

tensorflow, image classification, cnn, trainable, inference, pre-trained, api-v2

License

License: MIT

Configure and train

Get the code

Github Docker Hub

Get the data

Dataset