I am developing a C++ application for face authentication. First, I have to detect the face and pre-process the image.
Detecting misaligned faces make face recognition difficult. Sometimes you want to fix the alignment, sometimes it is sufficient to exclude the ones that aren't aligned correctly (for instance if you're detecting faces in a video stream). I took the latter approach and trained a special Haar Cascade to only detect correctly aligned, well-lit faces. Details here: http://rwoodley.org/?p=417.
If you use my cascade let me know how it works for you. I'm curious what results others would obtain. It met my needs.