Working with Appentra at the Appentra-led CESGAHACK-3, the Xesol Innovation team have been able to provide a four-fold improvement in the performance of their driver safety software. The software analyses images of the driver to enable detection of distractions and fatigue with the goal of introducing this software into cars to help avoid vehicle accidents. With significant social and socio-economic benefits possible with the software, the team worked with Appentra using the unique parallelization methodology developed by the Appentra team. This has enabled a four-fold improvement in the image processing rate of their software for the target low-powered embedded systems available in cars in just four days.
Xesol develops software designed at improving driving and road safety. Their biometrics software is aimed at the Smart Mobility sector, and provides automation to systems and safety to users. Their driver monitoring system, based on computer vision, detects driver fatigue, distraction and drowsiness, to help address the large number of road accidents caused by these issues. The software monitors the driver by analyzing their behavior and yawning patterns, eyelid blink frequency (number of blinks per minute and eyelid blink duration), gaze direction and eye movements.
In-car computer systems are necessarily low-cost and low-powered embedded computational solutions. Working with just a small number of cores, a low computational clock speed, optimising the code and providing parallelism is challenging! The biometric detection system was limited by the number of frames that could be processed per second. Increasing the number of frames that could be processed while using a low-cost, lower-powered system was paramount to the success of embedding these driver biometric systems in cars, and enable dynamic behaviour in their analysis. The team hoped to not only improve the performance of their existing software but also to learn how to implement similar parallel strategies to future projects.
Parallelizing driver-fatigue detection software
During CESGAHACK-3, a team from Xesol Innovation used the Appentra Code Parallelization methodology to implement an OpenMP enabled version of their software used to improve their driver monitoring system software. By improving the performance of their software, on a low-powered chip suitable for use within a car, they are able to more effectively detect issues with driver distraction and fatigue. All improvements in detection will improve the speed and accuracy of alerts provided to help avoid accidents caused by driver fatigue and distraction.
At the beginning of the hackathon, the Xesol code was able to analyse between 4 and 5 drive images per second (frames per second). The Appentra methodology for Parallelization, building on the fundamental principles of Appentra’s world-leading Parallelware Analysis engine, enabled the Xesol team to obtain significant performance improvements within the short timescales available at the event. Within the week the team was able to start from little knowledge of how to introduce parallelism to identifying the key hotspots, whether the hotspots were parallelizable without significant code restructuring and where intrinsic parallelization was available that was otherwise hidden.
During the hackathon, the team spent significant time working with mentors on understanding the theoretical upper-performance limit of the processors they were using and how best to exploit the processor’s multi-core potential. One of the greatest challenges of using a low-power embedded system was the variability in performance based on the temperature of the chip.
The Xesol R&D platform is a Broadcom BCM2837, Quadcore ARM Cortex-A53, 64Bit, 1 GB RAM, which is representative of the technology that will eventually be used for this work in vehicles but is easily ‘stressed’, resulting in variable performance. However, by applying Appentra’s methods the team was able to understand when real performance was being achieved, rather than noise caused by the limitations of low-powered systems: an approach that will be essential for the automobile industry.
Using OpenMP the team was able to improve their performance by 336% within just 4 days, enabling processing of 16 images per second. They plan to continue their work with the target of achieving 24 images per second.
“The Appentra mentors were fantastic at helping us to analyze and understand our code and provide useful tips so you can continue improving. The Appentra Parallelization method is something we will apply to future codes. It is invaluable in helping you analyze the problems you have, as well providing very useful future tips so you can continue improving! This hackathon experience is something to do, at least, once in a lifetime.”Cristian Campo & Alexandre Pires, Xesol Innovation