Исследование искусственного интеллекта в области видеоприложений

машинное обучение

Искусственный интеллект крут, но и пузырь тоже. Применение искусственного интеллекта в области видео вошло в жизнь обычных людей, а технологии распознавания лиц и автоматического видеокейинга относительно зрелы. Кроме того, какие изменения может внести искусственный интеллект в видеоприложения? Бао Цзиньлун написал статью, описывающую практическое исследование искусственного интеллекта в видеоприложениях, включая кодеки, сверхвысокое разрешение и т. д. Если у вас есть глубокие знания и понимание в определенной области, пожалуйста, свяжитесь с submit@livevideostack.com.

Текст / Бао Цзиньлун

Предисловие: Искусственный интеллект здесь и там

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

  1. Компьютерное зрение (на данный момент включены распознавание образов, обработка изображений и другие вопросы);

  2. Понимание естественного языка и общение (на данный момент включены распознавание и синтез речи, включая диалог);

  3. Познание и рассуждение (включая различный физический и социальный здравый смысл);

  4. Робототехника (механика, управление, проектирование, планирование движения, планирование миссии и др.);

  5. Игра и этика (взаимодействие, противостояние и сотрудничество мультиагентных агентов, робототехника и социальная интеграция и др.);

  6. Машинное обучение (различное статистическое моделирование, аналитические инструменты и вычислительные методы).

Вот несколько моментов, которые стоит выделить:

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

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

третий)Методы статистического анализа появились в 1990-х годах и используются в определенных областях. Методы статистического анализа также разнообразны, и многие успешные случаи были получены в соответствии с фактическими потребностями, и современные стандартные методы моделирования и анализа не обязательно используются. Вот типичный пример: до того, как Intel запустила технологию mmx в 1997 году, среди программистов была очень известная справочная таблица IDCT (обратное косинусное преобразование), которая на самом деле была IDCT-преобразованием процесса кодирования и декодирования MPEG1. было обнаружено, что он превзошел все реальные боевые случаи предыдущих быстрых алгоритмов. Для получения подробной информации нажмите «Читать исходный текст», чтобы загрузить IDCT 8x8.DOC.

четвертый)У машинного обучения есть эти относительно очевидные недостатки: для достижения хороших результатов в реальном бою необходимо идти на разумные компромиссы и оптимизации. Эти недостатки:

  1. Сильная зависимость от данных, метода обучения и объема обучения имеет решающее значение.

  2. Объем расчета слишком велик.

  3. Хотя иногда достигаются хорошие результаты, само машинное обучение не понимает процесса и не может дать разумного объяснения.

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

(1) Проникновение искусственного интеллекта в видеоприложения

Процесс традиционной видео-аппликации:

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

В последние годы, с появлением приложений для интернет-вещания, возник спрос, отличный от предыдущих кодеков вещания и телевидения. Это:

  1. В конце кодирования, обеспечивая требования к кодированию в реальном времени и битрейту, он также обеспечивает максимально возможное качество изображения.

  2. Отправлять, передавать, буферизировать и задерживать как можно меньше.

  3. Декодер пытается вывести наилучшее возможное качество, предпочтительно сверхвысокое разрешение.

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

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

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

(2) Кодировщик с улучшенным ИИ

(2.1) Динамический энкодер

Кодирование поддерживает постоянный качественный битрейт в различных сценариях:

 

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

Как правило, мы должны использовать ABR с абсолютно постоянным битрейтом.Качество изображения ABR в разных сценариях:

Результатом этого является нестабильное качество изображения.

Нам нужна такая кривая:

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

  1. Много объектов и движение камеры.

  2. Фон не двигается, но есть большой диапазон движения большого количества объектов, в том числе быстрое движение, вращение, аффинное движение, сползание и т. д.

  3. Появляются вспышки, песчаные бури, системы частиц.

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

(2.2) Автоматически имплантированный контент

Автоматическое размещение рекламы обсуждается здесь. Один из них — синтезировать его в видео перед кодированием, что имеет мало общего с кодированием. Но после синтеза непосредственно в видео все зрители видят один и тот же контент.

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

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

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

(2.3) Интерактивное видео

 

В настоящее время основной практикой является подключение к поисковой системе после распознавания изображения для создания ссылки на контент.

(3) Декодер с улучшенным ИИ

(3.1) Сверхвысокое разрешение одного изображения

