Эта статья изСообщество разработчиков RTC, автор Ву Сяоран, старший видеоинженер Shengwang, специализирующийся на видеокодеках и исследованиях связанных с ними технологий, личные технические интересы включают мультимедийную архитектуру, глубокое обучение.
После того, как AlphaGo сыграла против Ли Шиши и Ке Цзе, все больше отраслей начали пытаться оптимизировать существующие технические решения с помощью машинного обучения. На самом деле, для аудио и видео в реальном времени машинное обучение исследуется уже много лет.распознавание изображений в реальном времениПросто одно из таких приложений. Мы также можем использовать глубокое обучение для сверхвысокого разрешения. На этот раз мы поделимся базовой структурой глубокого обучения для сверхвысокого разрешения, а также различными сетевыми моделями, полученными на ее основе, некоторые из которых также имеют хорошую производительность в соответствии с производительностью в реальном времени.
Машинное обучение и глубокое обучение
Разработчики, менее знакомые с машинным обучением и глубоким обучением, могут запутаться в разнице между ними и даже подумать, что машинное обучение — это глубокое обучение. На самом деле мы можем легко отличить это понятие по картинке.
В 1950-х появилась концепция искусственного интеллекта, а позже появилось несколько более простых приложений, таких как шахматы. Однако в 1970-х годах из-за ограничений производительности оборудования и отсутствия наборов данных для обучения искусственный интеллект пережил период спада. Искусственный интеллект включает в себя многое, например, машинное обучение, алгоритмы планирования, экспертные системы и т. д. Только в 1980-х годах стало появляться больше приложений машинного обучения, таких как использование алгоритмов для анализа данных и вынесения суждений или прогнозов. Машинное обучение включает в себя логические деревья, нейронные сети и т. д. Глубокое обучение — это метод машинного обучения, основанный на нейронных сетях.
Что такое супер разрешение?
Суперразрешение — это концепция, основанная на зрительной системе человека. Дэвид Хьюбел и Торстен Визель, лауреаты Нобелевской премии по медицине 1981 года, обнаружили, что метод обработки информации зрительной системой человека является иерархическим. Первый слой — это ввод необработанных данных. Когда люди видят изображение лица, они сначала идентифицируют на нем точки, линии и другие грани. Затем войдите во второй слой и определите некоторые основные элементы изображения, такие как глаза, уши, нос. Наконец, создается объектная модель, которая представляет собой полное лицо.
А наша сверточная нейронная сеть в глубоком обучении (как показано на рисунке ниже) имитирует процесс обработки зрительной системы человека. По этой причине компьютерное зрение является одной из лучших областей применения глубокого обучения. Супер-разрешение — классическое применение в компьютерном зрении.
Сверхразрешение — это метод увеличения разрешения изображения программными или аппаратными методами. Его основная идея состоит в том, чтобы обменять временную полосу пропускания на пространственное разрешение. Проще говоря, когда я не могу получить изображение со сверхвысоким разрешением, я могу сделать еще несколько изображений, а затем объединить эту серию изображений с низким разрешением в изображение с высоким разрешением. Этот процесс называется реконструкцией сверхвысокого разрешения.
Почему сверхвысокое разрешение может улучшить разрешение изображения, сделав еще несколько снимков?
Это связано с дрожанием. Защита от дрожания, о которой мы часто говорим, на самом деле является защитой от дрожания, но легкое дрожание всегда присутствует. Между каждым изображением одной и той же сцены есть тонкие различия, и эти крошечные дрожания на самом деле содержат дополнительную информацию о сцене, и если вы объедините их, вы получите более четкое изображение.
Некоторые люди могут спросить, зачем нам технология сверхвысокого разрешения, когда наши мобильные телефоны могут иметь 20 миллионов передних и задних камер? Не много ли сценариев применения этой технологии?
Вообще-то нет. Кто разбирается в фотографии, тот знает. На одном и том же светочувствительном компоненте, чем выше разрешение захваченного изображения, тем меньше площадь, занимаемая одним пикселем на светочувствительном компоненте, тем ниже скорость передачи света.Когда ваша плотность пикселей достигает определенного уровня, это приносит много шума и напрямую влияет на качество изображения. Супер-разрешение может решить эту проблему. Супер-разрешение имеет множество применений, таких как:
Digital HD, который увеличивает разрешение этим методом
Микроскопическое изображение: синтез серии изображений с низким разрешением под микроскопом для получения изображений с высоким разрешением.
Спутниковое изображение: используется для получения спутниковых изображений дистанционного зондирования для повышения точности изображения.
Восстановление видео: эта технология может восстанавливать видео, например, старые фильмы.
Однако во многих случаях у нас есть только одно изображение и мы не можем сделать несколько снимков, так как же сделать супер-разрешение? Для этого требуется машинное обучение. Типичный пример — «черная технология», предложенная Google в 2017 году. Они могут использовать машинное обучение для удаления мозаики из видеоизображений. Конечно, эта черная технология также имеет определенные ограничения.В качестве примера возьмем следующий рисунок.Обучаемая нейронная сеть предназначена для изображений лиц, поэтому, если мозаичное изображение, которое вы даете, не является лицом, оно не может быть восстановлено.
Принцип нейронной сети сверхвысокого разрешения
CNN со сверхвысоким разрешением (SRCNN) — первая модель глубокого обучения, применяемая в области сверхвысокого разрешения. Принцип относительно прост. Он имеет три слоя нейронной сети, включая:
-
Извлечение признаков: изображение с низким разрешением получается с помощью биномиальной разности для получения размытого изображения, и из него извлекаются признаки изображения Канал равен 3, а размер ядра свертки равен
f1*f1
, количество ядер свертки равно n1; Нелинейное сопоставление: сопоставление элементов изображения с низким разрешением с высоким разрешением и размером ядра свертки.
1*1
;
Реконструкция изображения: восстановите детали и получите четкое изображение с высоким разрешением, ядро свертки
f3*f3
;
Настройка параметров — наиболее загадочная часть нейронной сети, а также наиболее критикуемая часть. Многие люди думают, что настройка параметров подобна встрече с врачом в древней китайской медицине, и обычно ей не хватает теоретической основы. Вот несколько значений времени обучения и пикового отношения сигнал-шум (PSNR, параметр, используемый для оценки качества изображения, чем выше, тем лучше), когда n1 принимает разные значения.
При обучении использование среднеквадратичной ошибки (MSE) в качестве функции потерь полезно для получения более высокого PSNR.
Каков результат обучения? В таблице ниже перечислены результаты нескольких традиционных методов по сравнению с методом SRCNN. Крайний левый столбец — это набор изображений, а в правой части указано использованное время обучения и пиковое отношение сигнал/шум изображения для каждого метода. Видно, что хоть и есть некоторые картинки, но результаты, полученные традиционными методами, лучше, чем у глубокого обучения, но в целом глубокое обучение немного лучше, и даже занимает меньше времени.
Некоторые люди говорят, что картинка стоит тысячи слов. Так как же выглядит реальная картина? Мы можем видеть следующие два набора картинок. Первым изображением каждой группы является исходное изображение с малым разрешением, а затем различными методами реализуется большое изображение с высоким разрешением. По сравнению с традиционными методами края изображения SRCNN более четкие, а детали лучше восстанавливаются. Выше приведена оригинальная модель глубокого обучения со сверхвысоким разрешением.
9 моделей нейронных сетей сверхвысокого разрешения
SRCNN — первая модель нейронной сети сверхвысокого разрешения. После появления модели SRCNN к сверхразрешению применялось больше моделей нейронных сетей. Мы делимся некоторыми ниже:
FSRCNN
По сравнению с SRCNN, этот метод не требует использования значения биномиальной разности для исходного изображения и может напрямую обрабатывать изображения с малым разрешением. После извлечения значений признаков изображение уменьшается, затем проходит слои картирования, расширения и деконволюции, после чего получается изображение с высоким разрешением. Преимущество состоит в том, что уменьшение изображения может сократить время обучения. В то же время, если вам нужно получить изображения разного разрешения, вы можете тренировать слой деконволюции отдельно, что экономит больше времени.
ESPCN
Эта модель обучается на небольших графах. Наконец, извлекаются каналы r². Например, я хочу увеличить изображение в 3 раза по сравнению с исходным изображением, тогда r — это коэффициент масштабирования 3, а канал — 9. Эффект сверхвысокого разрешения достигается за счет расширения пикселя в матрицу 3х3 и имитации его как матрицы из одного пикселя.
Экспериментальные результаты обработки видео в реальном времени в сверхвысоком разрешении также весьма удовлетворительны. 3-кратное масштабирование видео в формате 1080 HD, для SRCNN требуется 0,435 с на кадр, а для ESPCN — всего 0,038 с.
VDSR
Эта модель получила награду в 2016 году. Все мы, кто работает с видеокодеками, знают, что между изображениями есть разность. Он считает, что между исходным изображением с низким разрешением и изображением с высоким разрешением низкочастотные компоненты почти одинаковы, а отсутствующие высокочастотные компоненты, то есть детали изображения. Тогда при тренировке нужно тренироваться только на высокочастотные компоненты.
Таким образом, его ввод разделен на две части: одна часть предназначена для использования всего исходного изображения в качестве ввода, другая часть предназначена для обучения остатка и получения ввода, а также добавления двух частей для получения изображения с высоким разрешением. Таким образом, скорость обучения значительно увеличивается, а эффект конвергенции также улучшается.
DRCN
Он также разделен на три слоя. Но в слое нелинейного отображения используется рекуррентная сеть, то есть данные проходят через слой много раз. Развертывание этого цикла эквивалентно нескольким конкатенированным сверточным слоям с использованием одного и того же набора параметров.
RED
Каждый сверточный слой соответствует несверточному слою. Проще говоря, можно понять, что изображение кодируется, а затем декодируется. Его преимущество в том, что он решает проблему исчезновения градиента и может восстановить более чистое изображение. Он имеет аналогичную идею с VDSR. Обучение промежуточных сверточных слоев и слоев деконволюции основано на остатках исходного изображения и целевого изображения. Наконец, исходное изображение добавляется к результатам обучения для получения изображения с высоким разрешением.
DRRN
В этой модели можно увидеть тень DRCN, VDSR. Он принимает более глубокую сетевую структуру для повышения производительности. В нем много слоев улучшения изображения. Можно понять, что размытое изображение благодаря множеству улучшающих слоев становится более четким на первом уровне, и, наконец, получается изображение высокой четкости. Вы можете найти исходный код на Github под названием tyshiwo.
LapSRN
Что особенного в LapSRN, так это введение иерархической сети. Каждый этап только удваивает исходное изображение, а затем добавляет остаток для получения результата. Если изображение увеличить в 8 раз, производительность этой обработки будет выше. При этом на каждом этапе обработки может быть получен выходной результат.
SRDenseNet
Он вводит структуру десент-блока. Значения признаков, обученные предыдущим уровнем сети, будут переданы следующему слою сети, и все признаки будут объединены. Преимущество этого состоит в том, чтобы облегчить проблему исчезающего градиента и уменьшить количество параметров. Более того, более поздние слои могут повторно использовать значения признаков, полученные в результате предыдущего обучения, и им не нужно повторять обучение.
SRGAN
Он может использовать потери восприятия и состязательные потери для улучшения восстановленного изображения.
В этой модели есть две сети: одна — сеть генерации, а другая — сеть дискриминации. Первая будет генерировать изображение с высоким разрешением, а вторая — определять, является ли изображение исходным изображением. Если результат «Нет ", то первый будет обучаться и генерироваться снова, пока не сможет обмануть дискриминантную сеть.
Все вышеперечисленные модели нейронных сетей могут применяться для обработки видео, но в практических приложениях необходимо учитывать множество факторов, таких как системная платформа, конфигурация оборудования и оптимизация производительности. На самом деле, в дополнение к сверхвысокому разрешению, машинное обучение и аудио и видео в реальном времени имеют множество сценариев приложений, которые можно комбинировать, например оптимизация аудио и видео, порнография и улучшение качества обслуживания. Мы пригласим технических экспертов из Google, Meitu, Sogou и других компаний, чтобы они поделились практическим опытом и галантереей на Интернет-конференции RTC 2018 в режиме реального времени в сентябре этого года.