Skip to content

This notebook demonstrates an image classification pipeline using Convolutional Neural Networks (CNNs) built with TensorFlow. It primarily focuses on reading, preprocessing, and preparing image data for training or inference using a CNN architecture.

Notifications You must be signed in to change notification settings

Arjunsuryas/ImageClassification_CNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Classification Using CNN Image Classification is the task of assigning a label (cat, dog, digit, etc.) to an input image. A Convolutional Neural Network (CNN) is the most common deep-learning architecture used for this job. CNNs automatically learn spatial patterns such as edges, textures, shapes, and high-level structures from images.

How CNNs Work (Concept Overview) Convolution Layers

Learn features by sliding filters (kernels) across the image.

Detects low-level features: edges, gradients, corners.

Activation Function (ReLU)

Introduces non-linearity.

Keeps positive values, sets negative ones to zero.

Pooling Layers

Downsample feature maps (max pooling is common).

Reduces computation and prevents overfitting.

Flatten + Dense Layers

Flatten converts 2D feature maps into 1D.

Dense layers learn final classification boundaries.

Output Layer (Softmax)

Produces probability scores for each class.

Training Process Load dataset (e.g., MNIST digits).

Normalize and preprocess images.

Build CNN model in TensorFlow or similar framework.

Train on labeled data.

Evaluate performance using test images.

Use the trained model for predictions.

✅ Description of my Provided Files here list shows a complete CNN-based image classification project using MNIST digits.

📁 Core CNN Model & Training Training a CNN on MNIST with TensorFlow Keras.py Trains a CNN using TensorFlow/Keras on the MNIST dataset.

Building a CNN for MNIST Digit Classification in TensorFlow.py Builds the architecture of the digit-classification CNN.

Test Accuracy of MNIST CNN.py Evaluates the trained model on the MNIST test set.

Predicting Custom Images Using Trained MNIST CNN.py Loads user-provided images, preprocesses them, and predicts digits using the trained model.

📁 Data Loading & Preprocessing Loading and Preprocessing MNIST for CNNs in TensorFlow.py Loads MNIST, normalizes pixel values, reshapes for CNN input.

Image Preprocessing for CNN.py Generic image preprocessing steps (resizing, grayscale, normalization).

Loading Image Files Code for loading external images (png/jpg) for prediction.

Importing Libraries.py Contains all necessary imports for TensorFlow, OpenCV, NumPy, etc.

📁 Edge Detection & Convolution Experiments These scripts show manual convolutions and edge detection, which help explain how CNNs work internally.

Edge Detection using Convolution Operation_TensorFlow.py Demonstrates edge detection using manually defined kernels (Sobel, Prewitt).

CNN Digit Prediction with Edge Detection Preprocessing.py Applies edge detection before feeding images into the CNN for prediction.

convolution_relu_edge_detection.py Implements convolution + ReLU to show how feature extraction works.

tf-maxpool-edge-detect.py Demonstrates max pooling (downsampling) on edge-detected images.

📁 Demo Video Image_Classification_Demo.mp4 Likely a demonstration video showing the workflow: preprocessing → CNN → prediction.

📌 Overall Project Description I have built a complete educational pipeline that:

Loads and preprocesses MNIST

Constructs and trains a CNN

Tests the trained model

Predicts digits from custom images

Explores underlying CNN operations such as:

Convolutions

ReLU activation

Max pooling

Edge detection

About

This notebook demonstrates an image classification pipeline using Convolutional Neural Networks (CNNs) built with TensorFlow. It primarily focuses on reading, preprocessing, and preparing image data for training or inference using a CNN architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages