Korištenje AI za prekomjerno komprimiranje slika

Korištenje AI za prekomjerno komprimiranje slika
Algoritmi vođeni podacima poput neuronskih mreža osvojili su svijet kao oluja. Njihov razvoj je zbog nekoliko razloga, uključujući jeftinu i moćnu opremu i ogromnu količinu podataka. Neuronske mreže trenutno prednjače u svemu što se odnosi na "kognitivne" zadatke kao što su prepoznavanje slika, razumijevanje prirodnog jezika itd. Ali ne bi se trebali ograničiti na takve zadatke. Ovaj članak govori o tome kako komprimirati slike pomoću neuronskih mreža, koristeći zaostalo učenje. Pristup predstavljen u članku je brži i bolji od standardnih kodeka. Sheme, jednadžbe i, naravno, tablica s testovima ispod reza.

Ovaj se članak temelji na ovo raditi. Pretpostavlja se da ste upoznati s neuronskim mrežama i njihovim konceptima. konvolucija и funkcija gubitka.

Što je kompresija slike i kako radi?

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 kojima je cilj smanjiti veličinu izvorne slike.

Kao što znate, postoje dvije vrste kompresije slike: bez gubitka и s gubicima. Kao što nazivi sugeriraju, kompresija bez gubitaka može zadržati izvorne slikovne podatke, dok kompresija s gubitkom gubi neke podatke tijekom kompresije. na primjer, JPG su algoritmi s gubicima [cca. prev. - u osnovi, nemojmo također zaboraviti na JPEG bez gubitaka], a PNG je algoritam bez gubitaka.

Korištenje AI za prekomjerno komprimiranje slika
Usporedba kompresije bez i bez gubitaka

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

Unos konvolucijske neuronske mreže

Ako nešto treba izračunati, a izračuni mogu biti približni, dodajte živčana mreža. Autori su koristili prilično standardnu ​​konvolucijsku neuronsku mrežu za poboljšanje kompresije slike. Predstavljena metoda ne samo da radi jednako kao i najbolja rješenja (ako ne i bolja), ona također može koristiti paralelno računanje, što dovodi do dramatičnog povećanja brzine. Razlog je taj što su konvolucijske neuronske mreže (CNN) vrlo dobre u izvlačenju prostornih informacija iz slika, koje se zatim prikazuju u kompaktnijem obliku (na primjer, samo su "važni" dijelovi slike sačuvani). Autori su željeli iskoristiti ovu mogućnost CNN-a za bolje predstavljanje slika.

arhitektura

Autori su predložili dvostruku mrežu. Prva mreža uzima sliku kao ulaz i generira kompaktni prikaz (ComCNN). Izlaz ove mreže zatim se obrađuje standardnim kodekom (npr. JPEG). Nakon što ju kodek obradi, slika se prosljeđuje drugoj mreži koja "popravlja" sliku iz kodeka u pokušaju vraćanja izvorne slike. Autori su ovu mrežu nazvali Rekonstruktivni CNN (RecCNN). Poput GAN-ova, obje mreže se iterativno obučavaju.

Korištenje AI za prekomjerno komprimiranje slika
ComCNN Compact prikaz prenosi se na standardni kodek

Korištenje AI za prekomjerno komprimiranje slika
RecCNN. Izlaz ComCNN-a se povećava i šalje RecCNN-u, koji će pokušati saznati 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štenje AI za prekomjerno komprimiranje slika
Okvir kompresije slike od kraja do kraja. Co(.) je algoritam za kompresiju slike. Autori su koristili JPEG, JPEG2000 i BPG

Što 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 donositi kognitivne odluke o tome što popraviti. Ova ideja se temelji na zaostalo učenje, pročitajte detalje o kojima možete здесь.

Funkcije gubitaka

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

Korištenje AI za prekomjerno komprimiranje slika
Funkcija gubitka za ComCNN

objašnjenje

Ova se jednadžba može činiti kompliciranom, ali zapravo je standard (srednja kvadratna pogreška) MSE. ||² znači normu vektora koji obuhvaćaju.

Korištenje AI za prekomjerno komprimiranje slika
Jednadžba 1.1

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

Korištenje AI za prekomjerno komprimiranje slika
Jednadžba 1.2

Re() označava RecCNN. Ova jednadžba jednostavno prenosi RecCNN-u značenje jednadžbe 1.1. θ označava RecCNN parametre koji se mogu obučiti (šešir na vrhu znači da su parametri fiksni).

Intuitivna definicija

Jednadžba 1.0 će uzrokovati da ComCNN promijeni svoje težine tako da, kada se ponovno izradi s RecCNN-om, konačna slika izgleda što sličnije ulaznoj slici. Druga RecCNN funkcija gubitka definirana je na sljedeći način:

Korištenje AI za prekomjerno komprimiranje slika
Jednadžba 2.0

objašnjenje

Opet, funkcija može izgledati komplicirano, ali ovo je većim dijelom standardna funkcija gubitka neuronske mreže (MSE).

Korištenje AI za prekomjerno komprimiranje slika
Jednadžba 2.1

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

Intuitivna definicija

Jednadžba 2.0 će RecCNN-u promijeniti svoje težine tako da izlaz izgleda što sličnije ulaznoj slici.

Shema obuke

Modeli se obučavaju iterativno, npr oboje. Težine prvog modela su fiksirane dok se težine drugog modela ažuriraju, zatim se težine drugog modela fiksiraju dok se prvi model trenira.

testovi

Autori su svoju metodu usporedili s postojećim metodama, uključujući jednostavne kodeke. Njihova metoda ima bolju izvedbu od drugih, a istovremeno održava veliku brzinu na odgovarajućem hardveru. Osim toga, autori su pokušali koristiti samo jednu od dvije mreže i primijetili su pad performansi.

Korištenje AI za prekomjerno komprimiranje slika
Usporedba indeksa strukturne sličnosti (SSIM). Visoke vrijednosti ukazuju na veću sličnost s originalom. Podebljanim slovima označen je rezultat rada autora

Zaključak

Proučili 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 prema modernim zahtjevima, već vam također omogućuje mnogo bržu obradu slika.

Učenje neuronskih mreža postalo je lakše jer smo napravili promo kod posebno za Habravchan HABR, uz dodatni popust od 10% na popust naveden na banneru.

Korištenje AI za prekomjerno komprimiranje slika

Više tečajeva

Istaknuti članci

Izvor: www.habr.com

Dodajte komentar