CNN Image Classification - Image Classification Using CNN
CNN Image Classification - Image Classification Using CNN
×
[Journey To Success] This Roadmap is followed by 10000+ Data Science Professionals...
Download Now
Home
Devansh Sharma — Published On January 11, 2021 and Last Modified On June 14th, 2023
Advanced Classification Computer Vision Deep Learning Image Image Analysis Project Python Structured Data Supervised Technique
Image classification using Convolutional Neural Networks (CNN) has revolutionized computer vision tasks by enabling
automated and accurate recognition of objects within images. CNN-based image classification algorithms have gained immense
popularity due to their ability to learn and extract intricate features from raw image data automatically. This article will explore
the principles, techniques, and applications of image classification using CNNs. We will delve into the architecture, training
process, and CNN image classification evaluation metrics. By understanding the workings of CNNs for image classification, we
can unlock many possibilities for object recognition, scene understanding, and visual data analysis.
Table of contents
Why CNN for Image Classification?
How Are CNN Used Image Classification?
Tutorial: CNN Image Classification with Keras and CIFAR-10
Step 1: Choose a Dataset
Step 2: Prepare Dataset for Training
Step 3: Create Training Data
Step 4: Shuffle the Dataset
Step 5: Assigning Labels and Features
Step 6: Normalising X and Converting Labels to Categorical Data
Step 7: Split X and Y for Use in CNN
Step 8: Define, Compile and Train the CNN Model
Step 9: Accuracy and Score of Model
End Note
Frequently Asked Questions
For example, if we have a 50 X 50 image of a cat, and we want to train our traditional ANN on that image to classify it into a dog
or a cat the trainable parameters become –
(50*50) * 100 image pixels multiplied by hidden layer + 100 bias + 2 * 100 output neurons + 2 bias = 2,50,302
We use filters when using CNNs. Filters exist of many different types according to their purpose.
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 1/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Filters help us exploit the spatial locality of a particular image by enforcing a local connectivity pattern between neurons.
Convolution basically means a pointwise multiplication of two functions to produce a third function. Here one function is our
image pixels matrix and another is our filter. We slide the filter over the image and get the dot product of the two matrices. The
resulting matrix is called an “Activation Map” or “Feature Map”.
There are multiple convolutional layers extracting features from the image and finally the output layer.
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 2/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
HowClassification
Image Are CNNUsingUsed Image
CNN Classification?
| Step-wise Tutorial
Image classification involves assigning labels or classes to input images. It is a supervised learning task where a model is trained
on labeled image data to predict the class of unseen images. CNN are commonly used for image classification as they can learn
hierarchical features like edges, textures, and shapes, enabling accurate object recognition in images. CNNs excel in this task
because they can automatically extract meaningful spatial features from images. Here are different layers involved in the
process:
Input Layer
The input layer of a CNN takes in the raw image data as input. The images are typically represented as matrices of pixel values.
The dimensions of the input layer correspond to the size of the input images (e.g., height, width, and color channels).
Convolutional Layers
Convolutional layers are responsible for feature extraction. They consist of filters (also known as kernels) that are convolved
with the input images to capture relevant patterns and features. These layers learn to detect edges, textures, shapes, and other
important visual elements.
Pooling Layers
Pooling layers reduce the spatial dimensions of the feature maps produced by the convolutional layers. They perform
downsampling operations (e.g., max pooling) to retain the most salient information while discarding unnecessary details. This
helps in achieving translation invariance and reducing computational complexity.
Output Layer
The output layer represents the final layer of the CNN. It consists of neurons equal to the number of distinct classes in the
classification task. The output layer provides each class’s classification probabilities or predictions, indicating the likelihood of
the input image belonging to a particular class.
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 3/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Step
Image1:Classification
Choose a Dataset
Using CNN | Step-wise Tutorial
Choose a dataset of your interest or you can also create your own image dataset for solving your own image classification
problem. An easy place to choose a dataset is on kaggle.com.
This dataset contains 12,500 augmented images of blood cells (JPEG) with accompanying cell type labels (CSV). There are
approximately 3,000 images for each of 4 different cell types grouped into 4 different folders (according to cell type). The cell
types are Eosinophil, Lymphocyte, Monocyte, and Neutrophil.
Here are all the libraries that we would require and the code for importing them:
import tensorflow as tf
tf.enable_eager_execution()
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 4/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Step
Image4:Classification
Shuffle the Dataset
Using CNN | Step-wise Tutorial
random.shuffle(training)
X =[]
y =[]for features, label in training:
X.append(features)
y.append(label)
X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 3)
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 5/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Image Classification
batch_size = 16 Using CNN | Step-wise Tutorial
nb_classes =4
nb_epochs = 5
img_rows, img_columns = 200, 200
img_channel = 3
nb_filters = 32
nb_pool = 2
nb_conv = 3
model = tf.keras.Sequential([
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation=tf.nn.relu,
input_shape=(200, 200, 3)),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Conv2D(32, (3,3), padding='same', activation=tf.nn.relu),
tf.keras.layers.MaxPooling2D((2, 2), strides=2),
tf.keras.layers.Dropout(0.5),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation=tf.nn.relu),
tf.keras.layers.Dense(4, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(X_train, y_train, batch_size = batch_size, epochs = nb_epochs, verbose = 1,
validation_data = (X_test, y_test))
In these 9 simple steps, you would be ready to train your own Convolutional Neural Networks model and solve real-world
problems using these skills. You can practice these skills on platforms like Analytics Vidhya and Kaggle. You can also play around
by changing different parameters and discovering how you would get the best accuracy and score. Try changing the batch_size,
the number of epochs or even adding/removing layers in the CNN model, and have fun!
End Note
In conclusion, CNN image classification has revolutionized the field of computer vision, enabling accurate recognition of objects
within images. With its ability to automatically learn and extract complex features, CNNs have become a powerful tool for
various applications. To further enhance your understanding and skills in CNN image classification and other advanced data
science techniques, consider enrolling in our Blackbelt Program. This comprehensive program offers in-depth knowledge and
practical experience, empowering you to become a proficient data scientist.
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 6/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Q2. What
Image is CNN classifier
Classification for image
Using CNN classification?
| Step-wise Tutorial
A. CNN classifier for image classification is a CNN-based model specifically designed to classify images into different predefined
classes. It learns to extract relevant features from input images and map them to the corresponding classes, enabling accurate
image classification.
view more
Download
Analytics Vidhya App for the Latest blog/Article
Design Thinking in Power BI Quick Notes on SAS Macros for Efficient Usage
"print(img_array.shape)" when is try to run this line in colab I get error like "print(img_array.shape)" please help me to rectify this
Reply
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 7/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Image Classification
Lisbertha says: Using CNN | Step-wise Tutorial
May 08, 2023 at 4:20 pm
Hello! I was just wondering, in Step 2: Prepare Dataset for Training, where does the img_array variable come from? Is this just the
path_test?
Reply
Leave a Reply
Your email address will not be published. Required fields are marked *
Comment
Name* Email*
Website
Submit
Top Resources
10 Best AI Image Generator Tools to Use in 2023 Top 10 AI Skills to Have for Landing a Job..
Top 10 SQL Projects for Data Analysis Understand Random Forest Algorithms With Examples
(Updated 2023)
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 8/9
9/8/23, 6:48 PM CNN Image Classification | Image Classification Using CNN
Image Classification
avcontentteam Using CNN | Step-wise Tutorial
- JUL 16, 2023 Sruthi E R - JUN 17, 2021
Companies Visit us
Post Jobs
Trainings
Hiring Hackathons
Advertising
© Copyright 2013-2023 Analytics Vidhya. Privacy Policy Terms of Use Refund Policy
https://www.analyticsvidhya.com/blog/2021/01/image-classification-using-convolutional-neural-networks-a-step-by-step-guide/ 9/9