Použití AI pro nadměrnou kompresi obrázků

Použití AI pro nadměrnou kompresi obrázků
Algoritmy řízené daty, jako jsou neuronové sítě, dobyly svět. Jejich rozvoj je způsoben několika faktory, včetně levného a výkonného hardwaru a obrovských objemů dat. Neuronové sítě jsou v současnosti na přední linii všeho, co se týká „kognitivních“ úkolů, jako je rozpoznávání obrazů, porozumění přirozenému jazyku a tak dále. Ale neměly by být omezeny pouze na tyto úkoly. Tento materiál se zaměřuje na způsob komprese obrazů pomocí neuronových sítí a metody zbytkového učení. Představený přístup pracuje rychleji a lépe než standardní kodeky. Schémata, rovnice a samozřejmě tabulka s testy naleznete pod článkem.

Tento článek je založen na tato práce. Předpokládá se, že máte znalosti o neuronových sítích a jejich pojmech. konvoluce a funkce ztráty.

Co je to komprese obrazů a jaké typy existují?

Komprese obrazů je proces, při kterém se obrázek přetváří tak, aby zabíral méně místa. Samotné uchovávání obrázků by zabralo příliš mnoho místa, proto existují kodeky, jako jsou JPEG a PNG, které mají za cíl snížit velikost původního obrázku.

Jak je známo, existují dva typy komprese obrazů: bez ztrát a se ztrátami. Jak vyplývá z názvů, při kompresi bez ztrát lze získat data původního obrázku, zatímco při kompresi se ztrátami se některá data při kompresi ztrácejí. Například JPG jsou algoritmy se ztrátami [pozn. překl.: samozřejmě nezapomínejme také na bezstrátový JPEG], zatímco PNG je algoritmus bez ztrát.

Použití AI pro nadměrnou kompresi obrázků
Srovnání bezstrátové a se ztrátami komprese

Všimněte si, že na obrázku napravo je mnoho blokových artefaktů. To je ztracená informace. Sousední pixely podobných barev se komprimují jako jedna oblast, aby se šetřilo místo, ale přitom se ztrácí informace o skutečných pixelech. Samozřejmě, algoritmy používané v kodecích JPEG, PNG atd. jsou mnohem složitější, ale to je dobrý intuitivní příklad ztrátové komprese. Bezztrátová komprese je dobrá, ale soubory bezztrátové komprese zabírají hodně místa na disku. Existují efektivnější způsoby komprese obrázků bez ztráty velkého množství informací, ale jsou docela pomalé a mnohé používají iterativní přístupy. To znamená, že je nelze spustit paralelně na několika jádrech centrálního nebo grafického procesoru. Takové omezení je činí naprosto nepraktickými pro každodenní použití.

Vstup konvoluční neuronové sítě

Pokud je třeba něco vypočítat a výpočty mohou být přibližné, přidejte neuronovou síť. Autoři použili docela standardní konvoluční neuronovou síť pro zlepšení komprese obrázků. Předložená metoda nejen že funguje na úrovni nejlepších řešení (pokud není lepší), ale také může využívat paralelní výpočty, což vede k dramatickému zvýšení rychlosti. Důvodem je, že konvoluční neuronové sítě (CNN) jsou velmi dobré v extrakci prostorových informací z obrázků, které jsou pak prezentovány v kompaktnější formě (např. jsou uloženy pouze „důležité“ bity obrázku). Autoři chtěli využít tuto schopnost CNN k lepšímu reprezentování obrázků.

Architektura

Autoři navrhli dvojitou síť. První síť přijímá jako vstup obrázek a generuje kompaktní reprezentaci (ComCNN). Výstupy této sítě jsou poté zpracovány standardním kodekem (např. JPEG). Po zpracování kodekem je obrázek předán druhé síti, která „opravuje“ obrázek z kodeku ve snaze obnovit původní obrázek. Autoři tuto síť nazvali rekonstrukční CNN (RecCNN). Podobně jako GAN jsou obě sítě trénovány iterativně.

Použití AI pro nadměrnou kompresi obrázků
ComCNN Kompaktní reprezentace je předána standardnímu kodeku

Použití AI pro nadměrnou kompresi obrázků
RecCNN. Výstupy ComCNN jsou zvětšeny a předány do RecCNN, která se pokusí naučit zbytek

