A portfolio-grade image classification web application built using a pre-trained MobileNetV2 model.
The app allows users to upload an image and receive the top-3 predictions with confidence scores in real time.
This project demonstrates an end-to-end machine learning workflow — from image preprocessing to model inference and UI deployment.
It focuses on practical ML engineering, not just model training, by showcasing:
- Model integration
- Image preprocessing pipelines
- Performance optimization
- Clean UI–ML separation
- Deployment-ready architecture
- Demonstrates applied deep learning
- Uses industry-standard tools
- Shows understanding of ML deployment
- Highlights clean engineering practices
- Suitable for junior ML / AI / backend roles
- Upload images (
jpg,jpeg,png) - Image classification using MobileNetV2
- Displays Top-3 predictions with confidence
- Cached model loading for faster inference
- Interactive and responsive Streamlit UI
| Attribute | Value |
|---|---|
| Model | MobileNetV2 |
| Dataset | ImageNet |
| Input Size | 224 × 224 × 3 |
| Framework | TensorFlow / Keras |
| Inference | CPU |
MobileNetV2 is optimized for speed and efficiency, making it suitable for real-time applications.
Image Upload ↓ PIL Image Loader (RGB) ↓ OpenCV Resize + Normalization ↓ MobileNetV2 Inference ↓ Decoded Predictions ↓ Streamlit UI
- Python
- TensorFlow / Keras
- Streamlit
- OpenCV
- NumPy
- Pillow (PIL)
├── main.py # Streamlit app & ML pipeline ├── requirements.txt # Project dependencies ├── README.md # Documentation └── .venv/ # Virtual environment (optional)
git clone https://github.com/your-username/image-classifier-streamlit.git
cd image-classifier-streamlit
2️ Create & activate virtual environment
python -m venv .venv
Windows
.venv\Scripts\activate
Mac / Linux
source .venv/bin/activate
3️⃣ Install dependencies
pip install -r requirements.txt
4️⃣ Run the app
uv run streamlit run main.py