Utilitzant la IA per sobrecomprimir imatges

Utilitzant la IA per sobrecomprimir imatges
Els algorismes basats en dades com les xarxes neuronals han pres el món per asalto. El seu desenvolupament està impulsat per diverses raons, com ara maquinari barat i potent i grans quantitats de dades. Actualment, les xarxes neuronals estan al capdavant de tot allò relacionat amb tasques “cognitives” com ara el reconeixement d'imatges, la comprensió del llenguatge natural, etc. Però no s'han de limitar a aquestes tasques. Aquest material descriu un mètode per comprimir imatges mitjançant xarxes neuronals mitjançant aprenentatge residual. L'enfocament que es presenta a l'article funciona més ràpid i millor que els còdecs estàndard. Esquemes, equacions i, per descomptat, una taula amb proves sota el tall.

Aquest article es basa en això treball. Se suposa que esteu familiaritzat amb les xarxes neuronals i els seus conceptes convolució и funció de pèrdua.

Què és la compressió d'imatges i en quins tipus hi ha?

La compressió d'imatge és el procés de transformació d'una imatge perquè ocupi menys espai. Simplement emmagatzemar imatges ocuparia molt d'espai, de manera que hi ha còdecs com JPEG i PNG que pretenen reduir la mida de la imatge original.

Com sabeu, hi ha dos tipus de compressió d'imatge: cap pèrdua и amb pèrdues. Com els noms suggereixen, la compressió sense pèrdues pot recuperar les dades de la imatge original, mentre que la compressió amb pèrdues perd algunes dades durant la compressió. per exemple, els JPG són algorismes amb pèrdua [aprox. traducció - Bàsicament, tampoc no ens oblidem del JPEG sense pèrdues], i PNG és un algorisme sense pèrdues.

Utilitzant la IA per sobrecomprimir imatges
Comparació de compressió sense pèrdues i amb pèrdues

Tingueu en compte que la imatge de la dreta té molts artefactes en blocs. Aquesta és informació perduda. Els píxels adjacents de colors similars es comprimeixen com una sola àrea per estalviar espai, però la informació sobre els píxels reals es perd. Per descomptat, els algorismes utilitzats en còdecs JPEG, PNG, etc. són molt més complexos, però aquest és un bon exemple intuïtiu de compressió amb pèrdues. La compressió sense pèrdues és bona, però els fitxers comprimits sense pèrdues ocupen molt d'espai al disc. Hi ha maneres més eficients de comprimir imatges sense perdre molta informació, però són bastant lentes i molts utilitzen enfocaments iteratius. Això vol dir que no es poden executar en paral·lel en diversos nuclis de CPU o GPU. Aquesta limitació els fa totalment impracticables per a l'ús quotidià.

Entrada de xarxa neuronal convolucional

Si cal calcular alguna cosa i els càlculs poden ser aproximats, afegiu xarxa neuronal. Els autors van utilitzar una xarxa neuronal convolucional bastant estàndard per millorar la compressió d'imatges. El mètode presentat no només funciona a la par de les millors solucions (si no millor), també pot utilitzar la computació paral·lela, donant lloc a un augment espectacular de la velocitat. El motiu és que les xarxes neuronals convolucionals (CNN) són molt bones per extreure informació espacial de les imatges, que després es representen d'una forma més compacta (per exemple, només es conserven els bits "importants" de la imatge). Els autors volien utilitzar aquesta característica de CNN per representar millor les imatges.

arquitectura

Els autors van proposar una xarxa dual. La primera xarxa pren una imatge com a entrada i genera una representació compacta (ComCNN). La sortida d'aquesta xarxa és processada per un còdec estàndard (com ara JPEG). Un cop processada pel còdec, la imatge s'envia a una segona xarxa, que "corregeix" la imatge del còdec en un intent de retornar la imatge original. Els autors van anomenar aquesta xarxa una CNN de reconstrucció (RecCNN). Igual que les GAN, ambdues xarxes s'entrenen de manera iterativa.

Utilitzant la IA per sobrecomprimir imatges
Representació compacta de ComCNN transferida a còdec estàndard

Utilitzant la IA per sobrecomprimir imatges
RecCNN. La sortida de ComCNN s'incrementa i s'alimenta a RecCNN, que intentarà aprendre la resta

