AI brûke om ôfbyldings te oerkomprimearjen

AI brûke om ôfbyldings te oerkomprimearjen
Data-oandreaune algoritmen lykas neurale netwurken hawwe de wrâld troch stoarm nommen. Har ûntwikkeling komt troch ferskate redenen, ynklusyf goedkeape en krêftige apparatuer en in enoarme hoemannichte gegevens. Neurale netwurken steane op it stuit op 'e foargrûn fan alles wat te krijen hat mei "kognitive" taken lykas byldherkenning, natuerlik taalferstean, ensfh. Mar se moatte net beheind wurde ta sokke taken. Dit artikel praat oer hoe't jo ôfbyldings kinne komprimearje mei neurale netwurken, mei residueel learen. De oanpak presintearre yn it artikel is rapper en better dan standert codecs. Regelingen, fergelikingen en, fansels, in tabel mei tests ûnder de besuniging.

Dit artikel is basearre op dit wurk. Der wurdt fan útgien dat jo bekend binne mei neurale netwurken en har begripen. konvolúsje и ferlies funksje.

Wat is ôfbyldingskompresje en hoe wurket it?

Ofbyldingskompresje is it proses fan it konvertearjen fan in ôfbylding sadat it minder romte nimt. It gewoan opslaan fan ôfbyldings soe in soad romte ynnimme, en dêrom binne d'r codecs lykas JPEG en PNG dy't fan doel binne de grutte fan 'e orizjinele ôfbylding te ferminderjen.

Lykas jo witte, binne d'r twa soarten ôfbyldingskompresje: gjin ferlies и mei ferliezen. Lykas de nammen suggerearje, kin lossless kompresje de orizjinele ôfbyldingsgegevens behâlde, wylst lossy kompresje guon gegevens ferliest by kompresje. bygelyks,, JPG binne lossy algoritmen [ca. transl. - yn prinsipe, lit ús ek net ferjitte oer lossless JPEG], en PNG is in lossless algoritme.

AI brûke om ôfbyldings te oerkomprimearjen
Fergeliking fan lossless en lossy kompresje

Tink derom dat d'r in protte blokige artefakten binne yn 'e ôfbylding oan' e rjochterkant. Dit is ferlerne ynformaasje. Neibuorjende piksels fan ferlykbere kleuren wurde komprimearre as ien gebiet om romte te besparjen, mar ynformaasje oer de eigentlike piksels is ferlern. Fansels, de algoritmen brûkt yn de JPEG, PNG, ensfh codecs binne folle komplekser, mar dit is in goed yntuïtyf foarbyld fan lossy kompresje. Lossless kompresje is goed, mar lossless komprimearre triemmen nimme in soad skiif romte. D'r binne bettere manieren om ôfbyldings te komprimearjen sûnder in soad ynformaasje te ferliezen, mar se binne frij stadich en in protte brûke iterative oanpak. Dit betsjut dat se net parallel kinne wurde útfierd op meardere CPU- as GPU-kearnen. Dizze beheining makket se folslein ûnpraktysk yn it deistich gebrûk.

Convolutional Neural Network input

