A pothole detection and classification system. Input a .mp4 video and get a .csv report of all potholes in the video with their respective timestamps and severity classification. The program automates the creation of pothole reports to ease the process of addressing road conditions.
This project was made for the SDAIA smartathon, and we had much fun putting it together as a team.
Clone this project and name it accordingly:
git clone https://github.com/moo-gn/pothole-classifier
NOTE: In order to run the program with no dependency conflicts, make sure to create a virtualenv to install the requirements
$ pip3 install -r requirements
$ python3 main.py -i <input_video.mp4_file> -o <output_path>
Output should be a name without a suffix. For example if output_path is set as "file", the outputs will be file.mp4 and file.csv in the working directory.
pothole-classifier/
- file.mp4
- file.csv
- result_images/
- pothole_image_1.png
- ...
- pothole_image_n.png
Full usage details
usage: main.py [-h] -i INPUT [-o OUTPUT] [-q]
options:
-h, --help show this help message and exit
-i INPUT, --input INPUT
Name of the input MP4 video file.
-o OUTPUT, --output OUTPUT
Name of the output files. Do not put a suffix like .mp4 or .csv.
-q, --quiet Hides the real-time detection screen.
The architecture of our Plothole Classifier Pipeline

Example of the output.csv file which contains information regarding all potholes in the video and their severity classification.
Notice that the image_path column points to the cropped pothole images that were saved to the result_images/ directory. This is so that you could review the images that were classified in the final report.
The arclength was calculated with the assumption of 0.125cm/px for archlength.
DeepSort
Single Shot Detection model
Detection infra
DIODE depth dataset
PotHole-600 depth dataset

