This project is a Convolutional Neural Network (CNN)-based image classifier that predicts the type of scene in a photograph. It was trained on the Intel Image Classification Dataset and identifies six natural and urban classes.
- 🏙️ Buildings
- 🌳 Forest
- ❄️ Glacier
- 🏔️ Mountain
- 🌊 Sea
- 🛣️ Street
Intel Image Classification Dataset
📎 Download from Kaggle
- Python 🐍
- TensorFlow/Keras 🤖
- Google Colab (GPU Training) ⚙️
- Matplotlib 📊
- CNN with multiple Conv2D and MaxPooling2D layers
- Activation: ReLU & Softmax
- Optimizer: Adam
- Categorical crossentropy loss
- Achieved ~98% training accuracy and ~84% validation accuracy
✅ The model successfully predicted this image as mountain.
This model was trained exclusively on the Intel Scene Classification Dataset, which contains only 6 types of natural and urban scenes:
🏙️ Buildings | 🌳 Forest | ❄️ Glacier | 🏔️ Mountain | 🌊 Sea | 🛣️ Street
🔍 Note: This classifier will only work reliably on images that fall into one of these six categories. It is not designed to detect arbitrary objects or scenes outside this dataset (e.g., animals, humans, vehicles, etc.).
- Load the trained model
model.h5using Keras or TensorFlow - Resize your image to 150x150 pixels
- Normalize and preprocess the image
- Run
model.predict()to classify the image - Match the output index with the class label
scene_classifier.ipynb— Final Jupyter notebookmodel.h5— Trained CNN modelsample_image.jpg— Test inputsample_output.png— Prediction result
Due to GitHub's file size restrictions, the trained model (model.h5) is hosted externally.
📥 Click here to download model.h5 from Google Drive
- Deploy as a Streamlit web app
- Add confusion matrix & metrics
- Fine-tune with transfer learning
- Expand dataset diversity
Ankit Kumar Panda
📫 GitHub: ankitpanda030306
🔗 ORCID: 0009-0009-3098-2336
⭐ If you like this project, please consider giving it a star!
