Your browser does not support the features required by impress.js, so you are presented with a simplified version of this presentation.
For a better experience please use the latest Chrome, Safari or Firefox browser.
Un OCR minimaliste en ligne de commande écrit en Python.
07/06/2013 au SSTIC par PandaPour des images minimalistes comme :
![]() | ![]() |
![]() | ![]() |
Le problème provient du processus de création.
Ces images sont construites par concaténation de petites images contenant les caractères souhaités.
Ces images sont utilisées pour des applications critiques comme les sites de banque en ligne.
Certains pensent qu'une simple image suffit à empêcher les attaques par brute force.
Il faut leur prouver qu'ils ont tort.
Les problèmes avec les logiciels existants :
![]() | ![]() |
![]() |
L'OCR prend simplement une couleur (avec threshold ou marge d'erreur) et la taille d'une cellule.
Puis, il crée une matrice des pixels correspondants.
Ensuite, vous devez saisir le caractère que vous lisez.
L'OCR apprend à partir de ce qui est saisi, pour qu'il ne soit pas nécessaire de saisir le même caractère deux fois.
![]() | ![]() |
![]() | |
![]() | |
![]() |
![]() | ![]() |
![]() |
Les CAPTCHA sont un peu plus complexes car la largeur des caractères est variable.
J'ai donc ajouté une option qui permet à un utilisateur de spécifier la largeur de chaque caractère.
Le différence avec les grilles réside dans la demande de la largeur de la lettre.
![]() | ![]() |
![]() |
![]() | ![]() |
![]() | |
![]() | |
![]() |
Vous pouvez récupérer le code source, les exemples et cette présentation :
https://github.com/Plopi42/PandaOCR
Si vous avez aimé les slides :
Pour toutes les questions auxquelles je ne saurais répondre, voici une réponse universelle :
Use the spacebar or arrow keys to navigate