Egy bevezetés a szuperfelbontásba a mélytanulás segítségével

A szuperfelbontás az a folyamat, amelynek során egy adott alacsony felbontású (LR) képből nagy felbontású (HR) képet állítunk elő. Egy képnek lehet “alacsonyabb felbontása” a kisebb térbeli felbontás (azaz méret) vagy a degradáció (például elmosódás) eredménye miatt. A HR és LR képeket a következő egyenlet segítségével hozhatjuk összefüggésbe: LR = degradation(HR)

A kis felbontású képet a nagy felbontású változata mellett megtartottuk. (Photo by Jarrad Horne on Unsplash)

Látható, hogy egy degradációs függvény alkalmazásával a HR-képből az LR-képet kapjuk. De vajon meg tudjuk-e fordítva is csinálni? Ideális esetben igen! Ha ismerjük a pontos degradációs függvényt, akkor annak inverzét alkalmazva az LR képre, visszanyerhetjük a HR képet.

De itt van a probléma. Általában nem ismerjük előre a degradációs függvényt. Az inverz degradációs függvény közvetlen becslése rosszul megoldott probléma. Ennek ellenére a Deep Learning technikák hatékonynak bizonyultak a szuperfelbontásra.

Ez a blog elsősorban arra összpontosít, hogy bevezetést nyújtson a szuperfelbontás Deep Learning segítségével történő elvégzéséhez, szupervíziós képzési módszerek alkalmazásával. Néhány fontos veszteségfüggvényt és metrikát is tárgyalunk. A tartalom nagy része ebből az irodalmi áttekintésből származik, amelyre az olvasó hivatkozhat.

Supervised Methods

Amint már említettük, a mélytanulás használható a nagyfelbontású (HR) kép becslésére egy alacsony felbontású (LR) kép esetén. Ha a HR-képet célként (vagy alapigazságként), az LR-képet pedig bemenetként használjuk, akkor ezt úgy kezelhetjük, mint egy felügyelt tanulási problémát.

Ebben a szakaszban a különböző mélytanulási megközelítéseket aszerint csoportosítjuk, ahogyan a konvolúciós rétegek szerveződnek. Mielőtt rátérnénk a csoportokra, bemutatunk egy alapozót az adatok előkészítéséről és a konvolúciós rétegek típusairól. A modell optimalizálásához használt veszteségfüggvények külön kerülnek bemutatásra a blog vége felé.

Az adatok előkészítése

Az LR adatok megszerzésének egyik egyszerű módszere a HR adatok degradálása. Ezt gyakran homályosítással vagy zaj hozzáadásával végzik. A kisebb térbeli felbontású képeket klasszikus upsampling módszerrel, például bilineáris vagy bikubikus interpolációval is méretezhetjük. JPEG- és kvantálási leleteket is be lehet vezetni a kép degradálására.

Egy nagy felbontású kép degradálása, hogy annak egy alacsony felbontású változatát kapjuk. (Photo by Jarrad Horne on Unsplash)

Egy fontos dolog, hogy a HR-képet ajánlott tömörítetlen (vagy veszteségmentes tömörített) formátumban tárolni. Ezzel elkerülhető a HR-kép minőségének romlása a veszteséges tömörítés miatt, amely nem optimális teljesítményt adhat.

A konvolúciók típusai

A klasszikus 2D-s konvolúciókon kívül több érdekes változat is használható a hálózatokban a jobb eredmények érdekében. A tágított (atroszkópikus) konvolúciók nagyobb effektív látómezőt biztosíthatnak, így nagy távolsággal elválasztott információkat használhatnak. A kihagyott kapcsolatok, a Spatial Pyramid Pooling és a Dense Blocks az alacsony és magas szintű jellemzők kombinálását motiválják a teljesítmény növelése érdekében.

Hálózattervezési stratégiák. (Forrás)

A fenti kép számos hálózattervezési stratégiát említ. További információkért tekintse meg ezt a tanulmányt. A mélytanulásban általánosan használt különböző típusú konvolúciókról szóló alapozót ebben a blogban olvashat.

1. csoport – Pre-Upsampling

Ebben a módszerben az alacsony felbontású képeket először interpolálják, hogy egy “durva” nagy felbontású képet kapjanak. Ezután a CNN-eket arra használják, hogy megtanulják az interpolált alacsony felbontású képek és a nagy felbontású képek közötti végponttól végpontig tartó leképezést. Az intuíció az volt, hogy egyszerűbb lehet először az alacsony felbontású képeket hagyományos módszerekkel (például bilineáris interpolációval) feltérképezni, majd az eredményt finomítani, mint megtanulni egy közvetlen leképezést egy alacsony dimenziós térből egy nagy dimenziós térbe.

