Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/najmaelboutaheri/land-use-scene-classification
The project shows the process of data loading, preprocessing, model training, and evaluation for classifying land use scenes using various machine learning or deep learning techniques, specifically Convolutional Neural Networks (CNN).
https://github.com/najmaelboutaheri/land-use-scene-classification
classification-models cnn-architecture cnn-model data-mining geospatial keras model-evaluation-metrics tensorflow
Last synced: 27 days ago
JSON representation
The project shows the process of data loading, preprocessing, model training, and evaluation for classifying land use scenes using various machine learning or deep learning techniques, specifically Convolutional Neural Networks (CNN).
- Host: GitHub
- URL: https://github.com/najmaelboutaheri/land-use-scene-classification
- Owner: najmaelboutaheri
- Created: 2024-10-08T17:14:34.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-12-29T13:09:00.000Z (about 1 month ago)
- Last Synced: 2024-12-29T14:19:12.649Z (about 1 month ago)
- Topics: classification-models, cnn-architecture, cnn-model, data-mining, geospatial, keras, model-evaluation-metrics, tensorflow
- Language: Jupyter Notebook
- Homepage:
- Size: 25 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Land Use Scene Classification
This repository contains the Jupyter notebook for **Land Use Scene Classification**. The notebook includes the process of data loading, preprocessing, model training, and evaluation for classifying land use scenes using various machine learning or deep learning techniques, specifically Convolutional Neural Networks (CNN).
## Table of Contents
- [Project Overview](#project-overview)
- [Dataset](#dataset)
- [Dependencies](#dependencies)
- [Usage](#usage)
- [Model Architecture](#model-architecture)
- [Results](#results)
- [Contributing](#contributing)
- [License](#license)## Project Overview
The goal of this project is to classify land use scenes using image classification techniques. The dataset contains images from different land use categories, and the notebook walks through the entire process of building a classification model from scratch, including:
- Data loading and exploration
- Image preprocessing and augmentation
- Model selection and training using CNN architectures
- Evaluation of the model on a test set## Dataset
The dataset used in this project consists of various land use scene images, categorized into different classes. You can download the dataset from [this link](#).
**Categories** include:
- Urban
- Agriculture
- Forest
- Water bodies
- And more...Each image in the dataset represents a scene, and the model predicts the type of land use.
## Dependencies
To run the notebook, the following dependencies are required:
```bash
pip install -r requirements.txt
```Key dependencies include:
- Python 3.x
- Jupyter Notebook
- TensorFlow / Keras
- OpenCV
- Scikit-learn
- Matplotlib
- Pandas
- NumPy# Usage
1. Clone this repository:
```bash
git clone https://github.com/your-repo/land-use-scene-classification.git
```
2. Navigate to the directory and open the notebook:
```bash
cd land-use-scene-classification
jupyter notebook land-use-scene-classification-all-process.ipynb
```
3. Run the notebook cells step-by-step to reproduce the results.
## Model ArchitectureThis project uses two CNN architectures for classifying land use scenes. The first CNN architecture is more complex, while the second uses separable convolutions to reduce computational complexity.
### CNN Architecture
```bash
Model = Sequential()Model.add(SeparableConv2D(32, 3, activation="relu", input_shape=(226, 226, 3)))
Model.add(BatchNormalization())
Model.add(MaxPooling2D((2)))Model.add(SeparableConv2D(64, 3, activation="relu"))
Model.add(SeparableConv2D(128, (3,3), activation="relu"))
Model.add(Dropout(0.5))
Model.add(MaxPooling2D((2)))Model.add(SeparableConv2D(128, 3, activation="relu"))
Model.add(SeparableConv2D(128, 3, activation="relu"))
Model.add(Dropout(0.5))
Model.add(GlobalAveragePooling2D())Model.add(Flatten())
Model.add(Dense(256, activation="relu"))
Model.add(Dropout(0.5))
Model.add(Dense(21, activation="softmax"))
```
## ResultsThe classification model achieves the following metrics:
- **Accuracy**: `80%`
- **Loss**: `0.69`You can view the results and evaluation metrics in detail inside the notebook.
## Contributing
Contributions are welcome! If you find any issues or want to add enhancements, feel free to create a pull request.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.