This repository contains code for aerial landscape image classification using the SkyView dataset. The project explores both traditional machine learning approaches and deep learning models, with additional experiments on handling imbalanced (long-tail) datasets.
The project uses the SkyView dataset, which contains aerial images of various landscape categories.
- Shift (image transformations)
- Local Binary Patterns (LBP)
- Support Vector Machine (SVM)
- K-Nearest Neighbors (KNN)
- Random Forest
- ResNet
- EfficientNet
- Long-tail distribution experiments
- Python 3.8+
- PyTorch >= 2.0.0
- pandas
- torchvision
- OpenCV
- scikit-learn
- scikit-image
- matplotlib
- seaborn
- jupyterlab
pip install torch torchvision opencv-python scikit-learn scipy matplotlib seaborn numpy scikit-image jupyterlab-
Go into the project directory and make a directory called
resto save the resultsmakedir res
-
Change the
img_dirin each file to the actual directory saving Aerial Landscapes dataset, if you have clone the repo from github then this is not necessary -
Run those code blocks in jupyter notebooks
This project is primarily composed of original work by the team. However, several open-source libraries and references were used to support implementation and experimentation. Below is a list of tools and external resources used:
- PyTorch – Deep learning framework used to implement and train ResNet and DenseNet models.
- Torchvision – Used for pretrained models and image transformations.
- OpenCV – For implementing SIFT and other image processing utilities.
- Scikit-learn – For traditional ML models such as SVM, KNN, and Random Forest.
- Imbalanced-learn – Techniques used to handle class imbalance (e.g., oversampling).
- Matplotlib and Seaborn – For data visualization.
- SIFT Feature Extraction – OpenCV Docs
- LBP Feature Extraction – PyImageSearch
- Understanding ResNet – Towards Data Science
- DenseNet Paper (Huang et al., 2017)
- EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (Tan & Le, 2019) – Referenced for understanding scaling techniques and architecture improvements over standard CNNs.
- Handling Imbalanced Datasets – Analytics Vidhya
- Long-Tail Learning: A Decoupled Learning Framework for Long-Tailed Recognition (Zhou et al., 2020) – Provided guidance on training models on imbalanced datasets effectively. .
All external resources are used in accordance with their respective licenses and are credited accordingly in code comments where applicable.