Uporaba umetne inteligence za izjemno stiskanje slik

Uporaba umetne inteligence za izjemno stiskanje slik
Algoritmi za upravljanje podacima, kao što su neuronske mreže, zauzeli su svet olujom. Njihov razvoj je uzrokovan nekoliko razloga, uključujući jeftinu i moćnu opremu i ogromne količine podataka. Neuronske mreže su trenutno na čelu svega vezanog za 'kognitivne' zadatke, kao što su prepoznavanje slika, razumevanje prirodnog jezika i slično. Međutim, ne bi trebale biti ograničene na ovakve zadatke. U ovom materijalu govori se o načinu kompresije slika pomoću neuronskih mreža, koristeći rezidualno učenje. Pristup predstavljen u članku radi brže i bolje od standardnih kodeka. Dijagrami, jednačine i, naravno, tabela sa testovima su u dodatku.

Ovaj članak se zasniva na tole radu. Pretpostavlja se da ste upoznati sa neuronskim mrežama i njihovim pojmovima. konvolucija in funkcija gubitka.

Šta je kompresija slika i kakva ona može biti?

Kompresija slika je proces pretvaranja slike na način koji zauzima manje prostora. Samo čuvanje slika bi zauzelo previše mesta, pa postoje kodeci, kao što su JPEG i PNG, koji su usmereni na smanjenje veličine izvorne slike.

Kako je poznato, postoje dva tipa kompresije slika: brez izgub in s gubicima. Kao što ime sugeriše, kod kompresije bez gubitaka moguće je povratiti podatke izvorne slike, dok se kod kompresije s gubicima neki podaci gube tokom kompresije. Na primer, JPG su algoritmi s gubicima [napomena prevoditelja — u principu, ne zaboravimo ni na JPEG bez gubitaka], dok je PNG algoritam bez gubitaka.

Uporaba umetne inteligence za izjemno stiskanje slik
Poređenje kompresije bez gubitaka i s gubicima

Upoštevajte, da na sliki desno obstajajo številne blokovne artefakte. To je izgubljena informacija. Sosednji piksli podobnih barv se stisnejo kot eno območje za varčevanje s prostorom, pri čemer pa se izgubi informacija o dejanskih pikslov. Seveda so algoritmi, uporabljeni v kodekih JPEG, PNG itd., veliko bolj zapleteni, a to je dober intuitiven primer stiskanja z izgubo. Brezizgubno stiskanje je dobro, vendar brezizgubni stisnjeni datoteki zasedejo veliko prostora na disku. Obstajajo učinkovitejši načini stiskanja slik brez izgube velike količine informacij, vendar so precej počasni, mnogi pa uporabljajo iterativne pristope. To pomeni, da jih ni mogoče izvajati hkrati na več jedrih centralnega ali grafičnega procesorja. Takšno omejitev naredi njihovo vsakodnevno uporabo popolnoma nepraktično.

Vhod konvolucijske nevronske mreže

Če je potrebno izračunati kaj in so izračuni lahko približni, dodajte nevronsko mrežo. Avtorji so uporabili kar nekaj standardno konvolucijsko nevronsko mrežo za izboljšanje stiskanja slik. Predlagana metoda ne deluje le na ravni najboljših rešitev (če ne celo bolje), ampak tudi omogoča vzporedne izračune, kar vodi do dramatičnega povečanja hitrosti. Razlog je, da so konvolucijske nevronske mreže (CNN) zelo dobre pri izvlečenju prostorske informacije iz slik, ki se nato predstavijo v bolj kompaktnem formatu (npr. shranijo se le „pomembni“ bitji slike). Avtorji so želeli izkoristiti to odlično lastnost CNN za boljšo predstavitev slik.

Arhitektura

Avtorji so predlagali dvojno mrežo. Prva mreža prejme sliko in ustvari kompaktno predstavitev (ComCNN). Izhod te mreže se nato obdeluje s standardnim kodekom (npr. JPEG). Po obdelavi z kodekom se slika prenese v drugo mrežo, ki „popravi“ sliko iz kodeka v prizadevanju, da vrne izvorno sliko. Avtorji so to mrežo poimenovali rekonstruirajoča CNN (RecCNN). Tako kot GAN se obe mreži iterativno učita.

Uporaba umetne inteligence za izjemno stiskanje slik
ComCNN Kompaktna predstavitev se prenese standardnemu kodeku

