• UFRJ Nautilus

Computer vision and Self-driving cars

Updated: May 7

The challenges of applying artificial intelligence technologies to autonomous vehicles


Computer vision is a field of artificial intelligence that seeks to develop techniques to make computers able to analyze, interpret and understand images or videos. This technology is present in several applications and is one of the fastest evolving tools on the market today. Teaching computers this type of task, which is often trivial for a human, is more difficult than imagined. This is partly because we don't know how our own brain does to interpret what we see. Even with such a barrier, there are algorithms that can simulate, and even overcome, the human capacity for certain tasks.

There are several computer vision applications, for example 3D reconstruction of spaces, localization, facial recognition, etc. In UFRJ Nautilus' AUV (Autonomous Underwater Vehicle) we use a convolutional neural network (YOLOv3 tiny) for object detection. This type of network gives us, not only which objects are in the robot's field of view, but also its coordinates in the image. This allows us to find the tasks that must be performed at RoboSub ®, an international AUV competition, such as gates and buoys, and determine a path to them.



Convolutional neural networks are algorithms composed of several layers, used mainly in image analysis. Like simple neural networks, convolutional networks try to copy the way the nervous system works. Several interconnected layers receive an input, from the previous layer, perform some type of processing and pass the result on to the next layer. This same type of network is used in autonomous cars.


Convolutional Neural Network to Identify Numbers

Despite the great advances in this type of technology, we are in 2020 and, against all forecasts, we still don't have self-driving vehicles driving around. Several companies have self-driving projects, some such as Uber ® and Tesla ® have even put their semi-autonomous cars on the streets. These vehicles have autopilot, but need a driver as a backup, to take control in the event of a failure. Like our AUV, these cars have neural networks to detect objects and other sensors to obtain data from the surroundings. In the case of the car, the networks are trained to locate other cars, signs, pedestrians and obstacles. However, a big difference between them is safety, since, while our robot can be considered good having an accuracy of 94%, a car that recognizes a pedestrian with that same accuracy is far from safe.


In 2018, one of Uber ® semi-autonomous cars in Arizona failed to apply the brakes when a woman crossed the road in front of the car with a bicycle, causing a fatal accident. It was a failure of the system and also of the backup driver, who should be monitoring the car at all times. Tests with autonomous vehicles were terminated shortly after and resumed only two years later. Tesla ® cars have also caused accidents in situations where the driver was not paying attention.


Low light, colored lights, fog, rain, heat refraction, etc. there is a huge range of factors that can affect the images received by the neural network. Although they practically do not affect the way we humans are able to understand what we are seeing (a person remains a person even if he is doing a handstand under a green light), these changes can seriously damage the performance of a neural network. Usually, the simple solution to this problem is to increase the number of examples you use to train the network. If it fails in foggy images add more foggy images, if the problem is to identify animals on the road add more pictures of animals. However, ensuring that a system is prepared for all possible conditions is an almost impossible task.


In addition to all these concerns about vision reliability, there are other barriers, perhaps even greater ones. Places where the GPS signal was bad would be totally out of the question for autonomous cars. There are also ethical issues related to the use of this technology. Every autonomous system makes decisions all the time. In a common situation it would be things like how to accelerate or brake, when to turn, when to stop completely, etc. However, in everyday life, all kinds of unusual situations can happen, and the car should be pre-programed to deal with each one of them. If, for example, the car was coming at high speed, a child appeared on the street and there was no time to brake, the car should give priority to the passenger at the cost of hitting the child, or should it divert any way, even throwing the car against a pole, risking the driver's life? This kind of question has no right answer, and if we don't have an answer, we have no way of letting the car know what to do.


These are some of the challenges faced by those trying to create the fully autonomous cars that have long existed in fiction. Even if these cars never get to the market, as many believe, semi-autonomous cars are already a big help. Most traffic accidents today are caused by human error, and these semi-autonomous vehicles can reduce this number. As long as the driver remains attentive throughout the time the car is driving, these cars can be much safer than a traditional driver.



Written by Marina Daumas