Outils pour utilisateurs

Outils du site


manuel_digital_history:numerisation_ocrisation

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
manuel_digital_history:numerisation_ocrisation [2020/01/22 10:28]
Pierre Vernus
manuel_digital_history:numerisation_ocrisation [2020/03/28 17:57] (Version actuelle)
Pierre Vernus
Ligne 1: Ligne 1:
-=======Acquisition de données======+[[[[manuel_digital_history:​accueil|retour vers l'​accueil du manuel]] 
 + 
 +=======Numérisation et OCRisation======
  
 ===== Du document à l'​image puis au texte ===== ===== Du document à l'​image puis au texte =====
Ligne 38: Ligne 40:
  
  
-Cette étape vise à améliorer l'​image ​qi fera l'​objet d'une ROC.+Cette étape vise à améliorer l'​image ​qui fera l'​objet d'une ROC.
  
  
Ligne 57: Ligne 59:
 ==== Récupération de documents sur Gallica ==== ==== Récupération de documents sur Gallica ====
  
-Cette étape vise à améliorer l'​image qi fera l'​objet d'une ROC.+Il est possible de télécharger des documents numérisés disponibles sur Gallica ​à partir de la fonction de téléchargement
  
 +Par exemple : 
  
-Il faut accroître le contraste et la densité avant l'​ocrisation soit à partir du logiciel ​de numérisation soit à l'aide d'un logiciel ​de traitement d'​image (image preprocessing software).+[[https://​gallica.bnf.fr/​ark:/​12148/​bpt6k97813640|Pariset E., La Chambre ​de commerce ​de Lyon : étude faite sur les registres de ses délibérations. II. Dix-neuvième siècle, Lyon, 1889]].
  
-Il faut aussi "​binariser"​ (binarize) l'imagei.econvertir une image couleur (RGB) en une image noire et blancheIl existe plusieurs algorithmes permettant d'​effectuer cette transformation d'un simple thresholding à des analyses zonales plus sophistiquéesLa plupart des moteurs d'OCR effectuent cette conversion comme une des premières étapes du processus de reconnaissance de caractères. Un autre avantage de la binarisation ​est la réduction ​de la taille des fichiers images.+La fonction de téléchargement est accessible à partir de la barre d'outils située sur la gauche de la fenêtre de consultation des documents. Cependants'il est possible de récupérer le document entier au format ​.pdf ou .txt seule la page courante est récupérable au format ​.jpegCeci est problématique si on désire refaire ​une reconnaissance de caractères ​(OCR) lorsque le texte brut disponible n'est pas de très bonne qualité.
  
-**Enlever ​le bruit** et les artefacts de numérisation qui peuvent provenir ​d'​une ​numérisation ou d'une image de mauvaise qulaité. Ils  peuvent se situer soit dans l'​arrière plan, soit en premier plan (cf par exemple les bordures ou la partie centrale, entre deux pages, noires).+De même, lorsqu'​on veut récupérer ​le fichier ​d'​une ​carte numérique le fichier JPEG disponible a une définition limitée.
  
-**Redresser les images** en effectuant une rotation ​à droite ou à gauche. Il faut que les lignes ​du texte soient horizontales.+===Utiliser l'API Document de Gallica=== 
 + 
 +A côté de l'​utilisation de la fonction de téléchargement,​ il est possible d'​utiliser l'API Document de Gallica pour récupérer un certain nombre de données ou d'​information concernant un document. Pour ce faire il faut dipsoser de l'**identifiant ark** du document. 
 + 
 +Il est ainsi possible de récupérer le texte brut de l'​ouvrage évoqué précédemment ​en utilisant l'url suivant : 
 + 
 +https://​gallica.bnf.fr/​ark:/​12148/​bpt6k97813640.texteBrut 
 + 
 +La qualité du texte est inégale selon les document. 
 + 
 +Il est aussi possible de récupérer la table des matières - celle que l'on peut afficher à partir des outils situés ​à droite ​de la fenêtre de consultation des documents - ce qui peut être intéressant si on veut avoir la correspondance entre le numéro de la vue et celui de la page de l'​ouvrage. 
 + 
 +https://​gallica.bnf.fr/​services/​Toc?​ark=ark:/​12148/​bpt6k97813640 
 + 
 +Pour faire le lien entre le texte de l'​entrée de la table des matières, contenu dans la balise _seg_, et la page du document numérique, il faut exploiter les attributs de la balise _xref_ et notamment l'​attribut _from_. 
 + 
 +=== Récupérer une image HD === 
 + 
 + Une première méthode consiste à utiliser l'url, par exemple celle le *Plan de Lyon, de ses environs et des forts* dressé par L. Dignoscyo en 1835 a l'url suivant : 
 +  
 + ​https://​gallica.bnf.fr/​ark:/​12148/​btv1b53035185s 
 +  
 + Pour obtenir une image haute définition il faut modifier l'url de la façon suivante : 
 +  
 +   * insérer **iiif** entre //​gallica.bnf.fr//​ et //ark:// 
 +   * ajouter après l'​identifiant ark du document (_12148/​btv1b53035185s_) **/​f1/​full/​full/​O/​native.jpg**  
 +    
 +Ce qui donne : https://​gallica.bnf.fr/​iiif/​ark:/​12148/​btv1b53035185s/​f1/​full/​full/​0/​native.jpg 
 + 
 +Cette image pourra être ensuite géoréférencée. 
 + 
 +Plus simplement, il existe une extension de Chrome (ou Chromium) ou Firefox nommée [**IIF-Download**](http://​www.geobib.fr/​tool/​iiif/​) qui permet en un clic de récupérer l'​image HD d'un document. 
 + 
 +=== Récupérer des images en masse === 
 + 
 +Pour récupérer un lot d'​images (par exemple celles d'un livre) il existe un ensemble de scripts Python nommé **Pyllica** - information [[https://​github.com/​Dorialexander/​Pyllica|ici]] et [là](https://​prelia.hypotheses.org/​441) - utilisant [Beautifullsoup](https://​www.crummy.com/​software/​BeautifulSoup/​) une bibliothèque Python qui permet de récupérer des données ​à partir de fichiers HTML ou XML 
 + 
 + 
 + 
 +Par exemple pour récupérer les images de [Pariset E., La Chambre de commerce de Lyon : étude faite sur les registres de ses délibérations. II. Dix-neuvième siècle, Lyon, 1889](https://​gallica.bnf.fr/​ark:/​12148/​bpt6k97813640) évoqué plus haut nous utiliserons les scripts //​pyllicalabsjpg.py//​ et //​actionpyllicalabsjpg.py//​ que nous modifierons comme ci-dessous : 
 + 
 +Il faut copier le premier script python dans le dossier dans lequel on veut télécharger les images. Il faut ensuite définir ce dossier comme son répertoire de travail courant. Ici la définition d'​image demandée est 3000. On peut la modifier. Par exemple pour avoir une résolution de 5000 il suffit de remplacer 3000 par 5000 dans l'​expression full/​3000/​0/​native.png. Pour obtenir la qualité maximale disponible, il faut remplacer 3000 par _full_ (full/​full/​0/​native.png.). Attention : on a bien deux fois "​full"​. On peut aussi télécharger les images dans un autre format (png ou tif) en remplaçant "​jpg"​ par "​png"​ ou "​tif"​ à la fin de l’adresse et du format de fichier créé comme ceci :  
 + 
 +<​code>​ 
 +    for page in listpage: 
 +        jpgfile = title + "​_"​ + str(page) + "​.png"​ 
 +        url = '​http://​gallicalabs.bnf.fr/​iiif/​ark:'​ + identifier + '/​f'​ + str(page) + '/​ful/​3000/​0/​native.png'​ 
 +        urllib.request.urlretrieve(url,​ jpgfile) 
 +</​code>​ 
 + 
 +Ensuite il faut utiliser le script suivant où : 
 + 
 +  * **identifier** nous indiquons l'​identifiant ark du document 
 +  * **title** nous indiquons un titre qui sera celui des fichiers images récupérés 
 +  * **firstpage** le numéro de la première vue que l'on veut charger. Par exemple ici nous commencerons à 9 car les précédentes sont des vues de la couverture et de pages blanches. Le numéro de la vue apparaît dans l'url de la page lorsqu'​on consulte un document. 
 +  * **lastpage** le numéro de la dernière vue à charger. Ici 273. 
 +   
 +La durée ​du téléchargement peu pendre du temps, en fonction de la taille de l'​ouvrage et de la qualité de la connexion. 
 + 
 +==== Reconnaissance de caractères===== 
 + 
 + 
 +Disposer des images de scan du document peut être utile afin de pouvoir retravailler ces images en vue d'​obtenir une ROC de meilleure qualité. 
 + 
 +Pour ce faire il est possible d'​utiliser  
 + 
 +  * l'​outil Sharedoc mis à disposition par la TGIR Huma-Num qu'il est possible de combiner avec un outil de ROC (ABBY). 
 +  * Un autre outil de ROC libre comme [tesseract](https://​github.com/​tesseract-ocr/​tesseract). Intialement développépar Hewlet-Packard son code source a été rendu publique en 2005. Depuis 2006, il est maintenu par Google. Une introduction rapide est disponible [ici](https://​medium.com/​better-programming/​beginners-guide-to-tesseract-ocr-using-python-10ecbb426c3d).  
 + 
 +**A COMPLETER**
  
-**Analyse des zones intéressantes** (Layout ou Zone Analysis) 
-Afin que les mots soient détectés correctement il est important, en premier lieu, de repérer les zones  ou le layout (c'​est-à-dire les zone d'​intérêt). Cette étape détecte es paragraphes,​ les tableaux, les colonnes, les images... La plupart des solutions de ROC disposent d'un module de *layout analysis*. Il est possible d'​appliquer ees techniques de ROC zonale afin de définir précisément les parties de l'​image comportant le texte à extraire. 
  
-**Remarques finales**. Il n'​existe pas de règle générale pour optimiser une ROC. Avant tout il faut étudier attentivement les documents à traiter afin d'en repérer les défauts récurrents. ​ 
manuel_digital_history/numerisation_ocrisation.1579685308.txt.gz · Dernière modification: 2020/01/22 10:28 par Pierre Vernus