Spider Breed Classification with Cainvas

Photo by MinooIravani on Dribbble

Spiders also known as Araneae Scientifically have more than 43000 breed .That is really a lot compared to dogs 250 , cats 70 .Although one doesn’t have a daily encounter with them they are a really interesting species . Spider can apparently fish , spider’s web weight to strength ratio even surpasses steel and Iron added to the interesting Blue Blood Colour . I hope that this may have made you a bit interested in Spiders . We are going to try to predict a Spiders Breed , of course by we I mean making Computer to make predictions for us .


  • Problem Statement
  • Library and Concepts
  • Methodology
  • Modelling
  • Kernel Link


We are going to make a model that will predict the Spider’s Breed after an Image is passed to it . We are going to classify it into one out of the 2 Breed (Bold Jumper , Yellow Garden ). We will keep our approach straight and simple .


Convolutional neural network

Image Augmentation




We have RGB Images of size 224×224 . To keep the parameter low we will use multiple Convolutional Layers immediately followed by a Max Pooling Layer . To make our Model more robust and Generalized we will use Image Augmentation . It is a technique to make a model better better by adding certain effects to the Images like Horizontal Flip , Vertical Flip , Rotation ,Width Shifting , Height Shifting ,etc . These are self Explanatory and does exactly as they are named .

Augmentation allows us to increase our dataset introduce new images for our model to learn from and prevent overfitting . But we need to keep it in check as adding a lot of effects can break the model . We will use both the Flips (Horizontal & Vertical ) in our augmentation .



We will be using a CNN architecture for our model as they have proved to be great in Image Related tasks from time to time again .To keep our model straight and simple we will be using Convolution Layers of 32 filters of size 3×3 at the starting layers sandwiched by MaxPooling layers of size 2×2 followed by a Dropout Layer . After Initial Layers we will change our number of filters to 64 and kernel size to 5×5 to capture feature in a better way .

Loading all the Images at once is not a good practise , so we will be using Keras Library Flow from dataframe (with allows us to pass a dataframe and the model will access the images itself ) and Image Data Generator which is responsible for making batches of our data while applying transformations to them .

Data Sample
Accuracy over training
Loss over training

We are achieving about 90 % accuracy .


Notebook Link


Credit: Devansh Chowdhury