In this second blog, I would be sharing the research I have done in the field of deep learning and autonomous driving in order to start developing SaferAuto.
The first step I took was to analyze similar projects of object detection and tracking. This helped me find which are the state-of-art technologies for solving my problem of detecting and tracking road elements in real time. Here are the most interesting papers on the topic I found:
- The Architectural Implications of Autonomous Driving: Constraints and Acceleration: In this paper, they start by formalizing the constraints for building autonomous driving systems in terms of performance, predictability, storage, thermal and power. Besides, they build an autonomous driving system and identify the bottlenecks of the project.
- Convolutional Neural Network for Person and Car Detection using YOLO Framework: In this other paper, they present a real-time person and car detection system. This is based on a modified version of the YOLO framework, using 7 convolutional neural network layers. Furthermore, it explains why YOLO was chosen for the nature of the project.
- Evaluating State-of-the-art Object Detector on Challenging Traffic Light Data: As the title of the paper states, in this article, the real-time object detection systems are compared in order to achieve the best accuracy at the time of detecting traffic lights. It explains why the YOLO framework is used to solve the problem.
As stated in these papers and in many related ones, the YOLO framework is the state-of-the-art technology in object detection on real-time. It has a great balance between accuracy and elapsed time. For this reason, the first thing I did was to research what technologies YOLO uses.
The machine learning methods widely used in the field are the Convolutional Neural Networks (CNN), a class of deep neural networks, most commonly applied to analyzing visual images. In order to learn these techniques, I searched recommended tutorials or courses on the internet, finally, I decided to study the course Neural Networks and Deep Learning, taught by deeplearning.ai at Coursera. From my point of view, Andrew Ng does a good job in the course by explaining complex processes in a very visual way, helping one to understand better the concept of neural networks. Besides, in the course, a multi-layer neural network is
built to check if there is a cat in an image or not.
The next step was to decide which platform SaferAuto is going to be developed, in order to decide which programming language would be used. In order to have great computational power, I will be developing the project as a Desktop application and take advantage of my GPU with CUDA cores. As we will see in the future, this will help our model in YOLO to be trained much faster than by only using CPU. The programming language would be Python, due it is currently one of the most popular in Artificial Intelligence applications, because of the quantity of useful and powerful libraries it offers, such as Tensorflow or Keras. For learning this new programming language for me, I decided to take another course of Coursera called Python Basics, taught by the University of Michigan.
Now that I have the basic knowledge for starting to use YOLO framework, the next step would be to study how it works and prepare the platform with all the requirements. But we will see this in the next blog!
Don’t forget to follow me on Twitter to stay updated!:https://twitter.com/SaferAuto