Bună, sunt Hiroto Honda, inginer de cercetare și dezvoltare la DeNA Co., Ltd, Japonia. În acest articol, aș dori să vă prezint progresul recent privind super-rezoluția pentru o singură imagine (SISR).

SISR își propune să restaureze o imagine de înaltă rezoluție cu detalii bogate dintr-o singură imagine de joasă rezoluție. În ultimii ani, SISR devine mai puternic și mai precis datorită progresului rețelelor neuronale convoluționale (CNN). Aș dori să arăt cum puteți începe instruirea SISR, progresul arhitecturilor de rețea SISR de la SRCNN la EDSR și compararea preciziei și a duratei de rulare între metode.

SISR este ușor de încercat

Pentru a antrena o rețea SISR, mai întâi trebuie să pregătiți un set de date care conține perechi de imagini de înaltă rezoluție (HR) și de joasă rezoluție (LR). Adnotările manuale costisitoare nu sunt necesare - trebuie doar să adunați imagini HR și să aplicați filtrul de eșantionare pe ele pentru a obține imagini LR. CNN încearcă să învețe funcția inversă a filtrului de eșantionare pentru a restabili detaliile pierdute ale imaginilor HR.

Iată cum puteți începe antrenamentul unei rețele SISR profunde (vezi Fig. 1).

  1. Adunați imagini de HR.
  2. Decupați patch-uri din imaginile HR. (de exemplu, 96 × 96)
  3. Eșantionați-le în jos pentru a genera imagini de intrare LR = g(HR).
  4. Puneți-le într-un lot {LR}, {HR}.
  5. Antrenați rețeaua f cu funcția de pierdere în funcție de pixeli : de ex. MSE({HR}, f({LR})).
  6. …asta este!

Pentru evaluare, se utilizează raportul semnal-zgomot de vârf (PSNR, în decibeli) și indicele de similaritate structurală (SSIM). În acest articol folosim PSNR pentru compararea dintre metode.

SRCNN, VDSR și ESPCN

Prima metodă SISR bazată pe CNN numită SRCNN a fost introdusă de Dong și colab. în ECCV 2015 [1]. SRCNN este format din doar trei straturi de convoluție, dar depășește abordările anterioare non-profunde. Very Deep Super Resolution (VDSR) [2] folosește o structură similară cu SRCNN, dar merge mai adânc pentru a obține o precizie mai mare. Atât SRCNN, cât și VDSR aplică supraeșantionarea bicubică în faza de intrare și se ocupă de hărțile caracteristicilor la aceeași scară cu cea de ieșire.

Shi şi colab. a propus Efficient Sub-Pixel Convolutional Neural Network (ESPCN) pentru a face SRCNN mai eficient [3]. ESPCN se ocupă de hărțile caracteristicilor la rezoluție LR și eșantionarea este efectuată ulterior, ceea ce face ca cantitatea totală de calcul mult mai mică decât SRCNN.

Pentru supraeșantionare, se exploatează convoluția sub-pixel (combinația unei operații de convoluție și a unei operații de „aranjare a pixelilor”). Pixel shuffle rearanjează elementele tensorului H × L × C · r² pentru a forma tensorul rH × rW × C (Fig. 3). Operația elimină filtrul bicubic realizat manual din conductă, cu o creștere mică a calculului.

SRResNet

Ledig și colab., au introdus o linie de bază mai puternică numită SRGAN la CVPR 2017 [4] . Rețeaua se bazează în mare parte pe arhitectura ResNet și introduce serii de resblocări (Fig. 3). Spre deosebire de ResNet care eșantionează în jos intrarea până la scară 1/32, resblocările SRGAN funcționează pe o singură scară (scara de intrare LR). Blocurile „modifică” caracteristicile LR de intrare treptat pe măsură ce se propagă mai adânc pentru a se pregăti pentru supraeșantionare. Pentru supraeșantionare, operatorul de amestecare a pixelilor este utilizat pentru a evita artefactele tablei de șah [3].