Естественное изображение в основном представляет собой комбинацию плоских текстурированных заливок и выступающих краев (линий).

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

Однако 15 лет назад, когда я работал над DVD-плеерами в Kingsoft, я работал над деинтерлейсингом.

Как показано на рисунке выше, первая и третья строки — это исходные данные изображения, а вторая строка — это данные, которые необходимо вставить. Обычный метод интерполяции заключается в выполнении кубической интерполяции в направлении B. Но на этот раз я рассчитал градиенты в трех направлениях A, B и C, взяв наименьший градиент направления и выполнив простую линейную интерполяцию с градиентом пикселя и наибольшим направлением.

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

Причин размытия изображения несколько:

  1. Линии становятся размытыми при низком разрешении.

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

  3. наличие шума.

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

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

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

Например, блок размером 4x4 пикселя чаще встречается в следующем виде:

Матрица параметров фильтра обычного кубического b-сплайна:

Например, мы хотим вставить точку в центр блока 4x4 пикселей:

  • В первом случае точка вставки находится на границе.

Используйте стандартные фильтры:

Используйте улучшенный фильтр:

  • Во втором случае точка вставки находится в пределах:

Стандартная фильтрация:

 

Эффект приемлемый.

  • В третьем случае точка вставки находится за пределами границ:

Используйте стандартные фильтры:

Используйте улучшенный фильтр:

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

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

Общий процесс машинного обучения аналогичен: подготовьте несколько необработанных изображений HR (2x2) и изображений LR (1x1), созданных на основе выборки, в виде парных данных. Затем используются несколько операций оптимизации:

  • Первым шагом является растеризация сложного градиентного изображения 4x4 в простое изображение кодовой книги (HASH).

  • Второй шаг — восстановить параметры фильтра B-сплайна, учитывая вес градиента соседних пикселей для этого изображения кодовой книги, и выполнять вычисление SAD (функция COST) с исходным изображением 2x2 каждый раз, чтобы найти ближайшее значение. (метод спуска).

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

  • На четвертом этапе приблизительные кодовые книги объединяются для уменьшения количества кодовых книг.

Еще один вопрос для обсуждения — есть ли способ убрать размытие, вызванное низкоуровневым изображением на границе. Кто-то предложил метод преобразования градиента:

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

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

В фактическом процессе обработки мы используем расчет сверхвысокого разрешения, полученный с помощью описанного выше процесса. Затем мы можем оценить приблизительную вычислительную стоимость такого алгоритма: регистрация матрицы 4x4, фильтр поиска, а затем 16 умножений-сложений на точку. Весь процесс оценивается как эквивалент 40 умножений. Таким образом, при текущей производительности процессора, используя avx256/512 или hvx для полной оптимизации, вполне возможно достичь 30 кадров в секунду в реальном времени при сверхвысоком разрешении от 1080p до 4k.

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

(3.2) Сверхвысокое разрешение видео

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

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

Во-первых, кодирование видео представляет собой процесс сжатия с потерями, а процесс ухудшения качества сжатия последовательности различен для разных разрешений, поэтому невозможно найти подходящую пару HR/LR. Оценка качества видео также намного сложнее, чем оценка качества изображения. Поэтому визуальное качество является относительно простым критерием оценки. Конечно, можно найти пару HR/LR для расчета PSNR, но это гораздо менее убедительно, чем случай пары изображений.

Оцените модель:

Например, в этом процессе из-за огромного объема несжатых видеоизображений HR(0) не подходит для исходного эталонного разрешения. Мы можем выбрать HR(1) и HSR для сравнения, чтобы получить PSNR(0), а затем выбрать HR(1) для сравнения с HBR, полученным обычным растяжением, чтобы получить PSNR(1).Если PSNR(0) выше чем PSNR(1) ) велико, значит, сверхразрешение дало эффект.

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

Для дальнейшего повышения скорости обработки здесь также приняты некоторые меры по оптимизации:

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

Следовательно, в процессе видео SR базовое изображение HBR+, сгенерированное обычным b-сплайном + шумоподавление, можно использовать каждые два кадра для обработки HSR:

[HSR] ,[HBR+] ,[HBR+], [HSR], [HBR+], [HBR+], [HSR], [HBR+], [HBR+]

Подробный процесс быстрого процесса сверхвысокого разрешения SR над этим видео можно описать так:

Подсчитано, что качество вывода видео HSR от всего процесса сверхвысокого разрешения улучшается примерно на 1 дБ.