Final Year Project Report2006-2007 Martin Gallagher 4th Year Electronic Engineer
Today'sReport • Initial Specification • Background • Development of Project - Software and Hardware • Development Issues • Results
Initial Specification • Purpose of project to investigate the development of a system for detecting the likelihood that the driver is about to fall asleep 1.1 Sound alarm should this occur
Initial Specification 2. System primarily based on a small camera based on the dashboard 2.1 It will be used to “track” drivers eyes 2.2 Attempt to determine if driver falls asleep
Initial Specification 3. Enhance reliability of the system by making use additional sensor devices. 4. Initial algorithm development will be carried out in MATLAB, with the intention of porting some of the functionality to a suitable embedded system.
Initial Proposal Using MATLAB as a development tool develop the basic functionality of the system with the Hough Transform as the basis for the detection of the eyes.
Description of Hough Transform It is a method used to detect shapes in a digital image. There are a number of versions used to detect different shapes but all follow the same core principals The circular version was used in this situation to detect the iris in the eye
Description of Hough Transform The Circular Hough Transform uses the intersection of right cones to accumulate votes at a point. This accumulation of votes corresponds to a centre point. From this circular objects can be extracted from images.
Software Using a transform available on the Mathworks website I have been able to detect circular areas of interest in pictures and test video
Problems with software • This picture shows both eyes being detected and are highlighted in blue. • Lighting plays a major role as shadow can causes error in the detection process
Eye Detection Algorithm Once the Hough transform has been applied there are usually a surplus of circles detected. Filtering out these surplus due to geometric characteristics of eyes yields an increased stability in performance
Pick Eyes Example Step 1. Capture Frame
Pick Eyes Example Step 2. Crop Frame
Pick Eyes Example Step 2. Crop Frame
Pick Eyes Example Step 3. Convert Frame to Grayscale
Pick Eyes Example Step 4. Adjust Frame to improve image for processing
Pick Eyes Example Step 5. Apply Hough Transform to frame
Pick Eyes Example Step 5. Apply Hough Transform to frame Circles are detected and shown in this image
Pick Eyes Example Step 6. Apply pickEyes function to frame
Pick Eyes Example Step 6.1 These are pixels close to the white end of the spectrum (255) Step 6.1 Remove points with high index values. As this is image is quite dark, with the highest index value of 75. No points are removed at this stage.
Pick Eyes Example Step 6.2 Match points of similar radius
Pick Eyes Example Step 6.3 Apply Distance Condition Remove sets that lie outside Maximum width and inside Minimum
Pick Eyes Example Step 6.4 Apply angle test to points Remove points that lie at a greater angle to the X axis than specified.
Pick Eyes Example Step 6.5 Remaining points should be: 1.Similar in Radius 2.Within specified distance limits 3.Within specified angle limits
Pick Eyes Example Step 6.6 Original Image highlighted Current Image frame Eyes Upper Threshold Lower Threshold Next Image frame
Hardware • Camera • Pressure Sensors 1. FSR’s 2. ADuC 8031 Development Board
Camera The camera used is a standard CMOS desktop web cam. The resolution of 640x480 pixels was chosen so as to get adequate images and allow for speedy computation.
Pressure Sensors These will be used to monitor the drivers grip on the steering wheel. The Force Sensitive Resistors consist of 2 flexible substrates, with printed electrodes and semiconductor material sandwiching in a spacer substrate. Diagram from FSRguide
Pressure Sensors The conductance is plotted vs. force (the inverse of resistance 1/r).This format allows interpretation on a linear scale. For reference, the corresponding resistance values are also included on the right vertical axis. Diagram from FSRguide
Pressure Sensor Circuit The FSR’s are arranged in a voltage divider circuit. This involved placing the FSR’s in series with a known resistance and measuring the voltage across it while the FSR’s vary with pressure.
ADuC 8031 • The Analog Devices product, the ADuC831 was chosen for this project as it provided the embedded system functionality described in the initial specification. Its core consists of an 8052 Microcontroller which provides the necessary processing power to compute the demands made on it by the requirements of this project.
ADuC 8031 • The ADuC 8031 is used to sample the data coming from the pressure sensors. The data is sampled and transferred to the PC via the serial port. • The signal is converted to 12bits . This is too sensitive so the data is adapted to give 25 levels, approximately 0-2.5v. The ASCII value of the levels is sent to MATLAB to determine Driver grip of the steering wheel
Results • Using the MATLAB environment to integrate the components of this project I have been able to develop a system that monitors both visual clues from the Driver and auxiliary data from pressure sensors. • The program processes a frame of image data and numerous pressure sensor readings per loop.
Results • This allows system to grade the data and trigger a response if the data values fall below defined threshold levels.