En introduktion til superopløsning ved hjælp af dyb læring

Superopløsning er processen med at gendanne et billede med høj opløsning (HR) fra et givet billede med lav opløsning (LR). Et billede kan have en “lavere opløsning” på grund af en mindre rumlig opløsning (dvs. størrelse) eller på grund af et resultat af nedbrydning (f.eks. sløring). Vi kan relatere HR- og LR-billederne ved hjælp af følgende ligning: LR = degradation(HR)

Et billede med lav opløsning holdes ved siden af sin version med høj opløsning. (Foto af Jarrad Horne på Unsplash)

Det er klart, at ved at anvende en nedbrydningsfunktion får vi LR-billedet fra HR-billedet. Men kan vi gøre det omvendte? I det ideelle tilfælde, ja! Hvis vi kender den nøjagtige nedbrydningsfunktion, kan vi ved at anvende dens omvendte funktion på LR-billedet genvinde HR-billedet.

Men deri ligger problemet. Vi kender normalt ikke nedbrydningsfunktionen på forhånd. Direkte vurdering af den inverse nedbrydningsfunktion er et dårligt løst problem. På trods af dette har Deep Learning-teknikker vist sig at være effektive til Super Resolution.

Denne blog fokuserer primært på at give en introduktion til at udføre Super Resolution ved hjælp af Deep Learning ved hjælp af Supervised training-metoder. Nogle vigtige tabsfunktioner og metrikker diskuteres også. Meget af indholdet er afledt af denne litteraturgennemgang, som læseren kan henvise til.

Superviserede metoder

Som tidligere nævnt kan dyb læring bruges til at estimere billedet med høj opløsning (HR) givet et billede med lav opløsning (LR). Ved at bruge HR-billedet som mål (eller ground-truth) og LR-billedet som input kan vi behandle dette som et superviseret læringsproblem.

I dette afsnit grupperer vi forskellige dybe læringsmetoder efter den måde, hvorpå konvolutionslagene er organiseret. Inden vi går videre til grupperne, præsenteres en grundbog om datapræparering og typer af konvolutioner. Tabsfunktioner, der bruges til at optimere modellen, præsenteres separat mod slutningen af denne blog.

Forberedelse af data

En nem metode til at opnå LR-data er at degradere HR-data. Dette gøres ofte ved at sløre eller tilføje støj. Billeder med lavere rumlig opløsning kan også skaleres ved hjælp af en klassisk upsamplingmetode såsom Bilinear eller Bicubisk interpolation. JPEG- og kvantiseringsartefakter kan også indføres for at nedbryde billedet.

Degradering af et billede med høj opløsning for at opnå en version med lav opløsning af det. (Foto af Jarrad Horne på Unsplash)

En vigtig ting at bemærke er, at det anbefales at gemme HR-billedet i et ukomprimeret (eller tabsløst komprimeret) format. Dette er for at undgå forringelse af HR-billedets kvalitet på grund af tabsgivende komprimering, som kan give suboptimale resultater.

Typer af konvolutioner

Ud over de klassiske 2D-konvolutioner kan flere interessante varianter anvendes i netværk for at opnå bedre resultater. Dilaterede (Atrous) konvolutioner kan give et større effektivt synsfelt og dermed bruge oplysninger, der er adskilt af en stor afstand. Skip connections, Spatial Pyramid Pooling og Dense Blocks motiverer til at kombinere både lavniveau- og højniveaufunktioner for at forbedre ydeevnen.

Netværksdesignstrategier. (Kilde)

Overstående billede nævner en række strategier for netværksdesign. Du kan henvise til dette dokument for at få flere oplysninger. For en grundbog om de forskellige typer af konvolutioner, der almindeligvis anvendes i deep learning, kan du se denne blog.

Gruppe 1 – Pre-Upsampling

I denne metode interpoleres de lavopløste billeder først for at opnå et “groft” billede med høj opløsning. Nu bruges CNN’er til at lære en end-to-end-mapping fra de interpolerede billeder med lav opløsning til billederne med høj opløsning. Intuitionen var, at det kan være nemmere først at upsample billederne med lav opløsning ved hjælp af traditionelle metoder (f.eks. bilinear interpolation) og derefter forfine resultatet end at lære en direkte afbildning fra et lavdimensionelt rum til et højdimensionelt rum.

