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)
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
- Az adatok előkészítése
- A konvolúciók típusai
- 1. csoport – Pre-Upsampling
- Group 2- Post-Upsampling
- 3. csoport Progresszív upsampling
- 4. csoport – Iteratív felfelé és lefelé mintavételezés
- Veszteségfüggvények
- Pixelveszteség
- Content Loss
- Textúra veszteség
- Total Variation Loss
- Adverzális veszteség
- Metrikák
- PSNR
- SSIM
- Más IQA pontszámok
- Következtetés
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 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.
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.
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.
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 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.
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 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.
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 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: