J'ai fixé l’appareil photo sur un pied, face à la fenêtre pour disposer d’une belle luminosité. Puis j’ai commencé à photographier soigneusement, en cadrage « portrait » les cinquante premières pages de l’ouvrage. Au bout de quelques pages, m’est venue l’idée de déclencher le flash incorporé, pour avoir une lumière frontale et une exposition régulière. Tandis qu’avec la main droite je déclenchais, ma main gauche, et une pince à linge, maintenaient le livre ouvert (très pratique la pince à linge !).

Traitement des images

Pour le traitement automatisé des images, j’ai trouvé un excellent greffon Gimp nommé Bimp (voir également le site de l’auteur de Bimp). Ce greffon m’a permis, dans l’ordre, de pivoter les images (pour les remettre en portrait car l’appareil, à l’horizontale, les enregistrait en paysage), renforcer le contraste et la luminosité, augmenter le piqué, passer en deux tons (postériser) enregistrer une copie des images en les numérotant.

Bimp permet de sauvegarder ces séquences (qu’il appelle « liste ») dans un simple fichier texte. Voici celui que j’ai enregistré et nommé ocr.bimp :

#BIMP 1.13
#MANIPULATION SET DEFINITION

[FLIPROTATE]
flip_h=false
flip_v=false
rotate=true
rotation_type=0

[COLOR]
brightness=30
contrast=35
levels_auto=false
grayscale=false

[SHARPBLUR]
amount=-30

[USERDEF0]
procedure=gimp-posterize
num_params=2
PARAM0=NOT_USED
PARAM1=2

[RENAME]
pattern=##

Numérisation des textes

J’ai repris le script proposé par Pierre en y ajoutant le paramètre de langue (ici française). Pour avoir comparé avec et sans ce paramètre, il fait une réelle différence sur la qualité de reconnaissance des caractères. J’ai enregistré ce script en fichier *.sh :

for file in *.JPG
do
tesseract $file -l fra stdout >> book.txt
done

J’applique le script sur les images numérotées obtenues à l’étape précédente. J’obtiens alors un fichier texte dans lequel l’ordre des pages est conservé.

Expressions rationnelles

Les textes numérisés — bien que de très bonne qualité — comportent encore des coquilles (lettres mal reconnues, confusions entre O et 0, coupures de mots tantôt avec tiret simple, tantôt cadratin ou demi-cadratin, etc.). Par ailleurs, les mots coupés en fin de ligne, s’ils ont une raison d’être sur papier, n’en ont plus dans un fichier numérique ; il me faut les enlever.

J’ai naïvement cru que l’aide à la correction orthographique et quelques chercher-remplacer avec LibreOffice pourraient suffire, avant de réaliser la complexité du sujet. Un exemple simple : il ne faut pas supprimer la coupure du terme peut-être s’il est coupé à peut- en fin de ligne.

Si les chercher-remplacer sommaires m’aident peu, les expressions rationnelles peuvent venir à mon secours car beaucoup plus puissantes.

Il se trouve que, depuis que j’utilise l’outil informatique, je ne me suis jamais penché sur ce langage, pensant à la fois qu’il n’était pas pour moi (trop complexe et nécessitant de bonnes bases en programmation), et à la fois par absence de nécessité — les interfaces graphiques des logiciels suffisant à mes (faibles) besoins.

En découvrant — par nécessité sur ce projet de numérisation — les bases des regex, je constate qu’elles ne sont pas si incompréhensibles et hors de portée que cela, et je prends même un plaisir de débutant à les manipuler. Mes deux références sont actuellement, le tableau de réponse de Duckduckgo sur la recherche de regex, et l'outil d'apprentissage en ligne RegExr.

J’en suis donc à ce stade sur le projet. Prochaine étape : photographier les pages restantes bien évidemment, mais surtout définir les règles et la stratégie à mettre en place pour effectuer le travail de correction orthographique et typographique. Viendra ensuite l’étape de remise en forme des paragraphes, sections, chapitres, pour me diriger vers l’ouvrage epub final.