Et typisk pre-upsampling-netværk. (Kilde)

Du kan se side 5 i dette dokument for nogle modeller, der anvender denne teknik. Fordelen er, at eftersom upsampling håndteres ved hjælp af traditionelle metoder, behøver CNN’et kun at lære at forfine det grove billede, hvilket er enklere. Da vi ikke anvender transponerede konvolutioner her, kan man desuden omgå checkerboard-artefakter. Ulempen er dog, at de foruddefinerede upsamplingmetoder kan forstærke støj og forårsage sløring.

Gruppe 2- Post-Upsampling

I dette tilfælde sendes de lavopløste billeder som sådan til CNN’erne. Upsampling udføres i det sidste lag ved hjælp af et lærbart lag.

Et typisk netværk med post-upsampling. (Kilde)

Førdelen ved denne metode er, at udtrækningen af funktioner foretages i det lavere dimensionelle rum (før upsampling), og dermed reduceres den beregningsmæssige kompleksitet. Desuden kan modellen trænes end-to-end ved at anvende et lærbart upsampling-lag.

Gruppe 3- Progressiv upsampling

I ovenstående gruppe blev der, selv om beregningskompleksiteten blev reduceret, kun anvendt en enkelt upsampling-foldning. Dette gør indlæringsprocessen vanskeligere for store skaleringsfaktorer. For at afhjælpe denne ulempe blev en progressiv upsampling-ramme vedtaget af værker som Laplacian Pyramid SR Network (LapSRN) og Progressive SR (ProSR). Modellerne i dette tilfælde bruger en kaskade af CNN’er til progressivt at rekonstruere billeder med høj opløsning ved mindre skaleringsfaktorer på hvert trin.

Et typisk progressivt upsampling-netværk. (Kilde)

Ved at dekomponere en vanskelig opgave i enklere opgaver reduceres indlæringsvanskelighederne betydeligt, og der kan opnås bedre resultater. Desuden kan læringsstrategier som f.eks. pensumindlæring integreres for yderligere at reducere indlæringsvanskelighederne og forbedre den endelige præstation.

Gruppe 4 – Iterativ op- og nedadgående sampling

En anden populær modelarkitektur er timeglas- (eller U-net-) strukturen. Nogle varianter, såsom Stacked Hourglass-netværket, anvender flere timeglasstrukturer i serie og veksler effektivt mellem processen med op- og nedadgående prøvetagning.

Et typisk iterativt op- og nedadgående prøvetagningsnetværk. (Kilde)

Modellerne under denne ramme kan bedre udvinde de dybe relationer mellem LR-HR-billedparrene og dermed give rekonstruktionsresultater af højere kvalitet.

Loss-funktioner

Loss-funktioner bruges til at måle forskellen mellem det genererede højopløselige billede og det højopløselige billede i grundsandheden. Denne forskel (fejl) bruges derefter til at optimere den overvågede læringsmodel. Der findes flere klasser af tabsfunktioner, hvor hver af dem straffer et andet aspekt af det genererede billede.

Ofte anvendes mere end én tabsfunktion ved at vægte og summere de fejl, der opnås fra hver tabsfunktion for sig. Dette gør det muligt for modellen at fokusere på aspekter, som flere tabsfunktioner bidrager med samtidig.

total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

I dette afsnit vil vi undersøge nogle populære klasser af tabsfunktioner, der anvendes til træning af modellerne.

Pixeltab

Pixelvis tab er den enkleste klasse af tabsfunktioner, hvor hver pixel i det genererede billede sammenlignes direkte med hver pixel i det jordbaserede sandhedsbillede. Der anvendes populære tabsfunktioner som L1- eller L2-fortab eller avancerede varianter som Smooth L1 loss.

Plot af Smooth L1 loss. (Kilde)

PSNR-metrikken (omtalt nedenfor) er stærkt korreleret med den pixelvise forskel, og derfor maksimerer en minimering af pixeltabet direkte PSNR-metrikværdien (hvilket indikerer god ydeevne). Pixeltab tager imidlertid ikke hensyn til billedkvaliteten, og modellen giver ofte perceptuelt utilfredsstillende resultater (ofte mangler højfrekvente detaljer).

