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.

PandaOCR

Un OCR minimaliste en ligne de commande écrit en Python.

07/06/2013 au SSTIC par Panda

Pourquoi un OCR minimaliste ?

Pour des images minimalistes comme :

Pourquoi ces images sont-elles si minimalistes ?

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.

En quoi ces images sont-elles intéressantes ?

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.

Pourquoi ne pas utiliser un logiciel existant ?

Les problèmes avec les logiciels existants :

Exemples d'outils existants

Comment ça marche ? (1/2)

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.

Comment ça marche ? (2/2)

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.

Il s'intègre à des scripts

Il traite les CAPTCHA simples

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.

Avec les CAPTCHA (1/2)

Le différence avec les grilles réside dans la demande de la largeur de la lettre.

Avec les CAPTCHA (2/2)

Le MAN

C'est publié

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 :

https://github.com/bartaz/impress.js

Questions ?

Pour toutes les questions auxquelles je ne saurais répondre, voici une réponse universelle :

ICI

Use the spacebar or arrow keys to navigate