En introduktion till superupplösning med Deep Learning

en detaljerad diskussion om de olika komponenterna, Förlustfunktionerna och mätvärdena som används för superupplösning med Deep Learning.

foto av Jeremy Thomas på Unsplash

introduktion

Super Resolution är processen att återställa en högupplöst (HR) bild från en given låg upplösning (LR) bild. En bild kan ha en ”lägre upplösning” på grund av en mindre rumslig upplösning (dvs. storlek) eller på grund av ett resultat av nedbrytning (såsom oskärpa). Vi kan relatera HR-och LR-bilderna genom följande ekvation: LR = degradation(HR)

en bild med låg upplösning hålls förutom sin högupplösta version. (Foto av Jarrad Horne på Unsplash)

klart, vid tillämpning av en nedbrytningsfunktion får vi LR-bilden från HR-bilden. Men kan vi göra det omvända? I idealfallet, ja! Om vi känner till den exakta nedbrytningsfunktionen kan vi återställa HR-bilden genom att tillämpa den inversa på LR-bilden.

men där ligger problemet. Vi vet vanligtvis inte nedbrytningsfunktionen före handen. Att direkt uppskatta den omvända nedbrytningsfunktionen är ett dåligt problem. Trots detta har djupa inlärningstekniker visat sig vara effektiva för superupplösning.

den här bloggen fokuserar främst på att ge en introduktion till att utföra superupplösning med hjälp av djupt lärande genom att använda övervakade träningsmetoder. Några viktiga förlustfunktioner och mätvärden diskuteras också. Mycket av innehållet härrör från denna litteraturöversikt som läsaren kan hänvisa till.

övervakade metoder

som tidigare nämnts kan djupinlärning användas för att uppskatta den högupplösta (HR) bilden som ges en lågupplöst (LR) bild. Genom att använda HR-bilden som ett mål (eller marksanning) och LR-bilden som en inmatning kan vi behandla detta som ett övervakat inlärningsproblem.

i det här avsnittet grupperar vi olika djupinlärningsmetoder på det sätt som faltningsskikten är organiserade. Innan vi går vidare till grupperna presenteras en primer på databeredning och typer av omvälvningar. Förlustfunktioner som används för att optimera modellen presenteras separat mot slutet av denna blogg.

förbereda Data

en enkel metod för att erhålla LR-data är att försämra HR-data. Detta görs ofta genom att suddas eller lägga till ljud. Bilder med lägre rumslig upplösning kan också skalas med en klassisk samplingsmetod som Bilinär eller Bikubisk interpolering. JPEG-och kvantiseringsartefakter kan också introduceras för att försämra bilden.

försämra en högupplöst bild för att få en lågupplösningsversion av den. (Foto av Jarrad Horne på Unsplash)

en viktig sak att notera är att det rekommenderas att lagra HR-bilden i ett okomprimerat (eller förlustfritt komprimerat) format. Detta för att förhindra försämring av kvaliteten på HR-bilden på grund av förstörande komprimering, vilket kan ge suboptimal prestanda.

typer av omvälvningar

förutom klassiska 2D-omvälvningar kan flera intressanta varianter användas i nätverk för förbättrade resultat. Dilaterade (Atrous) krökningar kan ge ett större effektivt synfält och därmed använda information som separeras med ett stort avstånd. Hoppa över anslutningar, Spatial Pyramid Pooling och täta Block motiverar att kombinera både låg nivå och hög nivå funktioner för att förbättra prestanda.

strategier för nätverksdesign. (Källa)

ovanstående bild nämner ett antal nätverksdesignstrategier. Du kan hänvisa till detta dokument för mer information. För en primer på de olika typerna av omvälvningar som vanligtvis används i djupinlärning kan du hänvisa till den här bloggen.

Grupp 1-Pre-Upsampling

i denna metod interpoleras bilderna med låg upplösning först för att få en ”grov” högupplöst bild. Nu används CNN för att lära sig en end-to-end-kartläggning från de interpolerade bilderna med låg upplösning till högupplösta bilder. Intuitionen var att det kan vara lättare att först samla in lågupplösta bilder med traditionella metoder (som Bilinär interpolering) och sedan förfina den resulterande än att lära sig en direkt kartläggning från ett lågdimensionellt utrymme till ett högdimensionellt utrymme.

