human
Comment fonctionne le CAPTCHA ? Comment le fait de taper quelques lettres distingue-t-il un humain d'une machine ? Explique comme si j'avais cinq ans.
gpt
Voici un exemple de CAPTCHA utilisé par reddit (que j'ai trouvé en essayant de me connecter !) : URL_1 généraliser * les objets beaucoup mieux que les machines. Si vous regardez le captcha que j'ai inclus ci-dessus, nous pouvons facilement interpoler qu'il existe des mots entre les lignes blanches sinueuses. Si une machine considérait cette image comme des données brutes, elle verrait probablement tout un tas de 1 et de 0 binaires et n'aurait aucune idée de ce qu'il faut en faire. Probably something like this : 000001100000110000011000001100000110000011000001100000 000001100000110000011000001100000110000011000001100000 11111111111111111111111111111111111111111111111111111111111111 000001100000110000011000001100000110000011000001100000 000001100000110000011000001100000110000011000001100000 11111111111111111111111111111111111111111111111111111111111111 000001100000110000011000001100000110000011000001100000 000001100000110000011000001100000110000011000001100000 The " 1 's " will be the white pixels in the captcha I linked , while the " 0 's " are the black pixels . Dans ce que j'ai tapé , il est assez facile pour les humains et les machines de reconnaître un motif , car il se répète périodiquement . SI nous introduisons des caractères (parfaitement normaux), le schéma devient cependant plus ambigu, et c'est là qu'il commence à distinguer les humains des machines. Comme je l' ai déjà dit , les humains ont une capacité incroyable à faire des généralisations - nous avons vu à quoi ressemblent des caractères comme " G " , " S " , " A " auparavant , donc nous essayons d'accomplir 2 choses à chaque fois que nous voyons un captcha : 1) Nous recherchons dans l'image des motifs similaires à ceux que nous comprenons actuellement 2) Nous prenons n'importe quel motif sur l'image et mettons à jour nos modèles actuels de l'objet. Aux débuts de l'apprentissage automatique et de la vision par ordinateur, les captchas étaient un excellent outil pour distinguer les humains des machines. Cependant, il existe actuellement de nombreuses recherches sur les algorithmes permettant de casser ces codes. L'apprentissage automatique est un domaine hautement *statistique*, qui tente de modéliser la capacité humaine à effectuer de telles généralisations. Les réseaux de neurones et l'OCR (reconnaissance optique de caractères) sont deux des principales approches utilisées pour casser et tromper les images captcha en leur faisant croire qu'ils sont humains - alors qu'en fait, ils ne le sont pas. Le captcha que j'ai lié ci-dessus nous semble assez simpliste, mais il se passe beaucoup de choses dans l'image qui font des ravages sur les algorithmes OCR simplistes - mais qui peuvent toujours être cassés. Dans ce cas, un simple pré-traitement sur les lignes serait nécessaire avant qu'il ne soit envoyé à un OCR. pour toute personne ayant des connaissances en vision par ordinateur , cela peut être accompli de manière assez robuste , car les lignes sont * * toutes * * extrêmement fines , par rapport aux caractères . Une simple érosion et dilatation (à l'aide d'un noyau 5x5 environ) devrait être nécessaire pour supprimer le fond... Mais je m'éloigne du sujet. Les captchas sont très divers en eux-mêmes, reportez-vous ici pour un exemple : URL_0 J'ai donné un exemple de la façon de supprimer l'arrière-plan sur le captcha reddit - mais comment généraliser les algorithmes pour les * autres * captchas que j'ai énumérés ci-dessus ? C'est actuellement ainsi qu'ils distinguent les humains des machines. Nous n'avons pas d'algorithme global pour chaque type de captcha. Cependant, les algorithmes d'apprentissage automatique sont de plus en plus performants. Si vous êtes intéressé, consultez « Réseaux de neurones récurrents » et comment ils sont appliqués aux techniques d'OCR. C'est vraiment cool. * * edit * * : avec le recul , je me rends compte que c'est un peu long et technique pour un ELI5 ... mais faites - moi savoir si quelque chose a besoin de plus d' explication . Je fais des recherches sur la vision par ordinateur et je me rends compte que j'ai peut-être introduit quelques concepts de niveau supérieur sans vraiment bien expliquer)