Egy tipikus feltérképezés előtti hálózat. (Forrás)

Ezzel a technikával készült modellek közül néhányat a tanulmány 5. oldalán talál. Előnye, hogy mivel az upsamplingot a hagyományos módszerek kezelik, a CNN-nek csak azt kell megtanulnia, hogyan finomítsa a durva képet, ami egyszerűbb. Ráadásul, mivel itt nem használunk transzponált konvolúciókat, a sakktábla-artifaktumok is megkerülhetők. Hátránya azonban, hogy az előre meghatározott upsampling módszerek felerősíthetik a zajt és elmosódást okozhatnak.

Group 2- Post-Upsampling

Az alacsony felbontású képeket ebben az esetben a CNN-eknek úgy adjuk át, ahogy vannak. A felfelé mintavételezés az utolsó rétegben történik egy tanulható réteg segítségével.

Egy tipikus post-upsampling hálózat. (Forrás)

A módszer előnye, hogy a jellemzőkinyerés alacsonyabb dimenziós térben történik (az upsampling előtt), és így csökken a számítási komplexitás. Továbbá egy tanulható upsampling réteg használatával a modell végponttól végpontig betanítható.

3. csoport Progresszív upsampling

A fenti csoportban, bár a számítási komplexitás csökkent, csak egyetlen upsampling konvolúciót használtak. Ez nagy méretezési tényezők esetén megnehezíti a tanulási folyamatot. Ennek a hátránynak a kiküszöbölésére progresszív upsampling keretrendszert fogadtak el olyan munkák, mint a Laplacian Pyramid SR Network (LapSRN) és a Progressive SR (ProSR). A modellek ebben az esetben CNN-ek kaszkádját használják a nagy felbontású képek fokozatos rekonstrukciójához minden egyes lépésben kisebb skálázási tényezőkkel.

Egy tipikus progresszív upsampling hálózat. (Forrás)

Egy nehéz feladat egyszerűbb feladatokra bontásával a tanulási nehézség jelentősen csökken, és jobb teljesítmény érhető el. Sőt, a tanulási nehézségek további csökkentése és a végső teljesítmény javítása érdekében olyan tanulási stratégiák is integrálhatók, mint a tantervi tanulás.

4. csoport – Iteratív felfelé és lefelé mintavételezés

Egy másik népszerű modellarchitektúra a homokóra (vagy U-háló) struktúra. Egyes változatok, mint például a Stacked Hourglass hálózat, több homokóra szerkezetet használnak egymás után, gyakorlatilag váltogatva a felfelé és lefelé mintavételezés folyamatát.

Egy tipikus iteratív fel-le mintavételezésű hálózat. (Forrás)

Az e keretrendszer szerinti modellek jobban ki tudják bányászni az LR-HR képpárok közötti mély összefüggéseket, és így jobb minőségű rekonstrukciós eredményeket adnak.

Veszteségfüggvények

A veszteségfüggvényeket a generált nagyfelbontású kép és a nagyfelbontású alapigazságkép közötti különbség mérésére használják. Ezt a különbséget (hibát) ezután a felügyelt tanulási modell optimalizálására használják. A veszteségfüggvényeknek több osztálya létezik, amelyek mindegyike a generált kép különböző szempontjait bünteti.

Gyakran egynél több veszteségfüggvényt használnak az egyes veszteségfüggvényekből kapott hibák súlyozásával és összegzésével. Ez lehetővé teszi, hogy a modell egyszerre több veszteségfüggvény által hozzáadott szempontokra összpontosítson.

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

Ebben a szakaszban a modellek képzéséhez használt veszteségfüggvények néhány népszerű osztályát vizsgáljuk meg.

Pixelveszteség

A pixelenkénti veszteség a veszteségfüggvények legegyszerűbb osztálya, ahol a generált kép minden egyes pixelét közvetlenül összehasonlítjuk az alapigazságkép minden egyes pixelével. Olyan népszerű veszteségfüggvényeket használnak, mint az L1 vagy L2 veszteség, vagy olyan fejlett változatokat, mint a Sima L1 veszteség.

A Sima L1 veszteség ábrája. (Forrás)

