nive927 / Pothole-and-Plain-Road-Classification

Using deep learning and transfer learning techniques to differentiate plain roads and those with potholes using three different classifiers to obtain the best accuracy with the same convolutional base

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pothole and Plain road Classification using Transfer Learning and CNN

Using deep learning and transfer learning techniques to solve the binary image classification problem of differentiating pothole and plain roads by adopting an accurate model for savings in training time and computational efficiency.

CNN Transfer Learning

Convolutional Base

Pre-trained weights from VGG16

Classifiers

  • Fully-connected Layer
  • Global Average Pooling
  • Linear Support Vector Machine

Consult either the PPT or Report for theory.

Installation Requirements

Environment

We recommend having a Linux or macOS development environment for convenience, although the code runs on Windows 10.
We recommend using Anaconda to manage your packages.
Install Python 3 (version >= 3.8.0 recommended), along with pip.
We also recommend running the code on Jupyter Notebook.

Dependencies

  • shutil
  • tensorflow
  • Keras
  • matplotlib
  • numpy
  • scikit-learn
  • joblib

Instructions

  1. Download or clone this repository locally
  2. Run the following commands to install all the dependencies:
sudo apt update
pip3 install --upgrade pip
pip3 install -r requirements.txt
  1. Download the dataset from here into the project directory and unzip the folder
  2. Launch jupyter notebook from the project directory
  3. Open the source code file titled pothole-detection-transfer-learning-CNN.ipynb
  4. Change the basedir variable to the filepath of the dataset folder
  5. Instead of training again, you can download the pre-trained and saved models from here and unzip the folder
  6. Uncomment the load model code cells and comment the training cells

About

Using deep learning and transfer learning techniques to differentiate plain roads and those with potholes using three different classifiers to obtain the best accuracy with the same convolutional base


Languages

Language:Jupyter Notebook 100.0%