SPIP-Contrib

SPIP-Contrib

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

286 Plugins, 197 contribs sur SPIP-Zone, 224 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

  • bigfoot

    16 juin 2015 – 55 commentaires

    Un plugin qui facilite l’utilisation des notes de bas de page en les affichant dans des infobulles à l’aide d’un peu de javascript. Le constat de l’auteur du script : Les notes de bas de page sur le web sont une plaie. Tu dois d’abord essayer de (...)

  • Escal-V3

    16 février 2012 – 272 commentaires

    Un jeu de squelettes proposant un affichage en 2 ou 3 colonnes avec un large choix de noisettes à insérer ou pas, fortement paramétrable depuis l’espace privé . Présentation A l’instar de sa petite soeur plugin Escal-V2 dont elle reprend toutes (...)

  • Calendrier Mini 2.0

    19 mai 2012 – 234 commentaires

    Ce plugin ajoute la balise #CALENDRIER_MINI qui insère un petit widget de navigation par mois dans les dates des évènements. Fonctionnement du mini calendrier Le mini calendrier présente un mois à la fois. Les jours du mois comportant des (...)

  • Agenda 2.0

    3 novembre 2008 – 1075 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • ScolaSPIP 4

    19 janvier 2016 – 162 commentaires

    ScolaSPIP est plugin-squelette responsive personnalisable pour sites Web d’établissements scolaires basé sur SPIPr Présentation de ScolaSPIP Ce plugin pour SPIP 3 est développé par la Dane de l’académie de Versailles pour les webmestres de cette (...)