Сжатие с помощью MLP, CNN и GAN

В последние годы методы сжатия изображений и видео значительно продвинулись вперед. Однако большинство методов сжатия по-прежнему не справляются с огромным ростом объема мультимедийных данных. Прочтите, чтобы узнать, как глубокое обучение (DL) может помочь решить проблемы традиционных структур сжатия.

Краткий обзор сжатия изображений и видео

Сжатие позволяет доставлять высококачественные изображения и видео с ограничениями сетей передачи и хранения. По сути, сжатие удаляет избыточную информацию из файлов мультимедиа.

Например, пространственная избыточность - это дублированные пиксели неподвижного изображения. Чтобы уменьшить пространственную избыточность, методы сжатия используют меньшее количество битов для получения похожих пикселей. Ранние методы сжатия изображений, такие как Хаффман, уменьшали статистическую избыточность с помощью методов энтропийного кодирования. Позже методы кодирования пространственной частоты, такие как дискретное косинусное преобразование (DCT), уменьшили энергию изображения в низкочастотной области.

Стандарты сжатия, такие как JPEG, используют домен DCT для определения областей изображения, которые люди считают одинаковыми. Человеческий глаз не может видеть разницу между всеми возможными цветами или воспринимать изменения высокой интенсивности.

Сильные изменения и мелкие резкие детали изображения становятся высокими частотами в DCT. Поскольку человеческий глаз все равно не может видеть эти частоты, процесс сжатия игнорирует их. В результате вы можете представить одно и то же изображение в 16-битном цветовом пространстве вместо 24-битного.

Методы сжатия видео основаны на идее высокой корреляции последовательных кадров. Многие стандарты сжатия, такие как MPEG и H.264, уменьшают временную избыточность между кадрами, чтобы уменьшить размер видеофайла.

Однако в последнее время сверточные нейронные сети (CNN) достигли значительных успехов во многих областях, включая сжатие изображений и видео. Вы можете использовать CNN в качестве механизма извлечения функций, который может улучшить сжатие изображений и видео.

Сжатие изображений с глубоким обучением

Сжатие изображений на основе DL возникло в конце 1980-х годов с помощью таких методов, как многослойные персептроны (MLP), случайные нейронные сети и сверточные нейронные сети (CNN). Следующий список методов сжатия изображений организован в соответствии с хронологическим порядком развития техники нейронных сетей.

Сжатие на основе многослойного персептрона (MLP)

MLP состоит из входного слоя нейронов, нескольких скрытых слоев нейронов и последнего слоя выходных нейронов. Теоретические исследования показали, что MLP, построенный с более чем одним скрытым слоем, может быть полезен в таких сценариях, как сжатие данных и уменьшение размеров. Идея сжатия изображений MLP заключается в унитарном преобразовании всех пространственных данных.

Первый алгоритм сжатия изображений MLP был выпущен в 1988 году. Алгоритм учитывал традиционные этапы сжатия изображений, такие как преобразование пространственной области, квантование и двоичное кодирование, в качестве комплексной задачи оптимизации. Затем алгоритм использовал нейронную сеть разложения, чтобы найти оптимальную комбинацию двоичного кода на выходе сжатого потока битов. Однако эта стратегия не может зафиксировать параметры нейронной сети с переменной степенью сжатия.

В последующие годы алгоритм был дополнительно улучшен с использованием методов прогнозирования, которые аппроксимируют значение пикселя на основе значений его соседних пикселей. Затем модель MLP минимизирует среднеквадратичную ошибку между исходным и прогнозируемым пикселями за счет использования обратного распространения ошибки.

Сжатие на основе сверточной нейронной сети (CNN)

CNN превосходят традиционные алгоритмы компьютерного зрения за счет улучшенной производительности сверхвысокого разрешения и уменьшения артефактов сжатия. CNN используют операцию свертки для характеристики корреляции между соседними пикселями. Операции каскадной свертки аналогичны статистическим свойствам естественных изображений.

