​Нейронные сети и сжатие изображений. Много технического текста

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

Архитектура нейронной сети типа «узкое место» для сжатия изображений
Архитектура нейронной сети типа «узкое место» для сжатия изображений

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

Отношение размера входного слоя к размеру промежуточного слоя — это степень сжатия. Это та же схема сжатия изображений, но реализованная по сети. Передатчик кодирует, а затем передает выходные данные скрытого уровня, а приемник получает и декодирует 16 скрытых выходных данных для создания 64 выходных данных.

Архитектура узкого места для сжатия изображений по сети или во времени
Архитектура узкого места для сжатия изображений по сети или во времени

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

То есть мы хотим, чтобы сеть выполняла функцию идентификации. На самом деле, несмотря на то, что узкое место сокращает количество узлов с 64 до 16, реального сжатия не происходит. 64 исходных входа представляют собой 8-битные значения пикселей. Выходные данные скрытого уровня, однако, представляют собой десятичные значения от -1 до 1. Эти десятичные значения могут потребовать, возможно, бесконечного числа битов.

Как обойти это?

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

Квантование
Квантование

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

Можно сформировать 8 возможных двоичных кодов: 000, 001, 010, 011, 100, 101, 110, 111, и каждый из этих кодов представляет собой диапазон значений для скрытого выхода единицы.

Например, когда скрытое значение находится в диапазоне от -1,0 до -,75, передается код 000. Следовательно, изображение сжимается с 64 пикселей * 8 бит каждое = 512 бит до 16 скрытых значений * 3 бита каждое = 48 бит: сжатое изображение составляет примерно 1/10 размера оригинала!

Однако эта схема кодирования не работает без потерь; исходное изображение не может быть восстановлено из-за потери информации в процессе квантования. Тем не менее, он может дать довольно хорошие результаты, как показано, хотя, это изображение также было преобразовано в jpeg, поэтому фактические результаты исходного сжатия не видны. Однако контраст между двумя изображениями (или отсутствие контраста, как и цель сжатия!) должно быть достаточным.

Оригинальное изображение
Оригинальное изображение
Сжатое изображение
Сжатое изображение

Как нейросеть учится это делать?

Целью этих сетей сжатия данных является воссоздание самих входных данных. Следовательно, входные данные используются как собственные выходные данные в целях обучения. Входные данные оздаются из тренировочного изображения 256x256 путем извлечения небольших фрагментов изображения размером 8x8, выбранных в равномерно случайном месте на изображении.

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

Рандомизация помогает обеспечить обобщение сети, чтобы она работала и с другими изображениями. После завершения обучения реконструкция изображения демонстрируется на этапе отзыва. В этом случае мы по-прежнему представляем нейронной сети фрагменты изображения 8x8, но теперь вместо случайного выбора местоположения каждого фрагмента мы выбираем фрагменты последовательно слева направо и сверху вниз.

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

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

​Нейронные сети и сжатие изображений. Много технического текста

Исследование MIT

PS. лайк, пожалуйста, он помогает продвижению статьи, а значит дает мотивацию писать дальше

Ну и как положено на VC, канал телеграм))) Канал и чатик

Туда выкладываю статьи VC и то, что нет в VC. Мысли, идеи, опыт.

В закрепленных канале всегда телеграм боты Kolersky для доступа в ChatGPT, GPT-4 без VPN, а так же генераторы изображений Midjourney, Dall-e, Stable Diffusion (проект KolerskyAI).

1919
8 комментариев

Простите, я дилетант в этом ai, но не могли бы вы дать линк или хотя бы название этого исследования от mit? возможно я пропустил нужное в попытках найти оригинальное исследование.

Еще вопрос, пожалуйста. То что вы описали - один из методов использования DL системы для компрессии, есть ведь и другие? Вообще то что я прочитал в вашей статье - есть вариация алгоритма сжатия JPEG которая использует так же квантизацию, преобразования функции Фурье в своей основе, но вместо брутфорса вычисления весов при восстановлении изображения - использует ML для восстановления значения из функции шума? Или я неправильно понял. Если правильно - в чем практический смысл данной реализации? Эффективность компрессии? В реализации HEVC - снижение размера финального файла при сохранении качества получается путем значительного увеличения объема вычислений как при кодировании так и при декодировании, насколько я понимаю.

ML решения для компрессии используются достаточно давно и реализованы в JPEG2000, HEVC стандартах, я не ошибаюсь? TensorFlow и OpenCV библиотеки так же используют данный алгоритм сжатия но с дополнительными этапами для повышения качества изображения (обработка краев, например)?

Если я ошибся во всем - пожалуйста не сочтите за труд уточнить где именно была допущена ошибка.

5
Ответить
3
Ответить

Шутка про пенисы из "Кремниевой Долины" уже была?)))

1
Ответить

Картинки в статье специально зашакалены?

1
Ответить

Заново изобрели колесо. А именно конвертация и сжатие)

Ответить

Где-то рядом плачет недооцененный новым поколением алгоритм сингулярного разложения..
нет, только нейросеть модную подавайте!

Ответить