Говорите об извилинах в эпоху трансформаторов, диффузии и 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.