en typisk pre-upsampling nätverk. (Källa)

Du kan hänvisa till sidan 5 i detta dokument för vissa modeller som använder denna teknik. Fördelen är att eftersom samplingen hanteras med traditionella metoder behöver CNN bara lära sig att förfina den grova bilden, vilket är enklare. Dessutom, eftersom vi inte använder transponerade krökningar här, kan schackbrädesartefakter kringgås. Nackdelen är dock att de fördefinierade uppsamplingsmetoderna kan förstärka brus och orsaka oskärpa.

Grupp 2-Post-Upsampling

i detta fall skickas bilderna med låg upplösning till CNN som sådana. Sampling utförs i det sista lagret med hjälp av ett lärbart lager.

ett typiskt nätverk efter sampling. (Källa)

fördelen med denna metod är att extraktion av funktioner utförs i det lägre dimensionella utrymmet (före sampling) och därmed reduceras beräkningskomplexiteten. Dessutom, genom att använda ett lärbart samplingslager, kan modellen tränas från början till slut.

Grupp 3-progressiv uppsampling

i ovanstående grupp, även om beräkningskomplexiteten reducerades, användes endast en enda uppsamplingskonvolution. Detta gör inlärningsprocessen svårare för stora skalningsfaktorer. För att ta itu med denna nackdel antogs ett progressivt samplingsramverk av verk som Laplacian Pyramid SR Network (LapSRN) och Progressive SR (ProSR). Modellerna använder i detta fall en kaskad av CNN för att gradvis rekonstruera högupplösta bilder vid mindre skalningsfaktorer vid varje steg.

ett typiskt progressivt samplingsnätverk. (Källa)

genom att sönderdela en svår uppgift i enklare uppgifter reduceras inlärningssvårigheten kraftigt och bättre prestanda kan erhållas. Dessutom kan inlärningsstrategier som läroplaninlärning integreras för att ytterligare minska inlärningssvårigheter och förbättra slutprestanda.

Grupp 4-iterativ upp och ner Sampling

en annan populär modellarkitektur är timglas (eller U-Net) – strukturen. Vissa varianter som det staplade Timglasnätverket använder flera timglasstrukturer i serie, vilket effektivt växlar mellan uppsamplings-och nedsamplingsprocessen.

ett typiskt iterativt upp-och-ner-samplingsnätverk. (Källa)

modellerna under denna ram kan bättre bryta de djupa relationerna mellan LR-HR-bildparen och därmed ge rekonstruktionsresultat av högre kvalitet.

Förlustfunktioner

Förlustfunktioner används för att mäta skillnaden mellan den genererade högupplösta bilden och ground truth högupplösta bilden. Denna skillnad (fel) används sedan för att optimera den övervakade inlärningsmodellen. Flera klasser av förlustfunktioner finns där var och en straffar en annan aspekt av den genererade bilden.

ofta används mer än en förlustfunktion genom att väga och summera de fel som erhållits från varje förlustfunktion individuellt. Detta gör det möjligt för modellen att fokusera på aspekter som bidrar med flera förlustfunktioner samtidigt.

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

i det här avsnittet kommer vi att utforska några populära klasser av förlustfunktioner som används för att träna modellerna.

Pixelförlust

Pixelvis förlust är den enklaste klassen av förlustfunktioner där varje pixel i den genererade bilden jämförs direkt med varje pixel i marksanningsbilden. Populära förlustfunktioner som L1-eller L2-förlusten eller avancerade varianter som Smooth L1-förlusten används.

Plot av jämn L1-förlust. (Källa)

PSNR-mätvärdet (diskuteras nedan) är starkt korrelerat med pixelvisskillnaden och minimerar därmed pixelförlusten direkt PSNR-metriska värdet (vilket indikerar bra prestanda). Pixelförlust tar dock inte hänsyn till bildkvaliteten och modellen ger ofta perceptuellt otillfredsställande resultat (saknar ofta högfrekventa detaljer).

