Organisaties als musea, erfgoedcellen en universiteiten bewaren een hoop kostbaar archiefmateriaal. De voorbije jaren zorgde de dienstverlenende organisatie meemoo al voor een zorgvuldige digitalisering en archivering van hun massa aan beeld en geluid. Met het GIVE-project schrijft meemoo aan het volgende hoofdstuk: een vlotte doorzoekbaarheid van deze rijke informatiebron, aan de hand van artificiële intelligentie. De details van de drie gehanteerde technologieën ontdek je hieronder.
In het GIVE-project ging meemoo aan de slag met het audiovisueel archiefmateriaal van organisaties in cultuur en overheid. De beschrijvingen van een zee aan archiefmateriaal worden op 2,5 jaar tijd grondig verrijkt a.d.h.v. AI-technologieën: gezichtsherkenning, spraakherkenning, en entiteitsherkenning. Voorbeelden van deze metadata? Een titel, persoonsnaam, datum of locatie.
Van de KU Leuven tot Opera Ballet Vlaanderen over Liberas en het Archief van Poperinge. In het GIVE-project werd het beeld en geluid van zo’n 130 partners in cultuur en overheid verrijkt van beschrijvende gegevens.
De gezichtsherkenning beet zich vast op 124.000 uur aan videomateriaal. De tools voor spraakherkenning en entiteitsherkenning werden losgelaten op deze 124.000 uur en 46.000 uur extra audiomateriaal. In totaal werd meer dan 170.000 uur aan video en audio beter doorzoekbaar gemaakt.
Laten we beginnen met de geautomatiseerde gezichtsherkenning (ook wel facial recognition). Deze technologie werd in het GIVE-project ingezet om gezichten van publieke personen te herkennen in video. En dat met een minimum aan menselijke tussenkomst!
De gebruikte gezichtsherkenningspijplijn werd niet aangekocht, maar in-house gebouwd. Waarom? Zeer specifieke eisen, relatief dure commercieel verkrijgbare tools, én reeds opgebouwde ervaring in FAME-project. Een pijplijn voor gezichtsherkenning zelf ontwikkelen brengt nog heel wat voordelen met zich mee. Zo heb je meer vrijheid, én houd je steeds de touwtjes in handen op vlak van privacy en de ethische omgang met gevoelige data.
In het GIVE-project werd gezichtsherkenning uitsluitend toegepast op bewegend beeld. De detectie en herkenning van de vele gezichten verliep volgens dit stappenplan:
Voor je een persoon kan herkennen, moet je eerst weten welke elementen in een fragment gezichten zijn. Na een uitgebreide benchmarking koos meemoo voor een combinatie van twee open source modellen, genaamd YuNet en mediapipe.
Hierna wordt er van ieder gedetecteerd gezicht een unieke ‘vingerafdruk’ (ook wel een feature vector) gegenereerd. Hiervoor maakte meemoo gebruik van Magface. Met deze vingerafdrukken kan je meten hoe gelijkaardig twee gezichten zijn. Tennislegende Kim Clijsters zal dankzij deze unieke code dus niet verward worden met bijvoorbeeld actrice Maaike Cafmeyer. Deze stap heet ook wel face embedding.
Het is belangrijk dat de gezichten kwaliteitsvol en duidelijk genoeg in beeld zijn voor het verdere verloop van de gezichtsherkenning. Een gedraaid gezicht met een helm geeft een slechtere score, een gezicht dat recht in de camera kijkt mét een goede beeldkwaliteit geeft een veel betere score. Kijk maar naar het model hieronder:
Met informatie over waar in de video het gezicht werd gedetecteerd, samen met de vingerafdrukken, kunnen gezichten worden gevolgd over meerdere frames binnen eenzelfde shot. Dit proces heet face tracking en heeft als doel om opeenvolgende gezichten van eenzelfde persoon te groeperen binnen een shot.
Dat ziet er ongeveer zo uit:
Je kan een persoon binnen een shot volgen, maar diezelfde persoon kan verderop in de video nogmaals voorkomen. Daarom worden in stap vier de verschillende keren dat een persoon voorkomt in een video gegroepeerd tot een cluster. Deze combinatie vormt samen een persoon. Het systeem geeft ook aan waar in de video de persoon zich bevindt.
Van personen die in héél veel shots van de video voorkomen, worden de drie beste gezichten uitgekozen. Mocht je hier niet in knippen, dan zou je duizenden gezichten en dus een massa aan informatie moeten bijhouden.
Als laatste stap worden de drie representatieve gezichten van een persoon uit een video vergeleken met een referentielijst. Dat is een set met afbeeldingen van publieke en relevante personen, die in het GIVE-project werd opgesteld door de beheerders van het materiaal.
Hoe de eigenlijke herkenning marcheert? De unieke vingerafdruk van de persoon uit de video wordt vergeleken met de 10 meest gelijkende vingerafdrukken uit de referentieset.
Een concrete case! Persoon X komt in 34 video's van 12 verschillende organisaties voor. Wanneer één van die organisaties persoon X benoemt als Guy Verhofstadt, dan ontvangt iedereen nieuwe metadata in die 34 video's.
Wist je dat? De gezichtsdetectiefase neemt enkele maanden in beslag. Gezichtsherkenning daarentegen? Hoogstens een dag!
Je las het hierboven al: om gezichtsherkenning te kunnen uitvoeren, heb je een uitgebreide lijst nodig van personen die je effectief wilt herkennen. Dat zijn typisch publieke personen, of personen die erg relevant zijn in de context van een bepaald archief. Maar da’s niet alles: je hebt ook portretfoto's van deze personen nodig. Een hele klus! Gelukkig kon meemoo voortbouwen op het onderzoeksproject FAME (2020-2022). Collectiebeherende instellingen als het Vlaams Parlement, KOERS, ADVN en Kunstenpunt, maar ook Amsab-ISG, KADOC en Liberas zetten in FAME mee hun schouders onder het verzamelen van referentiefoto’s, metadatabronnen en reeds bestaande referentiesets.
In het GIVE-project werd deze set door de 130 eigenaars van het verrijkte archiefmateriaal verder aangevuld. Dat gebeurde niet zonder richtlijnen: om alles op een ethische manier te laten verlopen, werden de processen tot in detail besproken met alle betrokkenen. Conclusie? Het blijft een mens (dat is: de archivaris) die achter de knoppen zit. Ook is de set in gedeeld beheer, wat zorgt voor een rijke referentieset en op termijn ook voor meer metadata. Een persoon wordt niet zomaar binnen de grenzen van één archief herkend, maar meteen in alle video’s van zo’n 130 archieven.
Extra verrijkend? Iedere persoon in de set werd waar mogelijk gelinkt aan de interne databronnen van de beheerders van het materiaal, en aan een authentieke bron of thesaurus zoals Wikidata. Zo’n thesaurus zorgt voor extra informatie en dus nog rijkere metadata.
De set bestaat momenteel uit ongeveer 3.800 personen. In de toekomst kunnen organisaties personen die ze willen herkennen, blijven toevoegen aan de set.
En dat de resultaten indrukwekkend zijn! Maar liefst 3,3 miljoen gezichten werden gedetecteerd, waarvan er 225.000 gematcht konden worden aan een persoon uit de referentieset. Dat vertaalt zich in 2.518 uniek herkende personen. Mooie cijfers en een grote sprong voorwaarts. Maar wat met de overige 3,1 miljoen gezichten, die voorlopig anoniem blijven? Wel, met een rijkere referentieset is de kans groter dat extra gezichten een naam krijgen. Daarnaast wordt er een lijst opgesteld met de meest voorkomende onbekende gezichten in het videomateriaal, die de projectpartners kunnen gebruiken als basisdocument.
De tweede AI-technologie die gebruikt werd om Vlaams archiefmateriaal te verrijken, is spraakherkenning. De aanwezige spraak in geluidsfragmenten en video’s werd automatisch getranscribeerd, in verschillende talen. Zo kom je op recordtempo te weten waar een politiek debat of documentaire over gaat.
Aangezien de AI-technologieën voor spraakherkenning al relatief ver staan, betaalbaar zijn, én snel evolueren, koos meemoo ervoor om een een dienst aan te kopen. In tegenstelling tot gezichtsherkenning, werd de pijplijn voor spraakherkenning dus niet door meemoo gebouwd. Het gekozen systeem werd wel geïntegreerd in de meemoo-architectuur. Maar hoe verliep die keuze?
Tot een correcte keuze komen, dat vergt een hoop werk. Het voortraject was dan ook het meest intensieve deel van de spraakherkenning binnen het GIVE-project: deze eerste stappen namen anderhalf jaar in beslag.
Om een objectieve vergelijking van verschillende tools te kunnen maken, werden de resultaten van verschillende bestaande diensten vergeleken met handmatig getranscribeerd materiaal. Drie uur audio werd volgens enkele categorieën met de hand geselecteerd en vervolgens door een extern bureau getranscribeerd. Die categorieën waren:
Ook kernwoorden als organisaties, personen, locaties en een set aan kernwoorden werden in ieder fragment geannoteerd. Die gegevens konden later gebruikt worden in het luik rond entiteitsherkenning, voor het kiezen van een externe dienst.
Hierna lanceerde meemoo een openbare aanbestedingsprocedure. Dit houdt in dat de kwaliteit en prijs (per uur getranscribeerd materiaal) van verschillende oplossingen op een objectieve manier met elkaar werden vergeleken. Zo kon meemoo tot een aankoopbeslissing komen.
De open source tool EBU-BenchmarkSTT vergeleek alle oplossingen met elkaar. De tool vergeleek het referentiemateriaal (de handgemaakte transcripties, dus) met de resultaten van de verschillende spraakherkenningsoplossingen. Aan de hand van de zogenaamde word error rate werd hun kwaliteit objectief gemeten. Daarnaast speelden ook andere kwalitatieve kenmerken en de prijs een rol in de uiteindelijke beslissing.
Aan het einde van dit traject koos meemoo voor de SaaS-toepassing (kort voor Software-as-a-Service) van Speechmatics. Deze spraakherkenningsservice bepaalt eerst welke taal er gesproken wordt, en zet dan de spraak om in tekst. De tool detecteert ook welk woord wanneer gezegd wordt in het video- of audiofragment, en hoe zeker de software is dat het woord juist gehoord is. Resultaat? Een uitgeschreven transcriptie met tijdsindicaties in enkele bestandsformaten zoals bvb. een ondertitelingsbestand (srt.), gegenereerd aan een razendsnel tempo. Waar je meerdere uren nodig hebt om één uur archiefmateriaal te transcriberen, doet de machine dit op enkele minuten. Na de keuze voor Speechmatics, werd de dienst als schakeltje in een breder proces geïntegreerd in de architectuur van het meemoo-archiefsysteem.
Spraakherkenning is natuurlijk niet zonder uitdagingen: de AI-toepassing heeft vaak nog moeite met het herkennen van dialecten of woorden die vandaag niet meer worden gebruikt, of de transcriptie van fragmenten waarin meerdere talen voorkomen. In dat laatste geval wordt enkel de hoofdtaal gedetecteerd, wat kan leiden tot gekke resultaten!
De evolutie van spraakherkenningssoftware gaat trouwens enorm snel! In slechts een paar maanden tijd was er al een duidelijk meetbare verbetering én een extra feature: een automatische taaldetectiestap die het juiste taalmodel kiest voor de eigenlijke transcriptie.
De resultaten van spraakherkenning brengen ons naadloos over naar het volgende traject: entiteitsherkenning of named entity recognition (NER). Deze software werd toegepast op de AI-gegenereerde teksten uit de spraakherkenningslijn, die hierboven van A tot Z beschreven werd. Teksten die propvol ‘entiteiten’ staan: namen van publieke figuren, organisaties, plaatsen en mogelijks nog meer. In het laatste deel van het GIVE-metadataproject wordt al deze informatie herkend en verzameld.
Ook voor entiteitsherkenning werd gekozen om een toepassing aan te kopen. En dat proces verliep in grote lijnen zoals de selectie van de spraakherkenningsdienst. Je las het hierboven misschien al: om een objectieve keuze te kunnen maken, schreef meemoo drie uur aan audio handmatig uit. Als laatste stap werd alle kerninformatie gemarkeerd. En daar werd gebruik van gemaakt voor de keuze van een NER-toepassing.
Na een grondige vergelijking tussen SpaCy, FLAIR, mBERT, Amazon Comprehend, Azure Language, Google cloud natural language en Textrazor, kwam die laatste SaaS-toepassing als beste uit de bus. Naast entiteiten als personen, organisaties en locaties in verschillende talen, zorgt de tool waar mogelijk voor links naar thesauri, zoals Wikidata. Een groot pluspunt!
In de projecten rond gezichtsherkenning en entiteitsherkenning wordt er - waar mogelijk - gebruikgemaakt van authentieke bronnen. Dat zijn gegevensbanken vol authentieke informatie die gelden als dé referentie. Denk aan Wikidata, VIAF of Geonames. Wanneer je de nieuw gegenereerde metadata linkt aan zo’n authentieke bron, link je naar een element dat rijker is en andere interessante metadata kan bevatten. Bijvoorbeeld de geboortedatum van een persoon, de politieke partij waar deze persoon actief was, of de precieze coördinaten van de gemeente waar de persoon heeft gewoond.
Authentieke bronnen helpen de metadata ook ondubbelzinnig te maken. Zo ontstaat er geen verwarring tussen aliassen of verkeerde schrijfwijzen van een persoon. Dankzij de extra informatie weet je dat het gaat over wielrenner Eddy Merckx, en niet de gelijknamige biljarter!
First things first: alle gegenereerde metadata worden duurzaam opgeslagen in de archiefinfrastructuur van meemoo. Bij die bewaring gelden enkele afspraken:
Omdat deze nieuwe metadata erg gedetailleerd zijn, heel talrijk aanwezig, én op hun beurt ook informatie bevatten over de metadata, doet meemoo geen beroep op het meemoo-archiefsysteem voor de opslag. In plaats daarvan worden de metadata rechtstreeks in een knowledge graph opgeslagen, met een link naar het item in het archiefsysteem. Een zogenaamde knowledge graph is een applicatie die eruitziet als een wijdvertakt netwerk van verbanden, en die dient om kennis uniform samen te brengen.
De focus van het GIVE-metadataproject ligt in de eerste plaats op de creatie van metadata. Hergebruik en ontsluiting staan niet meteen op het programma, maar worden later wel verder onderzocht samen met de contentpartners van meemoo.
De processen die in het project gebruikt werden, zullen in de toekomst blijven bestaan. En daarnaast komen ook de archieven van enkele grote mediaspelers aan bod! In het project Shared AI zullen de archieven van de VRT én alle Vlaamse regionale omroepen voorzien worden van persoonsnamen, entiteiten en transcripties, op basis van ongeveer dezelfde workflows als in het GIVE-project.
Maar het verhaal eindigt niet hier. De collectiebeherende organisaties blijven met hun expertise archiefmateriaal beter omschrijven, en de wereld van artificiële intelligentie staat niet stil. Nieuwe technologieën komen steeds op de proppen, en ook hun kwaliteit verbetert. Artificiële intelligentie is erg veelbelovend voor de annotatie van grote volumes aan data, en daar kijkt meemoo reikhalzend naar uit!