Regarder les projets en cours : RegistrIA, indexation par IA d’un fonds du SHD

J’en suis toujours à me demander comment automatiser l’indexation des registres militaires napoléoniens grâce à l’IA. Dans le dernier article Quasi-échec…, j’ai constaté que je n’arrive pas à m’en sortir avec la plateforme de transcription Transkribus. Soit que je m’y prends comme un manche, soit que c’est quand-même encore plus compliqué que ça ma bonne dame.

Je suis donc allée rechercher des retours d’expérience de projets similaires. Il est question ici d’un projet nommé RegistrIA, mené en 2021-2022 par le Service Historique de la Défense (SHD). Le projet a été présenté en décembre 2022 lors de Gene@22, les assises de la généalogie, organisé par la Société française de Généalogie et les Archives départementales des Yvelines. Brigitte a fait un compte-rendu de cette journée dans cet article (merci), et la FFG met à dispositions les enregistrements des conférences sur sa chaîne YouTube, c’est ici (merci)

Voici ce que je retiens de cet enregistrement d’une durée de 30 minutes.

  • Conférence donnée en duo, M. Touko-Nicheu, chef du bureau de la transformation numérique ; Catherine Méot, archiviste spécialisée en numérique. Commentaire : c’est un marqueur des conférences sur le numérique et l’histoire ou les archives, deux voix, une personne de l’informatique, une du métier de l’histoire ou des archives. Je trouve ça vraiment intéressant. Je ne peux aussi pas m’empêcher de rajouter que l’informaticien est toujours (?) un homme. Si vous croisez des contre-exemples, signalez-le moi !
  • Le projet RegistrIA du SHD s’intéresse aux fiches matricules d’Oran, Constantine et Alger, car les anciennes colonies sont du ressort du SHD. Commentaire : je n’ai jamais eu à consulter ce fond, je suis allée voir sur le site du SHD Mémoire des hommes. Dates 1866-1918. Le modèle des fiches est le même que les fiches matricules conservées par les Archives départementales. Formulaire imprimé, remplissage à la main, éventuellement plusieurs écritures différentes
  • Le projet RegistrIA par des fiches déjà numérisées. Par contre les documents ne sont pas structurés, on ne peut pas faire de recherche dedans. Il y a 477 registres, 200 000 fiches, plus d’un million d’informations à indexer. Commentaire : je lis par ailleurs que le numérisation de ce fonds date de 2019. Numérisation 2019, indexation par IA 2021, ça va vite! Dans les question – réponses, le conférencier souligne que 3 ans auparavant, le volet numérisation n’était pas engagé au SHD ; là ils ont l’air d’avoir sécurisé le budget pour la numérisation, je comprends que c’est une volonté politique.
  • Le SHD a fait appel prestataire, une startup spécialisé en IA. Suite à une question de la salle sur la possibilité de se passer d’aide extérieure, les intervenants répondent que ce n’est pas la nature de leurs fonctions ni leurs compétences. Commentaires : je n’ai pas trouvé quelle startup a travaillé pour eux (et ça m’énerve un peu). Je me souviens avoir vu une retour d’expérience (conférence) d’une startup sur un projet en partenariat avec des archives, je n’ai plus les détails, ça m’intéresserait maintenant de revoir cette intervention, si quelqu’un l’a.
  • Projet en plusieurs phase. Commentaire : ils parlent de phases de conception puis réalisation, et aussi d’un processus en 4 phases, je n’ai pas compris comment ils découpent ça, il me faudrait un accès au diaporama de la conférence qui n’est pas visible sur la vidéo. Commentaire 2: je comprends aussi que la plateforme technique est chez le prestataire, je suppose qu’il s’agit de l’infrastructure d’ordinateurs, processeurs, mémoires, stockages, car le « Cloud » n’est pas fait que de nuages, c’est très matériel derrière.
  • Création d’un algorithme de reconnaissance d’mages par le prestataire.
    • D’abord: identification des zones à traiter sur la fiche, c’est-à-dire celles où il y a des champs à extraire. Ces zones sont toujours au même endroit. Commentaire : c’est bien le processus qui s’appelle la segmentation, et que j’ai aussi appelé détection de mise en page ou détection de lignes dans mes précédents articles. Et on est bien dans le cas où les informations sont toujours au même endroit, fiche après fiche.
    • Puis : reconnaissance de caractères. Et également : suppression de bruit. Le bruit c’est par exemple les taches, les ratures. Commentaires : Je suppose que la suppression de bruit est effectuée avant la reconnaissance de caractères.
    • Mise à disposition du prestataire un dictionnaire de mots : noms, prénoms, lieux. Pour vérification d’exactitude et de cohérence avec le déchiffrage. Commentaire : là je suis frustrée, j’aurais bien aimé en savoir plus sur la logique qu’ils ont appliquée pour faire coller le déchiffrage aux listes de noms, prénoms, lieux. Peut-être que c’est de l’ordre de la propriété intellectuelle.
  • Amélioration du modèle par itération. Ils fournissent à l’IA suffisamment d’objets pour s’entraîner, ils lancent un premier test, on fait des corrections dans le code , on refait une implémentation. Commentaires un peu techniques : là je crois que c’est encore au stade du développement, ils sont en train d’ajuster les paramètres du modèle. Pas encore à la phase d’entraînement du modèle.
  • A chaque itération, ils surveillent le taux de conformité. Dans les projets IA, les livrables sont restitués quand on a un taux de conformité appréciable. Dans ce projet, il s’agit en quelque sort du taux d’exactitude. Si inférieur à 60%, c’est pas intéressant. Par itération, ils ont fini par avec un taux de conformité de 80-85%. Commentaire : pour ce type de projets, ne pas oublier de bien se mettre d’accord sur ce que c’est la conformité ou exactitude. Je pense que cela doit s’évaluer au regarde de ce qu’on en attend en tant qu’utilisateurs. Je reviens sur des articles précédents, le déchiffrage d’un acte simple avec Transkribus : l’évaluation des modèles se fait en taux d’exactitude de caractères (acronyme CER), alors que pour moi, ce qui compte, c’est le taux de mots convenablement transcrits. Un mot est juste ou pas, je m’en fiche qu’il y ait juste une lettre erronée, ou plusieurs, ça compte pareil. Articles : Pourquoi parfois ça ne marche pas : essai de trois autres modèles IA pour la transcription de l’acte 1816 et  Objectif observation d’une transcription par IA (réussie).
    Commentaires 2. Plus tard on pourra aussi poser la question des mots incompréhensibles car mal découpés, ils sont souvent mal découpés dans l’écriture manuscrite, doit-on demander à l’IA de faire mieux? (oui, j’espère)
  • Le prestataire leur a restitué un fichier structuré (format xml) qui permet la recherche par mot clef. Commentaire : lien direct vers page de recherche dans cette base spécifiquement. On peut aussi chercher d’un coup sur toutes les bases de Mémoire des Hommes, ce site est vraiment super bien fait.
  • Le projet a pris 9 mois. S’ils avaient entrepris cette indexation avec les ressources humaines qu’ils ont au SHD, ils auraient mis 30 ans à extraire les champs de ces 200 000 fiches. Là, en 9 mois, c’est fait avec un taux de conformité tout à fait acceptable, 85%. Commentaire : ah ouais quand même, 9 mois contre 30 ans. Après ce sont les estimations juste avec les professionnels du SHD. C’est possible aussi de lancer des indexations collaboratives avec des bénévoles, ça irait probablement plus vite mais nécessite une bonne communication et coordination.
  • Quand il restitue le résultat, le prestataire fournit le taux de confiance. Ce taux est donnée pour chaque registre, et/ou pour chaque champs extrait. Commentaire : Taux de confiance par registre ou par champs ? Les deux conférenciers ne disent pas la même chose, j’imagine que ces taux sont calculés par l’algorithme au niveau des champs, puis présentés par fiche et par registre. En tous cas c’est ce que j’essaierais de faire si c’était moi. C’est très important que la machine donne des « taux de confiance » avec des informations dont les humains peuvent se servir pour aller directement secourir la machine là où elle a galéré. Après, évidemment, il faut que la machine soit réglée pour ne pas trop douter d’elle, ou ne pas avoir trop confiance en elle, cela se configure pendant la phase d’apprentissage.
  • Pour pouvoir les mettre en ligne, le SHD fait un contrôle qualité. Les 15% d’informations inexactes sont faites à la main, par l’humain. Au moment de la conférence, un seul registre est en ligne, les autres étaient en cours de contrôle qualité. Commentaire : 15% de 200 000 fiches, cela fait quand même 30 000 fiches – ou moins, enfin ça dépend comment on calcule le taux de conformité. Il y a encore du boulot pour les humains.
    Commentaire 2 : Faut-il 100% de conformité avant la mise en ligne ? Pour les archivistes apparemment oui. Je pense que pour les généalogistes, 85% suffirait dans un premier temps, en cours de projet. Le niveau de qualité exigé doit être mis au regard des utilisations, notamment de l’impact des inexactitudes.
  • Au fur et à mesure de la relecture humaine, les données corrigées sont re-traitées par la machine jusqu’à obtenir un taux de conformité de 100%. Tout cela a pris 9 mois. Commentaire : Pas clair pour moi si a) les humains ont corrigé la totalité les 15% de non conformités, ou si b) les humains ont corrigé un ensemble de non conformités, et le prestataire a montré ces corrections à l’IA pour qu’elle apprenne, et ensuite l’IA a relu tout le paquet. Je crois que c’est b)
  • Conclusion du projet
    • l’IA a permis d’avoir 100% de conformité en 9 mois. Commentaire : c’est superbe ! Néanmoins on n’a pas d’information sur le budget engagé avec le prestataire, ni les ressources humaines mobilisés en interne au SHD
    • Préalable : fichiers issus d’un même fonds avec le même formalisme. Commentaire : ça veut dire que si le formulaire change de forme, c’est mort, il faut reformer la machine
    • Autre préalable : la numérisation doit être exemplaire, c’est plus facile pour la machine de travailler sur les bonnes résolutions, pas de zones d’ombre, de flou. Commentaire : dans d’autre retours d’expérience d’utilisateurs de Transkribus, j’entends qu’une trop haute résolution n’est pas nécessaire, voire qu’elle est néfaste car augmente les temps de traitement sans améliorer les résultats
  • Commentaire : Pour voir ce que donne le résultat fini : site Mémoires des hommes, -> recrutement et parcours individuels -> Recensement des engagés et appelés des anciennes colonies françaises -> « Faire une recherche ». Cela permet une recherche par nom, prénom, et tous les autres champs indexés dont date et lieu de naissance, classe, numéro matricule. Au jour où je consulte, la présentation indique que 353 registres [sur 477? ] sont en ligne et que cela va être complété au fur et à mesure. Lien vers la présentation du fonds + click sur ‘faire une recherche’

