Použitie AI na nadmernú kompresiu obrázkov

Použitie AI na nadmernú kompresiu obrázkov
Algoritmy založené na údajoch, ako sú neurónové siete, vzali svet útokom. Ich vývoj je poháňaný niekoľkými dôvodmi, vrátane lacného a výkonného hardvéru a obrovského množstva dát. Neurónové siete sú v súčasnosti v popredí všetkého, čo súvisí s „kognitívnymi“ úlohami, ako je rozpoznávanie obrázkov, porozumenie prirodzenému jazyku atď. Nemali by sa však obmedzovať len na takéto úlohy. Tento materiál popisuje metódu kompresie obrázkov pomocou neurónových sietí pomocou zvyškového učenia. Prístup uvedený v článku funguje rýchlejšie a lepšie ako štandardné kodeky. Schémy, rovnice a samozrejme tabuľka s testami pod rezom.

Tento článok je založený na toto práca. Predpokladá sa, že poznáte neurónové siete a ich koncepty konvolúcia и stratová funkcia.

Čo je to kompresia obrazu a aké typy obsahuje?

Kompresia obrazu je proces transformácie obrazu tak, aby zaberal menej miesta. Jednoduché ukladanie obrázkov by zaberalo veľa miesta, preto existujú kodeky ako JPEG a PNG, ktorých cieľom je zmenšiť veľkosť pôvodného obrázka.

Ako viete, existujú dva typy kompresie obrázkov: žiadne straty и so stratami. Ako už názov napovedá, bezstratová kompresia dokáže obnoviť pôvodné obrazové dáta, zatiaľ čo stratová kompresia stratí niektoré dáta počas kompresie. napríklad JPG sú stratové algoritmy [cca. preklad - v podstate tiež nezabudnime na bezstratový JPEG] a PNG je bezstratový algoritmus.

Použitie AI na nadmernú kompresiu obrázkov
Porovnanie bezstratovej a stratovej kompresie

Všimnite si, že obrázok napravo má veľa blokových artefaktov. Toto sú stratené informácie. Susedné pixely podobných farieb sú komprimované ako jedna oblasť, aby sa ušetrilo miesto, ale informácie o skutočných pixeloch sa stratia. Samozrejme, algoritmy používané v kodekoch JPEG, PNG atď. sú oveľa zložitejšie, ale toto je dobrý intuitívny príklad stratovej kompresie. Bezstratová kompresia je dobrá, ale bezstratovo komprimované súbory zaberajú veľa miesta na disku. Existujú efektívnejšie spôsoby kompresie obrázkov bez straty veľkého množstva informácií, ale sú dosť pomalé a mnohí používajú iteratívne prístupy. To znamená, že nemôžu byť spustené paralelne na viacerých jadrách CPU alebo GPU. Toto obmedzenie ich robí úplne nepraktickými pre každodenné použitie.

Konvolučný vstup neurónovej siete

Ak treba niečo vypočítať a výpočty môžu byť približné, doplňte neurónová sieť. Autori na zlepšenie kompresie obrazu použili celkom štandardnú konvolučnú neurónovú sieť. Prezentovaná metóda nielenže funguje na rovnakej úrovni ako najlepšie riešenia (ak nie lepšie), ale môže využívať aj paralelné výpočty, čo vedie k dramatickému zvýšeniu rýchlosti. Dôvodom je, že konvolučné neurónové siete (CNN) sú veľmi dobré pri získavaní priestorových informácií z obrázkov, ktoré sú potom reprezentované v kompaktnejšej forme (napríklad sa zachovajú iba „dôležité“ časti obrázka). Autori chceli túto funkciu CNN využiť na lepšiu reprezentáciu obrázkov.

architektúra

Autori navrhli duálnu sieť. Prvá sieť berie obrázok ako vstup a generuje kompaktnú reprezentáciu (ComCNN). Výstup tejto siete je potom spracovaný štandardným kodekom (napríklad JPEG). Po spracovaní kodekom sa obrázok odošle do druhej siete, ktorá „opraví“ obrázok z kodeku v snahe vrátiť pôvodný obrázok. Autori nazvali túto sieť rekonštrukciou CNN (RecCNN). Podobne ako siete GAN sú obe siete trénované iteračne.

Použitie AI na nadmernú kompresiu obrázkov
ComCNN Compact reprezentácia prenesená do štandardného kodeku

Použitie AI na nadmernú kompresiu obrázkov
RecCNN. Výstup ComCNN je vylepšený a privádzaný do RecCNN, ktoré sa pokúsi naučiť zvyšok

