Brug af AI til superkomprimering af billeder

Brug af AI til superkomprimering af billeder
Data-driven algorithms, such as neural networks, have taken the world by storm. Their development is driven by several factors, including affordable and powerful hardware and vast amounts of data. Neural networks are currently at the forefront of all 'cognitive' tasks, such as image recognition, natural language understanding, and more. However, they should not be limited to these tasks. This material discusses how to compress images using neural networks through residual learning. The approach presented in the article works faster and better than standard codecs. Diagrams, equations, and, of course, a table of tests are included.

Denne artikel er baseret på denne work. It is assumed that you are familiar with neural networks and their concepts. convolution og loss function.

What is image compression and what types are there?

Image compression is the process of converting an image in such a way that it takes up less space. Simply storing images would take up a lot of space, which is why there are codecs like JPEG and PNG that aim to reduce the size of the original image.

As is known, there are two types of image compression: uden tab og lossy. As the names suggest, lossless compression allows for the recovery of the original image data, whereas lossy compression loses some data during compression. For example, JPG uses lossy algorithms [translator's note — mainly, let's not forget about lossless JPEG], while PNG is a lossless algorithm.

Brug af AI til superkomprimering af billeder
Comparison of lossless and lossy compression

Bemærk, at der til højre på billedet er mange blokartefakter. Dette er tabt information. Nabo-pixel med lignende farver komprimeres som et enkelt område for at spare plads, men herved går information om de faktiske pixel tabt. Algoritmerne anvendt i codecs som JPEG, PNG osv. er naturligvis meget mere komplekse, men dette er et godt intuitivt eksempel på tabsbaseret kompression. Tabfri kompression er godt, men tabfrie filer tager meget plads på disken. Der er mere effektive måder at komprimere billeder uden at miste meget information, men de er ret langsomme, og mange anvender iterativ tilgange. Dette betyder, at de ikke kan køres parallelt på flere kerner af CPU'en eller GPU'en. En sådan begrænsning gør dem helt upraktiske i daglig brug.

Indgang til den konvolutionelle neurale netværk

Hvis der er noget, der skal beregnes, og beregningerne kan være tilnærmede, så tilføj det neurale netværk. Forfatterne brugte et ret standard konvolutionelt neuralt netværk til at forbedre billedkomprimering. Den præsenterede metode fungerer ikke kun på niveau med de bedste løsninger (hvis ikke bedre), men den kan også anvende parallelle beregninger, hvilket fører til en drastisk stigning i hastigheden. Årsagen er, at konvolutionelle neurale netværk (CNN) er meget gode til at udtrække rumlig information fra billeder, som derefter repræsenteres i en mere kompakt form (f.eks. kun de 'vigtige' bits af billedet gemmes). Forfatterne ønskede at udnytte denne mulighed fra CNN for at bedre repræsentere billeder.

Arkitektur

Forfatterne foreslog et dobbelt netværk. Det første netværk modtager billedet som indgang og genererer en kompakt repræsentation (ComCNN). Udgangen fra dette netværk behandles derefter af en standard codec (f.eks. JPEG). Efter behandling af codec'en sendes billedet til det andet netværk, som 'retter' billedet fra codec'en i et forsøg på at genkende det oprindelige billede. Forfatterne kaldte dette netværk for den rekonstruerende CNN (RecCNN). Ligesom GAN trænes begge netværk iterativt.

Brug af AI til superkomprimering af billeder
ComCNN. Den kompakte repræsentation sendes til den standard codec

Brug af AI til superkomprimering af billeder
RecCNN. Udgangen fra ComCNN skaleres op og sendes til RecCNN, som vil forsøge at lære resten

Codecens output skaleres med stigende, og derefter overføres de til RecCNN. RecCNN vil forsøge at generere et billede, der ligner originalen så meget som muligt.

Brug af AI til superkomprimering af billeder
Gennemgående billedkomprimeringsramme. Co(.) repræsenterer en algoritme til billedkomprimering. Forfatterne anvendte JPEG, JPEG2000 og BPG.

Hvad er residualen?

Residualen kan betragtes som et postbehandlingsskridt for at "forbedre" det dekodede billede fra codec'en. Den neurale netværk har en større mængde "information" om verden og kan træffe kognitive beslutninger om, hvad der skal rettes. Denne idé er baseret på residual læring, som du kan læse detaljer om her.

Tabfunktioner

To tabfunktioner anvendes, fordi vi har to neurale netværk. Det første, ComCNN, er markeret som L1 og defineres som:

Brug af AI til superkomprimering af billeder
Tabfunktionen for ComCNN

, hvorfor ndots=5 i Kubernetes;

Denne ligning kan synes kompleks, men det er faktisk en standard (middel kvadreret fejl) MSE. ||² betyder normen af vektoren, som de indkapsler.

Brug af AI til superkomprimering af billeder
Ligning 1.1

Cr repræsenterer outputtet fra ComCNN. θ repræsenterer lærbarheden af parameterne i ComCNN, XK er det indgående billede.

Brug af AI til superkomprimering af billeder
Ligning 1.2

Re() refererer til RecCNN. Denne ligning videresender simpelthen værdien fra ligning 1.1 til RecCNN. θ repræsenterer de lærbare parametre i RecCNN (hatten ovenpå indikerer, at parametrene er faste).

Intuitiv definition

Ligning 1.0 vil få ComCNN til at ændre sine vægte, så det endelige billede efter rekonstruktion med RecCNN ser så meget ud som muligt som det indgående billede. Den anden tabfunktion RecCNN defineres som:

Brug af AI til superkomprimering af billeder
Ligning 2.0

, hvorfor ndots=5 i Kubernetes;

Igen kan funktionen synes kompleks, men det er stort set en standard tabfunktion for neurale netværk (MSE).

Brug af AI til superkomprimering af billeder
Ligning 2.1

Co() refererer til codecens output, x med en hat ovenpå indikerer outputtet fra ComCNN. θ2 er de lærbare parametre i RecCNN, res() repræsenterer simpelthen den residuale output fra RecCNN. Det skal bemærkes, at RecCNN trænes på forskellen mellem Co() og det indgående billede, men ikke på det indgående billede.

Intuitiv definition

Ligning 2.0 vil få RecCNN til at ændre sine vægte, så outputtet ser så meget ud som muligt som det indgående billede.

Læringsskema

Modellerne trænes iterativt, ligesom GANVægtene for den første model fastlægges, mens vægtene for den anden model opdateres, og derefter fastlægges vægtene for den anden model, mens den første model trænes.

Tests

Forfatterne sammenlignede deres metode med eksisterende metoder, herunder simple codecs. Deres metode fungerer bedre end de andre ved at opretholde høj hastighed på det relevante udstyr. Derudover forsøgte forfatterne at bruge kun et af de to netværk og bemærkede et fald i ydeevnen.

Brug af AI til superkomprimering af billeder
Sammenligning af strukturel lighed indeks (SSIM). Høje værdier angiver bedre lighed med originalen. Resultatet fra forfatterne er fremhævet med fed.

Konklusion

Vi har overvejet en ny måde at anvende dyb læring til billedkomprimering på, og vi har talt om muligheden for at bruge neurale netværk til opgaver udover de 'almindelige', som billedklassificering og sproglig behandling. Denne metode ikke alene opfylder de moderne krav, men gør det også muligt at behandle billeder meget hurtigere.

Det er blevet lettere at studere neurale netværk, for vi har lavet en rabatkode specielt til Habr-læsere. HABR, som giver yderligere 10% rabat på den rabat, der er angivet på banneret.

Brug af AI til superkomprimering af billeder

Flere kurser

Anbefalede artikler

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster