Эта статья была изначально создана "AI Frontline", оригинальная ссылка:dwz.cn/7yzX0F
Автор | Туя Технология
Редактор | Винсент
Руководство по передовой ИИ:В последние годы глубокое обучение заняло доминирующее положение в области компьютерного зрения. Будь то распознавание изображений или воспроизведение в сверхвысоком разрешении, глубокое обучение стало важной технологией в исследовании изображений; теперь технология глубокого обучения вошла в область сжатия изображений. . В качестве примера возьмем Tiny Network Graphics (TNG), новейшую технологию сжатия изображений, разработанную Tuya Technology. В качестве ядра используется сверточная нейронная сеть с глубоким обучением. При условии сохранения того же качества изображения размер изображения составляет всего 45%. из JPEG.
В этой статье вы узнаете, как разрабатывать алгоритмы сжатия изображений с использованием технологии сверточных нейронных сетей с глубоким обучением.
Когда дело доходит до алгоритмов сжатия изображений, наиболее влиятельными технологиями сжатия изображений на рынке являются WebP и BPG.
WebP: формат файла изображения, запущенный Google в 2010 году и обеспечивающий как сжатие с потерями, так и сжатие без потерь. Он использует VP8 в качестве ядра кодирования и с ноября 2011 года может поддерживать функции цветопередачи без потерь и прозрачного цвета. В настоящее время Facebook, Ebay и другие веб-сайты используют этот формат изображения.
BPG: Формат изображения, запущенный Фабрисом Белларом, известным программистом и автором таких проектов, как ffmpeg и QEMU. Он использует HEVC в качестве ядра кодирования. При том же объеме размер файла BPG вдвое меньше, чем у JPEG. Кроме того, BPG также поддерживает 8-битные и 16-битные каналы и так далее. Хотя BPG имеет хороший эффект сжатия, патентная плата за HEVC очень высока, поэтому текущее использование на рынке относительно невелико.
С точки зрения эффекта сжатия BPG лучше, чем WebP, но патентные сборы, связанные с ядром HEVC, используемым BPG, делают невозможным его широкое использование на рынке. В этом случае на свет появилось применение глубокого обучения для разработки алгоритмов сжатия изображений.
Как разработать алгоритмы сжатия изображений с использованием технологии глубокого обучения
Одной из целей разработки алгоритма сжатия с помощью технологии глубокого обучения является разработка лучшего алгоритма сжатия, чем нынешнее коммерческое сжатие изображений, и в то же время с помощью технологии глубокого обучения более лаконичного сквозного алгоритма. можно спроектировать. В области сжатия изображений и видео основной используемой технологией глубокого обучения является сверточная нейронная сеть (CNN). Как показано на рис. 1, подобно строительным блокам, сверточная нейронная сеть состоит из таких модулей, как свертка, объединение, нелинейные функции и слои нормализации. Конечный результат зависит от приложения.Например, в области распознавания лиц мы можем использовать его для извлечения ряда чисел (называемых функциями в профессиональных терминах) для представления изображения лица, а затем выполнять распознавание лиц, сравнивая сходства и различия характеристик.
Рисунок 1 Схематическая диаграмма сверточной нейронной сети
Полная структура сжатия изображений, разработанная с использованием глубокого обучения, включает в себя несколько модулей, таких как кодировщик CNN, квантование, обратное квантование, декодер CNN, энтропийное кодирование, оценка кодового слова, оптимизация искажения скорости и так далее. Роль кодировщика заключается в преобразовании изображения в сжатые признаки, а декодер — в восстановлении исходного изображения из сжатых признаков. Кодер и декодер могут быть спроектированы и построены с такими модулями, как свертка, объединение и нелинейность.
(Рисунок 2. Схема сжатия изображений с использованием глубокого обучения)
Как оценить алгоритмы сжатия
Прежде чем углубляться в технические детали, давайте посмотрим, как оцениваются алгоритмы сжатия. Есть три важных показателя для оценки качества алгоритма сжатия: PSNR (отношение пикового сигнала к шуму), BPP (бит на пиксель) и MS-SSIM (многомасштабный индекс SSIM). Мы знаем, что любые данные хранятся в компьютере в виде битов, и чем больше требуется битов, тем больше места для хранения занимает. PSNR используется для оценки качества восстановления изображения после декодирования, BPP используется для представления количества битов, занимаемых каждым пикселем изображения, а значение MS-SSIM используется для измерения субъективного качества изображения. выше при той же скорости/бит/с, тем лучше качество восстановления, выше MS-SSIM и тем лучше субъективный опыт.
Например, предположим, что размер изображения с длиной и шириной 768×512 составляет 1 М, и оно закодировано с использованием технологии глубокого обучения.После прохождения через сеть кодирования генерируются сжатые данные признаков, включая блоки данных 96×64×192. , Если каждый блок данных представлен в среднем, потребляется 1 бит, поэтому для кодирования всего изображения требуется 96×64×192 бита. После сжатия количество битов, необходимых для кодирования каждого пикселя, составляет (96×64×192)/(768×512)=3, поэтому значение BPP равно 3 бит/пиксель, а коэффициент сжатия равен 24:3=8:1. . Это означает, что изображение размером 1 МБ после сжатия должно занимать всего 0,125 М. Другими словами, место, где раньше можно было разместить только 1 фотографию, теперь можно разместить на 8.
Как сделать сжатие с помощью глубокого обучения
Когда дело доходит до того, как использовать глубокое обучение для сжатия, давайте прямо сейчас воспользуемся примером. В сеть кодирования отправляется трехканальное изображение размером 768×512, и после прямой обработки будут получены сжатые признаки, занимающие 96×64×192 единиц данных. Читатели со знанием компьютера могут подумать, что в этот блок данных можно поместить число с плавающей запятой, целое число или двоичное число. Итак, какой тип данных следует вводить? С точки зрения восстановления изображения и принципа нейронной сети, если все сжатые данные признаков представляют собой числа с плавающей запятой, качество восстановленного изображения будет самым высоким. Однако число с плавающей запятой занимает бит 32. Согласно приведенной выше формуле расчета количества бит, формула (96 × 64 × 192 × 32) / (768 × 512) = 96. После сжатия биты занимаемое каждым пикселем меняется с 24 на 96. , вместо сжатия увеличивается, что является плохим результатом, и явно с плавающей запятой не лучший выбор.
Поэтому для разработки надежного алгоритма мы используем метод, называемый квантованием. Его цель — преобразовать число с плавающей запятой в целое или двоичное число. Самая простая операция — удалить десятичную дробь после числа с плавающей запятой. число становится целым числом. Заняты только 8 бит, что означает, что каждый пиксель занимает 24 бита. Соответственно, в конце декодирования технология обратного квантования может использоваться для восстановления преобразованных данных признаков в числа с плавающей запятой, например, добавление случайного десятичного числа к целому числу, что может уменьшить влияние квантования на точность нейронной сети до определенной степени, тем самым улучшая качество восстановления изображения.
Несмотря на то, что каждое сжатое свойство занимает 1 бит, коэффициент сжатия 8:1, на наш взгляд, не является идеальным результатом. Как еще оптимизировать алгоритм? Давайте посмотрим на формулу расчета BPP. Предполагая, что каждый сжатый элемент данных объекта занимает 1 бит, формула может быть записана как: (96×64×192×1)/(768×512)=3, а результат вычисления равен 3 бит/пиксель. сжатие, Чем меньше BPP, тем лучше. В этой формуле знаменатель определяется изображением, часть, которую можно настроить, находится в числителе, а три числа 96, 64 и 192 в числителе связаны со структурой сети. Очевидно, что когда мы разработаем лучшую структуру сети, эти три числа станут меньше.
К каким модулям относится 1? 1 означает, что каждый сжатый элемент данных признаков занимает в среднем 1 бит, квантование влияет на это число, но это не единственный влияющий фактор, он также связан с управлением скоростью и энтропийным кодированием. Цель управления скоростью состоит в том, чтобы сделать распределение данных в блоке сжатых признаковых данных как можно более концентрированным, а диапазон значений — как можно меньшим, исходя из предпосылки обеспечения качества восстановления изображения, чтобы мы могли в дальнейшем уменьшить значение 1 с помощью технологии энтропийного кодирования.Скорость сжатия изображения будет дополнительно улучшена.
Использование глубокого обучения для сжатия видео можно рассматривать как расширение на основе сжатия изображений с глубоким обучением, которое может объединять пространственно-временную информацию, такую как оптический поток между кадрами видеопоследовательностей, для дальнейшего снижения скорости передачи данных на основе однокадрового сжатия. .
Преимущества сжатия изображений с глубоким обучением
Сжатие изображений TNG, разработанное Tuya Technology с помощью технологии глубокого обучения, превзошло webp и BPG во внутренних тестах.На следующем рисунке показаны результаты оценки стандартного набора данных kodak24, которые представляют собой значение PSNR и значение MS-SSIM соответственно.
Рис. 3 Рис. 4. Результаты оценки стандартного набора данных kodak24, верхнее изображение — результат PSNR, а нижнее изображение — результат MS-SSIM
Друзья, знакомые со сжатием изображений, могут непосредственно видеть по значениям PSNR и MS-SSIM: значения PSNR и MS-SSIM для TNG значительно выше, чем у WebP, jpeg2000 и jpeg; а значение PSNR для TNG выше. чем у BPG в случае высоких кодовых слов, и его значение MS-SSIM в основном выше, чем у BPG.
- Сравнение эффектов сжатия TNG и WebP в случае младших кодовых слов
Рисунок 5 Рисунок 6 Сравнение эффектов сжатия между TNG и WebP в случае низких кодовых слов Рисунок 5 TNG, Рисунок 6 webp
По сравнению с TNG WebP хотя и сохраняет больше деталей, но имеет больше искажений, что не способствует пост-восстановлению. TNG использует метод фильтрации с сохранением границ, что делает его менее искаженным, а общий эффект изображения лучше, чем у WebP.
- Сравнение TNG и BPG в случае старших кодовых слов
Рисунок 7 Рисунок 8 Сравнение эффектов сжатия TNG и BPG в случае старших кодовых слов, Рисунок 7 TNG Рисунок 8 BPG
Приведенные выше два изображения относятся к случаям старших кодовых слов.В реальном тесте BPG будет иметь искажение цвета, показанное на рисунке выше, с другой стороны, TNG практически не будет иметь такого искажения.
Это связано с тем, что когда BPG кодирует и сжимает изображение, его канал YUV кодируется и декодируется отдельно, что приводит к некоторой цветовой разнице.
Однако TNG учитывает ситуацию всего изображения при кодировании и использует такое же кодирование, что позволяет избежать описанной выше ситуации.
- Сравнение TNG и BPG в случае младших кодовых слов
Рисунок 9 Рисунок 10 Сравнение эффектов сжатия TNG и BPG в случае младших кодовых слов, Рисунок 9 TNG Рисунок 10 BPG
В случае низких кодовых слов в изображениях, сжатых в формате BPG, появляются такие проблемы, как псевдоконтуры и блочные эффекты, а непрерывность всего изображения является относительно плохой, в то время как непрерывность изображения и контуры объектов TNG сохраняются лучше.
Сжатие изображений можно использовать в самых разных областях, от социальных приложений, новостных клиентов до игр и других областей, можно сказать, что функция сжатия изображений есть везде, где есть изображения. Использование более продвинутой технологии сжатия изображений может помочь компаниям, использующим большое количество изображений, сократить расходы на полосу пропускания изображений, а также помочь пользователям сэкономить трафик изображений и сократить время, необходимое для загрузки изображений.
Суммировать
В целом, разработка алгоритмов сжатия изображений с помощью глубокого обучения — очень перспективный, но и очень сложный метод. Сжатие изображений с помощью технологии глубокого обучения может позволить каждому получить лучший визуальный опыт в эпоху полноразмерных экранов высокой четкости. и меньше места для хранения. , чтобы предоставить пользователям лучший визуальный опыт.
Вот тестовая ссылка TNG:
Woohoo. Picture codec.com/picture/Ind…
Вы можете протестировать самостоятельно (рекомендуется тестировать на ПК).После завершения теста вы можете скачать сжатые картинки и бинарные файлы.После скачивания и установки декодера вы также можете восстановить сжатые картинки.
Для большего содержания сухих товаров вы можете обратить внимание на AI Frontline, ID:ai-front, фоновый ответ "AI", "TF", "Большие данные«Вы можете получить серию мини-книг в формате PDF и карт навыков «AI Frontline».