O introducere în super-rezoluție folosind Deep Learning

Super-rezoluția este procesul de recuperare a unei imagini de înaltă rezoluție (HR) dintr-o imagine de joasă rezoluție (LR) dată. O imagine poate avea o „rezoluție inferioară” din cauza unei rezoluții spațiale mai mici (adică a dimensiunii) sau din cauza unui rezultat al degradării (cum ar fi neclaritatea). Putem corela imaginile HR și LR prin următoarea ecuație: LR = degradation(HR)

O imagine cu rezoluție scăzută păstrată pe lângă versiunea sa de înaltă rezoluție. (Photo by Jarrad Horne on Unsplash)

Evident, la aplicarea unei funcții de degradare, obținem imaginea LR din imaginea HR. Dar, putem face invers? În cazul ideal, da! Dacă cunoaștem funcția de degradare exactă, aplicând inversul acesteia la imaginea LR, putem recupera imaginea HR.

Dar, aici se află problema. De obicei, nu cunoaștem în prealabil funcția de degradare. Estimarea directă a funcției de degradare inversă este o problemă prost pusă. În ciuda acestui fapt, tehnicile de învățare profundă s-au dovedit a fi eficiente pentru super-rezoluție.

Acest blog se concentrează în primul rând pe oferirea unei introduceri la realizarea super-rezoluției cu ajutorul învățării profunde prin utilizarea metodelor de instruire supravegheată. Sunt discutate, de asemenea, unele funcții de pierdere și metrici importante. O mare parte din conținut derivă din această analiză a literaturii de specialitate la care cititorul se poate referi.

Metode supervizate

După cum s-a menționat anterior, învățarea profundă poate fi utilizată pentru a estima imaginea de înaltă rezoluție (HR) având în vedere o imagine de joasă rezoluție (LR). Prin utilizarea imaginii HR ca țintă (sau adevăr de bază) și a imaginii LR ca intrare, putem trata acest lucru ca pe o problemă de învățare supravegheată.

În această secțiune, grupăm diferite abordări de învățare profundă în funcție de modul în care sunt organizate straturile de convoluție. Înainte de a trece la grupe, este prezentată o introducere privind pregătirea datelor și tipurile de convoluții. Funcțiile de pierdere utilizate pentru a optimiza modelul sunt prezentate separat spre sfârșitul acestui blog.

Pregătirea datelor

O metodă ușoară de a obține date LR este de a degrada datele HR. Acest lucru se face adesea prin estomparea sau adăugarea de zgomot. Imaginile cu o rezoluție spațială mai mică pot fi, de asemenea, scalate printr-o metodă clasică de supraeșantionare, cum ar fi interpolarea biliniară sau bicubică. Pentru a degrada imaginea se pot introduce, de asemenea, artefacte JPEG și de cuantificare.

Degradarea unei imagini de înaltă rezoluție pentru a obține o versiune de joasă rezoluție a acesteia. (Photo by Jarrad Horne on Unsplash)

Un lucru important de reținut este că este recomandat să stocați imaginea HR într-un format necomprimat (sau comprimat fără pierderi). Acest lucru este pentru a preveni degradarea calității imaginii HR din cauza compresiei cu pierderi, care poate oferi performanțe suboptime.

Tipuri de convoluții

În afară de convoluțiile 2D clasice, mai multe variante interesante pot fi utilizate în rețele pentru rezultate îmbunătățite. Convoluțiile dilatate (Atrous) pot oferi un câmp vizual efectiv mai mare, utilizând astfel informații care sunt separate de o distanță mare. Conexiunile Skip, Spatial Pyramid Pooling și Dense Blocks motivează combinarea atât a caracteristicilor de nivel scăzut, cât și a celor de nivel înalt pentru a îmbunătăți performanța.

Strategii de proiectare a rețelelor. (Sursa)

În imaginea de mai sus se menționează o serie de strategii de proiectare a rețelelor. Puteți consulta acest document pentru mai multe informații. Pentru o introducere cu privire la diferitele tipuri de convoluții utilizate în mod obișnuit în învățarea profundă, puteți consulta acest blog.

Grupa 1 – Pre-Upsampling

În această metodă, imaginile de rezoluție joasă sunt mai întâi interpolate pentru a obține o imagine „grosieră” de înaltă rezoluție. Acum, CNN-urile sunt utilizate pentru a învăța o cartografiere cap-coadă de la imaginile interpolate de joasă rezoluție la imaginile de înaltă rezoluție. Intuiția a fost că ar putea fi mai ușor să se supraeșantioneze mai întâi imaginile de joasă rezoluție folosind metode tradiționale (cum ar fi interpolarea biliniară) și apoi să se rafineze rezultatul decât să se învețe o cartografiere directă de la un spațiu cu dimensiuni reduse la un spațiu cu dimensiuni ridicate.

