Image Classification with CNN
This project focuses on classifying images from the CIFAR-10 dataset using Convolutional Neural Networks (CNNs). The goal was to improve baseline accuracy through optimized model architecture, data preprocessing, and experimentation with different deep learning models.
Built as part of the AI Engineering Bootcamp (Saudi Digital Academy), the system explores multiple state-of-the-art CNN architectures and demonstrates practical skills in model design, training, evaluation, and fine-tuning.
Objectives:
Build and train deep learning models for image classification tasks.
Improve accuracy over baseline models using advanced CNN architectures.
Compare the performance of different models (ResNet, VGG16, InceptionNet, EfficientNet).
Optimize preprocessing techniques to enhance model generalization.
Key Features:
Data Preprocessing
Applied normalization, resizing, and augmentation (flipping, rotation, cropping).
Improved model generalization by increasing dataset diversity.
CNN Model Development
Built a custom CNN and trained it on CIFAR-10.
Implemented and compared performance across pretrained models: ResNet, VGG16, InceptionNet, and EfficientNet.
Performance Optimization
Achieved 92% accuracy and F1 score, surpassing the 85% baseline.
Tuned hyperparameters including learning rate, batch size, and dropout.
Evaluation Metrics
Evaluated models using accuracy, precision, recall, F1 score, and confusion matrix.
Visualized learning curves and prediction results for analysis.
List of tools and technologies:
Programming Language: Python
Deep Learning Libraries: PyTorch, TensorFlow, Keras
Image Processing: OpenCV, torchvision, Pillow
CNN Architectures: Custom CNN, ResNet, VGG16, InceptionNet, EfficientNet
Data Handling: pandas, NumPy
Visualization: Matplotlib, Seaborn
Model Evaluation: scikit-learn (for metrics and confusion matrix)
Version Control: Git, GitHub
Training Environment: Google Colab, Jupyter Notebook