A PSNR-mérőszám (amelyet alább tárgyalunk) erősen korrelál a pixelenkénti különbséggel, ezért a pixelveszteség minimalizálása közvetlenül maximalizálja a PSNR-mérőszám értékét (ami jó teljesítményre utal). A pixelveszteség azonban nem veszi figyelembe a képminőséget, és a modell gyakran perceptuálisan nem kielégítő eredményeket ad ki (gyakran hiányoznak a magas frekvenciájú részletek).

Content Loss

Ez a veszteség a képminőséget annak perceptuális minősége alapján értékeli. Ennek érdekes módja a generált kép és az alapigazságkép magas szintű jellemzőinek összehasonlítása. Ezeket a magas szintű jellemzőket úgy kaphatjuk meg, ha mindkét képet egy előre betanított képosztályozó hálózaton (például egy VGG-hálón vagy egy ResNet-en) vezetjük át.

Tartalomveszteség egy alapigazságkép és egy generált kép között. (Forrás)

A fenti egyenlet kiszámítja a tartalmi veszteséget egy alapigazságkép és egy generált kép között, adott egy előre betanított hálózat (Φ) és ennek az előre betanított hálózatnak egy rétege (l), amelyen a veszteséget kiszámítjuk. Ez a veszteség arra ösztönzi a generált képet, hogy perceptuálisan hasonló legyen az alapigazságképhez. Ezért Perceptuális veszteségnek is nevezik.

Textúra veszteség

Azért, hogy a generált képnek ugyanaz legyen a stílusa (textúra, szín, kontraszt stb.), mint az alapigazságképnek, a textúra veszteséget (vagy stílusrekonstrukciós veszteséget) használjuk. A kép textúráját a Gatys et. al. által leírtak szerint a különböző jellemzőcsatornák közötti korrelációként határozzák meg. A jellemzőcsatornákat általában egy előre betanított képosztályozó hálózat (Φ) segítségével kinyert jellemzőtérképből nyerik.

A Gram-mátrix kiszámítása. (Forrás)

A jellemzőtérképek közötti korrelációt a Gram-mátrix (G) reprezentálja, amely a i és j vektorizált jellemzőtérképek belső szorzata a l rétegen (fent látható). Miután a Gram-mátrixot mindkét képre kiszámítottuk, a textúraveszteség kiszámítása egyszerű, az alábbiak szerint:

A textúraveszteség kiszámítása. (Forrás)

Ezzel a veszteséggel a modellt arra motiváljuk, hogy valósághű textúrákat és vizuálisan kielégítőbb eredményeket hozzon létre.

Total Variation Loss

A Total Variation (TV) veszteséget a generált képek zajának elnyomására használjuk. A szomszédos képpontok közötti abszolút különbségek összegét veszi, és azt méri, hogy mennyi zaj van a képben. Egy generált kép esetében a TV-veszteség kiszámítása az alábbiak szerint történik:

A generált nagyfelbontású képen használt teljes variációs veszteség. (Forrás)

Itt a i,j,k a magasság, a szélesség és a csatornák felett iterál.

Adverzális veszteség

A generatív adverzális hálózatokat (GAN) egyre gyakrabban használják számos képalapú alkalmazáshoz, többek között a szuperfelbontáshoz. A GAN-ok jellemzően két neurális hálózat – a generátor és a diszkriminátor – rendszeréből állnak, amelyek egymással párbajoznak.

A célminták egy halmazát megadva a generátor megpróbál olyan mintákat előállítani, amelyekkel a diszkriminátor elhitetheti, hogy valódiak. A diszkriminátor megpróbálja megkülönböztetni a valódi (cél)mintákat a hamis (generált) mintáktól. Ezt az iteratív képzési megközelítést alkalmazva végül egy olyan generátort kapunk, amely nagyon jó a célmintákhoz hasonló minták generálásában. A következő kép egy tipikus GAN felépítését mutatja.

GAN-ok működés közben. (Forrás)

A teljesítmény javítása érdekében az alapvető GAN-architektúrát továbbfejlesztették. Park et. al. például egy feature-szintű diszkriminátort használtak a valódi nagyfelbontású képek értelmesebb potenciális attribútumainak megragadására. Ebben a blogban részletesebb áttekintést kaphat a GAN-ok fejlődéséről.

Az adverzális veszteséggel képzett modellek jellemzően jobb érzékelési minőséggel rendelkeznek, még akkor is, ha a PSNR-ben esetleg veszítenek a pixelveszteséggel képzett modellekhez képest. Egy kisebb hátránya, hogy a GAN-ok képzési folyamata kissé nehézkes és instabil. A GAN-kiképzés stabilizálására szolgáló módszereken azonban aktívan dolgoznak.