Rețea tipică de supraeșantionare prealabilă. (Sursa)

Vă puteți referi la pagina 5 din acest document pentru câteva modele care utilizează această tehnică. Avantajul este că, din moment ce supraeșantionarea este gestionată prin metode tradiționale, CNN trebuie doar să învețe cum să rafineze imaginea grosieră, ceea ce este mai simplu. În plus, deoarece nu folosim aici convoluții transpuse, artifactele de tip „checkerboard” pot fi evitate. Cu toate acestea, dezavantajul este că metodele de supraeșantionare predefinite pot amplifica zgomotul și pot cauza neclarități.

Grupa 2- Post-Upsampling

În acest caz, imaginile cu rezoluție redusă sunt transmise la CNN-uri ca atare. Supraeșantionarea se realizează în ultimul strat cu ajutorul unui strat care poate fi învățat.

O rețea tipică de post supraeșantionare. (Sursa)

Avantajul acestei metode este că extragerea caracteristicilor se realizează în spațiul dimensional inferior (înainte de supraeșantionare) și, prin urmare, complexitatea computațională este redusă. În plus, prin utilizarea unui strat de supraeșantionare care poate fi învățat, modelul poate fi antrenat de la un capăt la altul.

Grupul 3- Supraeșantionare progresivă

În grupul de mai sus, chiar dacă complexitatea computațională a fost redusă, a fost utilizată doar o singură convoluție de supraeșantionare. Acest lucru îngreunează procesul de învățare pentru factori de scalare mari. Pentru a aborda acest dezavantaj, un cadru de supraeșantionare progresivă a fost adoptat de lucrări precum Laplacian Pyramid SR Network (LapSRN) și Progressive SR (ProSR). În acest caz, modelele utilizează o cascadă de CNN-uri pentru a reconstrui progresiv imagini de înaltă rezoluție la factori de scalare mai mici la fiecare pas.

O rețea tipică de supraeșantionare progresivă. (Sursa)

Prin descompunerea unei sarcini dificile în sarcini mai simple, dificultatea de învățare este mult redusă și se pot obține performanțe mai bune. Mai mult, strategiile de învățare, cum ar fi învățarea prin curriculum, pot fi integrate pentru a reduce și mai mult dificultatea de învățare și pentru a îmbunătăți performanța finală.

Grupa 4 – Eșantionare iterativă ascendentă și descendentă

O altă arhitectură model populară este structura de clepsidră (sau U-Net). Unele variante, cum ar fi rețeaua Stacked Hourglass (Clepsidră stivuită) utilizează mai multe structuri de tip clepsidră în serie, alternând efectiv între procesul de eșantionare ascendentă și cel de eșantionare descendentă.

O rețea tipică de eșantionare iterativă ascendentă și descendentă. (Sursa)

Modelurile din acest cadru pot extrage mai bine relațiile profunde dintre perechile de imagini LR-HR și, astfel, pot oferi rezultate de reconstrucție de mai bună calitate.

Funcții de pierdere

Funcțiile de pierdere sunt utilizate pentru a măsura diferența dintre imaginea de înaltă rezoluție generată și imaginea de înaltă rezoluție de referință. Această diferență (eroare) este apoi utilizată pentru a optimiza modelul de învățare supravegheată. Există mai multe clase de funcții de pierdere în care fiecare dintre acestea penalizează un aspect diferit al imaginii generate.

De multe ori, se utilizează mai multe funcții de pierdere prin ponderarea și însumarea erorilor obținute din fiecare funcție de pierdere în parte. Acest lucru permite modelului să se concentreze asupra aspectelor la care contribuie simultan mai multe funcții de pierdere.

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

În această secțiune vom explora câteva clase populare de funcții de pierdere utilizate pentru antrenarea modelelor.

Pixel Loss

Pixel-wise loss este cea mai simplă clasă de funcții de pierdere în care fiecare pixel din imaginea generată este comparat direct cu fiecare pixel din imaginea ground-truth. Se utilizează funcții de pierdere populare, cum ar fi pierderea L1 sau L2, sau variante avansate, cum ar fi pierderea Smooth L1.

Prat of Smooth L1 Loss. (Sursa)