În lucrare sunt propuse trei tipuri de funcții de pierdere. 1) Pierdere MSE 2) Pierdere VGG (conținut) 3) Pierdere contradictorie. Rețeaua se numește „SRResNet” atunci când este utilizată doar pierderea MSE.

SRResNet angajează:

  • 16 blocuri reziduale cu 64 de canale
  • Conexiune globală de ignorare
  • pierdere L2 în funcție de pixeli
  • Suprasantionare Pixel Shuffle

Rețele profunde reziduale îmbunătățite (EDSR)

În 2017 B. Lim et al. a dezvoltat o rețea mai avansată numită EDSR [5] și a câștigat NTIRE 2017 Super-Resolution Challenge [6]. Au pornit de la SRResNet și l-au optimizat pentru a obține o precizie suplimentară.

Rețeaua EDSR utilizează:

  • 32 de blocuri reziduale cu 256 de canale
  • pierdere L1 în funcție de pixeli în loc de L2
  • fără straturi de normalizare a loturilor pentru a menține flexibilitatea intervalului (Fig. 4)
  • factor de scalare de 0,1 pentru adăugarea reziduală pentru a stabiliza antrenamentul

Fig. 5 arată compararea PSNR și apariția dintre metodele SISR. Vedeți cum se modifică aparițiile de la 22,66 dB (Bicubic) la 23,89 dB (EDSR). Diferența de 1 dB contează foarte mult!

Progrese pe SISR — precizie și timp de rulare

Să rezumam progresul metodelor SISR. Fig. 6 arată compararea valorilor câștigului PSNR (din [5]) pe supraeșantionarea bicubică evaluată pe setul de date Set5. În comparație cu SRCNN, SRResNet și EDSR ating un PSNR mai mare cu 1,57 dB și, respectiv, 2,14 dB. Între timp, pe măsură ce rețeaua devine mai adâncă și mai largă (mai multe canale), calculul devine mai scump. Barele prezentate în Fig. 5 reprezintă numărul de mega-multiplicare per un pixel de intrare pentru restaurarea x2. EDSR necesită de 30 de ori mai multă multiplicare decât SRResNet, în principal datorită numărului mai mare (de 4 ori) de canale de resblocare.

Vedem un compromis între performanță și viteză. ESPCN arată cel mai eficient, în timp ce EDSR cel mai precis, dar mai scump. Depinde de aplicația dvs. ce metodă să alegeți.

Referințe

[1] C. Dong, C. C. Loy, K. He și X. Tang. Învățarea unei rețele convoluționale profunde pentru super-rezoluție a imaginii. În ECCV, 2014.

[2] J. Kim, J. K. Lee și K. M. Lee. Superrezoluție precisă a imaginii folosind rețele convoluționale foarte profunde. În CVPR, 2016.

[3] W. Shi, J. Caballero, F. Huszar, J. Totz, A. P. Aitken, R. Bishop, D. Rueckert și Z. Wang. Super-rezoluție video și imagine unică în timp real, folosind o rețea neuronală convoluțională eficientă sub-pixel. În CVPR, 2016.

[4] C. Ledig, L. Theis, F. Huszar, J. Caballero, A. Aitken, A. Te- ´ jani, J. Totz, Z. Wang și W. Shi. Super-rezoluție foto-realistă a unei singure imagini folosind o rețea adversa generativă. În CVPR, 2017.

[5] B. Lim, S. Son, H. Kim, S. Nah și K. M. Lee. Rețele reziduale profunde îmbunătățite pentru o singură imagine super-rezoluție. În CVPRW, 2017.
implementare torch: https://github.com/LimBee/NTIRE2017
implementare pytorch: https://github.com/thstkdgus35/EDSR-PyTorch

[6] R. Timofte, E. Agustsson, L. Van Gool, M.-H. Yang, L. Zhang, și colab. Ntire 2017 challenge on single image superresolution: Metode și rezultate. În Atelierele CVPR 2017.