Korišćenje veštačke inteligencije za prekomerno komprimovanje slika

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Algoritmi vođeni podacima poput neuronskih mreža osvojili su svijet olujom. Njihov razvoj je zbog nekoliko razloga, uključujući jeftinu i moćnu opremu i ogromnu količinu podataka. Neuronske mreže su trenutno na čelu svega što se odnosi na "kognitivne" zadatke kao što su prepoznavanje slika, razumijevanje prirodnog jezika itd. Ali oni ne bi trebali biti ograničeni na takve zadatke. Ovaj članak govori o tome kako komprimirati slike pomoću neuronskih mreža, koristeći rezidualno učenje. Pristup predstavljen u članku je brži i bolji od standardnih kodeka. Šeme, jednačine i, naravno, tabela sa testovima ispod reza.

Ovaj članak je zasnovan na ovo rad. Pretpostavlja se da ste upoznati sa neuronskim mrežama i njihovim konceptima. konvolucija и funkcija gubitka.

Šta je kompresija slike i kako funkcionira?

Kompresija slike je proces pretvaranja slike tako da zauzima manje prostora. Jednostavno pohranjivanje slika zauzelo bi puno prostora, zbog čega postoje kodeci kao što su JPEG i PNG koji imaju za cilj smanjenje veličine originalne slike.

Kao što znate, postoje dvije vrste kompresije slike: nema gubitka и sa gubicima. Kao što nazivi sugeriraju, kompresija bez gubitaka može zadržati izvorne podatke slike, dok kompresija s gubicima gubi neke podatke tokom kompresije. na primjer, JPG su algoritmi s gubitkom [cca. transl. - u suštini, ne zaboravimo ni JPEG bez gubitaka], a PNG je algoritam bez gubitaka.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Poređenje kompresije bez gubitaka i kompresije sa gubicima

Primijetite da na slici s desne strane ima puno blokova artefakata. Ovo je izgubljena informacija. Susjedni pikseli sličnih boja se komprimiraju kao jedno područje radi uštede prostora, ali se gube informacije o stvarnim pikselima. Naravno, algoritmi koji se koriste u JPEG, PNG, itd. kodecima su mnogo složeniji, ali ovo je dobar intuitivan primjer kompresije s gubicima. Kompresija bez gubitaka je dobra, ali komprimirane datoteke bez gubitaka zauzimaju puno prostora na disku. Postoje bolji načini za komprimiranje slika bez gubitka puno informacija, ali su prilično spori i mnogi koriste iterativne pristupe. To znači da se ne mogu izvoditi paralelno na više CPU ili GPU jezgara. Ovo ograničenje ih čini potpuno nepraktičnim u svakodnevnoj upotrebi.

Ulaz konvolucione neuronske mreže

Ako nešto treba izračunati i proračuni mogu biti približni, dodajte neuronske mreže. Autori su koristili prilično standardnu ​​konvolucionu neuronsku mrežu da poboljšaju kompresiju slike. Predstavljeni metod ne samo da radi uporedo s najboljim rješenjima (ako ne i boljim), već može koristiti i paralelno računanje, što dovodi do dramatičnog povećanja brzine. Razlog je taj što su konvolucijske neuronske mreže (CNN) vrlo dobre u izdvajanju prostornih informacija iz slika, koje se zatim prezentiraju u kompaktnijem obliku (na primjer, sačuvani su samo "važni" bitovi slike). Autori su željeli iskoristiti ovu mogućnost CNN-a kako bi bolje predstavili slike.

arhitektura

Autori su predložili dvostruku mrežu. Prva mreža uzima sliku kao ulaz i generiše kompaktnu reprezentaciju (ComCNN). Izlaz ove mreže se zatim obrađuje standardnim kodekom (npr. JPEG). Nakon obrade od strane kodeka, slika se prosljeđuje drugoj mreži, koja "popravlja" sliku iz kodeka u pokušaju da vrati originalnu sliku. Autori su ovu mrežu nazvali Rekonstruktivni CNN (RecCNN). Kao i GAN, obje mreže se obučavaju iterativno.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
ComCNN Compact predstavljanje se prosljeđuje standardnom kodeku

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
RecCNN. ComCNN izlaz se povećava i šalje RecCNN-u, koji će pokušati naučiti ostatak