Однако модели CNN трудно включить в сквозное сжатие изображений. Обучение CNN зависит от алгоритмов обратного распространения ошибки и градиентного спуска. Проблема в том, что модуль квантования при сжатии изображений создает нулевые градиенты между функциями потерь, весами свертки и смещениями. В результате CNN перестает обновлять свои параметры.

Первая попытка реализовать сжатие изображений с помощью CNN была предпринята в 2016 году. Алгоритм состоит из двух модулей: анализа и синтеза преобразований для кодера и декодера. Преобразование анализа включает три этапа - свертку, субдискретизацию и делительную нормализацию. Каждый этап начинается с аффинной свертки:

vi(k) (m.n) = (hk,ij uj(k))(m,n) + ck,i

  • uj(k) - входной канал K-каскада в пространственном расположении (m, n)
  • hk,ij - параметр свертки
  • ck,i - смещение сверточной нейронной сети

Субдискретизированный результат свертки:

i(k) (m.n) = vi(k)(skm,skn)

  • где sk - коэффициент понижающей дискретизации.

Наконец, субдискретизированные сигналы вычисляются с помощью преобразования Generalized Divisive Normalization (GDN).

Сжатие на основе CNN улучшает показатели пикового отношения сигнал / шум (PSNR) и структурного подобия (SSIM) JPEG2000. Алгоритм был дополнительно улучшен за счет применения шкалы гиперприоров для оценки энтропии. В результате сжатие изображения обеспечивает производительность, аналогичную стандарту высокоэффективного кодирования видео (HEVC).

Сжатие на основе генеративной состязательной сети (GAN)

GAN - это глубокие нейронные сети, которые состоят из двух генеративных сетевых моделей, которые по существу противостоят друг другу. Алгоритм сжатия изображений на основе GAN был представлен в 2017 году.

Алгоритм 2017 создает сжатые файлы в 2,5 раза меньше, чем JPEG и JPEG200, в 2 раза меньше, чем WebP, и в 1,7 раза меньше, чем BPG. Кроме того, алгоритм может работать в режиме реального времени за счет использования ядер графического процессора для параллельных вычислений.

Метод сжатия GAN сжимает входное изображение в очень маленькое пространство функций. Затем генерирующая сеть реконструирует сжатое изображение по признакам.

Наиболее очевидное различие между сжатием изображений на основе GAN и CNN - это состязательная потеря, которая улучшает качество восстановленного изображения. Генеративная сеть и состязательная сеть обучаются одновременно, чтобы значительно повысить производительность генеративной модели.

Заключение

Сжатие с помощью глубоких нейронных сетей по-прежнему создает множество проблем, связанных с вычислительной сложностью и потреблением памяти. Однако глубокие нейронные сети оказались очень эффективными в понимании и представлении изображений и видео.

Атрибут parallel-friendly делает глубокие нейронные сети подходящими для интенсивных вычислительных задач на графических процессорах и TPU. Сетевые подходы к сквозной оптимизации более гибкие, чем другие методы. Методы, основанные на глубоких нейронных сетях, можно быстро оптимизировать или настраивать. Нейронные сети имеют большой потенциал для дальнейшего улучшения проблем сжатия изображений и видео, таких как PSNR.

Примечание редактора: Heartbeat - это онлайн-публикация и сообщество, созданное авторами и посвященное предоставлению первоклассных образовательных ресурсов для специалистов по науке о данных, машинному обучению и глубокому обучению. Мы стремимся поддерживать и вдохновлять разработчиков и инженеров из всех слоев общества.

Независимо от редакции, Heartbeat спонсируется и публикуется Comet, платформой MLOps, которая позволяет специалистам по обработке данных и группам машинного обучения отслеживать, сравнивать, объяснять и оптимизировать свои эксперименты. Мы платим участникам и не продаем рекламу.

Если вы хотите внести свой вклад, отправляйтесь на наш призыв к участникам. Вы также можете подписаться на наши еженедельные информационные бюллетени (Deep Learning Weekly и Comet Newsletter), присоединиться к нам в » «Slack и подписаться на Comet в Twitter и LinkedIn для получения ресурсов, событий и гораздо больше, что поможет вам быстрее и лучше строить модели машинного обучения.