Yes, indeed I have experience in that field. My B.Sc. thesis was about dynamic head pose recognition from statistical facial features.

@Tempelbauer: it is necessary to know what you actually want to do, because pattern recognition is not so easy as you might think. Seriously. Most people on the net which do something in that field and post vids on YouTube are only utilizing features of packages like OpenCV or re-implementing stuff that is known to computer vision research for years. So don't be to excited wink

Slin pointed out the Viola Jones Detector, which essentially utilizes Cascaded Haar Features (not from hair.. Haar was a researcher). Haar Features work only for greyscale images and are very fast and reliable, but training them is very expensive. I used the Haar Cascades provided with OpenCV to detect (not recognize, that is a difference!) faces in images in order to normalize an image to that portion of the camera image.

Face recognition is an approach in which you, given a face image (so, detection is already done!), try to identify the person of that image, or if no person you know is associated with the face image. I used the Gabor Wavelet Transformation (GWT) and a brand-new method of Elastic Bunch Graph Matching to do that. GWT needs to have the fourier-transformed image, so, you essentially have to implement a FFT for that, all in all is such an approach not realtime-enabled.

Rotated faces (along the camera axis) and posed faces (3 degrees of freedom, in arbitrary space) is a very special problem. Most solutions don't cover rotations beyond a certain degree. I trained a network of Gabor Jets for special facial features for about 12 pan angles and 8 tilt angles on a camera-space face-pose grid, tagged all training images by hand and then I process the image against the model - it works. But this is not realtime, since it is very CPU and data driven. But it's accuracy was suprisingly high, I got for the vertical axis (tilt), even more accurate results than other leading approaches; though, the horizontal results were not promising, due to some decisions I made for which facial features to take. The Kalman-Filter almost filtered false positives out, but if the head rotated around the forward axis (which I didn't targetted, though), I got bad results.

For realtime systems, there are a list of other approaches to recognize the face pose, or facial expression. Most of them, though, are very limited, since you try to recognize for example certain lines in the face and later, you try to recover from the relative shape alignment the face pose. After researching the literature, I found most systems pretty unreliable for high angular head rotation, like between -90°...0...+90° (pan and tilt).

Since motion video covers lots of noise and errors (especially during arbitrary lightning conditions), you get much trouble with the data you recover, so, in most cases you need a filter, like the Kalman-Filter, to smooth out the generated position, pose, etc. Kalman-Filters are pretty naive, though, but easy to implement, I found them pretty reliable for linear movements and -motions.

I could provide you my bachelor thesis, if you like. The literature list contains lots of nice papers and surveys which cover the state of the art. Though, there are lots of algorithms, how to do this stuff in realtime, but don't expect much accuracy if you have high hopes.