Skip to content

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).

Notifications You must be signed in to change notification settings

najmaelboutaheri/Land-Use-Scene-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

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

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:

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:
    git clone https://github.com/your-repo/land-use-scene-classification.git
  2. Navigate to the directory and open the notebook:
    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 Architecture

This 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

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")) 

Results

The classification model achieves the following metrics:

  • Accuracy: 80%
  • Loss: 0.69
image

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 file for details.

About

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).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published