Drunkenness Detection Application
The application was designed to provide drunkenness detection capability to the phone user. Once a suspected drunk state is detected, alerts, in the form of Short-Message-Service (SMS), will be sent to recipients on a pre-defined list, unless a correct answer is responded to a Drunk Test.
Drunk driving has appeared more and more frequently recently on newspaper headlines. The loss to the society associated with drunkenness is expected to decrease if drunk cases can be detected a bit earlier. Mobile phone is probably one of the electronic devices with the highest penetration rate, especially in technologically advanced regions like Hong Kong, where the mobile phone subscription to population ratio is over 1:1. The current project is such an attempt to implement an original drunkenness detection algorithm on these powerful mobile handsets.
Thanks to technological advancement, now that the Smartphones can carry out complicated computations without causing much noticeable delay, we tried to make use of the motion data delivered from the accelerometer (acceleration data) and orientation (sense if the phone is held horizontally or vertically, and if the phone is flipped or not) sensors.
For pleasant user experience, a GUI-based interface has been designed to accept selections for SMS recipients from the phone contact list, to notify users of the drunkenness state detected, and to request users to give responses to the Drunk Test. Currently, an implementation has been done on Android 1.5, 1.6, 2.1 and 2.2 devices. Since no platform-specific instructions were used, a future port to other Smartphone platforms (e.g. Symbian, iOS) is thus expected to be manageable.
The drunkenness detection algorithm is implemented on a Measurement Platform (MP) module. The MP module is mainly responsible for collecting data from various sensors installed (accelerometer and orientation sensor data in our case).
Once the detection algorithm returns a drunk state, the system will ring the phone automatically. To reduce the false alarm rate, a frequency counter is used to count the number of times a drunk state is returned, such that only in the situation when there are more than 3 drunk states returned in one minute is the phone rung. In such case, a dialog will pop up and request the phone user to take a quiz. The quiz simply shows a sequence of random numbers and requests the user to input them in five minutes. If user does not type in the correct answer or does not finish it on time, a ¡°drunk¡± warning short message (through SMS) will be sent out. All the people who are on a pre-defined help list will receive it.
Below are some screen captures from an Android device, demonstrating functions of our drunkenness detection system.
Once our detection algorithm returns a drunk state, the window depicted below will pop up, with the phone ringing with the default ringtone. The ringing loops infinitely until the user presses the OK button. After then, a simple test shows request the phone user to compete a simple test.
To complete the test, the user simply has to input the random number sequence generated by the system within five minutes . If answered correctly, there will be a notice page. Otherwise, there will be another notice page to inform the user. Immediately, a short message will be sent out to the phone numbers in the pre-defined help list.