Je travaille sur un petit projet impliquant les visages des utilisateurs de Twitter via leurs photos de profil.
Un problème que j'ai rencontré est qu'après avoir filtré toutes les images sauf les images qui sont claires, un pourcentage faible mais significatif d'utilisateurs de Twitter utilise une photo de Justin Bieber comme photo de profil.
Afin de les filtrer, comment puis-je déterminer par programme si une image est celle de Justin Bieber?
[justin-bieber]
tag.Réponses:
Une meilleure idée pourrait être de supprimer toutes les images qui apparaissent dans le flux de plusieurs utilisateurs - aucune reconnaissance requise.
la source
J'ai l'impression que http://www.tineye.com/commercial_api peut être la solution ici. Envoyez simplement l'image de profil Twitter à Tineye pour voir si elle renvoie des images (et les URL associées) clairement identifiables (ou automatiquement classées à l'aide d'une simple logique de décompte des mots) comme liées à (ou à) ce petit sac de * *.
Simples!
la source
Étant donné que vous ne pouvez filtrer que sur les photos au format portrait nettes, je suppose que vous disposez d'une méthode de génération de fonctionnalités pour transformer les images brutes en fonctionnalités utiles pour l'apprentissage automatique. Si cela est vrai, vous pouvez essayer de former un algorithme de classification (il y en a beaucoup: réseaux de neurones, etc.) en fournissant à cet algorithme un ensemble de photos de Bieber connues ainsi qu'un ensemble de non-Biebers connus. Une fois que vous avez formé le modèle, il peut être utilisé pour prédire si une nouvelle image est Bieber ou non.
Ce type de technique d'apprentissage supervisé nécessite que vous disposiez de données pour lesquelles vous connaissez la bonne réponse (Bieber ou non), mais celles-ci pourraient probablement être trouvées à partir d'une recherche d'images Google. Cela nécessite également que vous disposiez des fonctionnalités appropriées, et je ne connais pas suffisamment le traitement d'images ou votre algorithme pour savoir s'il s'agit d'un inconvénient majeur.
la source
Vous pouvez utiliser une méthode comme eigenfaces, http://en.wikipedia.org/wiki/Eigenface . Vous trouverez ci-dessous un bon aperçu de la procédure et des liens vers différentes implémentations.
http://www.pages.drexel.edu/~sis26/Eigenface%20Tutorial.htm
À partir de là, il est courant d’utiliser cette méthode dans une approche de classification, d’entraîner un modèle, puis de prévoir les cas. Vous pouvez le faire en vous entraînant sur un groupe de célébrités connues et si vous prédisez un visage de Twitter comme étant l'un de vos modèles formés de célébrités, supprimez-le. Semblable à ceci http://blog.cordiner.net/2010/12/02/eigenfaces-face-recognition-matlab/
Cela souffre d'amendements constants. Bientôt, il y aura un nouveau Justin Bieber qui ne sera pas dans votre modèle entraîné, de sorte que vous ne pouvez pas le prédire. Il y a aussi un cas comme Whitney Houston, vous n'avez peut-être jamais pensé à l'ajouter auparavant, mais elle peut être une image commune par respect et admiration pour quelques semaines. Vous n'aurez cependant pas les inconvénients des images de bébé mentionnées ci-dessus. Pour surmonter ces problèmes, vous pouvez utiliser davantage une approche de clustering hiérarchique. Si vous supprimez les premiers groupes de clusters très proches s'ils atteignent un certain niveau de support, votre premier cluster contient 15 éléments avant qu'un deuxième ne soit construit. Maintenant, vous n'avez plus à vous soucier de qui dans votre modèle de formation, mais vous tomberez dans le problème des images de bébé.
la source
http://face.com/ a une API de reconnaissance faciale gratuite
la source
Si vous voulez le faire vous-même, je vous recommanderais d'utiliser le projet OpenCV (CV pour la vision par ordinateur) gratuit et à code ouvert d'Intel.
http://opencv.willowgarage.com/
http://oreilly.com/catalog/9780596516130
la source
Vous devez utiliser un algorithme détectant à quelle personne cette image fait référence. Vous pouvez créer un modèle basé sur différents portraits de personnalités célèbres et utiliser des classificateurs pour vous assurer que cette image fait référence à l'une de vos images de base de données. Vous devez utiliser un certain classifieur en fonction de différents paramètres liés au visage, tels que la distance entre les yeux ou d’autres paramètres, pour augmenter la précision de votre modèle. Il y a aussi l'analyse de la peau. Le plus important est de construire un bon classificateur. Cette méthode peut être vulnérable.
Mais il existe également un très bon projet sur la reconnaissance faciale http://opencv-code.com/Opencv_Face_Detection
la source
Vous pouvez essayer le hachage sensible à la localité .
la source