Fouille d’images dans les collections patrimoniales : GallicaPix
1. Fouille d’images dans
les collections patrimoniales : GallicaPix
Avec des techniques d’apprentissage profond et le standard IIIF
Atelier ADEMEC
23 juin 2020
2. Plan
• Introduction : fouille d’images
• Preuve de concept GallicaPix et IIIF
• Expérimentation IA (deep learning) :
• Classification des genres
• Classification/détection d’objets
• Projets INRIA-BnF
• Ateliers
• IBM Watson Studio (web et Python)
• Inception v3 (Tensorflow)
L’Auto, laboratoire photo (1914)
3. Objectifs du projet 3
Recenser toutes
les illustrations de tous
les fonds numérisés de Gallica
3
1
6. Les bibliothèques comme réservoir
d’images inexploitées
1,2 M images cataloguées
(photos, dessins, estampes…)
Large réservoir d’illustrations
potentielles :
• manuscrits
• documents imprimés
• archives du web
…
Centaines de millions ?
6
7. Pour la recherche d’information :
“Je cherche des caricatures de George Clemenceau
dans toutes les collections.”
Nouveaux services
7
8. Pour des usages de recherche (par ex. analyse quantitative)
“Je veux compter les visages de femme présents sur la page
de une de Paris-Match entre 1949 et 1959”
Nouveaux services
8
L’Excelsior, 1910-1920
9. Approche ETL (Extract-Transform-Load) pour la
reconnaissance et la description automatiques des illustrations
Sur les collections Première Guerre mondiale de Gallica : photo,
presse, magazines, posters, cartes… (1910-1920)
Avec des techniques d’apprentissage profond (deep learning)
IIIF est utilisé pour l’enrichissement et la présentation
Preuve de concept : GallicaPix
Des catalogues
et de l’OCR Transformer
et enrichir les
métadonnées
des illustrations
Rechercher des images
(application web)
Extraire Transformer (enrichir) Charger
9
10. IIIF (International Image Interoperability Framework) :
protocole d’accès aux images
• Les API et standards facilitent la R&D
• IIIF rend possible la réutilisation des images
De Gallica (SERP + feuilletage)… … à GallicaPix
SRU, OAI-PMH, IIIF…
iiif.io
11. IIIF : valoriser l’image
• IIIF permet « d’entrer » dans
le document et de le décrire
https://gallica.bnf.fr/iiif/ark:/12148
/bpt6k716975d/f5/136,461,3155,
2107/ 800,/0/native.jpg
136,461
Visage
x,y,w,h
3155,2107
Avion
x,y,w,h
12. IIIF : interopérabilité
• IIIF permet d’agréger des contenus iconographiques
et de les transformer/enrichir/remédiatiser, etc.
Gallica + The Welcome Collection (via Europeana) dans GallicaPix
Gallica
The Welcome
Collection
Requête =
« infirmière »
13. “Enrichir” les illustrations
OCR : Google Cloud Vision
Classification des genres (dessin, photo…) : réseau CNN (Inception)
Reconnaissance visuelle : IBM Watson Visual Recognition, Google
Cloud Vision, OpenCV/dnn, Yolo…
Reconnaissance visuelle
Classification
des genres
Topic Modeling
13
OCR
14. Classification de genres
14
Classification avec un réseau de neurones artificiels convolutionnel
et une approche par « transfer learning »
Identification du « genre » des illustrations (photos, dessins, cartes,
BD, graphes et schémas…)
15. Classification de genres
Transfer learning : seule la dernière couche du réseau
est réentrainée sur un jeu de données Gallica (12 classes)
4 classes de « bruit » : couverture, page blanche, ornement, texte
15
« Bruit »
jeu de données sur api.bnf.fr
16. Reconnaissance visuelle
Services de « détection d’objet » (IBM, Google, Clarifai…)
Génère des paires concept/niveau de confiance
Détecte objets, visages, couleurs…
Les concepts lèvent le silence des métadonnées ou de l’OCR, les enjeux de
traduction, les effets de l’évolution lexicale (“aéronef”/“avion”)
"images": [
{
"classifiers": [
{
"classes": [
{
"class": "armored personnel carrier",
"score": 0.568,
"type_hierarchy": "/vehicle/wheeled vehicle/armored v
armored personnel carrier"
}, {
"class": "armored vehicle",
"score": 0.576 },
{
"class": "wheeled vehicle",
"score": 0.705
}, {
"class": "vehicle",
"score": 0.706
}, {
"class": "personnel carrier",
"score": 0.541,
"type_hierarchy": "/vehicle/wheeled vehicle/personnel
}, {
"class": "fire engine",
"score": 0.526,
"type_hierarchy": "/vehicle/wheeled vehicle/truck/fire e
}, {
"class": "truck",
"score": 0.526
}, {
"class": "structure",
"score": 0.516
}, {
"class": "Army Base",
"score": 0.511,
"type_hierarchy": "/defensive structure/Army Base"
}, {
"class": "defensive structure",
black color - 0.90
vehicle - 0.70
coal black color - 0.69
armored vehicle - 0.57
truck – 0.52
…
« Les tanks de la bataille de Cambrai, la reine d'Angleterre
écoute les explications données par un officiers anglais », 1917
16
17. Focus IIIF
L’analyse visuelle est facilitée par IIIF
• traitements élémentaires avec les
paramètres IIIF (region, rotation)
• adaptation de la qualité de l’image
aux attentes du modèle
(size, quality)
• pas de stockage local
• la plupart des API acceptent
les URL
Calèche
x0,y0,w0,h0
Personne
x1,y1,w1,h1
curl -X POST -u "apikey:****" --
form
"url=https://gallica.bnf.fr/iiif/ar
k:/12148/bpt6k9604090x/f1/22,781,43
34,4751/,700/0/native.jpg"
"https://gateway.watsonplatform.net
/visual-
recognition/api/v3/classify?version
=2018-03-19"
18. Focus IIIF
La création de jeux d’entrainement est facilitée par IIIF
1. Amorçage du jeu (bootstrap) grâce aux métadonnées
2. Sélection de nouveaux éléments dans l’application web
3. Export du jeu (liste d’URL IIIF)
4. Téléchargement des images
5. Entrainement du modèle
Cartes
Le partage des jeux de
données est aussi facilité
Jeux de données disponible sur api.bnf.fr
19. Les images non segmentées conduisent à des classes génériques :
« cadre », « document », « document imprimé »…
Reconnaissance visuelle : remarques
19
jeu de données de segmentation disponible sur api.bnf.fr
20. Ces modèles génériques peuvent opérer sur des documents
patrimoniaux (XIXe, XXe), y compris sur des cas
« difficiles ».
Reconnaissance visuelle : remarques
20
21. Mais des limitations existent :
• Généralisation à partir de jeux d’entrainement
majoritairement contemporains
anachronismes
• Généralisation à partir de jeux nécessaire-
ment clos erreurs de classification
• Scènes complexes difficiles à interpréter
Reconnaissance visuelle : remarques
Segway
armored vehicule
bourgogne wine label
21
car bombing
10 000 classes permettent
de satisfaire des recherches
généralistes sur des
contenus modernes ou
contemporains, mais pas
sur le large spectre des
collections patrimoniales...
22. GallicaPix : donner accès
Dans une base XML (BaseX, XQuery)
Sur des champs textuels
Présentation mosaïque
avec IIIF
Métadonnées Image
Métadonnées Catalogue
OCR
22
http://demo14-18.bnf.fr:8984/rest?run=findIllustrations-form.xq
http://gallicastudio.bnf.fr
Base 14-18 :
200 k illustrations
65 k pubs illustrées
Extraites de 500 k pages
23. Cas d’usage : recherche encyclopédique sur un nom
Les métadonnées et l’OCR sont utilisés.
“George Clemenceau” : 140 ill. dans Gallica/Images, > 900 dans GallicaPix
Les caricatures
sont trouvées avec
la facette “dessin”
23
24. Cas d’usage : recherche encyclopédique sur un concept
Une recherche sur le mot-clé “avion” renvoie du bruit…
(portraits d’aviateur, photographies aériennes…)
24
gallica.pix
25. Cas d’usage : recherche encyclopédique sur un concept
En utilisant le concept visuel avion, le bruit peut être filtré.
(au prix de quelques faux positifs !)
25
gallica.pix
gallica.pix
Les portraits d’aviateurs
sont trouvés avec la
facette “Personne”
26. 26
0% 20% 40% 60% 80% 100%
Métadonnées
(bibliogr.+OCR)
IBM Watson
Modèle entraîné
avec Watson
Multimodal :
métadonnées
+ visuel
rappel
70 %
20 %
50 %
« Rappel » : proportion des documents pertinents proposés parmi
l'ensemble des documents pertinents (« exhaustivité », « sensibilité »)
Evaluation : recherche de concepts
27. Cas d’usage: recherche multimodale
Les concepts visuels, le texte et les métadonnées sont utilisés.
Recherche relative aux destructions urbaines consécutives à la bataille
de Verdun : concept=(”rue” OU ”maison” OU ”ruines”) ET
mot-clé=”Verdun”
27
Image Retrieval
gallica.pix
28. Expérimentation sur la détection de personne
Ces modèles permettent aussi la détection de visage et de genre :
• IBM Watson : “Visages”: rappel = 43 %, précision = 99,9 %
30. Projet INRIA/BnF (convention-cadre ministère de la Culture et INRIA),
équipe LinkedMedia, Rennes
Reconnaissance visuelle : modèles ad hoc
30
Base iconographique Mandragore (BnF) / Zoologie, 400 espèces
cataloguées au grain de la page (pas de zonage)
jeu de données de classification disponible sur api.bnf.fr
31. « Supervision faible » : taxonomie (400->100 classes), réseau CNN
entraîné sur Imagenet
Reconnaissance visuelle : modèles ad hoc
31
Cartes d’activation
32. « Supervision forte » : base iNaturalist, annotations (3k, 30 classes),
détection de régions candidates (Faster-RCNN), classification des
candidats, ajustement des boîtes englobantes
Reconnaissance visuelle : modèles ad hoc
32
33. Index de similarité
visuelle (dans un espace
numérique de grande
dimension)
Espèce 1
Espèce 2
Espèce N
SNOOP v3 : deep learning
Reconnaissance visuelle : similarité
Projet INRIA/BnF: équipe Zenith (Montpellier) :
moteur d’indexation visuelle SNOOP
34. SNOOP v3 : deep learning
Reconnaissance visuelle : similarité
Cas d’usage : recherche de reproduction d’une photographie d’agence
dans la presse lors de sa numérisation (et de son catalogage)
• choix des descripteurs locaux et globaux
• indexation de la collection Gallica Images
dans SNOOP
35. Sélection itérative de documents pertinents par l’utilisateur
Reconnaissance visuelle : recherche
par bouclage de pertinence
35
Recherche
initiale
Sélection
utilisateur Nouvelle recherche
basée sur les
exemples
Sélection…
36. • Choix d’une image de départ
• Sélection d’un détail
Reconnaissance visuelle : recherche
par bouclage de pertinence
36
37. • Itérations (10 mn)
• Création d’une nouvelle classe
Reconnaissance visuelle : recherche
par bouclage de pertinence
37
L’Excelsior (1910-1920)
38. Cas d’usage : humanités numériques
Projet ANR Numapresse, collaboration avec la BnF :
• Reconnaissance automatique des visages et genres dans Paris-Match
et L’Excelsior (pages de une, période de 10 ans)
• Post-correction manuelle avec l’éditeur GallicaPix (de 1 heure à 2 jours)
• Analyse de données et datavisualisation
Journée d'étude Numapresse « Paris Match : le poids des mots, le choc des photos » (université Paul-Valéry Montpellier III).
https://www.fabula.org/actualites/journee-d-39-etude-numapresse-paris-match-le-poids-des-mots-le-choc-des-photos-universite-paul-_90246.php
39. Cas d’usage : humanités numériques
Corpus de publicités illustrées de GallicaPix (60 k)
jeu de données disponible sur api.bnf.fr
40. Digital Humanities
Cas d’usage : humanités numériques
Hackathon DHH, mai 2019, Helsinki : thème “Newspapers
and Capitalism”, focus sur la publicité
• Reconnaissance automatique (Yolo v3) des moyens de transport
• Post-correction (1 jour), analyse de données et datavisualisation
https://github.com/altomator/Ads-data_mining
41. Conclusion
• Un accès unifié à toutes les illustrations d’une collection
encyclopédique est un service répondant à de réels
besoins.
• Il favorise aussi la réutilisation des illustrations.
• La maturité des techniques IA en matière d’indexation
visuelle rend possible leur intégration dans la boîte à outils
standard d’une bibliothèque. IIIF et IA forment un tandem
efficace.
• Leurs résultats, mêmes imparfaits, aident à rendre
visibles les illustrations de nos collections.
• Il n’y a pas de solution universelle en matière
d’indexation visuelle, mais des applications
immédiates sont possibles.
41
Conclusion
42. 42
Portraits Galery
Merci pour votre attention !
jean-philippe.moreux@bnf.fr
Jeux de données, modèles et scripts :
• api.bnf.fr
• github.com/altomator/Image_Retrieval
GallicaPix :
• gallicastudio.bnf.fr
• http://demo14-18.bnf.fr:8984/rest?run=findIllustrations-form.xq
43. Focus IIIF : humanités numériques
• Les chercheurs sollicitent de plus en plus les institutions
patrimoniales pour la mise à disposition de contenus
iconographiques numérisés. Ils s’essayent désormais à
l’extraction des illustrations de documents textuels
(presse, magazines, encyclopédie et dictionnaires…)
• Un écosystème IIIF peut être mis en place directement
au-dessus des collections numériques des institutions,
à des fins de recherche, grâce aux API IIIF Presentation
et IIIF Search.
• IIIF facilite aussi R&D et expérimentation avec les
techniques d’intelligence artificielle (appliquées aux
images et aux textes).
44. Presse : 80 % des illustrations indiquées par l’OCR n’en sont pas !
Où sont les illustrations ?
44
OLR (OCR + analyse
de la mise en page)
20%
80%
91%
9%
OCR
46. Focus IIIF
• Le téléchargement peut être lent par rapport à du local
• Peut mettre sous pression les serveurs IIIF locaux…
L’usage de IIIF pour le prototypage et la production peut
altérer la qualité de service des vrais « utilisateurs »
GallicaPix est #4 !
La plupart des 830k
appels sont dév+prod
Top 8 des consommateurs de l’API Gallica IIIF Image
Service IIIF Image
à la BnF :
• 5 serveurs
• Proliant BL460c G7
(2 Xeon CPU E5649,
2,53 Ghz, 24 coeurs)
• 10 M appels/mois
Notes de l'éditeur
So, we are going to talk about image retrieval, with a strong focus on how to apply deep learning on heritage collections with IIIF
So, we are going to talk about image retrieval, with a strong focus on how to apply deep learning on heritage collections with IIIF
Passer du document typé « image » à l’image elle-même.
Autant les documents image (cf. estampe ou dessin) monopage que les illustrations intercalées dans une monographie ou un imprimé ou les photographies individuelles dans un album
Images : btv1b9012392g/f1 - btv1b6944997m/f1 - bpt6k9795224n/f267 - btv1b8596943h/f39 - bpt6k4605158b/f1
Insister : quelque soit le type du document (déjà typé « image » ou non)
Doc image (estampe, photo)
Monographie illustrée
Doc image aux pages composées
Presse illustrée
Accès – valeur ajoutée =
- Pointer dans la page sur l’image souhaitée (vs. l’album)
- Normaliser et/ou enrichir le descriptif textuel des images
Hopefully, our collections are full of images. Printed materials can be seen as a large reservoir of illustrations, potentially hundreds of millions.
So our mission is to let users express these kind of query: « I want caricatures of George Clemenceau from all the collections”.
Researchers have special needs, they may want to apply quantitative analysis to our digital collections
GallicaPix, our proof of concept follows a straightforward approach: we must extract illustrations whatever place they are stored, enrich them, and finally let users apply image retrieval.
It’s clear that APIs facilitate R&D easier, and IIIF does the job for iconographic documents. In addition, it allows to dig into the digital illustrations.
It’s clear that APIs facilitate R&D easier, and IIIF does the job for iconographic documents. In addition, it allows to dig into the digital illustrations.
Aggregation of iconographic content and its subsequent enrichment are also greatly facilitated. GallicaPix experiments image mining in the Welcome collection, thanks to Europeana aggregator
We are now entering the second step, the image enrichment pipeline, and I will mainly focused on the image genre classification task and the visual recognition task. IIIF is used to access the images and process them
We applied a deep learning approach based on a convolutional neural network (namely Inception v3). This kind of networks are able to classify thousands classes of objects, from cats and dogs to tanks and airplanes. But here we want to classify image types, from pictures to maps and comics
So we have re-trained the last layer of the network on our specific use case. Four "noisy classes " were also included in the training set : cover & blank pages, text and ornaments, in order to filter these materials we do not want in our database
For the visual recognition part, we first tried the Watson API from IBM, which outputs pairs of semantic class and confidence score. You can see it in action on a British tank
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
Again a couple of remarks. Performing visual recognition with generic services like Watson works on heritage documents, even on "difficult" ones, as you can see
But we are also facing some limitations, like anachronism. Here we can see that Watson found a Segway in our corpus --- a steam engine as a tank -- or a musical score as a wine label. Multi object scenes are also very difficult to handle.
Finally, all the metadata have been loaded in a web app, and again, IIIF is used for the display.
Now I’m going to present some real life use cases. First, a query on “George Clemenceau”.
Now we get more than 9 hundred illustrations. And as we have classified the genres with deep learning, caricatures can be easily filtered with a facet.
Now let’s use the image content indexing. If we are looking for airplanes using keyword, we will get a lot of noise: aviator portraits, maps, etc.
If we use the conceptual classes produced by Watson (airplane), we can filter this noise.
And portraits of aviators near their planes can be found with the Person facet
Let’s try it.
Lets sum up these numbers. If you let users look for illustrations of soldiers with Watson, you get a 50% recall rate. With a custom classifier trained on your collection, you can improve a little bit, by 5%. Lastly, when using both text and visual recognition, you can reach 70%. Which is pretty good for our use cases
Now a couple of mixed queries, when classes and text are used. Here again, this search would have been almost impossible with textual descriptor only
Watson also performs face and gender detection, but we got rather medium results, with a recall rate of 43%
We tried another tool, using the OpenCV dnn module, and it gives a better recall if you compromise on accuracy. It’s clear that deep learning frameworks are more flexible than APIs, on which you have almost no control.
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
And finally, raw unsegmented images result in generic classes like "frame", "document", "written document », « newspapers », which are definitively not usable…
First DH use case is about gender detection on newspapers and magazines front pages. We combined automatic visual recognition and post-correction on 2 titles. The Paris-Match analysis took 2 h of computer time and 1 hour of post-correction (1K pages dataset). Excelsior has been more difficult, because of its size (10k pages), its content (poor photoengraving quality), which led to a terrible recall rate and many corrections.
this graph clearly visualizes what a patriarchal society is.
First DH use case is about gender detection on newspapers and magazines front pages. We combined automatic visual recognition and post-correction on 2 titles. The Paris-Match analysis took 2 h of computer time and 1 hour of post-correction (1K pages dataset). Excelsior has been more difficult, because of its size (10k pages), its content (poor photoengraving quality), which led to a terrible recall rate and many corrections.
this graph clearly visualizes what a patriarchal society is.
Another very recent use case, which took place at the last DHH in Helsinki. The same objectives, the same tool, and a fairly efficient result, since we obtained this chart in one day, thanks to the Yolo object recognition model.
As a quick conclusion, I would say that deep learning technics are now mature enough to be used right out of the box on our collections. And of course, it opens new perspective for researchers and new services for our general audience.
Thanks for your attention!
And please feel free to test the demonstrator!
But OCR mining can be challenging… You see here what we get when we data mine newspapers raw OCR. More than 80% of the illustrations can be false positives. Obviously, we must do something before presenting such noisy results to users.
Image Retrieval is a very easy concept to understand: we would like to search for images of dogs, even if we don’t have any "dog" metadata
But we have to deal with a couple of drawbacks: image download can be slow, and your production workload may affect the quality of service. As you can see on this graph, GallicaPix is in the Top 4 consumers, and most of the workload is related to production. Let’s imagine if we had multiple in-house GallicaPix + external similar mash-up from our users!