Indholdstab

Dette tab evaluerer billedkvaliteten på baggrund af den perceptuelle kvalitet. En interessant måde at gøre dette på er ved at sammenligne de høje karakteristika i det genererede billede og det jordbaserede sandhedsbillede. Vi kan opnå disse high level features ved at lade begge billeder passere gennem et forud trænet billedklassifikationsnetværk (f.eks. et VGG-Net eller et ResNet).

Indholdstab mellem et jordnært sandhedsbillede og et genereret billede. (Kilde)

Overstående ligning beregner indholdstabet mellem et jordnært sandhedsbillede og et genereret billede, givet et forudtrænet netværk (Φ) og et lag (l) i dette forudtrænede netværk, hvor tabet beregnes. Dette tab tilskynder det genererede billede til at være perceptuelt ens med det faktiske billede. Af denne grund er det også kendt som det perceptuelle tab.

Teksturtab

For at gøre det muligt for det genererede billede at have samme stil (tekstur, farve, kontrast osv.) som grundsandhedsbilledet, anvendes teksturtab (eller stilrekonstruktionstab). Et billedes tekstur, som beskrevet af Gatys et. al, defineres som korrelationen mellem forskellige funktionskanaler. Funktionskanalerne fås normalt fra et funktionskort, der er udtrukket ved hjælp af et på forhånd trænet billedklassifikationsnetværk (Φ).

Beregning af Gram-matrixen. (Kilde)

Korrelationen mellem feature maps repræsenteres af Gram-matrixen (G), som er det indre produkt mellem de vektoriserede feature maps i og j på lag l (vist ovenfor). Når Gram-matricen er beregnet for begge billeder, er det ligetil at beregne teksturtabet, som vist nedenfor:

Beregning af teksturtabet. (Kilde)

Gennem brug af dette tab motiveres modellen til at skabe realistiske teksturer og visuelt mere tilfredsstillende resultater.

Total Variation Loss

Total Variation Loss (TV) bruges til at undertrykke støj i de genererede billeder. Det tager summen af de absolutte forskelle mellem nabopixels og måler, hvor meget støj der er i billedet. For et genereret billede beregnes TV-tab som vist nedenfor:

Total Variation Loss bruges på et genereret billede med høj opløsning. (Kilde)

Her iterer i,j,k over henholdsvis højden, bredden og kanalerne.

Adversarial Loss

Generative Adversarial Networks (GAN’er) er i stigende grad blevet anvendt til flere billedbaserede applikationer, herunder Super Resolution. GAN’er består typisk af et system med to neurale netværk – generatoren og diskriminatoren – der duellerer mod hinanden.

Givet et sæt målprøver forsøger generatoren at producere prøver, der kan narre diskriminatoren til at tro, at de er ægte. Discriminatoren forsøger at adskille ægte (mål) prøver fra falske (genererede) prøver. Ved hjælp af denne iterative træningsmetode får vi i sidste ende en Generator, der er rigtig god til at generere prøver, der ligner målprøverne. Følgende billede viser strukturen af en typisk GAN.

GANs in action. (Kilde)

Forbedringer af den grundlæggende GAN-arkitektur blev indført for at forbedre ydeevnen. Park et. al. anvendte f.eks. en diskriminator på funktionsniveau for at indfange mere meningsfulde potentielle attributter i virkelige højopløselige billeder. Du kan tjekke denne blog for at få en mere udførlig oversigt over fremskridt inden for GAN’er.

Typisk har modeller, der er trænet med adversarial loss, bedre perceptuel kvalitet, selv om de måske taber på PSNR sammenlignet med dem, der er trænet på pixeltab. En mindre ulempe er, at træningsprocessen for GAN’er er en smule vanskelig og ustabil. Der arbejdes dog aktivt på metoder til at stabilisere GAN-træning.

Metri

Et stort spørgsmål er, hvordan vi kvantitativt kan evaluere vores models ydeevne. Der anvendes en række teknikker (eller metrikker) til vurdering af billedkvalitet (IQA) til det samme formål. Disse målinger kan groft sagt inddeles i to kategorier – subjektive målinger og objektive målinger.

