Estoy trabajando en un pequeño proyecto que involucra las caras de los usuarios de Twitter a través de sus imágenes de perfil.
Un problema con el que me he encontrado es que después de filtrar todas las imágenes, excepto las fotos de retratos claros, un porcentaje pequeño pero significativo de usuarios de Twitter usa una imagen de Justin Bieber como imagen de perfil.
Para filtrarlos, ¿cómo puedo saber programáticamente si una imagen es la de Justin Bieber?
[justin-bieber]
etiqueta.Respuestas:
Una mejor idea podría ser eliminar todas las imágenes que aparecen en el feed de más de un usuario, sin necesidad de reconocimiento.
fuente
Tengo la sensación de que http://www.tineye.com/commercial_api puede ser la solución aquí. Simplemente arroje la imagen de perfil de Twitter a Tineye, vea si devuelve imágenes (y URL asociadas) que puedan identificarse claramente (o puntuarse automáticamente usando una lógica simple de conteo de palabras) como relacionadas con (o de) ese pequeño saco de * *.
Simples!
fuente
Dado que solo puede filtrar a aquellos que son fotos de retratos claros, supongo que tiene algún método de generación de características para transformar las imágenes en bruto en características que son útiles para el aprendizaje automático. Si eso es cierto, podría intentar entrenar un algoritmo de clasificación (hay muchos de ellos: redes neuronales, etc.) alimentando el algoritmo con un montón de fotos Bieber conocidas, así como un montón de no Biebers conocidos. Una vez que haya entrenado el modelo, podría usarse para predecir si una nueva imagen es Bieber o no.
Este tipo de técnica de aprendizaje supervisado requiere que tengas datos donde sepas la respuesta correcta (Bieber o no), pero probablemente se puedan encontrar en una búsqueda de imágenes de Google. También requiere que tenga el tipo correcto de características, y no sé lo suficiente sobre el procesamiento de imágenes o su algoritmo para saber si eso es un inconveniente importante.
fuente
Podrías usar un método como eigenfaces, http://en.wikipedia.org/wiki/Eigenface . A continuación se detalla el procedimiento, así como enlaces a diferentes implementaciones.
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
A partir de aquí, es común usar esto en un enfoque de clasificación, entrenar un modelo y luego predecir casos. Puede hacer esto entrenando a un grupo de celebridades conocidas y si predice una cara de Twitter como una en su modelo entrenado de celebridades, elimínela. Similar a este http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/
Esto sufre constantes enmiendas. Pronto habrá un nuevo Justin Bieber que no estará en su modelo entrenado, por lo que no puede predecirlo. También hay un caso como Whitney Houston, puede que nunca hayas pensado en agregarla antes, pero puede ser una imagen común por respeto y admiración durante unas semanas. Sin embargo, no tendrá la desventaja de las fotos de bebés como se mencionó anteriormente. Para superar estos problemas, podría utilizar más un enfoque de agrupamiento jerárquico. Al eliminar los primeros conjuntos de grupos que están muy cerca si alcanzan un cierto nivel de soporte, su primer grupo tiene 15 elementos antes de construir un segundo. Ahora no tiene que preocuparse por quién está en su modelo de entrenamiento, pero caerá en el tema de las fotos del bebé.
fuente
http://face.com/ tiene una API de reconocimiento facial gratuita
fuente
Si desea hacerlo usted mismo, recomendaría usar el proyecto OpenCV (CV para visión artificial) de Intel, gratuito y de código abierto.
http://opencv.willowgarage.com/
http://oreilly.com/catalog/9780596516130
fuente
Debe poner un algoritmo para detectar a qué persona se refiere esa imagen. Puede construir un modelo basado en diferentes retratos de personalidad famosa y usar clasificadores para asegurarse de que esta imagen se refiera a una de las imágenes de su base de datos. Debe usar un determinado clasificador basado en diferentes parámetros que le gustan a la cara, como la distancia entre los ojos u otros parámetros para aumentar la precisión de su modelo. También hay análisis de piel. Lo más importante es construir un buen clasificador. Este método puede ser vulnerable.
Pero también hay un muy buen proyecto trabajando en reconocimiento facial http://opencv-code.com/Opencv_Face_Detection
fuente
Podrías probar hashing sensible a la localidad .
fuente