Superresoluutio on prosessi, jossa matalaresoluutioisesta (LR) kuvasta saadaan takaisin korkean resoluution (HR) kuva. Kuvan ”matalampi resoluutio” voi johtua pienemmästä spatiaalisesta resoluutiosta (eli koosta) tai heikentymisen tuloksesta (kuten epätarkkuudesta). Voimme liittää HR- ja LR-kuvat toisiinsa seuraavan yhtälön avulla: LR = degradation(HR)
Yksinkertaistamisfunktiota soveltamalla saadaan HR-kuvasta LR-kuva. Mutta voimmeko tehdä käänteisenkin? Ihanteellisessa tapauksessa kyllä! Jos tiedämme tarkan huononemisfunktion, voimme palauttaa HR-kuvan soveltamalla sen käänteisfunktiota LR-kuvaan.
Mutta siinä piilee ongelma. Emme yleensä tiedä hajoamisfunktiota etukäteen. Käänteisen hajoamisfunktion suora estimointi on huonosti asetettu ongelma. Tästä huolimatta Deep Learning -tekniikat ovat osoittautuneet tehokkaiksi superresoluutiossa.
Tässä blogissa keskitytään ensisijaisesti antamaan johdatus superresoluution suorittamiseen Deep Learningin avulla käyttäen valvottuja koulutusmenetelmiä. Lisäksi käsitellään joitakin tärkeitä häviöfunktioita ja metriikoita. Suuri osa sisällöstä on peräisin tästä kirjallisuuskatsauksesta, johon lukija voi viitata.
- Valvotut menetelmät
- Datan valmistelu
- Konvoluutiotyypit
- Ryhmä 1 – Pre-Upsampling
- Ryhmä 2- Post-Upsampling
- Ryhmä 3- Progressiivinen upsampling
- Ryhmä 4 – Iteratiivinen ylös- ja alasnäytteenotto
- Häviöfunktiot
- Pikselihäviö
- Sisältöhäviö
- Tekstuurihäviö
- Tekstuurihäviö
- Total Variation Loss
- Adversaalihäviö
- Metriikka
- PSNR
- SSIM
- Muita IQA-pisteitä
- Conclusion
Valvotut menetelmät
Kuten aiemmin mainittiin, syväoppimista voidaan käyttää korkean resoluution (HR) kuvan arvioimiseen matalan resoluution (LR) kuvan perusteella. Käyttämällä HR-kuvaa kohteena (tai perustotuutena) ja LR-kuvaa syötteenä voimme käsitellä tätä kuin valvottua oppimisongelmaa.
Tässä osassa ryhmitellään erilaisia syväoppimisen lähestymistapoja sen mukaan, miten konvoluutiokerrokset on järjestetty. Ennen kuin siirrymme ryhmiin, esitellään alustus datan valmistelusta ja konvoluutiotyypeistä. Mallin optimointiin käytettävät häviöfunktiot esitellään erikseen tämän blogin loppupuolella.
Datan valmistelu
Yksi helpoksi menetelmäksi LR-datan saamiseksi on HR-datan heikentäminen. Tämä tehdään usein sumentamalla tai lisäämällä kohinaa. Pienemmän spatiaalisen resoluution kuvia voidaan myös skaalata klassisella upsampling-menetelmällä, kuten bilineaarisella tai bikubisella interpoloinnilla. JPEG- ja kvantisointiartefakteja voidaan myös lisätä kuvan huonontamiseksi.
Tärkeää on huomata, että HR-kuva on suositeltavaa tallentaa pakkaamattomassa (tai häviöttömästi pakatussa) muodossa. Näin estetään HR-kuvan laadun heikkeneminen häviöllisen pakkauksen vuoksi, joka voi antaa alioptimaalisen suorituskyvyn.
Konvoluutiotyypit
Klassisten 2D-konvoluutioiden lisäksi verkoissa voidaan käyttää useita mielenkiintoisia muunnelmia parempien tulosten saavuttamiseksi. Laajennetut (atroiset) konvoluutiot voivat tarjota suuremman tehokkaan näkökentän, jolloin voidaan käyttää suuren etäisyyden päässä toisistaan olevia tietoja. Hyppyyhteydet, Spatial Pyramid Pooling ja Dense Blocks motivoivat yhdistämään sekä matalan että korkean tason ominaisuuksia suorituskyvyn parantamiseksi.
Yllä olevassa kuvassa mainitaan useita verkon suunnittelustrategioita. Voit tutustua tähän paperiin saadaksesi lisätietoja. Jos haluat perehdytyksen syväoppimisessa yleisesti käytettyihin erilaisiin konvoluutiotyyppeihin, voit tutustua tähän blogiin.
Ryhmä 1 – Pre-Upsampling
Tässä menetelmässä matalan resoluution kuvat interpoloidaan ensin ”karkean” korkean resoluution kuvan saamiseksi. Nyt CNN:iä käytetään oppimaan päästä päähän -kartoitus interpoloiduista matalan resoluution kuvista korkean resoluution kuviin. Intuitio oli, että voi olla helpompaa ensin upsampleerata matalan resoluution kuvat perinteisillä menetelmillä (kuten bilineaarisella interpoloinnilla) ja sen jälkeen hienosäätää resultanttia kuin opetella suora kartoitus matala-ulotteisesta avaruudesta korkea-ulotteiseen avaruuteen.
Sivulla 5 on joitakin tätä tekniikkaa käyttäviä malleja. Etuna on se, että koska upsampling hoidetaan perinteisillä menetelmillä, CNN:n tarvitsee vain oppia tarkentamaan karkeaa kuvaa, mikä on yksinkertaisempaa. Lisäksi, koska tässä ei käytetä transponoituja konvoluutioita, ruutuartefaktit voidaan ehkä välttää. Huonona puolena on kuitenkin se, että ennalta määritellyt upsampling-menetelmät saattavat vahvistaa kohinaa ja aiheuttaa epätarkkuutta.
Ryhmä 2- Post-Upsampling
Tässä tapauksessa matalaresoluutioiset kuvat välitetään CNN:lle sellaisenaan. Upsampling suoritetaan viimeisessä kerroksessa oppivan kerroksen avulla.
Tämän viitekehyksen mukaiset mallit pystyvät paremmin louhimaan LR-HR-kuvaparien välisiä syviä suhteita ja siten tuottamaan laadukkaampia rekonstruktiotuloksia.
Häviöfunktiot
Häviöfunktioita käytetään mittaamaan generoidun korkearesoluutiokuvan ja maastotodellisuuden korkearesoluutiokuvan välistä eroa. Tätä eroa (virhettä) käytetään sitten valvotun oppimismallin optimointiin. On olemassa useita luokkia häviöfunktioita, joista kukin rankaisee eri näkökohtaa tuotetusta kuvasta.
Usein käytetään useampaa kuin yhtä häviöfunktiota painottamalla ja laskemalla yhteen kustakin häviöfunktiosta erikseen saadut virheet. Näin malli voi keskittyä useiden häviöfunktioiden aiheuttamiin näkökohtiin samanaikaisesti.
total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3
Tässä luvussa tutustutaan joihinkin suosittuihin häviöfunktioiden luokkiin, joita käytetään mallien harjoittelussa.
Pikselihäviö
Pikselihäviö on yksinkertaisin häviöfunktioiden luokka, jossa jokaista generoidun kuvan pikseliä verrataan suoraan jokaiseen maastotodellisuuskuvan pikseliin. Käytetään suosittuja häviöfunktioita, kuten L1- tai L2-häviötä, tai kehittyneitä muunnelmia, kuten Smooth L1 -häviötä.
PSNR-mittari (jota käsitellään jäljempänä) korreloi vahvasti pikselikohtaisen eron kanssa, joten pikselihäviön minimointi maksimoi suoraan PSNR-mittarin arvon (mikä osoittaa hyvää suorituskykyä). Pikselihäviö ei kuitenkaan ota huomioon kuvan laatua, ja malli tuottaa usein havaintoon epätyydyttäviä tuloksia (usein puuttuvat korkeataajuiset yksityiskohdat).
Sisältöhäviö
Tämä häviö arvioi kuvan laatua sen havaintolaadun perusteella. Mielenkiintoinen tapa tehdä tämä on verrata luodun kuvan ja pohjatodellisuuskuvan korkean tason piirteitä. Voimme saada nämä korkean tason piirteet kuljettamalla molemmat kuvat valmiiksi koulutetun kuvanluokitusverkon (kuten VGG-verkon tai ResNet-verkon) läpi.
Yllä oleva yhtälö laskee sisältöhäviön perustotuuskuvan ja generoidun kuvan välillä, kun on annettu esivalmennettu verkko (Φ) ja tämän esivalmennetun verkon kerros (l), jolla häviö lasketaan. Tämä häviö kannustaa generoitua kuvaa olemaan havaintomielessä samankaltainen kuin totuudenmukainen kuva. Tästä syystä se tunnetaan myös nimellä havaintohäviö.
Tekstuurihäviö
Tekstiilihäviö
Tekstuurihäviö
Tekstiilihäviötä (tai tyylin rekonstruktiohäviötä) käytetään, jotta generoidulla kuvalla olisi sama tyyli (rakenne, väri, kontrasti jne.) kuin perustotuuskuvalla. Kuvan tekstuuri, kuten Gatys et. al. kuvaavat, määritellään eri piirrekanavien välisenä korrelaationa. Piirrekanavat saadaan tavallisesti piirrekartasta, joka on poimittu käyttämällä esivalmennettua kuvanluokitusverkkoa (Φ).
Ominaisuuskarttojen välistä korrelaatiota edustaa Gram-matriisi (G), joka on vektoroitujen ominaisuuskarttojen i
ja j
sisäinen tulo kerroksessa l
(kuvassa yllä). Kun Gram-matriisi on laskettu molemmille kuville, tekstuurihäviön laskeminen on suoraviivaista, kuten alla on esitetty:
Tämän häviön avulla mallia motivoidaan luomaan realistisia tekstuureja ja visuaalisesti tyydyttävämpiä tuloksia.
Total Variation Loss
Totaalisen variaation häviötä (Total Variation (TV) loss) käytetään vaimentamaan kohinaa luoduista kuvista. Se ottaa naapuripikselien absoluuttisten erojen summan ja mittaa, kuinka paljon kuvassa on kohinaa. Tuotetulle kuvalle TV-häviö lasketaan alla esitetyllä tavalla:
Tässä i,j,k
iteroi vastaavasti korkeuden, leveyden ja kanavien yli.
Adversaalihäviö
Generatiivisia adversaaliverkkoja (Generative Adversarial Networks, GAN) on käytetty enenevässä määrin useissa kuvaan pohjautuvissa sovelluksissa, mukaan lukien Super Resolution. GAN:t koostuvat tyypillisesti kahden neuroverkon – generaattorin ja diskriminaattorin – muodostamasta järjestelmästä, jotka käyvät kaksintaistelua keskenään.
Antaen joukon kohdenäytteitä, generaattori yrittää tuottaa näytteitä, jotka voivat huijata diskriminaattoria uskomaan, että ne ovat todellisia. Discriminator yrittää erottaa todelliset (kohde)näytteet väärennetyistä (generoiduista) näytteistä. Käyttämällä tätä iteratiivista harjoittelumenetelmää päädymme lopulta generaattoriin, joka on todella hyvä tuottamaan näytteitä, jotka muistuttavat kohdenäytteitä. Seuraavassa kuvassa näkyy tyypillisen GANin rakenne.
GAN-perusarkkitehtuuriin tehtiin parannuksia suorituskyvyn parantamiseksi. Esimerkiksi Park et. al. käyttivät ominaisuustason diskriminaattoria todellisten korkean resoluution kuvien merkityksellisempien potentiaalisten ominaisuuksien tallentamiseksi. Voit tutustua tähän blogiin, jos haluat tarkemman katsauksen GAN:ien edistysaskeleista.
Tyypillisesti adversiohäviöllä koulutetuilla malleilla on parempi havaintolaatu, vaikka ne saattavat hävitä PSNR:ssä pikselihäviöllä koulutettuihin malleihin verrattuna. Yksi pieni haittapuoli on se, että GANien koulutusprosessi on hieman vaikea ja epävakaa. Menetelmiä GAN-koulutuksen vakauttamiseksi työstetään kuitenkin aktiivisesti.
Metriikka
Yksi suuri kysymys on, miten arvioimme kvantitatiivisesti mallimme suorituskykyä. Siihen käytetään useita kuvanlaadun arviointitekniikoita (Image Quality Assessment, IQA) eli metriikoita. Nämä metriikat voidaan jakaa karkeasti kahteen luokkaan – subjektiivisiin metriikoihin ja objektiivisiin metriikoihin.
Subjektiiviset metriikat perustuvat inhimillisen havainnoijan havaintoon, kun taas objektiiviset metriikat perustuvat laskennallisiin malleihin, jotka pyrkivät arvioimaan kuvanlaatua. Subjektiiviset metriikat ovat usein ”havaintotarkkoja”, mutta joidenkin näistä metriikoista laskeminen on hankalaa, aikaa vievää tai kallista. Toinen ongelma on se, että nämä kaksi metriikkaluokkaa eivät välttämättä ole yhdenmukaisia keskenään. Siksi tutkijat esittävät usein tuloksia käyttämällä molempien luokkien metriikoita.
Tässä luvussa tarkastelemme lyhyesti paria laajalti käytettyä metriikkaa superresoluutiomallimme suorituskyvyn arvioimiseksi.
PSNR
Peak Signal-to-Noise Ratio (PSNR) on yleisesti käytetty objektiivinen metriikka, jolla mitataan häviöllisen transformaation rekonstruoinnin laatua. PSNR on kääntäen verrannollinen perustotuuskuvan ja tuotetun kuvan välisen keskimääräisen neliövirheen (Mean Squared Error, MSE) logaritmiin.
Yllä olevassa kaavassa L on suurin mahdollinen pikselin arvo (8-bittisissä RGB-kuvissa se on 255). Ei ole yllättävää, että koska PSNR huolehtii vain pikseliarvojen välisestä erosta, se ei kuvaa havaintolaatua kovin hyvin.
SSIM
Rakenteellinen samankaltaisuus (SSIM) on subjektiivinen metriikka, jota käytetään kuvien rakenteellisen samankaltaisuuden mittaamiseen ja joka perustuu kolmeen suhteellisen riippumattomaan vertailuun, nimittäin luminanssiin (luminanssi), kontrastiin (kontrasti) ja rakenteeseen. Abstraktisti SSIM-kaava voidaan esittää itsenäisesti laskettujen luminanssin, kontrastin ja rakenteen vertailujen painotettuna tulona.
Yllä olevassa kaavassa alfa, beta ja gamma ovat vastaavasti luminanssi-, kontrasti- ja rakennevertailufunktioiden painot. SSIM-kaavan yleisesti käytetty esitys on seuraava:
Yllä olevassa kaavassa μ(I)
edustaa tietyn kuvan keskiarvoa, σ(I)
edustaa tietyn kuvan keskihajontaa,σ(I,I')
edustaa kahden kuvan välistä kovarianssia ja C1, C2
ovat vakioita, jotka on asetettu epävakauden välttämiseksi. Lyhyyden vuoksi termien merkitystä ja tarkkaa johtamista ei selitetä tässä blogissa, ja kiinnostunut lukija voi tutustua tämän työn kohtaan 2.3.2.
Kuvan tilastollisten ominaisuuksien tai vääristymien mahdollisen epätasaisen jakautumisen vuoksi kuvan laadun arviointi paikallisesti on luotettavampaa kuin sen soveltaminen globaalisti. Keskimääräinen SSIM (Mean SSIM, MSSIM), joka jakaa kuvan useisiin ikkunoihin ja keskiarvoistaa kussakin ikkunassa saadun SSIM:n, on yksi tällainen menetelmä laadun arvioimiseksi paikallisesti.
Jokatapauksessa, koska SSIM arvioi rekonstruktiolaatua ihmisen visuaalisen järjestelmän näkökulmasta, se vastaa paremmin havaintopohjaisen arvioinnin vaatimuksia.
Muita IQA-pisteitä
Alhaalla on lueteltu selittämättä joitain muita kuvanlaadun arviointimenetelmiä. Kiinnostunut lukija voi tutustua tähän asiakirjaan saadakseen lisätietoja.
- Mean Opinion Score (MOS)
- Task-based Evaluation
- Information Fidelity Criterion (IFC)
- Visual Information Fidelity (VIF)
Conclusion
Tässä blogiartikkelissa käsiteltiin jonkin verran esittelymateriaalia ja menettelytapoja, joiden avulla voidaan treenata syväluotaavia oppimismalleja superresoluutiossa. On todellakin olemassa kehittyneempiä tekniikoita, jotka on esitelty uusimmassa tutkimuksessa ja jotka voivat tuottaa parempaa suorituskykyä. Lisäksi sellaisten väylien, kuten valvomattoman superresoluution, parempien normalisointitekniikoiden ja parempien edustavien metriikoiden tutkiminen voisi edistää tätä alaa huomattavasti. Kiinnostuneita lukijoita kannustetaan kokeilemaan innovatiivisia ideoitaan osallistumalla PIRM Challenge -haasteen kaltaisiin haasteisiin.