Uporaba umetne inteligence za izjemno stiskanje slik
RecCNN. Izhodni podatki ComCNN se povečajo in prenesejo v RecCNN, ki se bo poskušala naučiti preostanka

Izlazni podaci kodeka skaliraju se s povećanjem i zatim se prosljeđuju u RecCNN. RecCNN će pokušati generirati sliku koja je što sličnija originalu.

Uporaba umetne inteligence za izjemno stiskanje slik
Sistematski okvir za kompresiju slika. Co(.) predstavlja algoritam kompresije slika. Autori su koristili JPEG, JPEG2000 i BPG.

Što je ostatak?

Ostatak se može smatrati korakom postobrade za "poboljšanje" slike koju dešifrira kodek. Imajući mnogo "informacija" o svijetu, neuronska mreža može donositi kognitivne odluke o tome što treba ispraviti. Ova ideja se temelji na ostatnom učenju, pročitajte više informacija o tome možete ovde.

Funkcije gubitka

Dve funkcije gubitka koriste se zato što imamo dve neuronske mreže. Prva od njih, ComCNN, označena je kao L1 i definisana je ovako:

Uporaba umetne inteligence za izjemno stiskanje slik
Funkcija gubitka za ComCNN

Razlaga

Ova jednačina može izgledati složeno, ali zapravo je to standardna (srednja kvadratna greška) MSE. ||² označava normu vektora koji oni zatvaraju.

Uporaba umetne inteligence za izjemno stiskanje slik
Jednačina 1.1

Cr označava izlazne podatke ComCNN. θ označava učljivost parametara ComCNN, XK — to je ulazna slika.

Uporaba umetne inteligence za izjemno stiskanje slik
Jednačina 1.2

Re() označava RecCNN. Ova jednačina jednostavno prenosi vrijednost jednadžbe 1.1 u RecCNN. θ označava učljive parametre RecCNN (kapica na vrhu označava da su parametri fiksni).

Intuitivna definicija

Jednačina 1.0 će natjerati ComCNN da promijeni svoje težine na način da, nakon rekonstrukcije pomoću RecCNN, konačna slika izgleda što više poput ulazne slike. Druga funkcija gubitka za RecCNN definira se ovako:

Uporaba umetne inteligence za izjemno stiskanje slik
Jednačina 2.0

Razlaga

Ponovo, funkcija može izgledati složeno, ali uglavnom je to standardna funkcija gubitka neuronske mreže (MSE).

Uporaba umetne inteligence za izjemno stiskanje slik
Jednačina 2.1

Co() označava izlaz kodeka, x sa kapicom na vrhu označava izlaz ComCNN. θ2 — to su učljivi parametri RecCNN. res() predstavlja jednostavno ostatni izlaz RecCNN. Važno je napomenuti da se RecCNN uči na razlici između Co() i ulazne slike, ali ne na ulaznoj slici.

Intuitivna definicija

Jednačina 2.0 će natjerati RecCNN da promijeni svoje težine kako bi izlazni podaci bili što sličniji ulaznoj slici.

Shema učenja

Modeli se obučavaju iterativno, slično GANTeže prvega modela se fiksirajo, medtem ko se teže drugega modela posodabljajo, nato se teže drugega modela fiksirajo, medtem ko se prvi model uči.

Testovi

Avtorji so svoj način primerjali z obstoječimi metodami, vključno z enostavnimi kodeki. Njihova metoda deluje bolje od drugih, ob tem pa ohranja visoko hitrost na ustrezni opremi. Poleg tega so avtorji poskusili uporabiti le eno od dveh omrežij in opazili upad zmogljivosti.

Uporaba umetne inteligence za izjemno stiskanje slik
Primerjava indeksa strukturne podobnosti (SSIM). Višje vrednosti kažejo na boljšo podobnost z izvirnikom. Rezultat avtorjev je označen z debelo pisavo.

Zaključek

Proučili smo nov način uporabe globokega učenja za stiskanje slik, govorili smo o možnostih uporabe nevralnih mrež pri nalogah, ki niso 'splošne', kot so razvrščanje slik in obdelava jezika. Ta metoda ne le, da ne zaostaja za sodobnimi zahtevami, temveč omogoča tudi obdelavo slik veliko hitreje.

Učenje o nevralnih mrežah je postalo lažje, saj smo posebej za uporabnike Habr ustvarili promocijsko kodo. HABR, koji daje dodatni popust od 10% na popust naveden na baneru.

Uporaba umetne inteligence za izjemno stiskanje slik

Još tečajeva

Preporučeni članci

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster