Real-time Face Tracking - National University of Ireland

Download Report

Transcript Real-time Face Tracking - National University of Ireland

Shane Kinsella
05491193
4th year Electronic Engineering 4BN1
NUI Galway
Supervisor: Peter Corcoran
March 2009
Concept
 To investigate facial detection with reference to
OpenCV and the Viola Jones technique
 Explore parameters which effect the detection time
 Optimise facial detection using knowledge about
video streams and the movement of objects
Applications
 Any detection system that is required to run in real-
time or at very high frame rates
 System does not have to detect faces, this system
may be extended to work while detecting any
object (given detect rules for that object)
 Knowledge of the movement patterns of that object
needs to be either known or learned on the fly
 This system may be combined with other
optimisation techniques to form a basis for realtime object tracking used in AI
Work Carried Out
 Researched OpenCV (API) and Python (programming





language)
Researched the Viola and Jones’ method of facial
detection
Found example code of facial detection using OpenCV
Tested the detection time of facial detection when
varying the parameters involved
Investigated movement patterns of faces on a webcam
Used this knowledge to define limits for optimised
code
Optimisations which were
applied
 Scan area limited to a region around a previously
detected face
 Minimum face size is limited to a value which is
proportional to the size of the previously detected
face
Issues Encountered
Project Specific
Coding issues
 Introduction of new faces
 Setup of Python and
 Elimination of duplicate
faces
 The velocity question




OpenCV
Applying facial detection to
sub regions of an image
Keyboard handling
Visibility of variables
Memory usage runaway
Reason for Discarding Velocity
 A high frame rate is essential to the operation of a
system which uses the previous position and the
previous velocity
 This is so that the system may pick up changes in
velocity ex. A moving object suddenly stops
 A higher frame rate means that objects will travel
less from one frame to another
 As the distance travelled by an object gets less and
less, any advantage gained by introducing velocity
also gets reduced
Reason for Discarding Velocity
(Summary)
 High frame rate is essential to proper operation
 Becomes less effective (ineffective) the higher the
frame rate
Results
 Frame rates have been noted to improve by a
factor of 5+ (typical 4 FPS to 20+ FPS)
 Adapting the minimum face size accounts for the
greatest improvement
 FPS improvement without adaptable min face size
approx 2 times faster
Features of Solution Code
 Polled based keyboard input
 Refreshes new faces when:
 Spacebar pressed
 No faces were found previously
 Many display features for displaying data
 Can vary the tracking parameters used
 Can swap between un-optimised detection and
optimised detection (key 6)
 Can toggle the use of adaptable minimum face size
(for comparison purposes)
Display Options
 Key 1: toggle display faces detected (on by
default)
 Key 2: toggle display scan area used per face
 Key 3: toggle display min face size used per face
 Key 4: toggle print FPS to the console window
Configuration Options
 Key 5: toggle un-optimised/optimised detection
 Key 6: toggle use of adaptable min face size
 Key w or s: select the variable you wish to vary (2
supported)
 Scan area size
 Minimum face size
 Key a or d: vary the selected variable
 Key 0: restore all of the default settings