HOCR
hOCR (pour HTML Optical Character Recognition) est une norme ouverte qui permet de représenter le texte issu d'une reconnaissance optique de caractères (OCR) en l'intégrant directement dans une structure HTML ou XHTML[1].
Fonctionnement
modifierBounding boxes (bbox)
modifierDans le format hOCR, les bounding boxes constituent la colonne vertébrale de la mise en page. Ce sont des coordonnées géométriques rectangulaires qui indiquent précisément l'emplacement de chaque entité textuelle détectée sur l'image d'origine[4].
Dans un fichier hOCR, une bounding box est définie par l'la propriété bbox placée à l'intérieur de l'attribut standard HTML title d'une balise. Elle se compose toujours de 4 valeurs numériques, exprimées en pixels.
title="bbox x0 y0 x1 y1"
Le format hOCR applique ces boîtes de coordonnées de manière hiérarchique, de l'élément le plus grand au plus petit[5],[6] :
- La page (ocr_page) : Elle englobe l'image entière (ex: bbox 0 0 2479 3508 pour un scan A4 en 300 DPI).
- La zone de contenu (ocr_carea) : Délimite les grandes sections ou colonnes de texte.
- Le paragraphe (ocr_par) : Encadre un bloc logique de texte.
- La ligne de texte (ocr_line) : Entoure chaque ligne individuellement.
- Le mot (ocr_word) : Encadre chaque mot unique.
Sans ces bounding boxes, un document PDF converti à partir d'un scan ne permettrait pas de sélectionner du texte de manière intuitive[5].
Fichiers PDF
modifierLe format hOCR est principalement utilisé pour créer des fichiers PDF interrogeables ou pour extraire les métadonnées d'un fichier PDF. Pour créer des fichiers PDF interrogeables, il est possible d'utiliser les outils open source suivants afin de générer une image du document numérisé et un fichier .hocr correspondant[5].
Conversion de hOCR en PDF
modifierDe nombreuses contributions ont été apportées au format hOCR au fil des ans, et plusieurs bibliothèques etoutils open-source permettent désormais de réaliser cette conversion.
En Python, la suite officielle hocr-tools est un paquet d'utilitaires officiel initialement développé par l'équipe derrière le moteur OCRopus. Il contient une commande Python dédiée appelée hocr-pdf. Il prend un dossier contenant des images (JPEG/PNG) et leurs fichiers hOCR correspondants portant exactement le même nom, puis génère le PDF final[7].
En C++, l''utilitaire hocr2pdf est est une application en ligne de commande, idéale pour les scripts d'automatisation sur serveur Linux. Il intègre directement le fichier d'annotation HTML (hOCR) sur l'image en un seul passage[8].
Les versions récentes de Tesseract (à partir de la version 3.03) permet de convertir sans outil tiers. Tesseract utilise son propre moteur hOCR en arrière-plan pour compiler directement l'image en PDF interrogeable.
Logiciels
modifierLes logiciels OCR suivants peuvent exporter le résultat de la reconnaissance au format hOCR :
- OCRopus
- Tesseract
- Cuneiform
- ghostscript[9]
- HebOCR
- gcv2hocr
- gImageReader
Utilisation
modifierIl est très utilisé pour l'indexation de documents historiques ou de livres scannés (par exemple par Google Books) afin de permettre la recherche de mots-clés tout en conservant la structure visuelle[10], et permet de superposer une couche de texte invisible et positionnée avec précision sur une image scannée pour les lecteurs d'écran.
Notes et références
modifier- ↑ Sher Azam Khan, « Comprendre les formats de fichiers OCR : HOCR vs ALTO vs PDF/A expliqué », sur File Format Blog, (consulté le )
- ↑ « IEEE Standard for Automatic Test Markup Language (ATML) for Exchanging Automatic Test Information via eXtensible Markup Language (XML): Exchanging Test Configuration Information », Ninth International Conference on Document Analysis and Recognition (ICDAR 2007), , p. 1-35 (DOI https://doi.org/10.1109/ieeestd.2008.4509494, lire en ligne)
- ↑ Curtis Chau, « Exporter les résultats de l'OCR sous forme de fichiers HTML hOCR en C# | IronOCR », sur ironsoftware.com, (consulté le )
- ↑ (en) « bbox x0 y0 x1 y1 · Issue #34 · kba/hocr-spec », sur GitHub (consulté le )
- 1 2 3 Thomas Breuel, « The hOCR Embedded OCR Workflow and Output Format », sur fr.scribd.com, (consulté le )
- ↑ (en) Andrew Hankinson, Laurent Pugin et Ichiro Fujinaga, « An interchange format for optical music recognition applications », sur ResearchGate, 11th International Society for Music Information Retrieval Conference (ISMIR 2010), (consulté le )
- ↑ ocropus/hocr-tools, OCRopus, (lire en ligne)
- ↑ (en) Canonical, « hocr2pdf », sur Ubuntu Manpages (consulté le )
- ↑ « Details of Ghostscript Output Devices », sur ghostscript.com (consulté le )
- ↑ Pierre Couchet, « Outils avancés pour la transcription automatique (OCR, HTR) et l’annotation des textes », sur AHP numérique, (consulté le )