Технология фильтрации циклов на основе глубокого обучения

глубокое обучение кодирование видео
Технология фильтрации циклов на основе глубокого обучения

1. Что такое глубокое обучение

глубокое обучение(Глубокое обучение) — это ветвь машинного обучения, которая представляет собой алгоритм, использующий искусственную нейронную сеть в качестве архитектуры для выполнения обучения представлению данных [1]. Как правило, сначала изучаются простые представления (например, края изображения), а затем на основе простых представлений далее изучаются представления более высокого уровня (например, углы изображения, а затем части объектов) и, наконец, представления высокого уровня, подходящие для использования. для конкретных задач получаются. Поскольку количество слоев представления для обучения, как правило, глубокое, оно называется глубоким обучением.

Сверточная нейронная сеть(Сверточная нейронная сеть, CNN) — это тип нейронной сети, обычно используемый в глубоком обучении. Благодаря своей уникальной архитектуре он очень подходит для различных задач обработки изображений. Таким образом, CNN добилась больших успехов во многих областях, таких как классификация изображений, распознавание объектов и сверхвысокое разрешение.

2. Что такое циклическая фильтрация?

В процесс сжатия изображения/видео с потерями вводится необратимая операция квантования, которая вызывает искажение между восстановленным изображением и исходным изображением. Технология внутриконтурной фильтрации уменьшает искажения путем фильтрации реконструированного изображения, тем самым повышая эффективность сжатия и качество реконструкции. Общие фильтры в стандартах кодирования видео включают в себя деблокирующий фильтр (Deblocking Filter, [2]), адаптивное смещение пикселей (Sample Adaptive Offset, [3]) и адаптивный циклический фильтр (Adaptive Loop Filter, [4]]). Обратите внимание, что поскольку может существовать бесконечное множество исходных изображений, соответствующих искаженному изображению, повышение качества изображения здесь является плохо обусловленной задачей, и почти никакой фильтр не может полностью восстановить исходное изображение.

3. Почему глубокое обучение может выполнять циклическую фильтрацию?

Наиболее распространенный способ решения проблем с плохой обусловленностью состоит в том, чтобы преобразовать априорные знания о сигнале в ограничения регуляризации, тем самым уменьшив пространство для решения. Было показано, что сама архитектура сверточной нейронной сети хорошо фиксирует предварительные знания о естественных изображениях [5], и фильтрация изображений с ее помощью эквивалентна использованию неявной регуляризации. Кроме того, CNN может дополнительно изучить предварительные знания, полезные для конкретных задач (таких как декомпрессионное искажение здесь) из массивных обучающих данных, и установить сопоставление искаженного изображения с исходным изображением, тем самым завершая повышение качества изображения.

4. Как это сделать?

Ссылка [6] является более ранней попыткой, которая заменяет циклический фильтр (Deblocking и SAO) в HEVC (High Efficiency Video Coding) на CNN для повышения качества сжатого видео и достижения лучших результатов.

Чтобы выполнить эту задачу, сначала необходимо подготовить обучающие данные, то есть искаженное изображение и соответствующее исходное изображение, чтобы CNN могла зафиксировать отображение искаженного изображения в исходное изображение в процессе обучения. С этой целью автор использует HEVC для сжатия изображений обучающего набора для получения искаженных реконструированных изображений. Комбинируя эти искаженные изображения с соответствующими исходными изображениями, можно получить множество обучающих выборок, подобных {искаженному изображению, исходному изображению}.