Metrica PSNR (discutată mai jos) este puternic corelată cu diferența în funcție de pixel și, prin urmare, minimizarea pierderii de pixeli maximizează în mod direct valoarea metrică PSNR (indicând o performanță bună). Cu toate acestea, pierderea de pixeli nu ia în considerare calitatea imaginii, iar modelul produce adesea rezultate nesatisfăcătoare din punct de vedere perceptual (adesea lipsite de detalii de înaltă frecvență).

Pierderea de conținut

Această pierdere evaluează calitatea imaginii pe baza calității sale perceptuale. O modalitate interesantă de a face acest lucru este compararea caracteristicilor de nivel înalt ale imaginii generate și ale imaginii de referință. Putem obține aceste caracteristici de nivel înalt prin trecerea ambelor imagini printr-o rețea de clasificare a imaginilor pre-antrenată (cum ar fi VGG-Net sau ResNet).

Pierderea de conținut între o imagine de bază și o imagine generată. (Sursa)

Ecuația de mai sus calculează pierderea de conținut între o imagine de fond și o imagine generată, având în vedere o rețea preînvățată (Φ) și un strat (l) al acestei rețele preînvățate la care se calculează pierderea. Această pierdere încurajează imaginea generată să fie similară din punct de vedere perceptual cu imaginea de referință. Din acest motiv, este cunoscută și sub numele de pierdere perceptuală.

Pierderea de textură

Pentru a permite ca imaginea generată să aibă același stil (textură, culoare, contrast etc.) ca și imaginea de bază, se utilizează pierderea de textură (sau pierderea de reconstrucție a stilului). Textura unei imagini, așa cum este descrisă de Gatys et al., este definită ca fiind corelația dintre diferite canale de caracteristici. Canalele de caracteristici sunt obținute, de obicei, dintr-o hartă de caracteristici extrasă cu ajutorul unei rețele de clasificare a imaginilor pre-antrenate (Φ).

Computing the Gram Matrix. (Sursa)

Corelația dintre hărțile caracteristicilor este reprezentată de matricea Gram (G), care este produsul intern dintre hărțile caracteristicilor vectorizate i și j de pe stratul l (prezentat mai sus). Odată ce matricea Gram este calculată pentru ambele imagini, calcularea pierderii de textură este simplă, după cum se arată mai jos:

Calcularea pierderii de textură. (Sursa)

Prin utilizarea acestei pierderi, modelul este motivat să creeze texturi realiste și rezultate mai satisfăcătoare din punct de vedere vizual.

Pierderea de variație totală

Pierderea de variație totală (TV) este utilizată pentru a suprima zgomotul din imaginile generate. Aceasta ia suma diferențelor absolute dintre pixelii vecini și măsoară cât de mult zgomot există în imagine. Pentru o imagine generată, pierderea TV se calculează după cum se arată mai jos:

Pierderea de variație totală utilizată pe o imagine generată de înaltă rezoluție. (Sursa)

În acest caz, i,j,kse iteră pe înălțime, lățime și, respectiv, canale.

Pierderea adversarială

Rețelele adversariale generative (GAN) au fost utilizate din ce în ce mai mult pentru mai multe aplicații bazate pe imagini, inclusiv pentru super rezoluție. GAN-urile constau, de obicei, dintr-un sistem format din două rețele neuronale – Generatorul și Discriminatorul – care se duelează între ele.

După un set de eșantioane țintă, Generatorul încearcă să producă eșantioane care pot păcăli Discriminatorul să creadă că sunt reale. Discriminatorul încearcă să deosebească eșantioanele reale (țintă) de eșantioanele false (generate). Utilizând această abordare de instruire iterativă, ajungem în cele din urmă la un Generator care este foarte bun la generarea de eșantioane similare cu eșantioanele țintă. Următoarea imagine prezintă structura unui GAN tipic.

GAN-uri în acțiune. (Sursa)

Avansări ale arhitecturii GAN de bază au fost introduse pentru îmbunătățirea performanțelor. De exemplu, Park et. al. au folosit un discriminator la nivel de caracteristici pentru a capta atribute potențiale mai semnificative ale imaginilor reale de înaltă rezoluție. Puteți consulta acest blog pentru un studiu mai elaborat despre progresele din GAN.

În mod normal, modelele antrenate cu pierderi adversariale au o calitate perceptuală mai bună, chiar dacă ar putea pierde la PSNR în comparație cu cele antrenate cu pierderi de pixeli. Un dezavantaj minor este că, procesul de formare a GAN-urilor este puțin dificil și instabil. Cu toate acestea, se lucrează în mod activ la metode de stabilizare a instruirii GAN.

