This project is an intelligent image classification system that uses deep learning to distinguish between cats and dogs in photographs. Built with TensorFlow and Keras, it demonstrates the practical application of Convolutional Neural Networks (CNNs) for computer vision tasks.
The CNN model features a sophisticated architecture designed for binary image classification, processing images at 256x256 pixel resolution with RGB channels. It utilizes convolutional layers with max pooling for feature extraction, followed by dense layers for classification decisions. The model employs sigmoid activation for binary output, optimized with Adam optimizer and binary crossentropy loss function.
The model achieves impressive performance metrics with approximately 85% validation accuracy, demonstrating balanced performance across both classes with 85% precision, 84% recall, and 84% F1 score. The training utilized the popular Dogs vs Cats dataset from Kaggle, comprising approximately 25,000 images, providing substantial data for robust learning without class bias.
The project features a user-friendly web application built with Streamlit and deployed on Hugging Face Spaces, making it globally accessible without technical setup requirements. The interface supports multiple input methods including drag-and-drop file uploads, image pasting, and URL-based linking. Users receive immediate feedback with clear predictions and confidence scores displayed as intuitive progress bars.
The development follows best practices with separate Jupyter notebook for model training and clean deployment scripts. The modern Python stack includes NumPy for computations, Pillow for image processing, and Requests for web inputs. This project showcases the complete machine learning pipeline from data preprocessing and model training to web application development and cloud deployment, making it an excellent demonstration of end-to-end ML application development.