Përdorimi i AI për të mbingjeshur imazhet

Përdorimi i AI për të mbingjeshur imazhet
Algoritmet e drejtuara nga të dhënat si rrjetet nervore kanë pushtuar botën. Zhvillimi i tyre është për shkak të disa arsyeve, duke përfshirë pajisjet e lira dhe të fuqishme dhe një sasi të madhe të dhënash. Rrjetet nervore janë aktualisht në krye të gjithçkaje që lidhet me detyrat "konjitive", si njohja e imazheve, kuptimi i gjuhës natyrore, etj. Por ato nuk duhet të kufizohen në detyra të tilla. Ky artikull flet për mënyrën e kompresimit të imazheve duke përdorur rrjetet nervore, duke përdorur mësimin e mbetur. Qasja e paraqitur në artikull është më e shpejtë dhe më e mirë se kodekët standardë. Skemat, ekuacionet dhe, natyrisht, një tabelë me teste nën prerje.

Ky artikull bazohet në kjo puna. Supozohet se jeni njohur me rrjetet nervore dhe konceptet e tyre. konvolucioni и funksioni i humbjes.

Çfarë është kompresimi i imazhit dhe si funksionon?

Kompresimi i imazhit është procesi i konvertimit të një imazhi në mënyrë që të zërë më pak hapësirë. Thjesht ruajtja e imazheve do të merrte shumë hapësirë, kjo është arsyeja pse ka kodekë të tillë si JPEG dhe PNG që synojnë të zvogëlojnë madhësinë e imazhit origjinal.

Siç e dini, ekzistojnë dy lloje të kompresimit të imazhit: asnjë humbje и me humbje. Siç sugjerojnë emrat, kompresimi pa humbje mund të ruajë të dhënat origjinale të imazhit, ndërsa kompresimi me humbje humbet disa të dhëna gjatë kompresimit. për shembull, JPG janë algoritme me humbje [përafërsisht. përkth. - në thelb, le të mos harrojmë edhe për JPEG pa humbje], dhe PNG është një algoritëm pa humbje.

Përdorimi i AI për të mbingjeshur imazhet
Krahasimi i kompresimit pa humbje dhe atij me humbje

Vini re se ka shumë objekte të bllokuara në imazhin në të djathtë. Ky është informacion i humbur. Piksele fqinje me ngjyra të ngjashme janë të ngjeshura si një zonë e vetme për të kursyer hapësirë, por informacioni rreth pikselëve aktualë humbet. Sigurisht, algoritmet e përdorura në kodekët JPEG, PNG, etj. janë shumë më komplekse, por ky është një shembull i mirë intuitiv i kompresimit me humbje. Kompresimi pa humbje është i mirë, por skedarët e ngjeshur pa humbje zënë shumë hapësirë ​​në disk. Ka mënyra më të mira për të kompresuar imazhet pa humbur shumë informacion, por ato janë mjaft të ngadalta dhe shumë përdorin qasje përsëritëse. Kjo do të thotë se ato nuk mund të ekzekutohen paralelisht në bërthama të shumta CPU ose GPU. Ky kufizim i bën ato krejtësisht jopraktike në përdorimin e përditshëm.

Hyrja e rrjetit nervor konvolucional

Nëse diçka duhet të llogaritet dhe llogaritjet mund të jenë të përafërta, shtoni rrjeti nervor. Autorët përdorën një rrjet nervor konvolucionist mjaft standard për të përmirësuar kompresimin e imazhit. Metoda e paraqitur jo vetëm që funksionon në të njëjtin nivel me zgjidhjet më të mira (nëse jo më të mira), ajo gjithashtu mund të përdorë llogaritjen paralele, gjë që çon në një rritje dramatike të shpejtësisë. Arsyeja është se Rrjetet Neurale Convolutional (CNN) janë shumë të mira në nxjerrjen e informacionit hapësinor nga imazhet, të cilat më pas paraqiten në një formë më kompakte (për shembull, ruhen vetëm pjesët "e rëndësishme" të imazhit). Autorët donin të përdornin këtë aftësi të CNN për të përfaqësuar më mirë imazhet.

Arkitekturë

Autorët propozuan një rrjet të dyfishtë. Rrjeti i parë merr një imazh si hyrje dhe gjeneron një paraqitje kompakte (ComCNN). Dalja e këtij rrjeti përpunohet më pas nga një kodek standard (p.sh. JPEG). Pasi të përpunohet nga kodiku, imazhi kalon në një rrjet të dytë, i cili "rregullon" imazhin nga kodiku në një përpjekje për të kthyer imazhin origjinal. Autorët e quajtën këtë rrjet Rindërtues CNN (RecCNN). Ashtu si GAN-et, të dy rrjetet trajnohen në mënyrë të përsëritur.

Përdorimi i AI për të mbingjeshur imazhet
Përfaqësimi kompakt i ComCNN kalon në kodek standard

Përdorimi i AI për të mbingjeshur imazhet
RecCNN. Prodhimi i ComCNN është rritur dhe futet në RecCNN, i cili do të përpiqet të mësojë pjesën e mbetur

