Говорите об извилинах в эпоху трансформаторов, диффузии и RLHF (ChatGPT)? Я не старая школа, а инженер, чья работа заключается в поиске наилучшего решения.

Без дальнейших церемоний, давайте начнем.

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

Архитектуры для понимания видео

Исследователи машинного обучения предложили различные архитектуры для распознавания и интерпретации визуальной и временной информации. Одним из популярных подходов является использование 3D CNN, которые предназначены для захвата как пространственных, так и временных аспектов видео. Другой подход заключается в использовании 2D CNN в качестве средств извлечения признаков, которые затем передаются в модели последовательности, такие как LSTM или GRU. В последнее время архитектуры Transformer, известные своей способностью обрабатывать последовательные данные, также использовались для моделирования видео. Подробности некоторых из этих архитектур я описал здесь.

В этой статье мы попытаемся обобщить некоторые архитектуры на основе сверточных нейронных сетей в литературе.

Сверточные нейронные сети

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

Сверточные нейронные сети (CNN) были популярны в компьютерном зрении из-за меньшего количества параметров. Хотя CNN де-факто оставались решением для изображений в течение многих лет, они также успешно применялись к другим типам данных, таким как графики, видео, временные ряды и т. д.

Ниже мы собираемся обсудить детали некоторых архитектур CNN, которые использовались для понимания видео.

Раздутые I3D-архитектуры

Архитектуры I3D преобразуют предварительно обученную 2D CNN, начальную сеть, в 3D CNN, увеличивая ее веса до 3D. Это делается путем репликации 2D-фильтров во временном измерении и их обучения видеоданным. Это позволяет сети изучать как пространственные, так и временные особенности, что делает ее подходящей для задач понимания видео. Кроме того, в архитектуре I3D также используются трехмерные слои объединения, которые могут собирать временную информацию путем объединения во времени.

Другие эффективные 2D-архитектуры также были преобразованы в 3D-данные. Некоторые примеры: EfficientNet 3D, ResNet 3D,

S3D-архитектуры

Архитектура S3D разделяет пространственную и временную обработку информации в видеомоделировании. Архитектура S3D использует 2D CNN для обработки пространственной информации в каждом кадре видео и 1D CNN для обработки временной информации между кадрами.

Существуют и другие подходы, такие как X3D, которые также используют пространственные и временные свертки для обработки видео, но используют другую магистральную сеть.

В приведенной выше и следующих архитектурах двумерная пространственная свертка представлена ​​Conv3D с размером фильтра (1, 3, 3). Это означает, что наш слой не принимает во внимание временные изменения. С другой стороны, одномерная временная свертка представлена ​​Conv3D с размером фильтра (3, 1, 1). В этом случае наш слой не учитывает пространственные изменения.

Смешанная свертка (MC)

Смешанная свертка (MC) использует 3D-свертки только на ранних уровнях сети, а 2D-свертки — на верхних слоях. Авторы объясняют, что моделирование движения — это операция низкого/среднего уровня, которая может быть реализована с помощью 3D-сверток на ранних уровнях сети и пространственных рассуждений по этим характеристикам движения среднего уровня (реализованным с помощью 2D-сверток на верхних слоях). ) приводит к точному распознаванию действий.

# PyTorch Styled sample of R(2+1)D
Conv3d(kernel_size=(3, 3, 3)) # Input shape #b, c, t, h, w # Spatial Convolution
BatchNorm3d(midplanes),
ReLU(inplace=True),
Conv3d(kernel_size=(1, 3, 3)) # Convolution 2D only spatial filters

R(2+1)D

R(2+1)D извлекает трехмерные сверточные фильтры в отдельные пространственные и временные компоненты. Эта декомпозиция достигается путем разделения трехмерной свертки на две отдельные операции: двумерную пространственную свертку и одномерную временную свертку, что приводит к дополнительному нелинейному выпрямлению между двумя операциями. Это позволяет модели представлять более сложные функции с тем же количеством параметров. Кроме того, декомпозиция облегчает оптимизацию, что приводит к снижению потерь при обучении и тестировании.

# PyTorch Styled sample of R(2+1)D
Conv3d(kernel_size=(1, 3, 3)) # Input shape #b, c, t, h, w # Spatial Convolution
BatchNorm3d(midplanes),
ReLU(inplace=True),
Conv3d(kernel_size=(3, 1, 1)) # Temporal Convolution

Медленно быстро

Архитектура SlowFast использует два параллельных потока CNN: медленный путь и быстрый путь. Медленный путь предназначен для захвата подробной пространственной и временной информации путем обработки видео с более низкой частотой кадров, а быстрый путь предназначен для захвата грубой пространственной и временной информации путем обработки видео с более высокой частотой кадров.

blvNet

blvNet фиксирует временные взаимодействия между последовательностями кадров, используя слияние. Функции извлекаются для четных и нечетных кадров с использованием разных слоев, а взаимодействия между соседними узлами объединяются. Другой вариант blVNet-TAM также учитывает глобальный временной контекст, используя глобальное слияние извлеченных глубоких признаков. Основная идея состоит в том, чтобы объединять временную информацию в каждый момент времени путем взвешенной агрегации по каналам.

Для временной агрегации авторы используют ТАМ, которая, по сути, представляет собой свертку по глубине, за которой следует сдвиг.

Заключение

В этой статье мы подробно рассмотрим некоторые подходы на основе сверточных нейронных сетей для понимания видео. Некоторые архитектуры являются переводами высокопроизводительных 2D-архитектур, в то время как другие разлагают пространственно-временную информацию на пространственную и временную, используя 2D- и 3D-CNN.