Metrikák

Az egyik nagy kérdés az, hogy hogyan értékeljük kvantitatívan a modellünk teljesítményét. Erre számos képminőség-értékelési (IQA) technikát (vagy metrikát) használunk. Ezek a metrikák nagyjából két kategóriába sorolhatók: szubjektív metrikák és objektív metrikák.

A szubjektív metrikák az emberi megfigyelő észlelési értékelésén alapulnak, míg az objektív metrikák olyan számítógépes modelleken alapulnak, amelyek megpróbálják értékelni a képminőséget. A szubjektív metrikák gyakran “perceptuálisan pontosabbak”, azonban e metrikák némelyikének kiszámítása kényelmetlen, időigényes vagy drága. További probléma, hogy a metrikák e két kategóriája nem feltétlenül áll összhangban egymással. Ezért a kutatók gyakran mindkét kategóriából származó mérőszámok segítségével jelenítik meg az eredményeket.

Ebben a szakaszban röviden megvizsgálunk néhány széles körben használt mérőszámot a szuperfelbontási modellünk teljesítményének értékeléséhez.

PSNR

A PSNR (Peak Signal-to-Noise Ratio) egy általánosan használt objektív mérőszám a veszteséges átalakítás rekonstrukciós minőségének mérésére. A PSNR fordítottan arányos az alapigazságkép és a generált kép közötti átlagos négyzetes hiba (MSE) logaritmusával.

A PSNR kiszámítása. (Forrás)

A fenti képletben L a maximálisan lehetséges pixelérték (8 bites RGB-képek esetében ez 255). Nem meglepő módon, mivel a PSNR csak a pixelértékek közötti különbséggel törődik, nem reprezentálja olyan jól az érzékelési minőséget.

SSIM

A szerkezeti hasonlóság (SSIM) a képek közötti szerkezeti hasonlóság mérésére használt szubjektív metrika, amely három viszonylag független összehasonlításon, nevezetesen a fényerősségen, a kontraszton és a szerkezeten alapul. Absztrakt módon az SSIM képlet a fénysűrűség, a kontraszt és a szerkezet egymástól függetlenül számított összehasonlításainak súlyozott szorzataként mutatható ki.

A SSIM az összehasonlítások súlyozott szorzata a fent leírtak szerint. (Forrás)

A fenti képletben alfa, béta és gamma a fénysűrűség, a kontraszt és a struktúra összehasonlító függvények súlyai. Az SSIM-képlet általánosan használt ábrázolása az alábbi:

Az SSIM-képlet általánosan használt ábrázolása. (Forrás)

A fenti képletben μ(I)az adott kép átlagát, σ(I)az adott kép szórását,σ(I,I')a két kép közötti kovarianciát, C1, C2 pedig az instabilitás elkerülése érdekében beállított konstansokat jelöli. A rövidség kedvéért a kifejezések jelentőségét és pontos levezetését ebben a blogban nem magyarázzuk el, az érdeklődő olvasó megnézheti a dolgozat 2.3.2. szakaszát.

A kép statisztikai jellemzőinek vagy torzulásainak esetleges egyenlőtlen eloszlása miatt a képminőség helyi értékelése megbízhatóbb, mint annak globális alkalmazása. Az átlagos SSIM (MSSIM), amely a képet több ablakra osztja, és az egyes ablakokban kapott SSIM átlagát adja, a minőség helyi értékelésének egyik ilyen módszere.

Mindenesetre, mivel az SSIM a rekonstrukció minőségét az emberi látórendszer szemszögéből értékeli, jobban megfelel az észlelési értékelés követelményeinek.

Más IQA pontszámok

Magyarázat nélkül, a képminőség értékelésének néhány más módszere az alábbiakban szerepel. További részletekért az érdeklődő olvasó hivatkozhat erre a dokumentumra.

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

Következtetés

Ez a blogcikk néhány bevezető anyagot és eljárást ismertetett a szuperfelbontás mélytanulási modellek képzéséhez. A legmodernebb kutatások által bevezetett fejlettebb technikák valóban léteznek, amelyek jobb teljesítményt eredményezhetnek. Továbbá az olyan utak kutatása, mint a felügyelet nélküli szuperfelbontás, a jobb normalizációs technikák és a jobb reprezentatív metrikák nagymértékben előbbre vihetik ezt a területet. Az érdeklődő olvasót arra biztatjuk, hogy kísérletezzen innovatív ötleteivel az olyan kihívásokban való részvétellel, mint a PIRM Challenge.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.