Výstupní data kodeku se škálují, a poté se přenášejí do RecCNN. RecCNN se pokusí vytvořit obraz co nejpodobnější originálu.

Použití AI pro nadměrnou kompresi obrázků
Průchodu frameworku pro kompresi obrázků. Co(.) představuje algoritmus komprese obrázků. Autoři aplikovali JPEG, JPEG2000 a BPG.

Co je zbytek?

Zbytek lze považovat za krok postprocessing pro "vylepšení" dekodovaného obrazu kodekem. S více "informacemi" o světě může neuronová síť učinit kognitivní rozhodnutí o tom, co opravit. Tato myšlenka je založena na zbytkovém učení, podrobnosti si můžete přečíst zde.

Ztrátové funkce

Dvě ztrátové funkce jsou používány, protože máme dvě neuronové sítě. První z nich, ComCNN, je označena jako L1 a je definována takto:

Použití AI pro nadměrnou kompresi obrázků
Ztrátová funkce pro ComCNN

Vysvětlení

Tento vzorec se může zdát složitý, ale ve skutečnosti jde o standardní (střední čtvercová chyba) MSE. ||² znamená normu vektoru, kterou uzavírají.

Použití AI pro nadměrnou kompresi obrázků
Rovnice 1.1

Cr označuje výstup ComCNN. θ označuje učenlivost parametrů ComCNN, XK je vstupní obraz.

Použití AI pro nadměrnou kompresi obrázků
Rovnice 1.2

Re() označuje RecCNN. Tento vzorec jednoduše předává hodnotu vzorce 1.1 do RecCNN. θ označuje učenlivé parametry RecCNN (čepička nahoře znamená, že parametry jsou fixní).

Intuitivní definice

Rovnice 1.0 donutí ComCNN změnit své váhy tak, aby po rekonstrukci pomocí RecCNN vypadalo konečné obraz co nejvíce podobné vstupnímu obrazu. Druhá ztrátová funkce RecCNN je definována takto:

Použití AI pro nadměrnou kompresi obrázků
Rovnice 2.0

Vysvětlení

Znovu se funkce může zdát složitá, ale je to většinou standardní ztrátová funkce neuronové sítě (MSE).

Použití AI pro nadměrnou kompresi obrázků
Rovnice 2.1

Co() označuje výstup kodeku, x s čepičkou nahoře označuje výstup ComCNN. θ2 jsou učenlivé parametry RecCNN, res() představuje jednoduše zbytkový výstup RecCNN. Je důležité poznamenat, že RecCNN se učí na rozdílu mezi Co() a vstupním obrazem, ale ne na samotném vstupním obraze.

Intuitivní definice

Rovnice 2.0 donutí RecCNN změnit své váhy tak, aby výstupy vypadaly co nejvíce podobně vstupnímu obrazu.

Schéma učení

Modely se učí iterativně, podobně jako GAN. Váhy první modelu jsou fixovány, zatímco váhy druhého modelu se aktualizují; poté jsou váhy druhého modelu fixovány, zatímco první model se učí.

Testy

Autoři porovnali svou metodu s existujícími metodami, včetně jednoduchých kodeků. Jejich metoda funguje lépe než ostatní a přitom si zachovává vysokou rychlost na odpovídajícím vybavení. Navíc se autoři pokusili použít pouze jednu ze dvou sítí a zaznamenali pokles výkonu.

Použití AI pro nadměrnou kompresi obrázků
Srovnání indexu strukturální podobnosti (SSIM). Vysoké hodnoty naznačují lepší podobnost s originálem. Výsledek práce autorů je vyznačen tučně.

Závěr

Prozkoumali jsme nový způsob aplikace hlubokého učení pro kompresi obrázků a diskutovali o možnosti využití neuronových sítí u úloh mimo 'obecné', jako je klasifikace obrázků a zpracování jazyka. Tato metoda nejenže vyhovuje současným požadavkům, ale také umožňuje zpracovávat obrázky mnohem rychleji.

Studium neuronových sítí se stalo snadnější, protože jsme speciálně pro uživatele na Habr.com vytvořili promo kód HABR, který poskytuje dodatečnou slevu 10 % na slevu uvedenou na banneru.

Použití AI pro nadměrnou kompresi obrázků

Další kurzy

Doporučené články

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster