AI használata képek túltömörítésére

AI használata képek túltömörítésére
Az olyan adatvezérelt algoritmusok, mint a neurális hálózatok, meghódították a világot. Fejlesztésük több okra vezethető vissza, ideértve az olcsó és nagy teljesítményű berendezéseket és a hatalmas adatmennyiséget. A neurális hálózatok jelenleg minden olyan "kognitív" feladattal kapcsolatos élen járnak, mint a képfelismerés, a természetes nyelv megértése stb. De nem szabad az ilyen feladatokra korlátozódniuk. Ez a cikk arról szól, hogyan lehet tömöríteni a képeket neurális hálózatok használatával, maradék tanulással. A cikkben bemutatott megközelítés gyorsabb és jobb, mint a szabványos kodekek. Sémák, egyenletek és természetesen egy táblázat a vágás alatti tesztekkel.

Ez a cikk a ezt munka. Feltételezhető, hogy ismeri a neurális hálózatokat és azok fogalmait. konvolúció и veszteségfüggvény.

Mi a képtömörítés és hogyan működik?

A képtömörítés az a folyamat, amikor egy képet úgy alakítanak át, hogy az kevesebb helyet foglaljon el. A képek egyszerű tárolása sok helyet foglalna el, ezért vannak olyan kodekek, mint például a JPEG és a PNG, amelyek célja az eredeti kép méretének csökkentése.

Mint tudják, kétféle képtömörítés létezik: nincs veszteség и veszteségekkel. Ahogy a nevek is sugallják, a veszteségmentes tömörítés megőrizheti az eredeti képadatokat, míg a veszteséges tömörítésnél bizonyos adatok elvesznek a tömörítés során. például a JPG veszteséges algoritmusok [kb. ford. - alapvetően ne feledkezzünk meg a veszteségmentes JPEG-ről sem], a PNG pedig egy veszteségmentes algoritmus.

AI használata képek túltömörítésére
Veszteségmentes és veszteséges tömörítés összehasonlítása

Figyelje meg, hogy a jobb oldali képen sok blokkos műtárgy található. Ez elveszett információ. A hasonló színű szomszédos pixeleket a rendszer egyetlen területté tömöríti, hogy helyet takarítson meg, de a tényleges pixelekre vonatkozó információk elvesznek. Természetesen a JPEG, PNG stb. kodekekben használt algoritmusok sokkal összetettebbek, de ez egy jó intuitív példa a veszteséges tömörítésre. A veszteségmentes tömörítés jó, de a veszteségmentesen tömörített fájlok sok lemezterületet foglalnak el. Vannak jobb módszerek a képek tömörítésére anélkül, hogy sok információ veszítene, de ezek meglehetősen lassúak, és sokan iteratív megközelítést alkalmaznak. Ez azt jelenti, hogy nem futtathatók párhuzamosan több CPU vagy GPU magon. Ez a korlátozás a mindennapi használat során teljesen kivitelezhetetlenné teszi őket.

Konvolúciós neurális hálózat bemenet

Ha valamit ki kell számolni, és a számítások hozzávetőlegesek lehetnek, add hozzá neurális hálózat. A szerzők egy meglehetősen szabványos konvolúciós neurális hálózatot használtak a képtömörítés javítására. A bemutatott módszer nemcsak a legjobb megoldásokkal egyenrangú (ha nem jobban), hanem párhuzamos számítástechnikát is alkalmazhat, ami drámai sebességnövekedéshez vezet. Ennek az az oka, hogy a konvolúciós neurális hálózatok (CNN-ek) nagyon jók a térbeli információk kinyerésére a képekből, amelyeket aztán kompaktabb formában jelenítenek meg (például a képnek csak a "fontos" bitjei maradnak meg). A szerzők ezt a CNN-képességet akarták használni a képek jobb megjelenítésére.

építészet

A szerzők kettős hálózatot javasoltak. Az első hálózat egy képet vesz bemenetként, és egy kompakt reprezentációt (ComCNN) generál. A hálózat kimenetét ezután egy szabványos kodek (például JPEG) dolgozza fel. A kodek általi feldolgozás után a kép egy második hálózathoz kerül, amely "javítja" a kodek képét, megpróbálva visszaadni az eredeti képet. A szerzők ezt a hálózatot Reconstructive CNN-nek (RecCNN) nevezték el. A GAN-okhoz hasonlóan mindkét hálózat iteratív képzésben részesül.

AI használata képek túltömörítésére
A ComCNN Compact reprezentációt átadja a szabványos kodeknek