Dalja e kodekut rritet dhe më pas kalohet në RecCNN. RecCNN do të përpiqet të japë imazhin sa më afër origjinalit të jetë e mundur.

Përdorimi i AI për të mbingjeshur imazhet
Korniza e kompresimit të imazhit nga fundi në fund. Co(.) është një algoritëm i kompresimit të imazhit. Autorët përdorën JPEG, JPEG2000 dhe BPG

Çfarë është një mbetje?

Pjesa e mbetur mund të konsiderohet si një hap pas përpunimit për të "përmirësuar" imazhin që deshifrohet nga kodiku. Duke pasur shumë "informacione" për botën, një rrjet nervor mund të marrë vendime njohëse se çfarë të rregullojë. Kjo ide bazohet në mësimi i mbetur, lexoni detajet për të cilat mundeni këtu.

Funksionet e humbjes

Dy funksionet e humbjes përdoren sepse kemi dy rrjete nervore. E para prej tyre, ComCNN, është etiketuar L1 dhe përcaktohet si më poshtë:

Përdorimi i AI për të mbingjeshur imazhet
Funksioni i humbjes për ComCNN

Shpjegim

Ky ekuacion mund të duket i ndërlikuar, por në fakt është standardi (gabimi mesatar katror i rrënjës) MSE. ||² nënkupton normën e vektorit që ata mbyllin.

Përdorimi i AI për të mbingjeshur imazhet
Ekuacioni 1.1

Cr tregon daljen e ComCNN. θ tregon aftësinë për të mësuar të parametrave ComCNN, XK është imazhi hyrës

Përdorimi i AI për të mbingjeshur imazhet
Ekuacioni 1.2

Re() qëndron për RecCNN. Ky ekuacion thjesht përcjell kuptimin e ekuacionit 1.1 në RecCNN. θ tregon parametrat e trajnueshëm të RecCNN (një kapelë sipër do të thotë se parametrat janë fiksuar).

Përkufizim intuitiv

Ekuacioni 1.0 do të bëjë që ComCNN të ndryshojë peshat e tij në mënyrë që kur të rikrijohet me RecCNN, imazhi përfundimtar të duket sa më i ngjashëm me imazhin hyrës. Funksioni i dytë i humbjes RecCNN përcaktohet si më poshtë:

Përdorimi i AI për të mbingjeshur imazhet
Ekuacioni 2.0

Shpjegim

Përsëri, funksioni mund të duket i komplikuar, por ky është në pjesën më të madhe një funksion standard i humbjes së rrjetit nervor (MSE).

Përdorimi i AI për të mbingjeshur imazhet
Ekuacioni 2.1

Co() do të thotë dalje e kodikut, x me një kapelë sipër do të thotë dalje ComCNN. θ2 janë parametra të trajnueshëm nga RecCNN, res() është vetëm prodhimi i mbetur i RecCNN. Vlen të përmendet se RecCNN është trajnuar për ndryshimin midis Co() dhe imazhit të hyrjes, por jo në imazhin hyrës.

Përkufizim intuitiv

Ekuacioni 2.0 do të bëjë që RecCNN të ndryshojë peshat e tij në mënyrë që dalja të duket sa më e ngjashme me imazhin e hyrjes.

Skema e trajnimit

Modelet trajnohen në mënyrë të përsëritur, si GAN. Peshat e modelit të parë fiksohen ndërsa peshat e modelit të dytë janë duke u përditësuar, më pas peshat e modelit të dytë fiksohen ndërsa modeli i parë është duke u trajnuar.

testet

Autorët krahasuan metodën e tyre me metodat ekzistuese, duke përfshirë kodekët e thjeshtë. Metoda e tyre funksionon më mirë se të tjerët duke ruajtur shpejtësinë e lartë në harduerin e duhur. Për më tepër, autorët u përpoqën të përdornin vetëm një nga dy rrjetet dhe vunë re një rënie të performancës.

Përdorimi i AI për të mbingjeshur imazhet
Krahasimi i Indeksit të Ngjashmërisë Strukturore (SSIM). Vlerat e larta tregojnë një ngjashmëri më të mirë me origjinalin. Lloji i trashë tregon rezultatin e punës së autorëve

Përfundim

Ne shikuam një mënyrë të re për të aplikuar të mësuarit e thellë për kompresimin e imazhit dhe folëm për mundësinë e përdorimit të rrjeteve nervore në detyra përtej detyrave "të përgjithshme" si klasifikimi i imazheve dhe përpunimi i gjuhës. Kjo metodë jo vetëm që nuk është inferiore ndaj kërkesave moderne, por gjithashtu ju lejon të përpunoni imazhet shumë më shpejt.

Mësimi i rrjeteve nervore është bërë më i lehtë, sepse kemi bërë një kod promovues posaçërisht për Habravchan HABR, duke i dhënë 10% zbritje shtesë zbritjes së treguar në baner.

Përdorimi i AI për të mbingjeshur imazhet

Më shumë kurse

Artikuj të veçuar

Burimi: www.habr.com

Shto një koment