Você pode usar um método como eigenfaces, http://en.wikipedia.org/wiki/Eigenface . A seguir, é apresentado um bom passo a passo do procedimento, além de links para diferentes implementações.
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
A partir daqui, é comum usar isso em uma abordagem de classificação, treinar um modelo e prever casos. Você pode fazer isso treinando várias celebridades conhecidas e, se prever um rosto do twitter como um dos modelos de celebridades treinados, remova-o. Semelhante a este http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/
Isso sofre alterações constantes. Em breve, haverá um novo Justin Bieber que não estará em seu modelo treinado, então você não poderá prever. Há também um caso como Whitney Houston, que você nunca pensou em adicioná-la antes, mas ela pode ser uma imagem comum por respeito e admiração por algumas semanas. Você não terá o lado negativo de fotos de bebês, como mencionado acima. Para superar esses problemas, você poderia usar mais uma abordagem de cluster hierárquico. Removendo os primeiros conjuntos de clusters que estão muito próximos se atingirem um determinado nível de suporte, seu primeiro cluster possui 15 itens antes da construção de um segundo. Agora você não precisa se preocupar com quem está no seu modelo de treinamento, mas vai cair na questão das fotos do bebê.