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.
Contrairement à un fichier texte classique .txt qui ne conserve que les mots bruts, hOCR enregistre la position exacte des éléments sur la page (lignes, paragraphes, mots, caractères) à l'aide de coordonnées géométriques (bounding boxes),.
Dans 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.
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, :
Sans ces bounding boxes, un document PDF converti à partir d'un scan ne permettrait pas de sélectionner du texte de manière intuitive.
Le 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.
De 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.
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.
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.
Les logiciels OCR suivants peuvent exporter le résultat de la reconnaissance au format hOCR :
Il 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, 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.