AI kasutamine piltide üle tihendamiseks

AI kasutamine piltide üle tihendamiseks
Andmepõhised algoritmid, nagu närvivõrgud, on vallutanud maailma tormiliselt. Nende arendamise taga on mitu põhjust, sealhulgas odav ja võimas varustus ning tohutu andmemaht. Närvivõrgud on praegu esirinnas kõiges, mis on seotud "kognitiivsete" ülesannetega nagu pildituvastus, loomuliku keele mõistmine jne. Kuid need ei tohiks piirduda selliste ülesannetega. See artikkel räägib piltide tihendamisest närvivõrkude abil, kasutades jääkõpet. Artiklis esitatud lähenemisviis on kiirem ja parem kui tavalised koodekid. Skeemid, võrrandid ja loomulikult tabel katsetega lõike all.

See artikkel põhineb see tööd. Eeldatakse, et tunnete närvivõrke ja nende mõisteid. keerdumist и kaotusfunktsioon.

Mis on pildi tihendamine ja kuidas see toimib?

Pildi tihendamine on protsess, mille käigus pilt teisendatakse nii, et see võtab vähem ruumi. Lihtsalt piltide salvestamine võtaks palju ruumi, mistõttu on olemas koodekeid, nagu JPEG ja PNG, mille eesmärk on vähendada algse pildi suurust.

Nagu teate, on piltide tihendamist kahte tüüpi: kaotust pole и kaotustega. Nagu nimed viitavad, võib kadudeta pakkimine säilitada algsed pildiandmed, samas kui kadudeta pakkimine kaotab tihendamise ajal osa andmeid. näiteks JPG on kadudega algoritmid [umbes. tõlge - põhimõtteliselt ärgem unustagem ka kadudeta JPEG-d] ja PNG on kadudeta algoritm.

AI kasutamine piltide üle tihendamiseks
Kadudeta ja kadudeta tihendamise võrdlus

Pange tähele, et parempoolsel pildil on palju blokeeritud esemeid. See on kadunud teave. Sarnaste värvidega naaberpikslid tihendatakse ruumi säästmiseks ühe alana, kuid teave tegelike pikslite kohta läheb kaotsi. Muidugi on JPEG-, PNG- jne koodekites kasutatavad algoritmid palju keerukamad, kuid see on hea intuitiivne näide kadudega pakkimisest. Kadudeta tihendamine on hea, kuid kadudeta tihendatud failid võtavad palju kettaruumi. Piltide tihendamiseks ilma palju teavet kaotamata on paremaid viise, kuid need on üsna aeglased ja paljud kasutavad iteratiivseid lähenemisviise. See tähendab, et neid ei saa paralleelselt käivitada mitmel CPU või GPU tuumal. See piirang muudab need igapäevases kasutuses täiesti ebapraktiliseks.

Konvolutsiooniline närvivõrgu sisend

Kui midagi on vaja arvutada ja arvutused võivad olla ligikaudsed, lisage närvivõrk. Autorid kasutasid kujutise tihendamise parandamiseks üsna standardset konvolutsioonilist närvivõrku. Esitatud meetod ei toimi mitte ainult parimate lahendustega (kui mitte paremini), vaid võib kasutada ka paralleelset andmetöötlust, mis suurendab kiirust järsult. Põhjus on selles, et konvolutsioonilised närvivõrgud (Convolutional Neural Networks, CNN) suudavad väga hästi eraldada piltidelt ruumilist teavet, mis seejärel kompaktsemal kujul esitatakse (näiteks säilivad pildist ainult "olulised" bitid). Autorid soovisid seda CNN-i võimalust kasutada piltide paremaks esitamiseks.

arhitektuur

Autorid pakkusid välja topeltvõrgu. Esimene võrk võtab sisendiks pildi ja genereerib kompaktse esituse (ComCNN). Selle võrgu väljundit töötleb seejärel standardkoodek (nt JPEG). Pärast kodeki poolt töötlemist edastatakse pilt teise võrku, mis "parandab" kodekist pärineva pildi, püüdes taastada algset pilti. Autorid andsid sellele võrgule nimeks Reconstructive CNN (RecCNN). Nagu GAN-id, koolitatakse mõlemat võrku iteratiivselt.

AI kasutamine piltide üle tihendamiseks
ComCNN Kompaktne esitus edastatakse standardkoodekile

AI kasutamine piltide üle tihendamiseks
RecCNN. ComCNN-i väljundit suurendatakse ja see suunatakse RecCNN-ile, mis püüab ülejäänud osa õppida

