You can hook up a camera that sends serial data to the Arduino (available from Sparkfun, I think they are normally used for cell phones, it looks similar to the CMUcam solution) then send data to your computer via usb, or you can use a wireless module if your feeling swanky. Then you could download a facial tracking program, that would process the images from the Arduino. Facial tracking is a well established method of real time video processing, it should be relatively easy to find one.
That's the only way I can think of that may get around the Arduino's lack of horsepower, you will need to be hooked up to a proper computer tho, if you want to process realtime video. It would be more expense and effort compared to using NIR sensors, but the results may be more suited for your application.