AI naudojimas vaizdams perspausti

AI naudojimas vaizdams perspausti
Duomenimis pagrįsti algoritmai, tokie kaip neuroniniai tinklai, užvaldė pasaulį. Jų plėtrą lemia kelios priežastys, įskaitant pigią ir galingą aparatinę įrangą bei didžiulius duomenų kiekius. Neuroniniai tinklai šiuo metu yra priešakyje visko, kas susiję su „kognityvinėmis“ užduotimis, tokiomis kaip vaizdo atpažinimas, natūralios kalbos supratimas ir kt. Tačiau jie neturėtų apsiriboti tokiomis užduotimis. Šioje medžiagoje aprašomas vaizdų suspaudimo metodas naudojant neuroninius tinklus, naudojant liekamąjį mokymąsi. Straipsnyje pateiktas metodas veikia greičiau ir geriau nei standartiniai kodekai. Schemos, lygtys ir, žinoma, lentelė su testais po pjūviu.

Šis straipsnis yra pagrįstas tai dirbti. Daroma prielaida, kad esate susipažinęs su neuroniniais tinklais ir jų sąvokomis konvoliucija и praradimo funkcija.

Kas yra vaizdo glaudinimas ir kokie jo tipai?

Vaizdo glaudinimas – tai vaizdo transformavimo procesas, kad jis užimtų mažiau vietos. Paprasčiausiai vaizdų saugojimas užimtų daug vietos, todėl yra kodekų, tokių kaip JPEG ir PNG, kuriais siekiama sumažinti pradinio vaizdo dydį.

Kaip žinote, yra dviejų tipų vaizdo glaudinimas: jokių nuostolių и su nuostoliais. Kaip rodo pavadinimai, glaudinant be nuostolių galima atkurti pradinius vaizdo duomenis, o praradus glaudinant, kai kurie duomenys prarandami glaudinant. pavyzdžiui, JPG yra nuostolingi algoritmai [apytiksliai. vertimas - iš esmės taip pat nepamirškime apie be nuostolių JPEG], o PNG yra be nuostolių algoritmas.

AI naudojimas vaizdams perspausti
Nenuostolingo ir nuostolingo suspaudimo palyginimas

Atminkite, kad paveikslėlyje dešinėje yra daug blokuotų artefaktų. Tai yra prarasta informacija. Gretimi panašių spalvų pikseliai suglaudinami kaip viena sritis taupant vietą, tačiau prarandama informacija apie tikrus pikselius. Žinoma, JPEG, PNG ir kt. kodekuose naudojami algoritmai yra daug sudėtingesni, tačiau tai yra geras intuityvus nuostolingo glaudinimo pavyzdys. Suspaudimas be nuostolių yra geras, tačiau be nuostolių suspausti failai užima daug vietos diske. Yra veiksmingesnių būdų suglaudinti vaizdus neprarandant daug informacijos, tačiau jie yra gana lėti ir daugelis naudoja iteracinius metodus. Tai reiškia, kad jų negalima paleisti lygiagrečiai keliuose CPU arba GPU branduoliuose. Šis apribojimas daro juos visiškai nepraktiškus kasdieniam naudojimui.

Konvoliucinio neuroninio tinklo įvestis

Jei ką nors reikia paskaičiuoti ir skaičiavimai gali būti apytiksliai, pridėkite neuroninis tinklas. Autoriai naudojo gana standartinį konvoliucinį neuroninį tinklą, kad pagerintų vaizdo glaudinimą. Pateiktas metodas ne tik prilygsta geriausiems sprendimams (jei ne geresnis), bet ir gali naudoti lygiagretųjį skaičiavimą, todėl sparta labai padidėja. Priežastis ta, kad konvoliuciniai neuroniniai tinklai (CNN) labai gerai išgauna erdvinę informaciją iš vaizdų, kurie vėliau pateikiami kompaktiškesniu pavidalu (pavyzdžiui, išsaugomi tik „svarbūs“ vaizdo bitai). Autoriai norėjo panaudoti šią CNN funkciją, kad geriau atvaizduotų vaizdus.

Architektūra

Autoriai pasiūlė dvigubą tinklą. Pirmasis tinklas paima vaizdą kaip įvestį ir sukuria kompaktišką vaizdą (ComCNN). Tada šio tinklo išvestis apdorojama standartiniu kodeku (pvz., JPEG). Apdorojus kodeku, vaizdas siunčiamas į antrą tinklą, kuris „pataiso“ vaizdą iš kodeko, bandydamas grąžinti pradinį vaizdą. Autoriai šį tinklą pavadino rekonstrukcijos CNN (RecCNN). Kaip ir GAN, abu tinklai yra treniruojami iteratyviai.

AI naudojimas vaizdams perspausti
ComCNN Kompaktiškas vaizdas perkeltas į standartinį kodeką

