Key Features β’ How To Use β’ Author β’ License
Detect, locate and track road elements from a video stream using YOLOv3 real-time object detection system. Among the elements to classify, the model will be trained to detect traffic lights, vehicles and some types of road signs.
- Detection of speed limit road signs and speed identification. βοΈ
- Detection of traffic lights and classification depending on its state (green, amber, red). βοΈ
- Detect the previous elements in real-time. βοΈ
- Track the previous elements in real-time. βοΈ
- UI that displays the current detection and tracking of the road elements, showing bounding boxes with the different classes. βοΈ
- Detection of cars and classification of the type. [work in progress]
- Implementation of a chatbot that notifies the driver of possible road threats and is able to repeat last notifications. [work in progress]
The second way of testing the detector is a Graphical UI that shows the detection in a more user-friendly way. The process now is a bit tedious but I will try to imporve it in the future with Docker.
- Clone this repository (git clone https://github.com/angeligareta/SaferAuto.git).
- Nvidia GPU and correct driver.
- CUDA and OPENCV. I have written a tutorial about it. You would need to follow the steps CUDA INSTALLATION(Nvidia GPU required) and Installing OPENCV.
- QT Creator 5.12. It is important to install this version.
- Weights file that represents the trained model. The next step would be to set the weights file in the correct folder:
cd SaferAuto/
mkdir -p models/weights/
mv <downloaded-weights> models/weights/yolov3-saferauto.weights
Once you satisfy all the requirements, you have to compile the darknet program. I am using a fork by AlexeyAB. For compiling it with GPU follow these steps (from SaferAuto folder):
cd darknet/
sed -i s/GPU=0/GPU=1/g Makefile
sed -i s/CUDNN=0/CUDNN=1/g Makefile
sed -i s/OPENCV=0/OPENCV=1/g Makefile
sed -i s/LIBSO=0/LIBSO=1/g Makefile
make
cd ..
mkdir lib
cp libdarknet.so lib
After that, you need to open the project SaferAutoGUI.pro with QT Creator. Finally you only need to execute the program.
The main window will open. In this first window, there are 4 options you can change, the configuration, names, weights and input file paths for testing the SaferAuto detector. Once you have selected the correct configuration (there is one selected by default), you can press the start button to start detecting!
You can see the interface windows here:
Here I show some of the latest documentation I have found related with Advanced Driver Assistance Systems (ADAS). You can find a more detailed version of the project in my final degree project report (only in spanish).
- Modular safe driving assistant
- The Architectural Implications of Autonomous Driving: Constraints and Acceleration
- YOLO Object Detector for Onboard Driving Images
- Real-time object detection for autonomous driving-based on deep learning
- Convolutional Neural Network for Person and Car Detection using YOLO Framework
- Evaluating State-of-the-art Object Detector on Challenging Traffic Light Data
- Yolov3
Γngel Igareta - Computer Engineering Student
This project is licensed under the MIT License