SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

286 Plugins, 197 contribs sur SPIP-Zone, 265 visiteurs en ce moment

Accueil > Affichage multimédia > Images > OCR > OCR

OCR

26 octobre 2013 – par severo

2 votes

Cette contribution ou ce plugin est en phase de test. Des bugs peuvent subsister. N’hésitez pas à les signaler dans le forum ci-dessous.

Le plugin ocr a pour but d’analyser un fichier image (typiquement un document scanné) pour extraire le texte contenu. L’objectif n’est pas d’afficher le texte extrait sur le site, car le résultat sera trop approximatif, mais de permettre la recherche sur le contenu. Il peut être utilisé avec les plugins fulltext et doc2img.

Présentation

Les images, et plus particulièrement les documents scannés, peuvent contenir du texte dans lequel on aimerait pouvoir chercher depuis le moteur de recherche de SPIP.

Le plugin ocr permet d’extraire un texte depuis une image et de le stocker dans un champ du document (nouveau champ ocr de la table spip_documents). Les documents sont traités automatiquement par la liste des travaux, et aucun action manuelle n’est nécessaire.

Le moteur de recherche de SPIP prend en compte les textes extraits par le plugin ocr, ce qui permet donc de rechercher dans le contenu des images. Le plugin fulltext permet également de le faire, à condition de prendre en compte le champ ocr dans les index fulltext (voir la documentation du plugin).

Prérequis

Le plugin est basé sur la commande tesseract, qu’il faut donc installer au préalable sur le serveur.

Le plugin ocr est fait conçu pour fonctionner avec le plugin doc2img, de manière à pouvoir chercher dans les documents PDF.

Installation

Les tests n’ont été fait que sur Ubuntu et Debian. Sur ces plateformes, l’installation du programme tesseract se fait par

  1. sudo apt-get install tesseract-ocr

Pour obtenir des résultats corrects, il est important de spécifier la langue des documents à tesseract (voir la section de Configuration). Pour ce faire, il est nécessaire d’installer le modèle de langue. Par exemple, pour le français :

  1. sudo apt-get install tesseract-ocr-fra

Configuration

Le plugin propose la page de configuration suivante :

Les paramètres de configuration sont les suivants :

  • _OCR_INTERVALLE_CRON : intervalle de temps entre deux analyses OCR par SPIP (en secondes) - valeur par défaut : 600
  • _OCR_NB_DOCS : nombre de documents à traiter à chaque analyse OCR - valeur par défaut : 5
  • _OCR_TAILLE_TEXTE_MAX : limite de caractères dans le texte extrait - valeur par défaut : 50000
  • _OCR_BIN : chemin du binaire de tesseract - valeur par défaut : /usr/bin/tesseract
  • _OCR_OPT : options de tesseract - valeur par défaut : -l fra - voir la documentation de tesseract.

Les valeurs par défaut de ces options peuvent être définies dans mes_options.php :

  1. define('_OCR_INTERVALLE_CRON', 300);
  2. define('_OCR_NB_DOCS', 10);
  3. define('_OCR_TAILLE_TEXTE_MAX', '100000');
  4. define('_OCR_BIN', '/opt/tesseract');
  5. define('_OCR_OPT', '-l spa');

Télécharger

Le paramètre le plus important est celui des options de tesseract (_OCR_OPT). En effet, il faut absolument utiliser la langue du document pour obtenir une reconnaissance correcte. Pour des textes en anglais, il faudrait mettre la valeur -l eng par exemple (voir la documentation de tesseract).

La page de configuration contient également un formulaire de test, qui permet de lancer le bon fonctionnement de l’analyse OCR. Il suffit de sélectionner un document du site, et de lancer l’analyse, pour voir le texte extrait et pouvoir éventuellement corriger les paramètres (surtout le paramètre de langue). A noter que ce test ne modifie pas la base de données.

Utilisation

Une fois installé, le plugin effectue automatiquement l’analyse des documents présents sur le site, selon les paramètres décrits au dessus, c’est-à-dire à intervalles réguliers. Un document récemment uploadé peut donc rester quelques temps sans être analysé (une évolution possible du plugin est l’analyse du document au moment de l’upload).

La page de configuration contient une section de statistiques qui permet de connaître le nombre de documents analysés et éventuellement de relancer l’analyse sur tous les documents.

Une fois les documents analysés, les recherches effectuées sur le site prendront en compte le texte extrait, permettant de retrouver les documents contenant la chaîne recherchée.

PDF et doc2img

Il faut noter que les documents PDF ne peuvent pas être directement analysés par ocr, qui n’opère que sur les images. Néanmoins, si le plugin doc2img est installé, alors le plugin ocr permettra de chercher dans les documents PDF.

En effet, le plugin doc2img convertit chaque page du PDF en une image PNG et la relie au document PDF original. Puis, le plugin ocr analyse chaque image, et stocke le texte extrait directement avec le document PDF original, et non pas avec l’image. De cette manière, lors d’une recherche sur le site, c’est le document PDF qui est renvoyé en cas d’occurrence de la chaîne recherchée, et non pas l’image PNG de la page, qui reste cachée à l’utilisateur.

L’analyse OCR ne fonctionne bien que si les lettres sont suffisamment détaillées dans l’image. Pour cela, il peut être nécessaire de régler le paramètre « Résolution » du plugin doc2img et de tester plusieurs résolutions jusqu’à obtenir le meilleur compromis entre qualité de l’analyse et poids des fichiers (150 dpi peut être une bonne valeur de compromis).

Développement

Voir le carnet dédié au développement du plugin : http://contrib.spip.net/ocr_todo. Les idées d’évolution peuvent être décrites directement là-bas.

Le détail du fonctionnement est le suivant. Deux champs sont ajoutés à la table spip_documents :

  • ocr : contient le texte analysé
  • ocr_analyse : contient l’état d’analyse du document :
    • non : pas encore effectuée,
    • oui : effectuée avec succès
    • err : effectuée avec erreur. A noter que seuls les fichiers image peuvent être analysés, les autres prennent donc la valeur err.

Dans le cas d’un document image, le champ ocr contient directement le texte extrait. En revanche, dans le cas d’un document PDF, et si le plugin doc2img est installé, alors le champ ocr contient un document JSON avec la structure suivante :

  1. {
  2. "1" : "texte de la page 1",
  3. "2" : "texte de la page 2",
  4. "3" : "texte de la page 3"
  5. }

Télécharger

Voir en ligne : http://plugins.spip.net/ocr

Dernière modification de cette page le 26 octobre 2013

Retour en haut de la page

Répondre à cet article

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Metas +

    3 décembre – 10 commentaires

    Améliorez l’indexation de vos articles dans les moteurs et leur affichage sur les réseaux sociaux grâce aux métadonnées Dublin Core, Open Graph et Twitter Card. Installation Activer le plugin dans le menu dédié. Dans le panel de configuration, (...)

  • Newsletters

    16 janvier 2013 – 378 commentaires

    Ce plugin permet de composer des Info-lettres. Par info-lettre, on désigne ici le contenu éditorial qui va être composé et envoyé par courriel à une liste d’inscrits. Le plugin permet de composer une info-lettre à partir d’un modèle pré-composé, (...)

  • Mode portail Communiquant pour SoyezCréateurs

    29 septembre 2010 – 20 commentaires

    5e mode d’affichage de la page d’accueil, ce mode se distingue des autres par une animation proposant un fondu/enchaîné des logos des articles à la une. Zonage Configuration Zone d’entête Nom du site Slogan si plugin bandeau présent (...)

  • Configurer Sparkpost

    25 avril – 14 commentaires

    N’hésitez pas à relire le préambule de cette rubrique avant de créer un compte sur une plateforme tierce . Présentation Sparkpost est une société d’envoi de mailing https://www.sparkpost.com/ Sur les petits volumes ( <100.000 emails / mois), (...)

  • Plugin Logo SVG : pouvoir utiliser des logos SVG

    17 octobre – commentaires

    Le SVG est un format vectoriel donc très léger et redimensionnable sans pertes, mais SPIP ne l’acceptait pas sur les logos. Ce plugin comble ce manque. Comment ça fonctionne ? Vous installez ce plugin, vous l’activez, et c’est tout. Crédits Une (...)

Ça spipe par là