Innehållsförlust

denna förlust utvärderar bildkvaliteten baserat på dess perceptuella kvalitet. Ett intressant sätt att göra detta är genom att jämföra högnivåfunktionerna i den genererade bilden och ground truth-bilden. Vi kan få dessa högnivåfunktioner genom att skicka båda dessa bilder genom ett förutbildat bildklassificeringsnätverk (till exempel ett VGG-Net eller ett ResNet).

innehållsförlust mellan en marksanningsbild och en genererad bild. (Källa)

ekvationen ovan beräknar innehållsförlusten mellan en marksanningsbild och en genererad bild, med tanke på ett förutbildat nätverk (Xhamster) och ett lager (l) i detta förutbildade nätverk där förlusten beräknas. Denna förlust uppmuntrar den genererade bilden att vara perceptuellt lik marksanningsbilden. Av denna anledning är det också känt som Perceptuell förlust.

Texturförlust

för att möjliggöra att den genererade bilden har samma stil (textur, färg, kontrast etc.) som ground truth-bilden används texturförlust (eller stilrekonstruktionsförlust). Texturen av en bild, som beskrivs av Gatys et. al, definieras som korrelationen mellan olika funktionskanaler. Funktionskanalerna erhålls vanligtvis från en funktionskarta extraherad med hjälp av ett förutbildat bildklassificeringsnätverk (Xhamster).

beräkning av Grammatrisen. (Källa)

korrelationen mellan funktionskartorna representeras av Grammatrisen (G), som är den inre produkten mellan de vektoriserade funktionskartorna i och j på lager l(visas ovan). När Grammatrisen har beräknats för båda bilderna är beräkningen av texturförlusten rakt framåt, som visas nedan:

beräkning av Texturförlusten. (Källa)

genom att använda denna förlust är modellen motiverad att skapa realistiska texturer och visuellt mer tillfredsställande resultat.

Total Variationsförlust

den totala Variationsförlusten (TV) används för att undertrycka brus i de genererade bilderna. Det tar summan av de absoluta skillnaderna mellan angränsande pixlar och mäter hur mycket brus som finns i bilden. För en genererad bild beräknas TV-förlusten enligt nedan:

Total Variationsförlust som används på en genererad högupplöst bild. (Källa)

Här, i,j,k itererar över höjden, bredden respektive kanalerna.

kontradiktorisk förlust

generativa kontradiktoriska nätverk (gan) har i allt högre grad använts för flera bildbaserade applikationer inklusive superupplösning. GANs består vanligtvis av ett system med två neurala nätverk — generatorn och diskriminatorn — duellerar varandra.med tanke på en uppsättning målprover försöker generatorn producera prover som kan lura diskriminatorn att tro att de är verkliga. Diskriminatorn försöker lösa verkliga (mål) prover från falska (genererade) prover. Med hjälp av denna iterativa träningsmetod hamnar vi så småningom med en Generator som är riktigt bra på att generera prover som liknar målproverna. Följande bild visar strukturen för en typisk GAN.

GANs i aktion. (Källa)

framsteg till den grundläggande gan-arkitekturen introducerades för förbättrad prestanda. Till exempel, Park et. al. använde en diskriminator på funktionsnivå för att fånga mer meningsfulla potentiella attribut för verkliga högupplösta bilder. Du kan kolla in den här bloggen för en mer detaljerad undersökning om framstegen i GANs.

vanligtvis har modeller som tränats med motsatt förlust bättre perceptuell kvalitet även om de kan förlora på PSNR jämfört med de som tränats på pixelförlust. En mindre nackdel är att träningsprocessen för GANs är lite svår och instabil. Metoder för att stabilisera GAN-träning arbetar dock aktivt med.

Metrics

en stor fråga är hur vi kvantitativt utvärderar prestandan för vår modell. Ett antal Bildkvalitetsbedömningstekniker (Iqa) (eller mätvärden) används för samma. Dessa mätvärden kan i stort sett klassificeras i två kategorier — subjektiva mätvärden och objektiva mätvärden.

