Uporaba umetne inteligence za izjemno stiskanje slik

Uporaba umetne inteligence za izjemno stiskanje slik
Upravlјani algoritmi sa podacima, kao što su neuronske mreže, osvojili su svet. Njihov razvoj izazvan je nekoliko razloga, uključujući jeftinu i moćnu opremu i ogromne količine podataka. Neuronske mreže trenutno su na čelu sve vezano za „kognitivne“ zadatke, kao što su prepoznavanje slika, razumevanje prirodnog jezika itd. Ali ne treba ih ograničavati samo na te zadatke. U ovom materijalu opisuje se način kompresije slika pomoću neuronskih mreža, uz pomoć preostalih učenja. Prikazani pristup radi brže i bolje od standardnih kodeka. Šeme, jednačine i, naravno, tabela sa testovima su pod katom.

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

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

Kompresija slika je proces pretvaranja slike na način da zauzima manje prostora. Prosto skladištenje slika bi zauzelo mnogo prostora, pa postoje kodeci, kao što su JPEG i PNG, koji su usmereni na smanjenje veličine izvorne slike.

Kao što je poznato, postoje dve vrste kompresije slika: brez izgub in sa gubicima. Kao što se može naslutiti iz naziva, prilikom kompresije bez gubitaka moguće je dobiti podatke izvorne slike, dok se prilikom kompresije sa gubicima neki podaci gube tokom kompresije. na primer, JPG su algoritmi sa gubicima [pr. prev. — uglavnom, ne zaboravimo ni JPEG bez gubitaka], a PNG je algoritam bez gubitaka.

Uporaba umetne inteligence za izjemno stiskanje slik
Uporedba kompresije bez gubitaka i sa gubicima

Обратите внимание, что на изображении справа имеется множество блоковых артефактов. Это потерянная информация. Соседние пиксели схожих цветов объединяются в одну область для экономии места, что приводит к потере данных о фактических пикселях. Конечно, алгоритмы, применяемые в кодеках JPEG, PNG и т.д., гораздо сложнее, но это хороший интуитивный пример сжатия с потерями. Сжатие без потерь — это хорошо, но такие файлы занимают много места на диске. Существуют более эффективные методы сжатия изображений без значительной потери информации, однако они довольно медлительны, и множество из них применяют итеративные подходы. Это значит, что их нельзя запускать параллельно на нескольких ядрах центрального или графического процессора. Такое ограничение делает их абсолютно непрактичными для повседневного использования.

Ввод свёрточной нейронной сети

Если требуется произвести вычисление, и оно может быть приближённым, добавьте нейронную сеть. Авторы применили достаточно распространённую свёрточную нейронную сеть для улучшения сжатия изображений. Предложенный метод не только работает наравне с лучшими решениями (если не лучше), но также может использовать параллельные вычисления, что значительно ускоряет процесс. Причина в том, что свёрточные нейронные сети (CNN) очень эффективны в извлечении пространственной информации из изображений, которая затем представляется в более компактной форме (например, сохраняются только «значимые» биты изображения). Авторы стремились использовать данное свойство CNN для более оптимального представления изображений.

Arhitektura

Авторы предложили двойную сеть. Первая сеть принимает на вход изображение и генерирует компактное представление (ComCNN). Выходные данные этой сети обрабатываются стандартным кодеком (например, JPEG). После обработки кодеком изображение передаётся во вторую сеть, которая «исправляет» изображение из кодека, чтобы вернуть исходное изображение. Авторы назвали эту сеть реконструирующей CNN (RecCNN). Подобно GAN обе сети обучаются итеративно.

Uporaba umetne inteligence za izjemno stiskanje slik
ComCNN Компактное представление передаётся стандартному кодеку

Uporaba umetne inteligence za izjemno stiskanje slik
RecCNN. Выходные данные ComCNN увеличиваются и передаются в RecCNN, которая попытается изучить остаток

Izhodi podatki kodeka se povečujejo z večanjem in nato prenesejo v RecCNN. RecCNN bo poskušal prikazati sliko, podobno izvirniku, kolikor je mogoče.

Uporaba umetne inteligence za izjemno stiskanje slik
Prekoračen okvir za stiskanje slik. Co(.) je algoritem za stiskanje slik. Avtorji so uporabili JPEG, JPEG2000 in BPG.

Kaj je ostanek?

Ostanek je mogoče obravnavati kot korak postprocesiranja za 'izboljšanje' slike, ki jo dešifrira kodek. Z veliko 'informacijami' o svetu lahko nevronska mreža sprejema kognitivne odločitve o tem, kaj popraviti. Ta ideja temelji na ostalnega učenja, podrobnosti o katerem lahko preberete ovde.

Funkcije izgub

Dve funkciji izgub se uporabljata, ker imamo dve nevronski mreži. Prva, ComCNN, je označena kot L1 in je definirana tako:

Uporaba umetne inteligence za izjemno stiskanje slik
Funkcija izgub za ComCNN

Razlaga

Ta enačba se morda zdi zapletena, a v resnici gre za standardno (srednjo kvadratno napako) MSE. ||² pomeni normo vektorja, ki ga oblikujejo.

Uporaba umetne inteligence za izjemno stiskanje slik
Enačba 1.1

Cr označuje izhodne podatke ComCNN. θ označuje učenje parametrov ComCNN, XK pa je vhodna slika.

Uporaba umetne inteligence za izjemno stiskanje slik
Enačba 1.2

Re() označuje RecCNN. Ta enačba zgolj prenaša vrednost enačbe 1.1 v RecCNN. θ označuje parametre RecCNN, ki se učijo (klobuček na vrhu pomeni, da so parametri fiksni).

Intuitivna definicija

Enačba 1.0 bo prisilila ComCNN, da prilagodi svoje teže tako, da se bo končna slika po ponovni obnovi s RecCNN kar najbolje ujemala z vhodno sliko. Druga funkcija izgub RecCNN je definirana na naslednji način:

Uporaba umetne inteligence za izjemno stiskanje slik
Enačba 2.0

Razlaga

Ponovno se funkcija morda zdi zapletena, vendar gre večinoma za standardno funkcijo izgub nevronske mreže (MSE).

Uporaba umetne inteligence za izjemno stiskanje slik
Enačba 2.1

Co() označuje izhod kodeka, x s klobučkom na vrhu pomeni izhod ComCNN. θ2 so učljivi parametri RecCNN, res() pomeni zgolj ostanek iz RecCNN. Omeniti je treba, da se RecCNN uči na razliki med Co() in vhodno sliko, ne pa na vhodni sliki.

Intuitivna definicija

Enačba 2.0 bo prisilila RecCNN, da prilagodi svoje teže, da bo izhod kar najbolj podoben vhodni sliki.

Načrt učenja

Modeli se iterativno učijo, podobno kot GANTeže prvega modela so fiksirane, 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 primerjali svojo metodo z obstoječimi metodami, vključno s preprostimi kodeki. Njihova metoda deluje bolje od drugih, pri čemer ohranja visoko hitrost na ustrezni opremi. Poleg tega so avtorji poskušali uporabiti le eno od dveh mrež in opozorili na upad zmogljivosti.

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

Zaključek

Preučili smo nov način uporabe globokega učenja za kompresijo slik, razpravljali o možnosti uporabe nevronskih mrež pri nalogah poleg ‚splošnih‘, kot so klasifikacija slik in obdelava jezika. Ta metoda ne le da ustreza sodobnim zahtevam, ampak omogoča tudi obdelavo slik precej hitreje.

Učenje o nevronskih mrežah je postalo preprostejše, saj smo posebej za člane 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