Face detection algorithms have improved significantly in the last five years, in part because of a shift away from handcrafted systems to supervised learning systems that discover effective feature combinations from large amounts of training data. This broad characterization covers three prominent algorithms: the Viola and Jones Ada Boost algorithm, the statistical model approach of Schneiderman, and the SNoW algorithm of Yang et al. However, beyond this broad characterization, these algorithms differ greatly in detail. In particular, they use different image-features and different decision-procedures for determining whether a face is present. Why do these very different algorithms all perform relatively well, and how do the image-feature and decision-procedure choices implicit in these algorithms interact? This study will reveal the underlying fundamentals of these three approaches and others by establishing a common framework for combining and comparing image-feature extraction and decision-procedures. Empirical advances will be made in characterizing face detection tasks in an algorithm independent fashion critical to the development of better face detection algorithms. The practical impact of this research is two-fold. New open source versions of three prominent face detection algorithms will be developed and integrated into the current CSU Face Identification Evaluation System. Downloads of the current system exceeded 7,000 in November 2004, and the inclusion of face detection will enhance this tool. More broadly, better, more reliable face detection is a key stepping stone to better face recognition. Competent, reliable face recognition is highly valuable for many applications such as security. However, the practical value of good face recognition transcends security applications -- computers are more likely to interact helpfully with people they can recognize.