Затем необходимо определить структуру сети.Здесь CNN принимает искаженное изображение размера MxM в качестве входных данных, а затем выводит отфильтрованное изображение размера MxM. Таким образом, задача циклической фильтрации относится к категории повышения качества изображения и может относиться к сетевой архитектуре, используемой в базовых задачах компьютерного зрения, таких как шумоподавление и сверхвысокое разрешение. В этой статье автор проектирует 4-слойную CNN, как показано на рисунке 1, а ее конкретную конфигурацию можно увидеть в таблице 1. Поскольку входное и выходное разрешения таких задач согласованы, для поддержания высокоточной информации о пространственном положении структура сети обычно не включает операции понижения дискретизации (обратите внимание, что в целом некоторые сети будут использовать операции понижения дискретизации для увеличения пространственного рецептивного поля). , и в то же время увеличить громкость за счет увеличения громкости.Интегрировать количество каналов для поддержания высокоточной реконструкции). Два средних уровня сети используют ядра свертки двух размеров для получения многомасштабных признаков. Кроме того, сеть содержит соединение с пропуском слоя, которое заключается в добавлении входного изображения и выхода последнего слоя CNN. Таким образом, фактическим выходом сети становится разностное изображение между реконструированным изображением и исходным изображением, отражающее идею остаточного обучения [7]. Преимущество остаточного обучения заключается в том, что оно может улучшить производительность после сходимости, одновременно увеличивая скорость сходимости.

Рис. 1. Структура сети в [6], 4-слойная полностью сверточная сеть.

Табл. 1. Конфигурация сети в [6]

Для управления обучением CNN также требуется функция потерь Автор принимает функцию потерь MSE по следующей формуле. Здесь N — количество обучающих выборок, подтаблицы X и Y представляют искаженное изображение и соответствующее исходное изображение, а ? представляет все параметры (веса и смещения) сверточной сети.

На этом этапе веса сети могут быть обновлены стохастическим градиентным спуском, который обычно выполняется автоматически фреймворками глубокого обучения (такими как PyTorch), а параметры, полученные после обучения, являются параметрами с лучшим средним значением для всего обучающего множества. Читатели могут спросить: оптимальны ли параметры, полученные относительно тренировочного набора, как они работают с невидимыми наборами данных? Обычно мы предполагаем, что обучающая выборка и тестовая выборка взяты из одного и того же распределения, что гарантирует схожую производительность CNN на тестовой выборке. Чтобы улучшить производительность обобщения, обычно требуется, чтобы обучающий набор содержал достаточно выборок, чтобы отразить истинное распределение данных.Кроме того, существуют некоторые другие методы, позволяющие избежать переобучения сети, такие как применение параметров CNN (т.е. ? в приведенная выше формула) к 1-нормовым или 2-нормовым ограничениям, известным под общим названием регуляризация, является важной областью исследований в области глубокого обучения.

Автор обучил модель для каждой точки QP, а именно QP {22, 27, 32, 37}, а затем интегрировал модель в эталонное программное обеспечение для тестирования.Окончательная производительность показана в таблице 2 ниже. Сравниваемый здесь якорь — HM-16.0, сконфигурированный как All-Intra. Поскольку это было протестировано только в конфигурации All-Intra, фильтрацию CNN также можно использовать в качестве операции постобработки. Если отфильтрованный кадр используется в качестве эталона для последующего кодирования кадра, он становится петлевым фильтром.

Таблица 2. Экономия BD-скорости алгоритма из [6] по сравнению с HEVC

5. JVET-U0068

Затем мы сосредоточимся на конструкции петлевого фильтра в предложении JVET в этом году [8].Алгоритм называется DAM (глубокие фильтры с адаптивным выбором модели), который является эталонным программным обеспечением VTM-9.0 для видео последнего поколения. стандарты кодирования, дизайн и включает в себя новые функции, такие как выбор режима.

Рисунок 2. (a) Архитектура CNN, используемая DAM, где M представляет количество карт признаков, а N представляет пространственное разрешение карт признаков, (b) структура остаточного блока.