Izlaz kodeka se povećava i zatim prosljeđuje RecCNN-u. RecCNN će pokušati prikazati sliku što je moguće bliže originalu.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Okvir za kompresiju slike od kraja do kraja. Co(.) je algoritam kompresije slike. Autori su koristili JPEG, JPEG2000 i BPG

Šta je ostatak?

Ostatak se može smatrati korakom naknadne obrade za "poboljšanje" slike koju dekodira kodek. Imajući puno „informacija“ o svijetu, neuronska mreža može donijeti kognitivne odluke o tome šta popraviti. Ova ideja se zasniva na rezidualno učenje, pročitajte detalje o kojima možete ovdje.

Funkcije gubitka

Dvije funkcije gubitka se koriste jer imamo dvije neuronske mreže. Prvi od njih, ComCNN, označen je kao L1 i definiran je na sljedeći način:

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Funkcija gubitka za ComCNN

Objašnjenje

Ova jednadžba može izgledati komplikovano, ali je zapravo standard (srednja kvadratna greška) MSE. ||² označava normu vektora koji zatvaraju.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Jednačina 1.1

Cr označava izlaz ComCNN-a. θ označava mogućnost učenja ComCNN parametara, XK je ulazna slika

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Jednačina 1.2

Re() označava RecCNN. Ova jednadžba jednostavno prenosi značenje jednačine 1.1 na RecCNN. θ označava parametre koje je moguće obučiti RecCNN (šešir na vrhu znači da su parametri fiksni).

Intuitivna definicija

Jednačina 1.0 će uzrokovati da ComCNN promijeni svoje težine tako da kada se ponovo kreira sa RecCNN-om, konačna slika izgleda što sličnije ulaznoj slici. Druga funkcija gubitka RecCNN-a definirana je kako slijedi:

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Jednačina 2.0

Objašnjenje

Opet, funkcija može izgledati komplicirano, ali ovo je uglavnom standardna funkcija gubitka neuronske mreže (MSE).

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Jednačina 2.1

Co() znači izlaz kodeka, x sa šeširom na vrhu znači ComCNN izlaz. θ2 su RecCNN parametri koji se mogu trenirati, res() je samo RecCNN-ov preostali izlaz. Vrijedi napomenuti da je RecCNN obučen na razlici između Co() i ulazne slike, ali ne i na ulaznoj slici.

Intuitivna definicija

Jednačina 2.0 će uzrokovati da RecCNN promijeni svoje težine tako da izlaz izgleda što sličnije ulaznoj slici.

Šema obuke

Modeli se treniraju iterativno, kao GAN. Težina prvog modela se fiksira dok se težine drugog modela ažuriraju, zatim se težine drugog modela fiksiraju dok se prvi model obučava.

Testovi

Autori su uporedili svoju metodu sa postojećim metodama, uključujući jednostavne kodeke. Njihova metoda radi bolje od drugih uz održavanje velike brzine na odgovarajućem hardveru. Osim toga, autori su pokušali koristiti samo jednu od dvije mreže i primijetili pad performansi.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika
Poređenje indeksa strukturalne sličnosti (SSIM). Visoke vrijednosti ukazuju na bolju sličnost s originalom. Podebljano označava rezultat rada autora

zaključak

Razmotrili smo novi način primjene dubokog učenja na kompresiju slike i razgovarali o mogućnosti korištenja neuronskih mreža u zadacima izvan "općih" zadataka kao što su klasifikacija slika i obrada jezika. Ova metoda ne samo da nije inferiorna u odnosu na moderne zahtjeve, već vam omogućava i mnogo bržu obradu slika.

Učenje neuronskih mreža postalo je lakše, jer smo napravili promo kod posebno za Habravchana HABR, dajući dodatnih 10% popusta na popust naznačen na baneru.

Korišćenje veštačke inteligencije za prekomerno komprimovanje slika

Više kurseva

Preporučeni članci

izvor: www.habr.com

Dodajte komentar