L'ORC va manger le chat sous la cap ?
13 messages
• Page 1 sur 1
- gomoz
- WRInaute discret

- Messages: 230
- Inscription: 29 Déc 2004
L'ORC va manger le chat sous la cap ?
Bonjour,
je suis tombé sur plusieurs discutions sur les systèmes de capcha et généralement on arrive à des système assez compliqué car le méchant OCR est à l'affût.
Par curiosité je me demandai comment pouvait bien fonctionner un system d'OCR. Est-ce que vous avez quelques notions la dessus ou un liens qui en parle ? (par curiosité intellectuel et mieux comprendre comment faire un capcha efficace).
aux modos : j'ai mis le topic ici car cela se rapporte plus à de la programmation mais si vous voyez où le mettre ailleurs, veuillez m'en excuser.
je suis tombé sur plusieurs discutions sur les systèmes de capcha et généralement on arrive à des système assez compliqué car le méchant OCR est à l'affût.
Par curiosité je me demandai comment pouvait bien fonctionner un system d'OCR. Est-ce que vous avez quelques notions la dessus ou un liens qui en parle ? (par curiosité intellectuel et mieux comprendre comment faire un capcha efficace).
aux modos : j'ai mis le topic ici car cela se rapporte plus à de la programmation mais si vous voyez où le mettre ailleurs, veuillez m'en excuser.
Dernière édition par gomoz le Ven Avr 14, 2006 15:43, édité 1 fois.
-

spout - WRInaute accro

- Messages: 4109
- Inscription: 14 Mai 2003
Oui en effet, y'a des petits malin qui arrivent a décoder les captcha sans problèmes.
Une liste ici pour savoir ce qu'il faut faire et ne pas faire:
http://sam.zoy.org/pwntcha/
Une liste ici pour savoir ce qu'il faut faire et ne pas faire:
http://sam.zoy.org/pwntcha/
- Bourriquet
- WRInaute impliqué

- Messages: 637
- Inscription: 19 Sep 2005
Pour avoir mené un projet de vidéo surveillance par poste informatique durant mes années bts, je peux te dire une chose.
Quand tu t'attaques à un projet du genre, tu te dis souvent que c'est très compliqué. Mais par dychotomie, tu arrives très rapidement à un système performant.
Quand tu t'attaques à un projet du genre, tu te dis souvent que c'est très compliqué. Mais par dychotomie, tu arrives très rapidement à un système performant.
-

Szarah - WRInaute accro

- Messages: 8093
- Inscription: 22 Fév 2006
Enfin-bon, la lecture obligatoirement humaine d'un code étant désormais has been comme moyen d'empêcher les robots d'entrer, il y a lieu de faire mieux : remplacez par un test de calcul, par exemple d'addition (un truc pas trop compliqué, que l'internaute humain puisse entrer sans calculette).
- gomoz
- WRInaute discret

- Messages: 230
- Inscription: 29 Déc 2004
Oué pas mal du tout, je suis un peu bluffé par le lien de spoutnik.
pour la dichotomie, je connaissais pas : en effet, ça parait tout bête pour transformer une image en noir et blanc mais après, pour trouver les caractères, ça fonctionne comment ?
J'ai pris un cas concret en prenant une image captcha au hasard :
que je transforme ensuite en N&B :
Vu que tu l'air de connaitre le sujet Bourriquet, ca t'embete de m'expliquer un peu plus le principe ?

pour la dichotomie, je connaissais pas : en effet, ça parait tout bête pour transformer une image en noir et blanc mais après, pour trouver les caractères, ça fonctionne comment ?
J'ai pris un cas concret en prenant une image captcha au hasard :
que je transforme ensuite en N&B :
Vu que tu l'air de connaitre le sujet Bourriquet, ca t'embete de m'expliquer un peu plus le principe ?
Genre la racine de deux on evite, c'est ca ?Szarah a écrit:remplacez par un test de calcul, par exemple d'addition (un truc pas trop compliqué, que l'internaute humain puisse entrer sans calculette).
- Bourriquet
- WRInaute impliqué

- Messages: 637
- Inscription: 19 Sep 2005
Par exemple en essayant de trouver les contours de ton image noir et blanc et les comparer à des masques de lettre, par exemple en prenant ces masques un à un et en cherchant le taux de comparaison le plus élevé.
En décompressant une image, tu arrives à un format (bmp ou tiff, ça dépends de l'ordre de stockage des pixels) ou un octet représent un pixel en niveau de gris 256.
Après c'est juste des comparaisons de valeur de pixels.
Par exemple, dans notre projet, la détection d'intrus se faisait pas comparaison d'images successive.
Le principe est simple: prends deux images puis tu calcules combien y a de pixels de différence, tu prends un seuil de tolérance et tu arrives très bien à faire la détection.
N'ayant pas fait de projet OCR, je peux pas te donner une méthode 100% efficace, mais ce que je veux te dire c'est que si tu prends le problème "Reconnaitre une lettre dans une image", c'est compliqué.
Mais c'est une somme de tous petits problèmes, comme par exemple problème numéro 1: isoler une lettre dans l'ensemble.
Une méthode qui pourrait marcher ça serait de passer en noir et blanc, accentuer éventuellement les contrastes, scanner une ligne de pixel et lorsque tu trouves un pixel "noir" ou gris foncé, tu dis que c'est le début de la lettre pour cette ligne. Lorsque tu repasses dans du blanc (avec peut être une tolérance genre 4 pixels blancs successif) tu détermines que c'est la fin de la lettre pour cette ligne.
En faisant ça tu découpes verticalement ton image en secteurs, et tu sais quelles portions tu vas extraire. Puis ensuite pour affiner un peu, tu balaies verticalement cette fois et tu fais la même chose, in facto horizontalement.
Enfin tu compares les pixels à une série de masques (en clair des images qui reprennent chaque lettre de l'alphabet) en ayant redimensionné le masque pour qu'il fasse la même taille que la zone de comparaison.
Donc tu compares un à un les pixels de chaque image avec un bête if (pixel_image1 == pixel_image2) score++ ;
Avec peut être une tolérance aussi ici.
A la fin t'as un score, tu compares avec les autres masques et tu prends le score le plus élevé....
Par exemple
Mais je suis sur qu'il y a des méthodes plus poussée, les programmes d'OCR fonctionnent très bien avec ton scanner 
En décompressant une image, tu arrives à un format (bmp ou tiff, ça dépends de l'ordre de stockage des pixels) ou un octet représent un pixel en niveau de gris 256.
Après c'est juste des comparaisons de valeur de pixels.
Par exemple, dans notre projet, la détection d'intrus se faisait pas comparaison d'images successive.
Le principe est simple: prends deux images puis tu calcules combien y a de pixels de différence, tu prends un seuil de tolérance et tu arrives très bien à faire la détection.
N'ayant pas fait de projet OCR, je peux pas te donner une méthode 100% efficace, mais ce que je veux te dire c'est que si tu prends le problème "Reconnaitre une lettre dans une image", c'est compliqué.
Mais c'est une somme de tous petits problèmes, comme par exemple problème numéro 1: isoler une lettre dans l'ensemble.
Une méthode qui pourrait marcher ça serait de passer en noir et blanc, accentuer éventuellement les contrastes, scanner une ligne de pixel et lorsque tu trouves un pixel "noir" ou gris foncé, tu dis que c'est le début de la lettre pour cette ligne. Lorsque tu repasses dans du blanc (avec peut être une tolérance genre 4 pixels blancs successif) tu détermines que c'est la fin de la lettre pour cette ligne.
En faisant ça tu découpes verticalement ton image en secteurs, et tu sais quelles portions tu vas extraire. Puis ensuite pour affiner un peu, tu balaies verticalement cette fois et tu fais la même chose, in facto horizontalement.
Enfin tu compares les pixels à une série de masques (en clair des images qui reprennent chaque lettre de l'alphabet) en ayant redimensionné le masque pour qu'il fasse la même taille que la zone de comparaison.
Donc tu compares un à un les pixels de chaque image avec un bête if (pixel_image1 == pixel_image2) score++ ;
Avec peut être une tolérance aussi ici.
A la fin t'as un score, tu compares avec les autres masques et tu prends le score le plus élevé....
Par exemple
-

ecocentric - WRInaute accro

- Messages: 3602
- Inscription: 10 Fév 2004
pour l'identification des caractères : réseaux de neurones, aussi.
- haute-definition.info
- WRInaute discret

- Messages: 127
- Inscription: 7 Nov 2005
Il existe déjà une classe phpOCR :
http://www.phpclasses.org/browse/package/2874.html
http://www.phpclasses.org/browse/package/2874.html
-

Suede - WRInaute accro

- Messages: 3722
- Inscription: 4 Oct 2002
Le probleme de ces systemes de capcha vient des limites des systemes sur lequel on les installes.
S'il était possible de faire de simple rotation/déformation de lettre, de changer facilement de police etc , ce serait beaucoup plus simple. Mais ce n'est pas possible de maière simple.
François
S'il était possible de faire de simple rotation/déformation de lettre, de changer facilement de police etc , ce serait beaucoup plus simple. Mais ce n'est pas possible de maière simple.
François
13 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Un deuxième cap franchi : 1 message par jour
- Google Earth vient de franchir le cap des 1 milliard de téléchargements
- !!! Un cap est franchi : 2000 messages postés sur WRI. !!!
- Le cap des 15 millions de visites pour FreeeTV.com, mais maintenant ?
- M6 va manger Clubic.com
- Manger du chat
- Manger du pain ?
- Manger des pates ?
- Manger des pates
- Manger des pates tous les soirs ?
Qui est en ligne
Utilisateurs parcourant ce forum: salva et 3 invités