AI naudojimas vaizdams perspausti
RecCNN. ComCNN išvestis padidinama ir perduodama RecCNN, kuri bandys išmokti likusią dalį

Kodeko išvestis padidinama ir perduodama į RecCNN. RecCNN bandys išvesti vaizdą, kuris būtų kuo panašesnis į originalą.

AI naudojimas vaizdams perspausti
Nuo galo iki galo vaizdo glaudinimo sistema. Co(.) yra vaizdo glaudinimo algoritmas. Autoriai naudojo JPEG, JPEG2000 ir BPG

Kas yra likusi dalis?

Likusią dalį galima įsivaizduoti kaip papildomo apdorojimo žingsnį, skirtą „patobulinti“ kodeko iššifruojamą vaizdą. Turėdamas daug „informacijos“ apie pasaulį, neuroninis tinklas gali priimti pažintinius sprendimus, ką taisyti. Ši idėja pagrįsta likęs mokymas, perskaitykite išsamią informaciją, apie kurią galite čia.

Praradimo funkcijos

Naudojamos dvi praradimo funkcijos, nes turime du neuroninius tinklus. Pirmasis iš jų, ComCNN, pažymėtas L1 ir apibrėžiamas taip:

AI naudojimas vaizdams perspausti
„ComCNN“ praradimo funkcija

Paaiškinimas

Ši lygtis gali atrodyti sudėtinga, tačiau iš tikrųjų ji yra standartinė (vidutinė kvadrato paklaida) MSE. ||² reiškia vektoriaus, kurį jie apima, normą.

AI naudojimas vaizdams perspausti
1.1 lygtis

Cr reiškia ComCNN išvestį. θ reiškia ComCNN parametrų apmokomumą, XK yra įvesties vaizdas

AI naudojimas vaizdams perspausti
1.2 lygtis

Re() reiškia RecCNN. Ši lygtis tiesiog perduoda 1.1 lygties reikšmę RecCNN. θ žymi treniruojamus RecCNN parametrus (viršuje esantis dangtelis reiškia, kad parametrai yra fiksuoti).

Intuityvus apibrėžimas

1.0 lygtis privers ComCNN pakeisti savo svorį taip, kad atkūrus naudojant RecCNN galutinis vaizdas atrodytų kuo panašesnis į įvesties vaizdą. Antroji RecCNN praradimo funkcija apibrėžiama taip:

AI naudojimas vaizdams perspausti
2.0 lygtis

Paaiškinimas

Vėlgi, funkcija gali atrodyti sudėtinga, tačiau dažniausiai tai yra standartinė neuroninio tinklo praradimo funkcija (MSE).

AI naudojimas vaizdams perspausti
2.1 lygtis

Co() reiškia kodeko išvestį, x su dangteliu viršuje reiškia ComCNN išvestį. θ2 yra mokomi RecCNN parametrai, res() yra tiesiog likutinė RecCNN išvestis. Verta paminėti, kad RecCNN yra apmokytas skirtumu tarp Co () ir įvesties vaizdo, bet ne įvesties vaizdo.

Intuityvus apibrėžimas

2.0 lygtis privers RecCNN pakeisti savo svorį, kad išvestis atrodytų kuo panašesnė į įvesties vaizdą.

Mokymosi schema

Modeliai treniruojami iteratyviai, panašiai kaip GAN. Pirmojo modelio svoriai fiksuojami, o antrojo modelio svoriai atnaujinami, tada antrojo modelio svoriai fiksuojami, kol pirmasis modelis treniruojamas.

Testai

Autoriai palygino savo metodą su esamais metodais, įskaitant paprastus kodekus. Jų metodas veikia geriau nei kiti, išlaikant didelį atitinkamos aparatinės įrangos greitį. Be to, autoriai bandė naudoti tik vieną iš dviejų tinklų ir pastebėjo našumo sumažėjimą.

AI naudojimas vaizdams perspausti
Struktūrinio panašumo indekso (SSIM) palyginimas. Didelės vertės rodo didesnį panašumą į originalą. Autorių darbo rezultatai paryškinti pusjuodžiu šriftu.

išvada

Mes pažvelgėme į naują būdą, kaip naudoti gilųjį mokymąsi vaizdų glaudinimui, ir kalbėjome apie galimybę naudoti neuroninius tinklus ne tik „bendrosiose“ užduotyse, tokiose kaip vaizdų klasifikavimas ir kalbos apdorojimas. Šis metodas ne tik nenusileidžia šiuolaikiniams reikalavimams, bet ir leidžia daug greičiau apdoroti vaizdus.

Tyrinėti neuroninius tinklus tapo lengviau, nes specialiai Chabros gyventojams sukūrėme reklaminį kodą RAGAŠAS, suteikiant papildomą 10% nuolaidą reklamjuoste nurodytai nuolaidai.

AI naudojimas vaizdams perspausti

Daugiau kursų

Teminiai straipsniai

Šaltinis: www.habr.com

Добавить комментарий