Developpez.com

Le Club des Développeurs et IT Pro

Des chercheurs de Google créent un algorithme de reconnaissance de caractères

Avec un taux de réussite de 99,8% sur les textes de reCAPTCHA

Le 2014-04-18 14:21:52, par Cedric Chevalier, Expert éminent sénior
Si pour un humain normal reconnaître des personnes ou du texte sur des photos est une tâche banale, pour un ordinateur c’est extrêmement difficile. Jusqu’ici, de nombreuses approches ont été expérimentées pour donner aux machines des capacités de perception visuelle proche de celles des humains. Pratiquement, on a toujours été loin du compte.

Des chercheurs ambitieux de Google, ont pris sur eux de relever ce défi. Traditionnellement, la reconnaissance des images implique trois étapes distinctes (localisation, segmentation et reconnaissance) qui sont implémentées avec des algorithmes différents.

Ian J. Goodfellow, Yaroslav Bulatov, Julian Ibarz, Sacha Arnoud et Vinay Shet ont combiné ces trois étapes dans un seul algorithme d’apprentissage, un réseau de neurones à convolution profond qui opère au niveau de chaque pixel d’image fourni en entrée.

L’algorithme a été testé avec les numéros de maison de la banque de données de Street View. Il s’en sort avec un taux de réussite de 96%. Et ce n’est pas tout ! Les chercheurs ont poussé le bouchon en soumettant leur algorithme au reCAPTCHA, là où échouent les systèmes de reconnaissance optique des caractères (OCR). Ils ont obtenu un taux de réussite de 99,8% (pratiquement la performance d’un sujet humain).


En termes de réussite, le nouvel algorithme de Google représente le « nec plus ultra » dans le domaine de la reconnaissance optique des caractères. On espère tout simplement que de nouvelles applications utilisant cet algorithme verront rapidement le jour.

Source: Rapport PDF de l'étude

Et vous ?

Qu'en pensez-vous ?
  Discussion forum