Сетевая архитектура:Основа метода фильтрации DAM показана выше на рисунке 2. Чтобы увеличить рецептивное поле и снизить сложность, эта сеть содержит сверточный слой с шагом 2, что снижает пространственное разрешение карты объектов как в горизонтальное и вертикальное направления.Для половины входного размера выходная карта объектов этого слоя будет проходить через несколько последовательно сложенных остаточных единиц. Последний сверточный слой принимает карту объектов последней остаточной единицы в качестве входных данных и выводит 4 карты подфункций. Наконец, слой перемешивания создает отфильтрованные изображения с тем же пространственным разрешением, что и входные данные. Ниже приведены дополнительные сведения об этой архитектуре:

  1. Для всех сверточных слоев используется ядро ​​3x3. Для внутренних сверточных слоев количество карт объектов установлено равным 128. Для функции активации используйте PReLU.

  2. Обучите разные модели для разных типов срезов.

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

Выбор адаптивной модели:Во-первых, каждый срез или модуль CTU может решить, следует ли использовать фильтр на основе сверточной нейронной сети; во-вторых, когда слайс или модуль CTU решает использовать фильтр на основе сверточной нейронной сети, он может дополнительно определить, использовать ли три модели-кандидата, какая модель в . Для этого различные модели обучаются с использованием значений QP в {17, 22, 27, 32, 37, 42}. Обозначим QP, который кодирует текущую последовательность, как q, тогда модель-кандидат состоит из трех моделей, обученных для {q, q-5, q-10}. Процесс выбора основан на функции стоимости «скорость-искажение», после чего соответствующая информация о представлении режима записывается в кодированный поток.

сделать вывод:Используя PyTorch для выполнения онлайн-вывода CNN в VTM, соответствующая сетевая информация на этапе вывода приведена в таблице 3 ниже.

Не удалось скопировать загружаемый контент

Таблица 3. Информация о сети при выводе

тренироваться: Используя PyTorch в качестве обучающей платформы, обучите фильтры сверточной нейронной сети для внутрисрезового и межсрезового соответственно, а также обучите разные модели адаптации к различным точкам QP.Информация о сети на этапе обучения указана в таблице 4.

Не удалось скопировать загружаемый контент

Табл. 4. Информация о сети во время обучения

Результаты экспериментов:Авторы протестировали интеграцию DAM на VTM-9.0 с отключенной деблокирующей фильтрацией и SAO в существующих фильтрах, а ALF (и CCALF) были размещены за фильтрами на основе сверточной нейронной сети. Результаты испытаний показаны в таблицах 5~таблица 7. В конфигурациях AI, RA и LDB экономия BD-скорости каналов Y, Cb и Cr составляет: {8,33%, 23,11%, 23,55%}, {10,28% , 28,22%, 27,97%} и {9,46%, 23,74%, 23,09%}. Кроме того, на рисунке 3 представлено субъективное сравнение до и после использования алгоритма DAM.

RA
Y U V EncT DecT
Class A1 -9.25% -22.08% -22.88% 248% 21338%
Class A2 -11.20% -29.17% -28.76% 238% 19116%
Class B -9.79% -31.05% -29.57% 248% 23968%
Class C -10.97% -28.59% -29.18% 196% 21502%
Class E
Overall -10.28% -28.22% -27.97% 231% 21743%
Class D -12.17% -28.99% -30.27% 187% 20512%
Class F -5.27% -16.93% -16.58% 337% 9883%

Табл. 5. Производительность DAM на VTM9.0 (RA)

LDB
Y U V EncT DecT
Class A1
Class A2
Class B -8.69% -24.51% -25.26% 235% 10572%
Class C -10.21% -24.50% -24.60% 189% 11145%
Class E -9.75% -21.46% -17.47% 455% 8730%
Overall -9.46% -23.74% -23.09% 258% 10257%
Class D -11.56% -26.59% -27.98% 182% 12071%
Class F -5.05% -15.83% -15.41% 331.70% 5723%

Таблица 6: Производительность DAM на VTM9.0 (LDB)

AI
Y U V EncT DecT
Class A1 -7.04% -19.72% -20.94% 423% 14896%
Class A2 -7.32% -24.01% -22.73% 268% 13380%
Class B -7.48% -24.24% -24.06% 240% 13606%
Class C -8.90% -22.61% -25.08% 176% 10061%
Class E -11.30% -24.37% -24.11% 274% 14814%
Overall -8.33% -23.11% -23.55% 257% 13065%
Class D -8.75% -22.68% -24.96% 158% 10571%
Class F -5.03% -15.94% -15.38% 170% 9364%

Таблица 7. Производительность предложения AVG на VTM9.0 (AI)

Рисунок 3. Слева: исходное изображение (из тестовой последовательности JVET BlowingBubbles), в центре: сжатие VTM-11.0, QP42, качество реконструкции 27,78 дБ, справа: VTM-11.0+DAM, QP42, качество реконструкции 28,02 дБ.

6. Резюме и перспективы

В последние годы исследовательская работа по петлевой фильтрации (включая постобработку) в основном распределяется по следующим аспектам (но не ограничиваясь ими):

  1. Используйте больше входной информации, такой как информация о прогнозировании и делении, в качестве входных данных CNN в дополнение к реконструированному кадру [9];
  2. Использовать более сложные сетевые структуры [9, 10, 11];
  3. Как использовать корреляцию между кадрами видеоизображения для повышения производительности [12, 13];
  4. Как спроектировать единую модель для разных уровней качества [14].

В целом, инструменты кодирования, основанные на глубоком обучении, находятся на подъеме.Хотя они демонстрируют привлекательную производительность, они также вызывают высокую сложность.Чтобы внедрить эти инструменты глубокого кодирования в будущем, оптимизация компромисса между сложностью и производительностью будет очень важной. исследование направление.

7. Ссылки

[1] Авторы Википедии «Глубокое обучение».Википедия, свободная энциклопедия, Википедия, Бесплатная энциклопедия, 10 марта 2021 г. Интернет, 10 марта 2021 г.‹this.Wikipedia.org/me/index.php…›.

[2] Норкин, Андрей и др. «Фильтр деблокирования HEVC»,IEEE Transactions on Circuits and Systems for Video Technology22.12 (2012): 1746-1754.

[3] Фу, Чжи-Мин и др. «Пример адаптивного смещения в стандарте HEVC».IEEE Transactions on Circuits and Systems for Video technology22.12 (2012): 1755-1764.

[4] Цай, Чиа-Янг и др. «Адаптивная петлевая фильтрация для кодирования видео».IEEE Journal of Selected Topics in Signal Processing7.6 (2013): 934-945.

[5] Ульянов, Дмитрий и др. «Приоритет глубокого изображения»,Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.

[6] Дай, Юаньин и др. «Подход сверточной нейронной сети для постобработки во внутреннем кодировании HEVC».International Conference on Multimedia Modeling. Springer, Cham, 2017.

[7] Хе, Кайминг и др. «Глубокое остаточное обучение для распознавания изображений».Proceedings of the IEEE conference on computer vision and pattern recognition. 2016.

[8] Ли, Юэ и др. «Контурный фильтр на основе сверточной нейронной сети с адаптивным выбором модели», JVET-U0068, Телеконференция, 2021 г.

[9] Лин, Вейяо и др. «Адаптивная коммутационная нейронная сеть с поддержкой разделов для постобработки в HEVC».IEEE Transactions on Multimedia22.11 (2019): 2749-2763.

[10] Ма, Ди и др. «MFRNet: новая архитектура CNN для постобработки и внутрицикловой фильтрации».IEEE Journal of Selected Topics in Signal Processing(2020).

[11] Чжан, Юнбин и др. «Сверточные нейронные сети остаточного шоссе для фильтрации в цикле в HEVC»,IEEE Transactions on image processing27.8 (2018): 3827-3841.

[12] Ян, Рен и др. «Улучшение качества многокадрового сжатия для сжатого видео».Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2018.

[13] Ли, Тяньи и др. «Подход к глубокому обучению для многокадрового внутриконтурного фильтра HEVC».IEEE Transactions on Image Processing28.11 (2019): 5663-5678.

[14] Чжоу, Лулу и др. «Фильтр сверточной нейронной сети (CNNF) для внутрикадрового анализа», JVET-I0022, Кванджу, 2018 г.