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)
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.
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.
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.
Î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.
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.
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.
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ă.
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.
Î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.
Tensiunea arterială 102/50 – ce înseamnă?Tensiune arterială 102/50 pe graficul de tensiune arterialăVerificați o altă valoare?Tensiune arterială 102/50 pe scara…