Carnet Wiki

ocr

Version 3 — August 2013 severo

Analyser un fichier image (typiquement un document scanné) pour extraire le texte contenu. L’objectif n’est pas d’afficher le texte extrait, car le résultat sera trop approximatif, mais bien de permettre la recherche sur le contenu.

Cette contribution est un document de spécifications pour un nouveau plugin ocr. Il n’y a pas encore de code.

Présentation

Les documents scannés, en particulier, peuvent contenir du texte dans lequel on aimerait pouvoir chercher depuis le moteur de recherche de SPIP.

Ce plugin fera uniquement l’extraction d’un texte depuis une image et le stockage de ce texte dans un champ de l’image (nouveau champ ocr de la table spip_documents).

Pour pouvoir chercher dans ce nouveau champ, il faudra utiliser et configurer le plugin [fulltext->http://contrib fulltext”:http://contrib .spip.net/fulltext]. .

Spécifications

Le plugin sera basé sur la commande [tesseract->http://code tesseract:“http://code .google.com/p/tesseract-ocr/wiki/ReadMe]. ”.

Le plugin proposera les configurations suivantes :

  • chemin du binaire (par défaut: /usr/bin/tesseract)
  • paramètres de la commande (par défaut: -fra pour analyse en français)

L’analyse sera gérée par la file d’attente (http://plugins.spip.net/facd.html).

Limitations

Seulement testé sur Ubuntu Raring.

Développement

Le code du plugin sera sur la [zone->http://zone zone”:http://zone .spip.org/trac/spip-zone/browser/_plugins_/ocr/]. /.

On développera developpera dans trunk.

Possibles améliorations

Langue :

  • appliquer tesseract dans la langue du site par défaut
  • ajouter un paramètre de configuration de la langue (par défaut avec la langue du site)
  • si le document a un champ lang, utiliser cette langue pour l’analyse. Voir [langdoc->http://contrib langdoc”:http://contrib .spip.net/langdoc]. .

Programme d’analyse :

  • utiliser [php-tesseract->https://code php-tesseract”:https://code .google.com/p/php-tesseract/] com/p/php-tesseract / directement, au lieu d’une commande native,
  • permettre de se brancher sur d’autres programmes d’analyse, comme [OpenOcr->http://en OpenOcr”:http://en .openocr.org/]. /.

Indexation et recherche :

  • faire le lien avec fulltext pour indexer le contenu analysé
  • faire le lien avec fulltext et doc2img pour rechercher dans les PDF (PDF découpé en images par doc2img, images analysées par ocr, texte extrait indexé par fulltext, et finalement, si une recherche aboutit à un texte extrait d’une image créée par doc2img, montrer plutôt le PDF original comme résultat de recherche).
  • éventuellement, générer un document [hOCR->http://code hOCR”:http://code .google.com/p/tesseract-ocr/wiki/ReadMe#Running_Tesseract] com/p/tesseract-ocr/wiki/ReadMe#Running_Tesseract donnant la position des lettres reconnues par OCR dans l’image, et générer un PDF [“ cherchable”->http://exactcode cherchable”:http://exactcode .de/site/open_source/exactimage/hocr2pdf] de/site/open_source/exactimage/hocr2pdf , attaché au document original . , attaché au document original.