By Ross Walker, Research Fellow in Autonomous Cars, Cranfield University
The Multi-Car Collision Avoidance (MuCCA) Project will develop a next-generation driver aid that aims to avoid multi-car collisions on motorways – if an accident cannot be avoided, the MuCCA system will attempt to minimise its consequences (both injuries and damage). But before the MuCCA vehicles are able to react to these potentially dangerous situations, they have to understand how a human driver would react. And to do so, we need to develop a training algorithm that predicts how drivers behave when avoiding collisions.
Accident prevention
Drivers avoid accidents by reacting fast enough to a dangerous situation, however for multiple car collisions simply reacting may not be enough. By modelling how human drivers behave on motorways, and how the proximity of surrounding cars influence their behaviour, the movement of the cars that surround the MuCCA vehicle can be predicted over the next few seconds. This can allow any potential accidents to be recognised in advance, and consequently avoided before they have chance to begin developing.
Data acquisition
To predict potential accidents we first need to learn the driver trajectories that result in them. To safely obtain such trajectory data we use simulation software so that accidents can be created within a virtual (safe) environment.
Tailoring scenarios to the MuCCA Project
The MuCCA project deals with up to five vehicles moving along a passage of UK motorway; the prediction algorithm adopts the same parameters, and various training scenarios are devised so that meaningful human driving behaviour can be captured in the simulator.
To begin, a simple test should always be carried out when initially developing an algorithm – this is to ensure results are as expected and the algorithm is behaving correctly. A simple behaviour was captured from a single vehicle having to pass by a broken down car in their lane. This was primarily to gauge if the driver’s reaction time to the blocked lane replicated a real-life scenario.
The introduction of multiple cars allowed us to capture data on how well the drivers maintained motorway lane discipline. It also gave insight into how drivers undertake, lane-hog, or tailgate, which all increase the likelihood of a collision.
a) Which lane will the leading HDV move to?
b) How will the back HDV cope with the front HDV moving in front?
c) What will the right HDV do if the left move is blocked?
Obtaining trajectory examples of standard driving etiquette allows the network to learn normal driving behaviour; being able to predict this is as important as predicting collisions.
These scenarios are designed to force situations where collisions are likely, and potentially unavoidable. Gathering data like this is what will teach the network to learn behaviour that will result in collisions, allowing the MuCCA system to take a different route that will avoid an accident.
d) How will the HDVs negotiate past the staggered obstacles?
e) How will the HDVs compete to move past the obstacles?
All algorithms must be pushed to their limits, and a scenario where the cars/drivers behave abnormally or even erratically also be trialed, even if it is not seen on a standard motorway (e.g. a car travelling in the wrong direction). This way we can evaluate how well the algorithm copes under extreme situations.
Predicting car trajectories
To predict how drivers behave we train a neural network computer algorithm to learn human driving patterns. Biologically inspired by the synaptic connections between neurons of the brain, we use a technique known as deep learning, where multiple densely-connected layers of neurons teach themselves to recognise patterns.
Neural networks learn through observing similar data. By feeding in the recorded trajectories of multiple cars, taken from our simulator, the network can begin to recognise similarities in driving behaviours. As the network learns – evaluating these trajectories over multiple passes (epochs) – it begins to predict increasingly accurate trajectories. After each epoch, the loss (difference) between the real-values and the predicted-values are measured. It is the aim of the network to decrease this loss so that over the training period the predictions become steadily closer to the desired outcome. The predictions made by the network reflect the driving behaviours of real human drivers and are much closer to the desired outcome.
The performance of the trained neural network is then evaluated using new data – this is to ensure it can successfully predict driving behaviour/trajectories that it may not have seen during training (known as generalisation). It is vital the network generalises well as it would be impossible to train it with every car movement possible – the number of potential interactions would be astronomical. Selecting and training the network with a good representation/cross-section of all types of driving behaviour will allow the network will understand the general types of interaction seen between drivers on the road and infer appropriate predictions.
Training the network
The network is trained over 5,000 epochs using the data obtained from the simulator. As each training epoch passes the model improves until it begins to plateau, and may even begin to deteriorate. This is when the network trains the model to predict the ‘noise’ in the data as well, and fit the predicted trajectories to match the training data exactly. This is known as ‘over-fitting’ and will mean the network will not generalise well, and training must be stopped before this happens.
All predictions use a 1 second time-series input (string of red dots) to predict a 3 second time-series output (string of green dots), at a sampling rate of 10Hz. In other words, we record the position of a vehicle once every 100 milliseconds and then use the 10 most recent positions as the input. That way we can tell the network what the surrounding vehicles have just done, and the network predicts what will happen over the next 3 seconds. The car fitted with the MuCCA system (purple square) is predicting the direction of the driver, as well as the direction of the surrounding cars (yellow squares), including the broken-down car (blue square) blocking the lane. The network successfully predicts the trajectories of each car and is also able to predict the collision of a broken-down car blocking a lane, as well as the movement of the broken down car following the impact.
The results show that the accuracy of the predictions compared to the ground truth (string of blue dots) is almost indistinguishable. Had the car responsible for the accident been fitted with the MuCCA system the predictions made would have raised the issue of the predicted accident and taken steps to intervene, preventing the collision from occurring at all.
There is still much work to be done, but this is a very promising start and illustrative of the benefits the MuCCA system could bring to motorway driving. The more we can understand human driving, the more complex and accurate the MuCCA vehicle can be when responding to dangerous situations – this means safer roads and fewer accidents.
MuCCA is Research & Development project funded by CCAV (Centre for Connected & Autonomous Vehicles) and InnovateUK, being delivered by a consortium consisting of AppIus IDIADA, Cosworth, Cranfield University, SBD, Transport Systems Catapult and Westfield Sportscars. Keep up to date with the latest news on twitter @muccaproject