Kodeki väljundit suurendatakse ja seejärel edastatakse RecCNN-ile. RecCNN püüab pilti renderdada võimalikult originaalilähedaselt.

AI kasutamine piltide üle tihendamiseks
Piltide täieliku tihendamise raamistik. Co(.) on pildi tihendamise algoritm. Autorid kasutasid JPEG, JPEG2000 ja BPG

Mis on jääk?

Ülejäänud osa võib pidada järeltöötlusetapiks kodeki poolt dekodeeritava pildi "parandamiseks". Omades maailma kohta palju "teavet", saab närvivõrk teha kognitiivseid otsuseid selle kohta, mida parandada. See idee põhineb jääkõpe, lugege üksikasju, mille kohta saate siin.

Kaotamise funktsioonid

Kahte kadufunktsiooni kasutatakse, kuna meil on kaks närvivõrku. Esimene neist, ComCNN, on märgistatud L1 ja on määratletud järgmiselt:

AI kasutamine piltide üle tihendamiseks
ComCNN-i kadumise funktsioon

Seletus

See võrrand võib tunduda keeruline, kuid tegelikult on see standard (ruutkeskmine viga) MSE. ||² tähendab nende ümbritsetud vektori normi.

AI kasutamine piltide üle tihendamiseks
Võrrand 1.1

Cr tähistab ComCNN-i väljundit. θ tähistab ComCNN-i parameetrite õpitavust, XK on sisendpilt

AI kasutamine piltide üle tihendamiseks
Võrrand 1.2

Re() tähistab RecCNN-i. See võrrand lihtsalt edastab võrrandi 1.1 tähenduse RecCNN-ile. θ tähistab RecCNN-i treenitavaid parameetreid (müts peal tähendab, et parameetrid on fikseeritud).

Intuitiivne definitsioon

Võrrand 1.0 paneb ComCNN-i oma kaalu muutma, nii et RecCNN-iga uuesti loomisel näeb lõplik pilt välja sisendpildiga võimalikult sarnane. Teine RecCNN-i kadufunktsioon on määratletud järgmiselt:

AI kasutamine piltide üle tihendamiseks
Võrrand 2.0

Seletus

Jällegi võib funktsioon tunduda keeruline, kuid see on enamasti tavaline närvivõrgu kadumise funktsioon (MSE).

AI kasutamine piltide üle tihendamiseks
Võrrand 2.1

Co() tähendab koodeki väljundit, x, mille peal on müts, tähendab ComCNN väljundit. θ2 on RecCNN-i treenitavad parameetrid, res() on lihtsalt RecCNNi jääkväljund. Väärib märkimist, et RecCNN on koolitatud Co() ja sisendkujutise erinevuse kohta, kuid mitte sisendkujutise osas.

Intuitiivne definitsioon

Võrrand 2.0 paneb RecCNN-i oma kaalu muutma, et väljund näeks välja sisendpildiga võimalikult sarnane.

Koolituse skeem

Mudeleid koolitatakse iteratiivselt, nagu GAN. Esimese mudeli raskused fikseeritakse teise mudeli kaalude uuendamise ajal, seejärel teise mudeli raskused fikseeritakse esimese mudeli treenimise ajal.

Testid

Autorid võrdlesid oma meetodit olemasolevate meetoditega, sealhulgas lihtsate koodekitega. Nende meetod toimib paremini kui teised, säilitades samal ajal suure kiiruse sobival riistvaral. Lisaks püüdsid autorid kasutada ainult ühte kahest võrgust ja märkisid jõudluse langust.

AI kasutamine piltide üle tihendamiseks
Struktuurilise sarnasuse indeksi võrdlus (SSIM). Kõrged väärtused näitavad paremat sarnasust originaaliga. Paks tüüp tähistab autorite töö tulemust

Järeldus

Vaatlesime uut viisi sügava õppimise rakendamiseks piltide tihendamisel ja rääkisime võimalusest kasutada närvivõrke ülesannetes, mis on lisaks "üldistele" ülesannetele, nagu piltide klassifitseerimine ja keeletöötlus. See meetod ei ole mitte ainult kaasaegsetele nõuetele madalam, vaid võimaldab ka pilte palju kiiremini töödelda.

Närvivõrkude õppimine on muutunud lihtsamaks, kuna tegime spetsiaalselt Habravchani jaoks sooduskoodi HABR, andes bänneril märgitud allahindlusele lisaks 10% allahindlust.

AI kasutamine piltide üle tihendamiseks

Rohkem kursusi

Esiletõstetud artiklid

Allikas: www.habr.com

Lisa kommentaar