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.
Pre-trained weights from VGG16
- Fully-connected Layer
- Global Average Pooling
- Linear Support Vector Machine
Consult either the PPT or Report for theory.
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.
- shutil
- tensorflow
- Keras
- matplotlib
- numpy
- scikit-learn
- joblib
- Download or clone this repository locally
- Run the following commands to install all the dependencies:
sudo apt update
pip3 install --upgrade pip
pip3 install -r requirements.txt
- Download the dataset from here into the project directory and unzip the folder
- Launch jupyter notebook from the project directory
- Open the source code file titled pothole-detection-transfer-learning-CNN.ipynb
- Change the basedir variable to the filepath of the dataset folder
- Instead of training again, you can download the pre-trained and saved models from here and unzip the folder
- Uncomment the load model code cells and comment the training cells