AI használata képek túltömörítésére
RecCNN. A ComCNN kimenete fel van méretezve, és a RecCNN-hez kerül, amely megpróbálja megtanulni a maradékot

A kodekkimenetet felnagyítják, majd átadják a RecCNN-nek. A RecCNN megpróbálja a képet a lehető legközelebb megjeleníteni az eredetihez.

AI használata képek túltömörítésére
Végpontok közötti képtömörítési keretrendszer. A Co(.) egy képtömörítési algoritmus. A szerzők JPEG-et, JPEG2000-et és BPG-t használtak

Mi a maradék?

A maradékot utófeldolgozási lépésnek tekinthetjük a kodek által dekódolt kép "javítására". A világról sok „információval” rendelkező neurális hálózat kognitív döntéseket hozhat a javítandó dolgokról. Ez az elképzelés azon alapul maradék tanulás, olvassa el a részleteket, amelyekről lehet itt.

Veszteségfüggvények

A két veszteségfüggvényt azért használjuk, mert két neurális hálózatunk van. Ezek közül az első, a ComCNN, L1 jelölésű, és a következőképpen definiálható:

AI használata képek túltömörítésére
Veszteségfüggvény a ComCNN számára

Magyarázat

Ez az egyenlet bonyolultnak tűnhet, de valójában ez a szabvány (négyzetes hiba) MSE. ||² a bezárt vektor normáját jelenti.

AI használata képek túltömörítésére
1.1 egyenlet

A Cr a ComCNN kimenetét jelöli. θ a ComCNN paraméterek tanulhatóságát jelöli, XK a bemeneti kép

AI használata képek túltömörítésére
1.2 egyenlet

Re() a RecCNN rövidítése. Ez az egyenlet egyszerűen átadja az 1.1 egyenlet jelentését a RecCNN számára. A θ a RecCNN tanítható paramétereit jelöli (a tetején lévő kalap azt jelenti, hogy a paraméterek rögzítettek).

Intuitív definíció

Az 1.0 egyenlet hatására a ComCNN megváltoztatja a súlyozását, hogy a RecCNN-nel újra létrehozva a végső kép a lehető leghasonlóbb legyen a bemeneti képhez. A második RecCNN veszteségfüggvény meghatározása a következő:

AI használata képek túltömörítésére
2.0 egyenlet

Magyarázat

A függvény ismét összetettnek tűnhet, de ez többnyire egy szabványos neurális hálózati veszteségi függvény (MSE).

AI használata képek túltömörítésére
2.1 egyenlet

Co() kodek kimenetet jelent, x kalappal a tetején ComCNN kimenetet jelent. θ2 a RecCNN tanítható paraméterei, res() csak a RecCNN maradék kimenete. Érdemes megjegyezni, hogy a RecCNN-t a Co() és a bemeneti kép közötti különbségre tanítják, de a bemeneti képre nem.

Intuitív definíció

A 2.0 egyenlet arra készteti a RecCNN-t, hogy módosítsa a súlyait, hogy a kimenet a lehető leghasonlóbb legyen a bemeneti képhez.

Képzési rendszer

A modelleket iteratív módon képezik, pl GAN. Az első modell súlyait rögzítik, míg a második modell súlyait frissítik, majd a második modell súlyait rögzítik az első modell edzése közben.

Tesztek

A szerzők összehasonlították módszerüket a meglévő módszerekkel, beleértve az egyszerű kodeket. Módszerük jobban teljesít, mint mások, miközben nagy sebességet tartanak fenn a megfelelő hardveren. Ezenkívül a szerzők a két hálózat közül csak az egyiket próbálták használni, és teljesítménycsökkenést észleltek.

AI használata képek túltömörítésére
Strukturális hasonlósági index összehasonlítása (SSIM). A magas értékek az eredetivel való jobb hasonlóságot jelzik. A félkövér betűtípus a szerzők munkájának eredményét jelöli

Következtetés

Megvizsgáltunk egy új módot a mély tanulás képtömörítésre való alkalmazására, és beszéltünk a neurális hálózatok használatának lehetőségéről az „általános” feladatokon túli feladatokban, mint például a képosztályozás és a nyelvi feldolgozás. Ez a módszer nemcsak nem alacsonyabb a modern követelményeknél, hanem lehetővé teszi a képek sokkal gyorsabb feldolgozását is.

A neurális hálózatok tanulása könnyebbé vált, mert speciálisan a Habravchan számára készítettünk egy promóciós kódot GYERTYÁNFÉNY, további 10% kedvezményt ad a banneren feltüntetett kedvezményhez.

AI használata képek túltömörítésére

További tanfolyamok

Kiemelt cikkek

Forrás: will.com

Hozzászólás