<p>Some method I had experience with them are </p>

<ul>
<li><a href="http://hal.inria.fr/inria-00439290" rel="noreferrer">metric learning</a> for comparing faces</li>
<li><a href="http://www.robots.ox.ac.uk/~vgg/research/nface/" rel="noreferrer">naming video characters</a>: they use SIFT descriptors computed at specific feducial points on each face. Their code worked quite well for me in the past.</li>
</ul>

<p>A dataset and benchmark that is dedicated for this task is <a href="http://vis-www.cs.umass.edu/lfw/" rel="noreferrer">labeled faces in the wild</a>. You can find there references to working methods for comparing faces after detection.</p>

<p><strong>UPDATE:</strong><br>
I have a description of an experiment on face clustering: unsupervised face identification.
The experiment is described in <a href="http://arxiv.org/pdf/1210.7362v2.pdf" rel="noreferrer">Section 4.4 of my thesis</a>.<br>
The basic flow is as follows</p>

<ol>
<li><p><strong>Metric learning:</strong> how to determine if two faces are of the same person or not.<br>
This part is supervised, in the sense that it requires as input face images labeled with the identity of the person who appears in each photo.</p>

<p>a. Detect fiducial points (eyes, corner of mouth, nose).<br>
  You may use <a href="http://www.robots.ox.ac.uk/~vgg/research/nface/" rel="noreferrer">this code</a>, or more recent versions such as <a href="http://www.ics.uci.edu/~xzhu/face/" rel="noreferrer">this one</a>.</p>

<p>b. Extract SIFT descriptors at the detected fiducial points. </p>

<p>c. Construct a "face descriptor": each face is described using a <strong>single</strong> vector.<br>
This vector is a concatenation of the <strong><code>sqrt</code></strong> of all the SIFT descriptors.</p>

<p>d. Use the method described <a href="http://hal.inria.fr/inria-00439290" rel="noreferrer">here</a> to learn a mahalanobis distance between faces of different persons.</p></li>
<li><p><strong>Unsupervised face identification:</strong> Once a metric was learned, you may use new photos of <strong>new</strong> people (these people need not be part of the training set, you may use photos of <strong>unseen-before</strong> people!). </p>

<p>a. Repeat stages a-c to construct the same "face descriptor" vector for each input face.</p>

<p>b. Compare the descriptor vectors using the learned mahalanobis distance.</p></li>
</ol>
Face identification with opencv
<p>I'm using the libraries OpenCV for image processing in C + + and this is my question: can you think possible to do a facial recognition (saying the name of a person based on a database of photos) by comparing the frame of videocamera with images in a database using the technique of image histograms comparison? (Note that i compare only the facial region of an image using an example included in the opecv libraries).</p>

<p>I'm asking this because i've just tried to do a program like above but i have a lot of problem (often i detect the wrong person)</p>