La conférence se poursuit avec la généralisation du projet à d’autres fonds d’archive, à commencer par les Registres des gens de mer. Je compte y revenir. A+

Liens

(591) Géné@2022 02 Les projets RegistrIA et MaritimIA du Service Historique de la Défense (SHD) – YouTube. 30 minutes

Journées de décembre 2022 aux AD Yvelines, Article de Brigitte L’intelligence artificielle au service de la généalogie (chroniquesdantan.com)

Mémoire des hommes, le portail culturel du ministère des armées https://www.memoiredeshommes.sga.defense.gouv.fr/

Présentation et recherche sur le fonds https://www.memoiredeshommes.sga.defense.gouv.fr/fr/article.php?larub=431&titre=recensement-des-engages-et-appeles-des-anciennes-colonies-francaises

5 commentaires sur « Regarder les projets en cours : RegistrIA, indexation par IA d’un fonds du SHD »

  1. Merci encore pour ces informations.

    Je viens de faire plusieurs essais et je trouve que le site transkribus est à la fois peu intuitif – ça c’est subjectif – et surtout instable. Je suis obligé de réactualiser la page web parfois. Mais c’est encore ce qu’il y a de mieux pour ce prix.

    En furetant à la recherche d’information sur le HTR pour les textes anciens, il me semble que c’est surtout l’affaire de chercheurs universitaires. L’école des Chartes est à la pointe, mais d’autres équipes d’historiens aussi, sur de grands corpus vraiment anciens (XIIème s.). Ils ont déjà de beaux résultats. L’exemple que vous citez montre qu’il faut un budget conséquent pour aboutir à un outil exploitable, ou alors être entourés de spécialistes informaticiens (en vision ou en IA). Les jeunes chercheurs se bousculent dans cette voie qui offre des perspectives de recrutement. On voit bien, rien qu’en cherchant un peu sur internet, que les projets « d’humanités numériques » se multiplient.

    A moins que les grands sites comme myheritage ne mette l’argent sur la table pour automatiser l’indexation des corpus qui nous intéressent, je ne vois pas comment on pourrait s’en sortir avec les outils (plus ou moins) gratuits actuels. Et je suis d’accord avec vous : l’indexation manuelle collaborative de ces grands corpus est décourageante.

    J’ai bien compris que ce qui vous a arrêté pour la lecture automatique des registres de grognards est la repérage des « cellules » du tableau. Les réglages de transkribus sont insuffisants. J’ai en tête quand même une solution. Un ocr comme google vision ne permet pas de lire du texte manuscrit français. Mais il reconnait bien les zones contenant du texte et, surtout, renvoie un fichier json qui contient les coordonnées de ces zones de texte. On pourrait donc exploiter ce jeu de coordonnées pour calculer les coordonnées des zones – plus larges – correspondant aux cellules, en regroupant intelligemment des zones de texte. Ensuite on pourrait créer (automatiquement) des fichiers jpg pour chaque cellule et enfin, fournir ces jpg (toujours automatiquement) à un outil python de HTR. Le plus connu s’appelle kraken, et il est puissant. Enfin, on pourrait mettre une dernière couche de chatGPT pour essayer de reconstruire un texte qui a du sens, en lui fournissant également un petit lexique correspondant aux textes qu’on étudie.
    Jouable, mais il y a du travail.
    Je développe en amateur et j’aurais peut-être les compétences pour tester ça, mais ça me prendrait beaucoup de temps, pour un résultat incertain, car ce n’est qu’une idée. J’ai juste prévu d’écrire un programme python (+streamlit) pour enchainer google vision et chatGPt sur des documents tapuscrits et manuscrits, commet des contrats de mariage ou de vente. J’ai déjà fait des choses analogues à l’aide des API de google vision et de GPT.
    Toujours à propos de l’IA : j’ai pris un abonnement github copilot (10€/mois), basé sur chatGPT, pour m’aider à me remettre à Python. Je ne peux plus m’en passer. Le gain de temps et de confort est incontestable. Chez les développeurs professionnels, c’est devenu incontournable.

    Attendons encore quelques années et, à la vitesse où vont les choses, l’indexation des fonds d’archives départementales sera banale. l’ocerisation des articles de presse par retronews est déà une réalité convaincante. En attendant, je passe mon tour pour l’indexation manuelle collaborative, même si j’apprécie son utilité dans geneanet

    J’aime

    1. sur la détection des cellules – je crois que Transkribus dispose maintenant de modèles de mise en page entrainables. A verifier et je pense que c’est réservé aux comptes abonnés (je n’ai pas d’abonnement pour le moment)

      Je n’ai pas du tout exploré Kraken, sauf erreur il faut disposer d’une puissance de calcul que je nai pas – vous confirmez?
      Merci pour l’astuce sur Github copilot
      Emmanuelle

      J’aime

  2. bonjour,
    Je squatte un peu les commentaires, au cas où ça pourrait servir à d’autres qui, comme moi, cherchent à automatiser les transcriptions (ocr ou htr), en amateur, dans le cadre de la généalogie.

    j’ai installé escriptorium sur mon pc. C’est un programme python, installabe avec docker, qui ne fonctionne normalement que sur linux, mais on peut l’utiliser sur windows avec WSL. Il est open source et gratuit. Il y a une interface web correcte, avec possibilité d’utiliser des modèles de reconnaissance sur https://zenodo.org/ et d’en créer d’autres par entrainement sur des textes qu’ont fournit.
    Sur un texte imprimé des années 1920, en utilisant le modèle de gallica, les performances sont un peu en dessous de celles de google vision cloud, qui est « presque » gratuit aussi. Mais avec chatGPT pour corriger l’ensemble, on arrive dans les deux cas à des taux records de reconnaissance.

    Par contre, sur une page de registre napoléonien, je n’arrive pas avec escriptorium à la cheville de ce que fait transkribus.
    Transkribus propose un export des régions et lignes au format xml et l’export du texte reconnu au format txt, mais avec indication de la ligne correspondante lue dans le fichier xml. Donc, certes, transkribus n’a pas reconnu les cellules, mais avec le xml fourni, on doit pouvoir facilement écrire un programme qui regroupe les lignes correspondant à une cellule donnée. Elles commencent toutes par la même abscisse environ.
    Une fois le regroupement fait, on a par exemple ce texte donné par transkribus :
    Jacques Joly filude Joseph et de marie Colin, né à Chamberry, dept du mont blanc, le 14 mars 1773, taille de 5 pieds 5. pces.

    c’est déjà très bien.

    Avec l’étape supplémentaire chatGPT :
    « Tu es un généalogiste qui retranscrit un registre des soldats des guerres napoléoniennes, avec : Prénoms et nom de famille et de guerre, noms des pères et mères, lieux de naissance, âte et taille (en pieds et pouces).
    Tu dois corriger cette ligne issue d’un OCR.
    N’ajoute absolument aucun mot. Tu dois juste corriger les mots existants, sans ajouter d’autres mots ou verbes, sans remplacer les mots par d’autres mots ayant le même sens. Tu dois faire le moins de corrections possibles, et ne faire aucun ajout.

    Jacques Joly filude Joseph et de marie Colin, né à Chamberry, dept du mont blanc, le 14 mars 1773, taille de 5 pieds 5. pces. »

    on obtient :
    Jacques Joly, fils de Joseph et de Marie Colin, né à Chambéry, département du Mont Blanc, le 14 mars 1773, taille de 5 pieds 5 pouces.

    Et pour les dates, toujours avec chatGPT :

    fais pareil avec ce paragraphe, qui traite des dates d’entrée au servce et au régiment. Attention, les dates sont au format du calendrier révolutionnaire.
    au Service le 25 vendeur au 3n au régiment le 1er vendemiaire an 85, fortant du 1 h dégiment des logis-chefle de Dragon.

    on obtient :
    Au service le 25 vendémiaire, au régiment le 1er vendémiaire an 85, sortant du 1er régiment des logis-chefs de Dragons

    En résumé, le combo :
    transkribus + réconstruction des cellules par analyses du xml des régions et lignes (programme python, php ou autre) + chatGPT (automatisable aussi via l’api)
    permettrait une automatisation au moins partielle de la transcription du registre.
    Transkribus a aussi une api, ce qui éviterait de charger les images à la main et de récupérer xml et txt à la main aussi. Mais, cette api n’est pas accessible dans le plan gratuit.

    J’aime

  3. Pardon Emmanuelle, j’ai répondu une première fois sans voir votre réponse.
    Je retiens la possibilité de transkribus de créer des modèles de reconnaissances de la mise en page. Mais de toute façon, le fichier xml qui contient les coordonnées des zones et lignes est déjà très exploitable. Surtout transkribus est très bon dans la reconnaissance de l’écriture manuscrite de cette époque.
    Pour kraken, que j’ai testé via escriptorium installé sur mon pc. je n’ai pas eu de problème de puissance. Mon pc date de 2015 ! (passé à 16 go de ram). J’ai un peu galéré pour l’installation (wsl, visual studio, docker), bien aidé quand même par copilot github. Mais après, ça fonctionne bien avec l’interface web qu’il crée. Le résultat a été décevant, surtout en reconnaissance d’écriture manuscrite. Il faut dire que les modèles fournis se concentrent sur les langues rares ou très anciennes car c’est un outil créé sur mesure pour les historiens et paléographes. Dans les démos ils ont de très bons résultats. L’entrainement doit prendre du temps et ça ne vaut pas le coup pour moi de l’entrainer sur mes petits corpus.

    En dehors de chatGPT pour le post-traitement de l’ocr/htr, j’ai une autre méthode pour les manuscrits qui résistent : la dictée vocale sur word ou sur google docs. Les deux sont devenus très efficaces. J’écris vite au clavier, mais pas aussi vite qu’en dictant.

    La façon dont vous rédigez votre blog est inspirante. J’apprends beaucoup.

    bonne continuation,

    J’aime

  4. bonjour,
    Transkribus fonctionne très bien avec Titan avec les tapuscrits et manuscrits que j’ai testés.

    Peut-être que escriptorium peut faire aussi bien, mais je n’ai pas trouvé le modèle équivalent à Titan. Je pense qu’il faut créer un modèle particulier pour chaque corpus homogène. Ca a l’air d’être l’usage courant. On trouve des corpus déjà prêts (images + zones + retranscriptions) permettant de créer des modèles adaptés à différents cas ici  : https://htr-united.github.io/catalog.html

    J’ai trouvé un autre OCR/HTR récent qui donne des résultats de même qualité que transkribus avec mes tests : PERO. https://pero-ocr.fit.vutbr.cz/ . Pour l’instant il est gratuit. Juste un peu lent.
    Je l’ai découvert dans cet article récent qui compare plusieurs solutions : https://hal.science/hal-03698609/document

    J’aime

Laisser un commentaire

Concevoir un site comme celui-ci avec WordPress.com
Commencer