La sortida del còdec s'incrementa i després s'alimenta a RecCNN. RecCNN intentarà sortir una imatge que sigui el més semblant possible a l'original.

Utilitzant la IA per sobrecomprimir imatges
Marc de compressió d'imatges d'extrem a extrem. Co(.) és un algorisme de compressió d'imatges. Els autors van utilitzar JPEG, JPEG2000 i BPG

Quina és la resta?

La resta es pot considerar com un pas de postprocessament per "millorar" la imatge que està descodificant el còdec. Amb molta "informació" sobre el món, una xarxa neuronal pot prendre decisions cognitives sobre què arreglar. Aquesta idea es basa en formació residual, llegiu els detalls sobre els quals podeu aquí.

Funcions de pèrdua

S'utilitzen dues funcions de pèrdua perquè tenim dues xarxes neuronals. El primer d'ells, ComCNN, s'anomena L1 i es defineix de la següent manera:

Utilitzant la IA per sobrecomprimir imatges
Funció de pèrdua per a ComCNN

Explicació

Aquesta equació pot semblar complicada, però en realitat és estàndard (error quadrat mitjà) MSE. ||² significa la norma del vector que inclouen.

Utilitzant la IA per sobrecomprimir imatges
Equació 1.1

Cr denota la sortida de ComCNN. θ denota la capacitat d'entrenament dels paràmetres ComCNN, XK és la imatge d'entrada

Utilitzant la IA per sobrecomprimir imatges
Equació 1.2

Re() significa RecCNN. Aquesta equació simplement passa el valor de l'equació 1.1 a RecCNN. θ denota els paràmetres entrenables de RecCNN (la tapa de dalt significa que els paràmetres estan fixos).

Definició intuïtiva

L'equació 1.0 obligarà a ComCNN a canviar els seus pesos de manera que, quan es reconstrueix amb RecCNN, la imatge final sembli tan semblant com sigui possible a la imatge d'entrada. La segona funció de pèrdua de RecCNN es defineix de la següent manera:

Utilitzant la IA per sobrecomprimir imatges
Equació 2.0

Explicació

De nou, la funció pot semblar complexa, però és en la seva major part una funció de pèrdua de xarxa neuronal (MSE) estàndard.

Utilitzant la IA per sobrecomprimir imatges
Equació 2.1

Co() significa sortida del còdec, x amb una tapa a la part superior significa sortida ComCNN. θ2 són els paràmetres entrenables de RecCNN, res() és simplement la sortida residual de RecCNN. Val la pena assenyalar que RecCNN està entrenat sobre la diferència entre Co() i la imatge d'entrada, però no sobre la imatge d'entrada.

Definició intuïtiva

L'equació 2.0 obligarà RecCNN a canviar els seus pesos perquè la sortida sembli el més semblant possible a la imatge d'entrada.

Esquema d'aprenentatge

Els models s'entrenen de manera iterativa, de manera similar a GAN. Els pesos del primer model es fixen mentre s'actualitzen els pesos del segon model, i després es fixen els pesos del segon model mentre s'entrena el primer model.

Proves

Els autors van comparar el seu mètode amb els mètodes existents, inclosos els còdecs simples. El seu mètode funciona millor que altres mantenint una alta velocitat al maquinari adequat. A més, els autors van intentar utilitzar només una de les dues xarxes i van observar una caiguda del rendiment.

Utilitzant la IA per sobrecomprimir imatges
Comparació de l'índex de semblança estructural (SSIM). Els valors alts indiquen una millor similitud amb l'original. Els resultats del treball dels autors es destaquen en negreta.

Conclusió

Vam analitzar una nova manera d'utilitzar l'aprenentatge profund per a la compressió d'imatges i vam parlar de la possibilitat d'utilitzar xarxes neuronals en tasques més enllà de les "generals", com la classificació d'imatges i el processament del llenguatge. Aquest mètode no només no és inferior als requisits moderns, sinó que també us permet processar imatges molt més ràpidament.

S'ha tornat més fàcil estudiar les xarxes neuronals, perquè hem creat un codi promocional especialment per als residents de Khabra HABR, donant un 10% de descompte addicional al descompte indicat al banner.

Utilitzant la IA per sobrecomprimir imatges

Més cursos

Articles destacats

Font: www.habr.com

Afegeix comentari