Usando AI para sobrecomprimir imaxes

Usando AI para sobrecomprimir imaxes
Algoritmos baseados en datos como as redes neuronais tomaron o mundo por asalto. O seu desenvolvemento débese a varias razóns, incluíndo equipos baratos e potentes e unha gran cantidade de datos. As redes neuronais están na actualidade á cabeza de todo o relacionado con tarefas “cognitivas” como o recoñecemento de imaxes, a comprensión da linguaxe natural, etc. Pero non deben limitarse a tales tarefas. Este artigo fala de como comprimir imaxes usando redes neuronais, utilizando aprendizaxe residual. O enfoque presentado no artigo é máis rápido e mellor que os códecs estándar. Esquemas, ecuacións e, por suposto, unha táboa con probas baixo o corte.

Este artigo baséase en isto traballo. Suponse que estás familiarizado coas redes neuronais e os seus conceptos. convolución и función de perda.

Que é a compresión de imaxes e como funciona?

A compresión de imaxe é o proceso de conversión dunha imaxe para que ocupe menos espazo. Simplemente almacenar imaxes ocuparía moito espazo, polo que hai códecs como JPEG e PNG que pretenden reducir o tamaño da imaxe orixinal.

Como sabes, hai dous tipos de compresión de imaxes: sen perda и con perdas. Como suxiren os nomes, a compresión sen perdas pode reter os datos orixinais da imaxe, mentres que a compresión con perdas perde algúns datos durante a compresión. por exemplo, os JPG son algoritmos con perdas [aprox. transl. - basicamente, tampouco nos esquezamos do JPEG sen perdas], e PNG é un algoritmo sen perdas.

Usando AI para sobrecomprimir imaxes
Comparación de compresión con perdas e sen perdas

Teña en conta que hai moitos artefactos en bloques na imaxe da dereita. Esta é información perdida. Os píxeles veciños de cores similares comprímense como unha única área para aforrar espazo, pero pérdese a información sobre os píxeles reais. Por suposto, os algoritmos utilizados nos códecs JPEG, PNG, etc. son moito máis complexos, pero este é un bo exemplo intuitivo de compresión con perdas. A compresión sen perdas é boa, pero os ficheiros comprimidos sen perdas ocupan moito espazo no disco. Hai mellores formas de comprimir imaxes sen perder moita información, pero son bastante lentas e moitos usan enfoques iterativos. Isto significa que non se poden executar en paralelo en varios núcleos de CPU ou GPU. Esta limitación fai que sexan completamente impracticables no uso cotián.

Entrada de rede neuronal convolucional

Se hai que calcular algo e os cálculos poden ser aproximados, engade rede neuronal. Os autores utilizaron unha rede neuronal convolucional bastante estándar para mellorar a compresión de imaxes. O método presentado non só funciona á par das mellores solucións (se non mellor), tamén pode usar computación paralela, o que leva a un aumento dramático da velocidade. A razón é que as redes neuronais convolucionais (CNN) son moi boas para extraer información espacial das imaxes, que logo se presentan nunha forma máis compacta (por exemplo, só se conservan os bits "importantes" da imaxe). Os autores querían utilizar esta capacidade da CNN para representar mellor as imaxes.

Arquitectura

Os autores propuxeron unha rede dobre. A primeira rede toma unha imaxe como entrada e xera unha representación compacta (ComCNN). A saída desta rede é entón procesada por un códec estándar (por exemplo, JPEG). Despois de ser procesada polo códec, a imaxe pásase a unha segunda rede, que "repara" a imaxe do códec nun intento de devolver a imaxe orixinal. Os autores chamaron a esta rede Reconstructive CNN (RecCNN). Do mesmo xeito que as GAN, ambas redes adestran de forma iterativa.

Usando AI para sobrecomprimir imaxes
A representación ComCNN Compact pásase a un códec estándar

Usando AI para sobrecomprimir imaxes
RecCNN. A saída de ComCNN amplíase e entrégase a RecCNN, que tentará aprender o resto

A saída do códec é escalada e despois pasa a RecCNN. RecCNN tentará renderizar a imaxe o máis próxima posible á orixinal.

Usando AI para sobrecomprimir imaxes
Marco de compresión de imaxes de extremo a extremo. Co(.) é un algoritmo de compresión de imaxes. Os autores utilizaron JPEG, JPEG2000 e BPG

Que é un resto?

O resto pódese considerar como un paso de post-procesamento para "mellorar" a imaxe que está a ser decodificada polo códec. Ao ter moita "información" sobre o mundo, unha rede neuronal pode tomar decisións cognitivas sobre que arranxar. Esta idea baséase en aprendizaxe residual, le os detalles sobre os que podes aquí.

Funcións de perda

As dúas funcións de perda utilízanse porque temos dúas redes neuronais. O primeiro deles, ComCNN, denomínase L1 e defínese do seguinte xeito:

Usando AI para sobrecomprimir imaxes
Función de perda para ComCNN

Explicación

Esta ecuación pode parecer complicada, pero en realidade é o estándar (erro cuadrático medio) MSE. ||² significa a norma do vector que encerran.

Usando AI para sobrecomprimir imaxes
Ecuación 1.1

Cr denota a saída de ComCNN. θ denota a capacidade de aprendizaxe dos parámetros ComCNN, XK é a imaxe de entrada

Usando AI para sobrecomprimir imaxes
Ecuación 1.2

Re() significa RecCNN. Esta ecuación simplemente transmite o significado da ecuación 1.1 a RecCNN. θ denota os parámetros adestrables de RecCNN (un sombreiro na parte superior significa que os parámetros están fixos).

Definición intuitiva

A ecuación 1.0 fará que ComCNN cambie os seus pesos para que cando se recree con RecCNN, a imaxe final pareza o máis semellante posible á imaxe de entrada. A segunda función de perda RecCNN defínese do seguinte xeito:

Usando AI para sobrecomprimir imaxes
Ecuación 2.0

Explicación

De novo, a función pode parecer complicada, pero esta é na súa maior parte unha función de perda de rede neuronal (MSE) estándar.

Usando AI para sobrecomprimir imaxes
Ecuación 2.1

Co() significa saída de códec, x cun sombreiro na parte superior significa saída de ComCNN. θ2 son parámetros adestrables RecCNN, res() é só a saída residual de RecCNN. Paga a pena notar que RecCNN está adestrado na diferenza entre Co() e a imaxe de entrada, pero non na imaxe de entrada.

Definición intuitiva

A ecuación 2.0 fará que RecCNN cambie os seus pesos para que a saída pareza o máis semellante posible á imaxe de entrada.

Esquema de aprendizaxe

Os modelos son adestrados de forma iterativa, como GAN. Os pesos do primeiro modelo fíxanse mentres se actualizan os pesos do segundo modelo e, a continuación, os pesos do segundo modelo fíxanse mentres se adestra o primeiro modelo.

Probas

Os autores compararon o seu método cos métodos existentes, incluíndo códecs simples. O seu método funciona mellor que outros mantendo alta velocidade no hardware axeitado. Ademais, os autores intentaron utilizar só unha das dúas redes e observaron unha caída no rendemento.

Usando AI para sobrecomprimir imaxes
Comparación de índices de similitude estrutural (SSIM). Os valores altos indican unha mellor semellanza co orixinal. A letra negra indica o resultado do traballo dos autores

Conclusión

Analizamos unha nova forma de aplicar a aprendizaxe profunda á compresión de imaxes e falamos da posibilidade de utilizar redes neuronais en tarefas máis aló de tarefas "xerais" como a clasificación de imaxes e o procesamento da linguaxe. Este método non só non é inferior aos requisitos modernos, senón que tamén permite procesar imaxes moito máis rápido.

Aprender redes neuronais fíxose máis doado porque fixemos un código promocional especialmente para Habravchan HABR, dando un desconto adicional do 10% ao desconto indicado no banner.

Usando AI para sobrecomprimir imaxes

Máis cursos

Artigos destacados

Fonte: www.habr.com

Engadir un comentario