subjektiva mätvärden baseras på den mänskliga observatörens perceptuella utvärdering medan objektiva mätvärden baseras på beräkningsmodeller som försöker bedöma bildkvaliteten. Subjektiva mätvärden är ofta mer” perceptuellt korrekta”, men vissa av dessa mätvärden är obekväma, tidskrävande eller dyra att beräkna. En annan fråga är att dessa två kategorier av mätvärden kanske inte överensstämmer med varandra. Därför visar forskare ofta resultat med hjälp av mätvärden från båda kategorierna.

i det här avsnittet kommer vi kort att utforska ett par av de allmänt använda mätvärdena för att utvärdera prestandan för vår superupplösningsmodell.

PSNR

Toppsignal-brusförhållande (PSNR) används vanligtvis objektivt mått för att mäta rekonstruktionskvaliteten för en förlusttransformation. PSNR är omvänt proportionell mot logaritmen för Mean Squared Error (MSE) mellan ground truth-bilden och den genererade bilden.

beräkning av PSNR. (Källa)

i ovanstående formel är L Det maximala möjliga pixelvärdet (för 8-bitars RGB-bilder är det 255). Inte överraskande, eftersom PSNR bara bryr sig om skillnaden mellan pixelvärdena, representerar den inte perceptuell kvalitet så bra.

ssim

strukturell likhet (ssim) är ett subjektivt mått som används för att mäta den strukturella likheten mellan bilder, baserat på tre relativt oberoende jämförelser, nämligen luminans, kontrast och struktur. Abstrakt kan ssim-formeln visas som en viktad produkt av jämförelsen av luminans, kontrast och struktur beräknad oberoende.

SSIM är en viktad produkt av jämförelser som beskrivits ovan. (Källa)

i ovanstående formel är alfa, beta och gamma vikterna för respektive luminans -, kontrast-och strukturjämförelsefunktioner. Den vanliga representationen av ssim-formeln visas nedan:

vanligen använd representation av ssim-formeln. (Källa)

i ovanstående formel μ(I)representerar medelvärdet av en viss bild, σ(I)representerar standardavvikelsen för en viss bild,σ(I,I’)representerar medelvärdet av en viss bild, σ(I) representerar standardavvikelsen för en viss bild, σ(I,I’) representerar kovarians mellan två bilder och C1, C2 är konstanter inställda för att undvika instabilitet. För korthet förklaras betydelsen av termerna och den exakta härledningen inte i den här bloggen och den intresserade läsaren kan checka ut avsnitt 2.3.2 i detta dokument.

på grund av den möjliga ojämna fördelningen av bildstatistiska funktioner eller snedvridningar är det mer tillförlitligt att bedöma bildkvaliteten lokalt än att tillämpa den globalt. Mean SSIM (MSSIM), som delar upp bilden i flera fönster och medelvärden ssim erhålls vid varje fönster, är en sådan metod för att bedöma kvaliteten lokalt.

i vilket fall som helst, eftersom SSIM utvärderar rekonstruktionskvaliteten ur det mänskliga visuella systemets perspektiv, uppfyller det bättre kraven i den perceptuella bedömningen.

andra IQA-poäng

utan förklaring listas några andra metoder för att bedöma bildkvaliteten nedan. Den intresserade läsaren kan hänvisa till detta dokument för mer information.

  • Mean Opinion Score (MOS)
  • uppgiftsbaserad utvärdering
  • information Fidelity Criterion (IFC)
  • Visual Information Fidelity (Vif)

slutsats

denna bloggartikel täckte några inledande material och procedurer för träning av djupa inlärningsmodeller för superupplösning. Det finns faktiskt mer avancerade tekniker som introduceras av toppmodern forskning som kan ge bättre prestanda. Vidare kan forskning på vägar som oövervakad superupplösning, bättre normaliseringstekniker och bättre representativa mätvärden avsevärt främja detta område. Den intresserade läsaren uppmuntras att experimentera med sina innovativa tankar genom att delta i utmaningar som PIRM Challenge.

Dela nu

Lämna ett svar

Din e-postadress kommer inte publiceras.