• No results found

Resulterande funktionalitet och systembeskrivning

In document Automatisk taggning av video (Page 34-38)

Här presenteras en beskrivning av den slutprodukt (VATG) som projektarbetet lett fram till. Det innefattar redogörande av systemets huvudfunktioner och övergripande struktur. En anatomi för systemet kan ses i figur 5.1. Notera avsnitt 5.1.2, förstudiefasen, där beslutet att inte använda Word2Vec fattates; istället lades fokus huvudsakligen på lösningen som inne- höll Wordnet. I den slutgiltiga produkten implementerades dock versioner av båda lösning- arna.

5.3. Resulterande funktionalitet och systembeskrivning Tjänster från Amazon Word2Vec Amazon DynamoDB Kategorier (lokal lagring) Controller Blackboard Modifiers Amazon Rekognition

AWS Lambda AWS SNS AWS SQS WordNet

API Wordnet (lokal lagring)

Figur 5.1: Översikt över systemets olika roller.

5.3.1

Systembeskrivning

Systemet består huvudsakligen av komponenterna:

• Blackboardsystem sköter analys av taggar genererade från Rekognition med syftet att förbättra dessa. Systemet innefattar blackboard, controller och modifiers.

• Lokalt lagrade kategorier används för kategorianalys som finns beskrivet längre ned i kapitlet.

• Wordnet API i Java med tillhörande databas för lexikal och semantisk analys av ord. • En vektorrepresentation av relationer mellan ord framtagen med hjälp av Word2Vec

som lagras i molnet med hjälp av AWS DynamoDB. • AWS Lambda möjliggör serverlös exekvering av systemet.

• Rekognition för att hitta initiala taggar till en video genom objektigenkänning.

• SNS och SQS möjliggör kommunikation in och ut från systemet till övriga system an- slutna till kö- och notifikationstjänsten.

Övergripande systembeskrivning

VATG använder AWS Lambda för att dela upp körningen av systemet i två separata pro- cesser, videoanalys och filtrering. Analysmodulen startas genom ett anrop som innehåller adressen till videoklippet som ska analyseras. Därefter skickas datan vidare med ett anrop till Amazon Rekognition, varpå svaret skickas till en SNS topic. Filtreringsmodulen lyssnar på denna SNS topic och startar upp vidare analys i en ny lambda-process som utför operatio- ner på de taggar som Amazon Rekognition genererat.

Bearbetningen av taggar från Rekognition startar genom att den blackboard- och controller- modul som refererar till motsvarande i blackboard-arkitekturen initialiseras. I controller- modulen körs först ett antal förbestämda modifierieringmoduler på den mängd taggar som

5.3. Resulterande funktionalitet och systembeskrivning

ligger i blackboarden. Dessa är relevansfiltrering, samplingsfrekvensfiltrering, stoppords- filtrering, omvänd likhetsfiltrering och kategorisering i respektive ordning. Filterna finns beskrivna i avsnitt 5.3.2. Efter detta inleds den kontroll-loop som utmärker blackboard- arkitekturen. De modifieringsmoduler som körs här är likhetsfiltrering och relevansfiltrering. Med detta kör de listade modifieringsmodulerna sina funktioner och den samling operatio- ner som ger upphov till högst påverkan väljs ut och exekveras. Dessa modifieringsmoduler parallelliseras genom att köras i separata lambda-processer. För varje körning ökas variabla värden i de modifieringsmoduler som testas för exekvering i kontroll-loopen med en multi- pel av det nuvarande värdet. Detta upprepas tills ingen modifieringsmodul kan göra några ändringar, alternativt att den tidsgräns som VATG begränsas av har överstigits. Efter detta körs omvänd likhetsfiltrering för att ta bort ytterligare taggar som inte anses höra till kontex- ten. Slutligen presenteras den resulterande taggdatan på det format som kunden angivit och skickas tillbaka till Flowplayer med ett HTTP-anrop.

5.3.2

Huvudfunktioner

VATG tar emot ett filnamn som refererar till ett videoklipp som indata. Detta används sedan för att skapa taggar som är tänkta att representera det som visas i klippet. Denna videotagg- ningsprocess innefattar en mängd delprocesser som presenteras nedan.

• Videoanalys – För att få ut en preliminär samling ord att utgå ifrån används Amazon Rekognition Video för att identifiera objekt i behandlade videofiler. Denna del ansva- rar därmed för att skicka anrop till Amazon och ta emot resulterande ord. Med detta uppfylls följande krav i projektets kravspecifikation ”Systemet skall skapa taggar till en video”. Utskick av anrop och behandling av respons sker som två skilda processer och finns därför som två separata moduler.

• Samplingsfrekvensfiltrering – För att få ner antalet taggar till en konstant nivå utförs ett urval där taggar tas bort likformigt över den inmatade videons tidsintervall, tills antalet taggar ligger under ett visst antal.

• Relevansfiltrering – En form av relevansfiltrering utförs för att sålla bort taggar som inte förekommer tillräckligt ofta i en video. Taggar tas bort på två sätt. De tas bort bero- ende på hur ofta de förekommer under specifika intervall, och de tas bort beroende på hur ofta de förekommer jämfört med taggen som förekommer oftast.

• Likhetsfiltrering – Ord som ligger nära varandra i betydelse tas bort genom att testa ordpar för likhetsgrad, vilket görs med uppslag i orddatabasen Wordnet. Sedan sparas likhetsrelationer över ett visst tröskelvärde, indexerade över hur många relationer varje ord har. Det ord som har flest relationer behålls och de ord som ordet relaterar till tas bort.

• Omvänd likhetsfiltrering – För att minska risken att mindre relevanta ord behand- las i analysen, utförs en omvänd likhetsfiltrering, det vill säga ord som inte har någon som helst anknytning till resterande ord tas bort. Det utförs genom att mäta likhet mel- lan de olika vektorerna, som beskrivs mer ingående i avsnitt A.3.3. I Word2Vec skapas en medelvärdes-vektor, vektorn kan sedan ses som den gemensamma kontexten. Ord som inte tycks ha några relationer till medelvärdet kan därför anses vara mindre rele- vanta, och plockas därför bort, se figur 5.2. Anledningen till att medelvärdes-vektorn kan ses som en gemensam kontext, bygger på Word2Vec-modellens natur som beskri- ver relationer mellan olika ord. I Wordnet fungerar den omvända likhetsfiltreringen på annorlunda vis. I den omvända likhetsfilteringen för Wordnet används ingen medel- värdesvektor, istället skapas samlingar av taggar som ligger nära varandra enligt deras

5.3. Resulterande funktionalitet och systembeskrivning

likhet i Wordnet-databasen och taggar som endast tillhör tillräckligt små samlingar kan plockas bort.

• Stoppordsfiltrering - Ord som ofta förekommer efter videoanalys med Amazon Rekognition och samtidigt är av mindre värde i videotaggningssammanhang tas bort i denna modul. Exempel är ”human” och ”person” som Rekognition ofta kan garantera med hög konfidens, men återfinns också efter analys av de flesta typer av video. Andra ord som filtreras bort är ord som inte finns i varken Wordnet eller Word2vec, eftersom de inte kan utredas för koppling till resterande taggar.

• Utjämnarfilter - Då det ofta händer att en specifik tagg förekommer väldigt ofta jämfört med andra, görs en filtrering av tidsstämplarna för denna tagg. Detta filter modifierar taggen som förekommer mest, så att den inte förekommer oftare än en fjärdedel mer än taggen som förekommer näst mest.

• Kategorisering - För att få ner mängden taggar som returneras och samtidigt säkerstäl- la att mängden hålls beskrivande, identifieras övergripande kategorier utifrån befintlig samling. Det görs genom att varje ord utreds för likhet med en förbestämd lista base- rad på Wikipedias kategorier [23]. Likhetsjämförelsen sker genom likhetsanalys med cosinus-distanser av kategorierna och taggarnas ordvektorer, se sektion A.3.3. Katego- rierna får en vikt baserat på likheter mellan ord; kategorier med många likheter och relationer till tagguppsättningen premieras och de tyngsta kategorierna väljes ut och adderas till taggsamlingen. På så sätt kan systemet bestämma en eller flera kategorier med tillräcklig precision för ett videoklipp. Med detta uppfylls följande krav i projektets kravspecifikation ”Systemet skall kunna kategorisera taggar”.

Figur 5.2: Översikt över vektoriserade ord med Word2Vec, med medelvärdet för punkterna markerat med ett kryss. De streckade cirklarna markerar ord som kan tas bort.

5.3.3

Resultat från körning

För att integrera VATG med Flowplayers existerande tjänst var utdatan från produkten tvungen att följa en viss standard som det går att se figur 5.3.

5.4. Tester

In document Automatisk taggning av video (Page 34-38)