As der wat moat wurde berekkene en de berekkeningen kinne likernôch wêze, add neurale netwurk. De auteurs brûkten in frij standert konvolúsjoneel neuronale netwurk om ôfbyldingskompresje te ferbetterjen. De presinteare metoade docht net allinich op par mei de bêste oplossingen (as net better), it kin ek parallele komputer brûke, wat liedt ta in dramatyske ferheging fan snelheid. De reden is dat Convolutional Neural Networks (CNN's) tige goed binne yn it heljen fan romtlike ynformaasje út bylden, dy't dan yn in kompakter foarm presintearre wurde (bygelyks binne allinich de "wichtige" bits fan it byld bewarre bleaun). De auteurs woene dizze CNN-mooglikheid brûke om de ôfbyldings better te representearjen.

arsjitektuer

De skriuwers stelden in dûbel netwurk foar. It earste netwurk nimt in ôfbylding as ynfier en genereart in kompakte fertsjintwurdiging (ComCNN). De útfier fan dit netwurk wurdt dan ferwurke troch in standert codec (bgl. JPEG). Nei't se ferwurke binne troch de codec, wurdt de ôfbylding trochjûn nei in twadde netwurk, dat de ôfbylding fan 'e codec "reparearret" yn in besykjen om de oarspronklike ôfbylding werom te jaan. De auteurs neamden dit netwurk Reconstructive CNN (RecCNN). Lykas GAN's, wurde beide netwurken iteratyf oplaat.

AI brûke om ôfbyldings te oerkomprimearjen
ComCNN Compact fertsjintwurdiging wurdt trochjûn oan standert codec

AI brûke om ôfbyldings te oerkomprimearjen
RecCNN. ComCNN-útfier wurdt opskaald en trochfierd nei RecCNN, dy't sil besykje de rest te learen

De codec-útfier wurdt opskaald en dan trochjûn oan RecCNN. RecCNN sil besykje de ôfbylding sa ticht mooglik by it orizjineel wer te jaan.

AI brûke om ôfbyldings te oerkomprimearjen
Ein-to-ein ôfbylding kompresje ramt. Co (.) is in byld kompresje algoritme. De auteurs brûkten JPEG, JPEG2000 en BPG

Wat is in rest?

De rest kin tocht wurde as in post-ferwurkingsstap om de ôfbylding te "ferbetterjen" dy't wurdt dekodearre troch de codec. Mei in protte "ynformaasje" oer de wrâld, kin in neural netwurk kognitive besluten meitsje oer wat te reparearjen. Dit idee is basearre op oerbleaune learen, lês de details oer dêr't jo kinne hjir.

Ferlies funksjes

De twa ferliesfunksjes wurde brûkt om't wy twa neurale netwurken hawwe. De earste fan dizze, ComCNN, wurdt markearre L1 en wurdt definiearre as folget:

AI brûke om ôfbyldings te oerkomprimearjen
Ferlies funksje foar ComCNN

Taljochting

Dizze fergeliking kin yngewikkeld lykje, mar it is eins de standert (root mean square error) MSE. ||² betsjut de noarm fan de fektor dy't se omfetsje.

AI brûke om ôfbyldings te oerkomprimearjen
Fergeliking 1.1

Cr jout de útfier fan ComCNN oan. θ jout de learberens fan ComCNN-parameters oan, XK is de ynfierôfbylding

AI brûke om ôfbyldings te oerkomprimearjen
Fergeliking 1.2

Re() stiet foar RecCNN. Dizze fergeliking bringt gewoan de betsjutting fan fergeliking 1.1 oer nei RecCNN. θ jout de RecCNN-trainbere parameters oan (in hoed boppe betsjut dat de parameters fêst binne).

Yntuïtive definysje

Fergeliking 1.0 sil ComCNN har gewichten feroarje, sadat by opnij oanmakke mei RecCNN, de definitive ôfbylding liket sa mooglik op 'e ynfierôfbylding. De twadde RecCNN-ferliesfunksje wurdt as folget definiearre:

AI brûke om ôfbyldings te oerkomprimearjen
Fergeliking 2.0

Taljochting

Wer, de funksje kin lykje yngewikkeld, mar dit is foar it grutste part in standert neural netwurk ferlies funksje (MSE).

AI brûke om ôfbyldings te oerkomprimearjen
Fergeliking 2.1

Co() betsjut codec útfier, x mei in hoed boppe betsjut ComCNN útfier. θ2 binne RecCNN trainable parameters, res() is gewoan de restútfier fan RecCNN. It is de muoite wurdich opskriuwen dat RecCNN wurdt oplaat op it ferskil tusken Co () en de ynfier ôfbylding, mar net op de ynfier ôfbylding.

Yntuïtive definysje

Fergeliking 2.0 sil RecCNN har gewichten feroarje sadat de útfier sa mooglik liket op it ynfierôfbylding.

Learskema

Modellen wurde oplaat iteratyf, lykas GAN. De gewichten fan it earste model wurde fêst wylst de gewichten fan it twadde model wurde bywurke, dan wurde de gewichten fan it twadde model fêst wylst it earste model wurdt oplaat.

Tests

De auteurs fergelike har metoade mei besteande metoaden, ynklusyf ienfâldige codecs. Harren metoade docht better as oaren wylst behâld fan hege snelheid op de passende hardware. Derneist besochten de auteurs mar ien fan 'e twa netwurken te brûken en konstatearren in drop yn prestaasjes.

AI brûke om ôfbyldings te oerkomprimearjen
Strukturele oerienkomst Index Comparison (SSIM). Hege wearden jouwe in bettere oerienkomst oan mei it orizjineel. Fet type jout it resultaat oan fan it wurk fan 'e auteurs

konklúzje

Wy seagen nei in nije manier om djip learen ta te passen op ôfbyldingskompresje, en prate oer de mooglikheid om neurale netwurken te brûken yn taken bûten "algemiene" taken lykas byldklassifikaasje en taalferwurking. Dizze metoade is net allinich net ynferior oan moderne easken, mar makket it ek mooglik om ôfbyldings folle flugger te ferwurkjen.

It learen fan neurale netwurken is makliker wurden, om't wy spesjaal in promo-koade makke hawwe foar Habravchan HABR, it jaan fan in ekstra 10% koarting oan de koarting oanjûn op de banner.

AI brûke om ôfbyldings te oerkomprimearjen

Mear kursussen

Featured Articles

Boarne: www.habr.com

Add a comment