Metrici

O mare întrebare este cum evaluăm cantitativ performanța modelului nostru. O serie de tehnici (sau metrici) de evaluare a calității imaginii (Image Quality Assessment (IQA)) sunt utilizate în acest scop. Aceste metrici pot fi clasificate în linii mari în două categorii – metrici subiective și metrici obiective.

Metricile subiective se bazează pe evaluarea perceptivă a observatorului uman, în timp ce metricile obiective se bazează pe modele computaționale care încearcă să evalueze calitatea imaginii. Măsurătorile subiective sunt adesea mai „exacte din punct de vedere perceptiv”, însă unele dintre aceste măsurători sunt incomode, consumatoare de timp sau costisitoare de calculat. O altă problemă este că este posibil ca aceste două categorii de măsurători să nu fie în concordanță una cu cealaltă. Prin urmare, cercetătorii afișează adesea rezultatele folosind metrici din ambele categorii.

În această secțiune, vom explora pe scurt câteva dintre metricile utilizate pe scară largă pentru a evalua performanța modelului nostru de super rezoluție.

PSNR

Peak Signal-to-Noise Ratio (PSNR) este o metrică obiectivă utilizată în mod obișnuit pentru a măsura calitatea de reconstrucție a unei transformări cu pierderi. PSNR este invers proporțional cu logaritmul erorii pătratice medii (MSE) între imaginea de bază și imaginea generată.

Calcularea PSNR. (Sursa)

În formula de mai sus, L este valoarea maximă posibilă a pixelului (pentru imaginile RGB pe 8 biți, aceasta este 255). Deloc surprinzător, deoarece PSNR se preocupă doar de diferența dintre valorile pixelilor, nu reprezintă atât de bine calitatea perceptuală.

SSIM

Similitudinea structurală (SSIM) este o metrică subiectivă utilizată pentru măsurarea similitudinii structurale dintre imagini, bazată pe trei comparații relativ independente, și anume luminanța, contrastul și structura. În mod abstract, formula SSIM poate fi prezentată ca un produs ponderat al comparației luminanței, contrastului și structurii calculate în mod independent.

SSIM este un produs ponderat al comparațiilor, așa cum este descris mai sus. (Sursa)

În formula de mai sus, alfa, beta și gamma sunt ponderile funcțiilor de comparare a luminanței, contrastului și, respectiv, a structurii. Reprezentarea utilizată în mod obișnuit a formulei SSIM este prezentată mai jos:

Reprezentare utilizată în mod obișnuit a formulei SSIM. (Sursa)

În formula de mai sus, μ(I)reprezintă media unei anumite imagini, σ(I)reprezintă abaterea standard a unei anumite imagini,σ(I,I')reprezintă covarianța dintre două imagini, iar C1, C2sunt constantele stabilite pentru evitarea instabilității. Din motive de concizie, semnificația termenilor și derivarea exactă nu sunt explicate în acest blog, iar cititorul interesat poate consulta secțiunea 2.3.2 din această lucrare.

Datorită posibilei distribuții neuniforme a caracteristicilor statistice ale imaginii sau a distorsiunilor, evaluarea calității imaginii la nivel local este mai fiabilă decât aplicarea ei la nivel global. Mean SSIM (MSSIM), care împarte imaginea în mai multe ferestre și calculează media SSIM obținută la fiecare fereastră, este o astfel de metodă de evaluare a calității la nivel local.

În orice caz, deoarece SSIM evaluează calitatea reconstrucției din perspectiva sistemului vizual uman, aceasta îndeplinește mai bine cerințele evaluării perceptuale.

Alte scoruri IQA

Fără explicații, câteva alte metode de evaluare a calității imaginii sunt enumerate mai jos. Cititorul interesat se poate referi la această lucrare pentru mai multe detalii.

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

Concluzie

Acest articol de blog a acoperit câteva materiale introductive și proceduri pentru antrenarea modelelor de învățare profundă pentru Super Resolution. Există, într-adevăr, tehnici mai avansate introduse de cercetările de ultimă oră care pot produce performanțe mai bune. În plus, cercetarea pe căi precum super-rezolvarea nesupravegheată, tehnici de normalizare mai bune și metrici mai reprezentative ar putea avansa foarte mult acest domeniu. Cititorul interesat este încurajat să experimenteze cu ideile sale inovatoare prin participarea la provocări precum PIRM Challenge.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.