Master’s Thesis by Can Ersü
This repository contains the implementation of the master's thesis titled "Automatic Visual Traffic Sign Damage Detection Using Deep Learning Algorithms". The project focuses on developing a system for automatically detecting damage to traffic signs using deep learning techniques. The system utilizes YOLO (You Only Look Once) for object detection and an autoencoder for anomaly detection on the German Traffic Sign Detection Benchmark (GTSDB) dataset.
- Repository Overview
- Installation
- Dataset
- Project Structure
- Usage
- Results
- Thesis Reference
- Contributing
- License
To set up the project, follow these steps:
-
Clone the repository:
git clone https://github.com/canersu/damaged_ts_detection.git cd damaged_ts_detection -
Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required dependencies:
pip install -r requirements.txt
This project uses the GTSDB (German Traffic Sign Detection Benchmark) dataset for traffic sign detection. The dataset consists of images containing traffic signs with varying degrees of damage, captured under different conditions.
- GTSDB Dataset: Available here.
Please ensure you download and preprocess the dataset before running the experiments. Detailed instructions for downloading and preprocessing are provided in the data_preprocessing.md file.
The repository is organized as follows:
data/: Contains the dataset and preprocessed data files.models/: Contains trained models and their configurations.notebooks/: Jupyter notebooks for exploratory data analysis and model training.src/: Source code for the project, including scripts for training, evaluation, and utilities.outputs/: Stores the results of experiments, including logs, metrics, and model checkpoints.README.md: Project overview and instructions (this file).
-
Training the Model:
-
To train the YOLO model for traffic sign detection:
python src/train_yolo.py --config configs/yolo_config.yaml
-
To train the autoencoder for damage detection:
python src/train_autoencoder.py --config configs/autoencoder_config.yaml
-
-
Evaluating the Model:
- To evaluate the trained models on the test set:
python src/evaluate.py --config configs/evaluate_config.yaml
- To evaluate the trained models on the test set:
-
Running Inference:
- To run inference on a new set of images:
python src/inference.py --input data/new_images/ --output results/
- To run inference on a new set of images:
The results of the experiments, including performance metrics and visualizations, are stored in the outputs/ directory. Detailed analysis and interpretation of the results are provided in the thesis document.
For more details about the methodology, experiments, and results, please refer to the thesis document:
Title: Automatic Visual Traffic Sign Damage Detection Using Deep Learning Algorithms
Author: Can Ersü
Institution: Tallinn University of Technology
Year: 2023
The thesis document is available in the root directory of this repository as Thesis_Can_Ersu.pdf.
Contributions are welcome! If you would like to contribute, please fork the repository and create a pull request with your changes. Ensure that your code follows the established guidelines and is well-documented.
This project is licensed under the MIT License. See the LICENSE file for more details.