Parking Spot Detection and Classification: Assessing Legality and Slot Type Using Deep Learning and Rule-Based Approaches
From the Abstract : Starting from an image of a parking area, first we employ detection to identify single parking spots, then classification to differentiate between occupied and empty spaces; additionally, if a car is present, we classify each slot as either correct or incorrect parking, otherwise we classify the type of empty space like normal, paid, disabled or pregnant parking. We employed mainly neural networks for object detection and classification, but also rule-based approaches.
Full paper of this project available here: Paper.pdf
Pipeline
The datasets are not available on this repository but are downloadable here: https://drive.google.com/drive/folders/1RHxNd7ZpMgi6An2oUwFgzz-q7toDPgbm?usp=drive_link
The models used can be found into the project 'models' folder.
The 'ParkProject.py' file can be used to try the full pipeline on a single image; example images can be found in the 'datasets' folder. The outputs generated will be saved in the 'results' folder.
Files structure:
- 'preprocessing': inside this folder there are the files to apply filtering to the datasets used to train the models and to input images in general.
- 'object_detection_and_classification': this contains the methods used to detect bounding boxes and classify each spot as empty/occupied. The output of the YOLO model is collected in the 'runs' subdirectory. It's also included the file that crops the single parking slots after detection.
- 'classification_occupied_spots': this directory contains the files related to the ResNet model training and execution.
- 'classification_empty_spots': it collects the methods proposed to classify empty parking slots according to the color of their lines.
Output using some of the example images (original image -> YOLO output -> illegal parkings -> empty parkings count):