Reconnaissance et catégorisation d’images et de photos
Depuis quelques temps, je bosse sur un moteur de recherche (rien de bien folichon, un poil de PHP, une base MySQL, un peu de bash, et pour les recherches à proprement parler SphinxSearch, enfin bref, je n’en parle pas plus ici, je prévois un petit article sur ce sujet), là où j’ai un problème, c’est pour l’indexation des images et photos, pour l’instant je récupère les données utilisées pour les intégrer dans une page web via les attributs alt de la balise <img> et/ou via l’attribut title de la balise <a> quand c’est un lien qui pointe vers une image. Cette méthode n’est pas réellement satisfaisante car sur la grande majorité des sites internet les rédacteurs ne s’embêtent pas trop avec ce genre de détails ou remplissent cette balise un peu n’importe comment :/ d’où ma recherche d’une solution pour mieux référencer les images…
Et là, magie d’internet, je tombe sur un article (de je ne sais plus qui et pas moyen de retrouver cette source…) présentant sommairement une solution proposée par le « Toronto Deep Learning group », un script qui analyse et catégorise les images qui lui tombe sous la patte. La démo disponible à cette adresse http://deeplearning.cs.toronto.edu/ est assez impressionnante, prenez 5 minutes pour tester Deep Learning vous verrez ce que je veut dire.
Je n’ai pas trop regardé, pour l’instant, comment ça fonctionne, mais je suppose que ça fonctionne par comparaison, c-a-d que vous lui soumettez une image, il la vectorise/découpe/modélise (?) il cherche dans sa base de données et quand ça « match », il catégorise, si il ne trouve pas de correspondance, à vous de donner une « définition » de votre image pour qu’il l’apprenne. Enfin là, je me répète, je ne fais que supposer en partant du peu que j’en ai vu et du peu que je connaisse sur le sujet, si je me plante, n’hésitez pas à me corriger dans les commentaires.
Enfin, voilà, je n’ai pas eu le temps de le tester sur un de mes serveurs ou de le tester en local, mais je pense que quand j’aurai 1 heure ou 2. Je me demande aussi si il ne serait pas judicieux de passer un coup d’OCR derrière pour être plus précis dans l’indexation des images.
En attendant, si vous avez des retours ou si vous connaissez d’autres solutions, je suis preneur…
- tesseract OCR : http://code.google.com/p/tesseract-ocr/
- SphinxSearch : http://sphinxsearch.com/
- Démo deep learning : http://deeplearning.cs.toronto.edu/