Начало работы с видео классификацией Используя глубокое обучение

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

Видео методология классификации включает эти шаги:

  1. Подготовьте обучающие данные

  2. Выберите видео классификатор

  3. Обучите и оцените классификатор

  4. Используйте классификатор, чтобы обработать видеоданные

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

Computer Vision Toolbox™ обеспечивает медленную и быструю трассу (SlowFast), ResNet с (2+1) свертки D и 2D поток расширенные 3D методы для обучения классификатор видео классификации.

Three video clips that feed into a video recogntiion network, and the predicted classifications from the network.

Создайте обучающие данные для видео классификации

Чтобы обучить сеть классификатора, вам нужны набор видео и его соответствующий набор меток сцены. Метка сцены является меткой, применился к области значений времени в видео. Например, вы могли пометить область значений систем координат "jumping".

Можно использовать Video Labeler или Ground Truth Labeler (Automated Driving Toolbox), чтобы интерактивно помечать достоверные данные в видео, последовательности изображений или пользовательском источнике данных с метками сцены. Для сводных данных все этикетировочные машины смотрите, Выбирают App to Label Ground Truth Data.

Video Labeler window with individual waving at camera, labeled with "wavingHello" ground truth.

Приложения этикетировочной машины экспортируют маркированные данные в файлы MAT, которые содержат groundTruth объекты. Для примера, показывающего, как извлечь обучающие данные из объектов основной истины, смотрите Обучающие данные Извлечения для Видео Классификации.

Увеличьте и предварительно обработайте данные

Увеличение данных обеспечивает способ использовать наборы ограниченных данных для обучения. Незначительные изменения, такие как перевод, обрезка, или преобразование изображения, обеспечивают новые, отличные, и уникальные изображения, которые можно использовать, чтобы обучить устойчивый видео классификатор. Хранилища данных являются удобным способом считать и увеличить наборы данных. Используйте fileDatastore функция с read функция, которая использует VideoReader чтобы считать видеофайлы, создать хранилища данных для видео и помеченной сцены помечают данные. Для примера, который увеличивает и предварительно обрабатывает данные, смотрите, что Распознавание Жеста Использует Изучение Классификатора DeepVideo.

Чтобы изучить, как увеличить и предварительно обработать данные, смотрите, Выполняют Дополнительные Операции Обработки изображений Используя Встроенные хранилища данных (Deep Learning Toolbox) и Хранилища данных для Глубокого обучения (Deep Learning Toolbox).

Создайте видео классификатор

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

  • slowFastVideoClassifier модель предварительно обучена на кинетике 400 наборов данных, которые содержат остаточную модель сети ResNet-50 как магистральную архитектуру с медленными и быстрыми трассами. Эта функциональность требует Модели Computer Vision Toolbox для Классификации Видео SlowFast.

  • r2plus1dVideoClassifier модель предварительно обучена на кинетике 400 наборов данных, которые содержат 18 пространственно-временных (ST) остаточных слоев. Эта функциональность требует Модели Computer Vision Toolbox для R (2+1) Видео Классификация D.

  • inflated3dVideoClassifier модель содержит две подсети: видео сеть и сеть оптического потока. Эти сети обучены на кинетике 400 наборов данных с потоком данных RGB и данными об оптическом потоке, соответственно. Эта функциональность требует Модели Computer Vision Toolbox для расширенной 3D Видео Классификации.

Таблица обеспечивает сравнение их, глубокое обучение поддержало классификаторы:

Модель

Источники данных

Размер модели классификатора (Pretained на кинетике 400 наборов данных)

Поддержка графического процессора

Несколько классифицируют поддержку

Описание

SlowFast

Видеоданные

124 Мбайта

Да

Да

  • Более быстрая сходимость во время обучения, чем расширенный 3D видео классификатор. Передача обучения на вашем наборе данных может быть медленнее, чем R (2+1) видео классификатор D из-за этих двух трасс в 3-D сверточной нейронной сети.

  • 3-D сверточная нейронная сеть более глубока, чем те из Расширенного 3D и R (2+1) видео классификаторы D.

  • Не требует данных об оптическом потоке, в дополнение к видеоданным

  • Необходимо использовать низкий MiniBatchSize значение на графический процессор из-за глубины остаточных слоев. Значение должно быть намного ниже, чем для соответствующего R (2+1) классификатор D из-за этих двух трасс (примерно половина значения, которое вы использовали бы для R (2+1) D).

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

R (2+1) D

Видеоданные

112 Мбайт

Да

Да

  • Более быстрая сходимость во время обучения, чем расширенный 3D видео классификатор.

  • 3-D сверточная нейронная сеть более глубока, чем расширенный 3D CNN.

  • Не требует данных об оптическом потоке или данных о RGB.

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

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

Расширенный 3D

  • Данные об оптическом потоке

  • Видеоданные

91 Мбайт

Да

Да

  • Точность классификатора улучшается при объединении данных о RGB и оптического потока.

  • Более медленная сходимость во время обучения по сравнению с R (2+1) D и классификаторы видео SlowFast.

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

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

  • Можно установить MiniBatchSize к значению, больше, чем или для R (2+1) D или для SlowFast.

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

Видео классификаторДемонстрационный код создания

SlowFast

inputSize = [112 112 64 3];
classes = ["wavingHello","clapping"];
sf = slowFastVideoClassifier("resnet50-3d",classes,InputSize=inputSize)

R (2+1) D

inputSize = [112 112 64 3];
classes = ["wavingHello","clapping"];
rd = r2plus1dVideoClassifier("resnet-3d-18",classes,InputSize=inputSize)

Расширенный 3-D

inputSize = [112 112 64 3];
classes = ["wavingHello","clapping"];
i3d = inflated3dVideoClassifier("googlenet-video-flow",classes,InputSize=inputSize)

Обучите видео классификатор и оцените результаты

Чтобы изучить, как обучить и оценить результаты для перечисленных видео классификаторов, смотрите эти примеры:

Классифицируйте Используя классификаторы видео глубокого обучения

Чтобы изучить, как классифицировать видео с помощью видео классификатора, смотрите эти примеры:

Смотрите также

Приложения

Похожие темы