22 commentaires
  • On va enfin pouvoir lire les ordonnances des toubibs

    Steph
  • Vlozer
    Membre habitué
    Ils ont obtenu un taux de réussite de 99,8% (pratiquement la performance d’un sujet humain).
    Ca me vexe un petit peu que vous disiez cela, parce que mon taux de réussite perso est plutot de l'ordre de 70%-80%...
  • Fanvan
    Membre actif
    Envoyé par Afromaster
    si c'est pas idiot ça c'est quoi ?
    Le cours naturel de l'évolution technologique. En d'autres mots, le progrès.
  • azias
    Membre éclairé
    Envoyé par boced66
    C'est pas google qui détient le "meilleur" reCAPTCHA du marché ?

    Ils ont donc créé un système qui contourne leur propre sécurité

    Je ne crois pas que l'objectif de google avec son CAPTCHA à quoi que ce soit à voir avec la sécurité. Ça leur sert surtout à ce que NOUS les aidions à faire de la reconnaissance de caractère sur google books, street view, probablement pour les google glass aussi... et apparemment aussi à améliorer leur OCR.
  • Shuty
    Membre éprouvé
    Maintenant on va tester le taux d'échec pour vérifié que l'user est humain...
  • Matthieu Vergne
    Expert éminent
    Non mais big LOL ! Cet algo est pour la reconnaissance de chiffres, soit 10 caractères différent!

    Ce qui rend une reconnaissance de caractères difficiles, c'est (i) le nombre de caractères possibles et (ii) les séquences possibles. Avec 10 caractères, on a 1 chance sur 10 d'avoir juste en en prenant un tout à fait au hasard, et quand ce sont des chiffres on n'a généralement aucune dépendence entre deux chiffres consécutifs (a fortiori pour un simple numéro de rue), ce qui permet de se focaliser sur un chiffre à la fois et donc de simplifier grandement l'algo (toute analyse sur plusieurs caractères profitera à l'ensemble, comme identifier l'érosion générale et les répétitions de patterns qui tendent à dire qu'on a affaire au même symbole). Avec quelques heuristiques, on arrive déjà à avoir déjà de bons résultats. Appliquez ça sur un alphabet de 26 lettres et ce n'est déjà plus la même histoire, parce que non seulement la complexité n'est pas linéaire (plutôt de l'exponentiel, au mieux polynomial) mais en plus on a des relations entre les lettres à considérer (on a peu de chance de voir deux 'a' qui se suivent en français, mais dans une autre langue...).

    Bref, on est loin, très loin même de la reconnaissance de caractères dans son sens large. Oubliez les scans de bouquins ou d'ordonnance de toubibs. L'article est juste à côté de la plaque. Je me suis pas encore fait aux titres m'as-tu-vu de ceux qui veulent aguicher les lecteurs mais restent honnêtes dans le reste de leur publication que voilà maintenant ceux qui en oublient même de lire l'article (certes j'exagère, mais c'est quand même un point important, clair dès la lecture du résumé, et qui pourtant n'apparait nul part, même pas de manière implicite).
  • acx01b
    Membre averti
    Moi j'ai un avis sur les réseaux de neurones unidirectionnels (pas de connexions backward dans le résesau, aucun cycle), et c'est bien d'un réseau de neurone unidirectionnel dont il est question ici.

    C'est toujours impressionnant de réussir à faire des choses avec des réseaux de neurones, mais tant qu'ils ne sont pas récurrent (que c'est juste une suite de couche avec des connexions dans un seul sens, même topologie que le multi-layer-perceptron) ils restent des approximateurs universels : toute fonction de R^n dans R^k peut être approximée par un MLP à une couche cachée, le problème étant la taille de cette couche cachée.

    La phase d'apprentissage du réseau de neurone est une forme de récurrence, où les couches du bas peuvent "informer" les couches du haut de certaines choses, et dans un processus aussi complexe que la reconnaissance de texte en toute circonstance, il y a bien une quantité d'information qui doit circuler dans le réseau de neurone, du haut vers le bas et du bas vers le haut (le bas c'est le résultat, le haut c'est l'image brute). Une partie de la tâche de la reconnaissance de texte est d'extrapoler, de faire des déductions à partir de quantités d'informations, et ce processus ne peut pas se modéliser par un réseau de neurone unidirectionnel à N couches.

    J'attends donc le jour où ils arriveront à faire la même chose avec un réseau de neurone récurrent (avec des connexions back-ward) et un algorithme d'apprentissage qui ne s'arrête jamais (les déductions doivent donner lieu à une mémorisation : j'ai mémorisé que la tâche noire à droite n'était pas du texte, c'est bien une forme d'apprentissage du réseau de neurone, que l'on stocke cette information dans les poids des connexions entre les neurones ou dans l'état d'excitation d'un neurone ça ne change rien fondamentalement même si en pratique on préfère stocker les informations temporaires dans l'état d'excitation, et les informations à long terme dans les poids et dans la topologie du réseau).
  • Jérôme_C
    Membre averti
    Les chercheurs ont poussé le bouchon en soumettant leur algorithme au reCAPTCHA, là où échouent les systèmes de reconnaissance optique des caractères (OCR). Ils ont obtenu un taux de réussite de 99,8% (pratiquement la performance d’un sujet humain).
    99,8 % de réussite au reCAPTCHA ! C'est un score inhumain, trop de réussite, c'est donc un bot !
  • abriotde
    Membre chevronné
    Je sais quel est la première utilisation concrète de cet algorithme : l'identification précise de l'emplacement des numéro dans les rues "virtualisé" sur Google Street. Actuellement quand on cherche sur le GPS Google est le meilleur pour positionner un numéro mais cela ne veut pas dire qu'il soit bon...
    Maintenant j'aurais envie de mettre cet Algo en Open Source, je pense que c'est l'intention de Google mais se pose un problème de sécurité profonde : les Captcha...

    Quel sera le prochain test d'humanité? J'ai vu des tests ou il y a un question a comprendre du style : notez les caractère sous un petit rond. On en arrivera a de vrai test de QI
  • Omote
    Membre averti
    Envoyé par Vlozer
    Ca me vexe un petit peu que vous disiez cela, parce que mon taux de réussite perso est plutot de l'ordre de 70%-80%...
    Pas mieux! Des fois cela en est ridicule!