Subjektive målinger er baseret på den menneskelige observatørs perceptuelle vurdering, mens objektive målinger er baseret på beregningsmodeller, der forsøger at vurdere billedkvaliteten. Subjektive målinger er ofte mere “perceptuelt nøjagtige”, men nogle af disse målinger er uhensigtsmæssige, tidskrævende eller dyre at beregne. Et andet problem er, at disse to kategorier af målinger måske ikke er i overensstemmelse med hinanden. Derfor viser forskere ofte resultater ved hjælp af målinger fra begge kategorier.

I dette afsnit vil vi kort udforske et par af de almindeligt anvendte målinger til at evaluere ydeevnen af vores superopløsningsmodel.

PSNR

Peak Signal-to-Noise Ratio (PSNR) er en almindeligt anvendt objektiv måling til at måle rekonstruktionskvaliteten af en tabsgivende transformation. PSNR er omvendt proportional med logaritmen af den gennemsnitlige kvadrerede fejl (MSE) mellem det jordbaserede sandhedsbillede og det genererede billede.

Beregning af PSNR. (Kilde)

I ovenstående formel er L den maksimale mulige pixelværdi (for 8-bit RGB-billeder er den 255). Da PSNR kun tager hensyn til forskellen mellem pixelværdierne, repræsenterer den ikke så godt den perceptuelle kvalitet, hvilket ikke er overraskende.

SSIM

Strukturel lighed (SSIM) er en subjektiv måleenhed, der anvendes til at måle den strukturelle lighed mellem billeder, baseret på tre relativt uafhængige sammenligninger, nemlig luminans, kontrast og struktur. Abstrakt set kan SSIM-formlen vises som et vægtet produkt af sammenligningen af luminans, kontrast og struktur, der beregnes uafhængigt af hinanden.

SSIM er et vægtet produkt af sammenligninger som beskrevet ovenfor. (Kilde)

I ovenstående formel er alfa, beta og gamma vægtene for henholdsvis luminans-, kontrast- og struktur-sammenligningsfunktionerne. Den almindeligt anvendte repræsentation af SSIM-formlen er som vist nedenfor:

Geodkendt repræsentation af SSIM-formlen. (Kilde)

I ovenstående formel repræsenterer μ(I) middelværdien af et bestemt billede, σ(I) repræsenterer standardafvigelsen af et bestemt billede,σ(I,I') repræsenterer kovariansen mellem to billeder, og C1, C2 er konstanter, der er fastsat for at undgå ustabilitet. For at gøre det kortfattet forklares betydningen af begreberne og den nøjagtige afledning ikke i denne blog, og den interesserede læser kan gå til afsnit 2.3.2 i dette dokument.

På grund af den mulige ujævne fordeling af billedets statistiske egenskaber eller forvrængninger er det mere pålideligt at vurdere billedkvaliteten lokalt end at anvende den globalt. Mean SSIM (MSSIM), som opdeler billedet i flere vinduer og beregner gennemsnittet af den SSIM, der opnås ved hvert vindue, er en sådan metode til at vurdere kvaliteten lokalt.

Da SSIM evaluerer rekonstruktionskvaliteten ud fra det menneskelige visuelle systems perspektiv, opfylder den under alle omstændigheder bedre kravene til den perceptuelle vurdering.

Andre IQA-scorer

I det følgende er der anført nogle andre metoder til vurdering af billedkvalitet uden forklaring. Den interesserede læser kan henvise til dette dokument for at få flere oplysninger.

  • Mean Opinion Score (MOS)
  • Task-based Evaluation
  • Information Fidelity Criterion (IFC)
  • Visual Information Fidelity (VIF)

Conclusion

Denne blogartikel dækkede noget indledende materiale og procedurer for træning af deep learning-modeller til superopløsning. Der findes faktisk mere avancerede teknikker, der er indført af den nyeste forskning, som kan give bedre resultater. Desuden kunne forskning i veje som uovervåget superopløsning, bedre normaliseringsteknikker og bedre repræsentative metrikker i høj grad fremme dette område. Den interesserede læser opfordres til at eksperimentere med deres innovative idéer ved at deltage i udfordringer som PIRM Challenge.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.