Project Vision


One out of five car accidents is caused by drivers falling asleep behind the wheel. This kind of events presents an high risk of mortality because the sleepy driver's lack of activity makes him or her not aware of the imminent danger.

The main causes of this physiological condition are:

  • Having slept less than five hours per night;
  • Having driven for too long;
  • Having a very busy and stressful life;
  • Having eaten heavily.

Keep Me Awake has been designed to be used in cars in order to increase road safety.
KMA tries to reduce as much as possible this kind of dangerous drawbacks by analyzing the condition of the driver and by taking other precautions ensuring that the user is constantly kept under control.

When a decrease in the driver’s attention span is detected, the system reacts by restoring it through sound and vibrational stimulations in order to awake him or her.

Thus, the system offers questionnaires and talks with the driver in order to keep him active and conscious.


AmI features

Keep Me Awake is:


Sensitive

It can understand when your attention span is going down.


Transparent

Every part of the ecosystem talks through a wireless communication that does not require the use of components that are visible to the human eye.


Responsive

In order to keep the driver awake, it is able to change the environment through sound and vibrational stimulation.



Adaptive

Basing on the user that is driving, the system is able to understand when to act and how to handle conversation based on user's interest.


Ubiquitous

It can be easily integrated on every car' structure.


Intelligent

Performing face analysis, KMA is able to detect eyes closure depending on the user's physiognomy.

AmI Steps

Sensing


Keep Me Awake is able to sense if the driver's eyes are closing and if he/she is tightening the steering wheel in order to recognize signs of sleepiness.

Reasoning


KMA understands when the driver's attention span is going down and it reacts in an appropriate way relying on his sleepiness, that is computed through the combined analysis of the eyes opening and the pressure applied to the steering wheel.


Acting


In order to restore driver's attention span, the system makes the steering wheel vibrate, uses sound stimulation and suggests, if necessary, the nearby hotels where the user can rest.


Interacting


Keep Me Awake also becomes a company tool able to ask riddles and entertain the driver updating him about news and meteo.
The user will have to interact with the system through his voice because we don't want him to get distracted from driving!

Technical Aspects


Keep Me Awake wants to reduce as much as possible the accidents caused by the so-called "sleep strokes".

This is possible thanks to the continuous monitoring of the driver's attention threshold: though a camera, a software that performs facial recognition will detect signs of tiredness and exhaustion on the driver.

To provide an higher level of accuracy, the pressure applied to the steering wheel will be periodically monitored thanks to the use of a specific sensor.

In order to act promptly and restore the attention span of the driver, sound and vibration stimulations will be generated.

The system will interact with the user thanks to the use of DialogFlow© combined with Google Speech API©, following the goal of keeping him active and alert.


Features


SLEEPINESS DETECTION

Code Priority Description
#SD1 1 Driver's face analysis through a camera to detect eye closure
#SD2 1 Sensing steering wheel pressure to analyse user concentration
#SD3 2 Analysis of driver's response to system's feedbacks (in terms of timing)

USER STIMULATION

Code Priority Description
#US1 1 Vibration of the steering wheel in order to keep the driver awake and focused.
#US2 1 Sonorous stimulation thanks to an alarm

SYSTEM INTERACTION

Code Priority Description
#SI1 1 Generation of targeted riddle through the integration of Trivia's database
#SI2 2 Suggestion of the nearest place to rest
#SI3 2 Updates about news
#SI4 2 Updates about weather
#SI5 3 Music Player

MULTI-USER HANDLER

Code Priority Description
#MUH1 1 Initial configuration that detect user's physiognomy
#MUH2 1 Driver's profile manager (chosen when starting the car)
#MUH3 2 The user has the possibility of choosing topics of his interest

System Architecture




  • Hardware
  • Computational nodes
    Main Server: Data elaboration and socket server hosting. It manages microcontroller and communicates with the app on the Android device.
    It also interact with the camera and the steering wheel.
    Microcontroller: controls the pressure sensors.
  • Devices
    Camera: records driver’s face.
    Microphone: provides voice control for user interaction.
    Speakers: reproduces questions, answers and games proposed by the system and play songs of the music player.
    Steering Wheel: restores user’s attention through his vibration.
    Pressure sensors: perceives if the user no longer has his hands on the steering wheel.
  • Selected Components:

    • Raspberry Pi
    • Logitech© Steering Wheel G920
    • Pressure sensors
    • Arduino
    • Camera
    • Speaker
    • Microphone


  • Software
  • Python Server
    The server is the central computational node; It is composed by these main software modules:
    Face analysis module: Algorithm that recognize user’s tiredness monitoring eyes' closure.
    Steering Wheel management: Manages communication, through a socket, with the steering wheel and makes it vibrate when needed.
    Pressure Sensor: Handles pressure sensor data coming from the arduino.
    Android intercommunication: Manages the bidirectional data flow between the android app and the server through the use of socket.
  • Android App
    The Android App collects all the informations about the users into a database.
    According to the received inputs, the app decides how to interact with the user.
    Keep Me Awake app:
    • generates conversation with the integration DialogFlow©;
    • synthesizes vocal conversation thanks to Google Speech API©;
    • takes riddles from Open Trivia's database;
    • picks updates about weather using Open Weather API©;
    • acquires news using News API©;
    • integrates a music player;
    • suggests nearby places where to rest using Facebook Places Graph API©.

    • Selected Components:
      • Python 3.5
      • Android API 26
      • C++
      • OpenCV 4.1.0.25
      • Socket



  • Network

Open Issues


  • How can you recognize a sleeping person from an awake one by simply using sensors, cameras and wearable devices?
  • Problems related in making conversations that respect the interests of the user.
  • How can all these devices communicate?
  • Should we use the microcontroller only to collect data and send it to an external server or it’s better to process the information locally?
  • Is the Raspberry able to quickly manage the amount of data that the camera will provide?
  • Are there simpler known system architecture to make the various components cooperate?



KMA Team


Vittorio Pellittieri

Software developer
VittorioPellittieri
s236687@studenti.polito.it

Gaetano Prudente

Software developer
Gano97
s235972@studenti.polito.it

Alessandro Ricciuto

Software developer
alericciuto
s234061@studenti.polito.it

Monica Rungi

Software developer
MonicaRungi
s233813@studenti.polito.it