Výstup kodeku sa zvýši a potom sa privedie do RecCNN. RecCNN sa pokúsi vydať obrázok, ktorý je čo najviac podobný originálu.

Použitie AI na nadmernú kompresiu obrázkov
End-to-end rámec kompresie obrazu. Co(.) je algoritmus kompresie obrazu. Autori použili JPEG, JPEG2000 a BPG

Aký je zvyšok?

Zvyšok možno považovať za krok následného spracovania na „vylepšenie“ obrazu, ktorý kodek dekóduje. S množstvom „informácií“ o svete môže neurónová sieť robiť kognitívne rozhodnutia o tom, čo treba opraviť. Táto myšlienka je založená na zvyškový tréning, prečítajte si podrobnosti, o ktorých môžete tu.

Stratové funkcie

Používajú sa dve stratové funkcie, pretože máme dve neurónové siete. Prvý z nich, ComCNN, je označený L1 a je definovaný takto:

Použitie AI na nadmernú kompresiu obrázkov
Stratová funkcia pre ComCNN

vysvetlenie

Táto rovnica sa môže zdať komplikovaná, ale v skutočnosti je štandardná (priemerná štvorcová chyba) MSE. ||² znamená normu vektora, ktorý obklopujú.

Použitie AI na nadmernú kompresiu obrázkov
Rovnica 1.1

Cr označuje výstup ComCNN. θ označuje trénovateľnosť parametrov ComCNN, XK je vstupný obrázok

Použitie AI na nadmernú kompresiu obrázkov
Rovnica 1.2

Re() znamená RecCNN. Táto rovnica jednoducho odovzdá hodnotu rovnice 1.1 RecCNN. θ označuje trénovateľné parametre RecCNN (čiapka navrchu znamená, že parametre sú pevné).

Intuitívna definícia

Rovnica 1.0 prinúti ComCNN zmeniť svoje váhy tak, že po rekonštrukcii pomocou RecCNN bude konečný obrázok vyzerať čo najviac podobný vstupnému obrázku. Druhá funkcia straty RecCNN je definovaná takto:

Použitie AI na nadmernú kompresiu obrázkov
Rovnica 2.0

vysvetlenie

Táto funkcia môže opäť vyzerať zložito, ale z väčšej časti ide o štandardnú funkciu straty neurónovej siete (MSE).

Použitie AI na nadmernú kompresiu obrázkov
Rovnica 2.1

Co() znamená výstup kodeku, x s uzáverom navrchu znamená výstup ComCNN. θ2 sú trénovateľné parametre RecCNN, res() je jednoducho zvyškový výstup RecCNN. Stojí za zmienku, že RecCNN je trénovaný na rozdiel medzi Co() a vstupným obrázkom, ale nie na vstupnom obrázku.

Intuitívna definícia

Rovnica 2.0 prinúti RecCNN zmeniť svoje váhy tak, aby výstup vyzeral čo najviac podobný vstupnému obrázku.

Tréningová schéma

Modely sa trénujú iteračne, podobne ako GAN. Váhy prvého modelu sa zafixujú, kým sa aktualizujú váhy druhého modelu, potom sa zafixujú váhy druhého modelu, kým sa prvý model trénuje.

skúšky

Autori porovnali svoju metódu s existujúcimi metódami vrátane jednoduchých kodekov. Ich metóda funguje lepšie ako ostatné pri zachovaní vysokej rýchlosti na príslušnom hardvéri. Okrem toho sa autori pokúsili použiť iba jednu z dvoch sietí a zaznamenali pokles výkonu.

Použitie AI na nadmernú kompresiu obrázkov
Porovnanie indexu štruktúrnej podobnosti (SSIM). Vysoké hodnoty naznačujú lepšiu podobnosť s originálom. Výsledky práce autorov sú zvýraznené tučným písmom.

Záver

Pozreli sme sa na nový spôsob využitia hlbokého učenia na kompresiu obrazu a hovorili sme o možnosti použitia neurónových sietí v úlohách nad rámec „všeobecných“ úloh, ako je klasifikácia obrázkov a spracovanie jazyka. Táto metóda nielenže nie je nižšia ako moderné požiadavky, ale umožňuje aj oveľa rýchlejšie spracovanie obrázkov.

Študovanie neurónových sietí sa stalo jednoduchším, pretože sme vytvorili propagačný kód špeciálne pre obyvateľov Khabry HABR, čím získate dodatočnú zľavu 10 % k zľave uvedenej na banneri.

Použitie AI na nadmernú kompresiu obrázkov

Viac kurzov

Odporúčané články

Zdroj: hab.com

Pridať komentár