L'ORC va manger le chat sous la cap ?
13 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
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.
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 passionné

- Messages: 635
- Inscription: Lun Sep 19, 2005 22:10
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.
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).
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 passionné

- Messages: 635
- Inscription: Lun Sep 19, 2005 22:10
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: 3577
- Inscription: Mar Fév 10, 2004 16:40
pour l'identification des caractères : réseaux de neurones, aussi.
- haute-definition.info
- WRInaute occasionnel

- Messages: 127
- Inscription: Lun Nov 07, 2005 2:25
Il existe déjà une classe phpOCR :
http://www.phpclasses.org/browse/package/2874.html
http://www.phpclasses.org/browse/package/2874.html
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
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum