Loading...
Viden om AI

AI’s rolle i billedbehandling og -produktion

Computer vision som disciplin

Hvor store sprogmodeller der bygger på maskinlæring, er udviklet til at processere og producere sprog, er maskinlæring også udviklet til at processere og producere digitalt visuelt materiale som billeder og video, idet det kan udnyttes at digitale billeder er lagret som data i form af pixels. Computer vision henviser til et felt inden for AI hvor AI-systemer trænes til at udlede information af visuelt materiale (Se evt. her).

Computer vision-teknikker kan bruges til at klassificere billeder og opdage særlige træk og afvigelser samt identificere objekter. Når jeg fx skal i træningscentret, bliver jeg lukket ind vha. ansigtsgenkendelse. I denne video får du et hurtigt overblik over computervision-feltet, inkl. nogle grundlæggende maskinlæringsteknikker og anvendelsesmuligheder.

Grundlæggende principper for digital billedrepræsentation

Digitale billeder er opbygget af pixels. Hver pixel indeholder information om en del af billedets visuelle repræsentation, dvs. om farven og farveintensiteten det sted på billedet som den pågældende pixel refererer til. Informationen er indkodet for tre farver, rød, grøn og blå (RGB), og hver farve kan have en intensitet på mellem 0-255. Kombinationen af information om de tre farvers intensitet for alle punkter på et billede muliggør digital billedrepræsentation og processering. Det er antallet og placeringen af pixels der afgør billedets størrelse, og et billedes opløsning opgøres ofte i pixels.

En anden måde at repræsentere farver er med ’hue, saturation, value’-farverummet (HSV) hvor hver pixels farve kan defineres ud fra tone, mætning og intensitet (Se fx https://da.wikipedia.org/wiki/HSV). Kimberly Swisler demonstrerer i denne video hvordan farver er repræsenteret og kan manipuleres i digitale programmer som Adobe vha. en RGB-visning og en HSV-visning.

Maskinlæring til billedbehandling: Convolutional Neural Networks (CNNs)

Convolutional Neural Networks, eller CNNs, gennemgås af Datacamp her og er en specialiseret type af dybe neurale netværk der er designet specifikt til at behandle data med en gitterstruktur, såsom digitale billeder. Denne teknologi er inspireret af den biologiske proces for visuel perception hos dyr og har revolutioneret feltet inden for computer vision og billedbehandling.

CNNs er opbygget af flere lag der hver har en specifik funktion. Det starter med et input-lag, der modtager de rå pixel-værdier fra et billede. Derefter kommer convolution-lagene, som er kernen i CNNs. Disse lag anvender filtre, der glider hen over billedet for at detektere specifikke mønstre og træk. Forskellige filtre kan identificere forskellige egenskaber som kanter, teksturer eller former i billedet.

Efter convolution-lagene følger ofte pooling-lag der reducerer dimensionaliteten af de udtrukne egenskaber. Dette gør ikke kun beregningerne mere effektive, men gør også modellen mere robust over for små variationer i input-billedet. Mellem lagene i netværket findes der særlige 'aktiverings-funktioner'. Disse fungerer lidt som filtre, der hjælper netværket med at skelne mellem vigtig og mindre vigtig information. En populær type kaldes ReLU. Disse funktioner er afgørende, fordi de giver netværket evnen til at forstå og genkende komplicerede mønstre i billeder, på samme måde som vores hjerne kan skelne mellem forskellige objekter, selv når de overlapper eller er delvist skjulte.

De sidste lag i en CNN er typisk fuldt forbundne lag, der kombinerer egenskaberne fra de tidligere lag til den endelige klassificering eller output. Denne struktur giver CNNs flere fordele i billedbehandling. For det første reducerer parameter-deling antallet af parametre, der skal læres, hvilket gør modellen mere effektiv. For det andet udnytter CNNs billeders rumlige organisering, hvilket betyder, at de er gode til at fange sammenhænge mellem nærliggende pixels. En af de smarte ting ved CNNs er, at de kan genkende objekter i et billede, uanset hvor i billedet objektet befinder sig. Det er lidt ligesom når vi mennesker kan genkende en kat, uanset om den sidder i hjørnet eller midt i billedet.

Billedgenkendelse og -klassificering

Billedgenkendelse og -klassificering er centrale anvendelser af CNNs. Her trænes modellen til at identificere og kategorisere indholdet i billeder. For eksempel kan en model trænes til at genkende forskellige dyrearter, bilmærker eller ansigtsudtryk.

Træningen sker ved hjælp af 'mærkede billeder'. Det betyder, at hvert træningsbillede har en label, der fortæller, hvad billedet indeholder. For eksempel kunne et billede være mærket som 'kat', 'hund' eller 'fugl'. Jo flere mærkede billeder modellen ser under træningen, jo bedre bliver den til at genkende lignende objekter i nye, umærkede billeder.

En smart teknik kaldet 'transfer learning' gør det muligt at bruge allerede trænede modeller som udgangspunkt. Det er lidt som at lære et nyt sprog, når man allerede kan et andet - man starter ikke helt fra bunden. Med transfer learning kan man tage en model der allerede er god til at genkende generelle træk i billeder, og så 'fintune' den til en specifik opgave. Det sparer både tid og kræver mindre data. I denne video introduceres CNN’s, inkl. de forskellige træningsteknikker.

I praksis bruges disse teknikker til mange forskellige formål. Ansigtsgenkendelse i smartphones eller på sociale medier er et velkendt eksempel. Objektdetektering bruges i selvkørende biler til at identificere andre køretøjer, fodgængere og vejskilte. I medicin kan lignende teknikker bruges til at analysere røntgenbilleder eller MR-scanninger for at hjælpe med at opdage sygdomme.

På et noget mindre abstrakt niveau kunne man forestille sig at CNNs kunne bruges til at identificere forskellige særlige træk ved de tegninger af spiraler jeg viste da jeg gennemgik maskinlæringsteknikker her, fx spiraler der er ’hakkede’, hvilket ville betyde at computer vision teknikker kunne anvendes frem for mere simple maskinlæringsteknikker der involverede manuel omformning af data.

Generative modeller til billedproduktion

En innovativ teknik til at generere billeder er Generative Adversarial Networks (GANs) som introduceres her. GANs fungerer ved hjælp af to neurale netværk, der arbejder sammen i en slags kunstnerisk duel: Det ene netværk, generatoren, er som en kunstner, der forsøger at skabe overbevisende falske billeder. Det starter med tilfældigt "støj" som omdannes gradvist til et billede. Det andet netværk, diskriminatoren, er som en kunstkritiker. Diskriminatorens job er at skelne mellem ægte billeder (fra træningsdatasættet) og de falske billeder som generatoren producerer.

De to netværk indgår så i en træningsproces: Generatoren skaber et billede og "håber" at narre diskriminatoren, mens diskriminatoren analyserer billedet og gætter på, om det er ægte eller falsk. Baseret på diskriminatorens dom, justerer generatoren sin teknik for at skabe mere overbevisende billeder næste gang. Samtidig bliver diskriminatoren bedre til at spotte falske billeder. Denne proces gentages mange gange. Gradvist bliver generatoren bedre til at skabe overbevisende billeder, mens diskriminatoren på den anden side bliver skarpere til at opdage selv små fejl. Det fascinerende ved denne proces er, at ingen af netværkene nogensinde ser ægte billeder direkte. I stedet lærer de gennem deres indbyrdes konkurrence. Her er en video fra IBM Cloud som forklarer principperne. GANs anvendes som beskrevet til billedgenerering, fx baseret på tekstbeskrivelser, men kan også bruges til stilimitation, billedforbedring, og idégenerering, fx inden for design.

Variational Autoencoders (VAEs) er en anden type generativ model, der ligesom GANs kan bruges til at skabe nye billeder. Men hvor GANs fungerer som en konkurrence mellem to netværk, arbejder VAEs på en anden måde. Et billede omdannes til en kompakt form af en såkaldt encoder, som derefter bruges til at generere et billede igen af decoderen. Det gør at VAEs fungerer godt til at nedskalere og opskalere billeder samt at producere billeder i forskellige varianter og at opdage afvigende billeder. En noget mere uddybet beskrivelse af VAEs finder du her.

Billedgenereringsværktøjer såsom DALL-E gør også brug af en såkaldt diffusionsmodel. Modellen trænes på billeder hvor grynede billeder trinvist renses og forfines hvorigennem modellen altså trænes til at generere billeder. Processen beskrives her hvor det også beskrives hvordan DALL-e er trænet på tekst-billede-par hvilket netop muliggør at man ved at lave en tekstbeskrivelse kan få et billede genereret som output. Det samme vises i videoen her fra AssembyAI.

Læs om etiske problemstillinger forbundet med AI