r2plus1dVideoClassifier

R (2+1) видео классификатор D. Требует Модели Computer Vision Toolbox для R (2+1) Видео Классификация D

Описание

r2plus1dVideoClassifier объект возвращает R (2+1) видео классификатор D, предварительно обученный на кинетике 400 наборов данных. Можно использовать предварительно обученный видео классификатор, чтобы классифицировать 400 человеческих поступков, таких как выполнение, обход и рукопожатие.

Создание

Описание

rd = r2plus1dVideoClassifier возвращает R (2+1) видео классификатор D, предварительно обученный на кинетике 400 наборов данных.

rd = r2plus1dVideoClassifier("resnet-3d-18",classes) конфигурирует предварительно обученный R (2+1) видео D classifer для передачи обучения на новом наборе классов, classes. Видео классификатор предварительно обучен на кинетике 400 наборов данных со сверточной нейронной сетью (CNN) ResNet3D с 18 пространственно-временными слоями.

rd = r2plus1dVideoClassifier(___,Name=Value) свойства наборов с помощью аргументов name-value в дополнение к входным параметрам от предыдущего синтаксиса. Например, rd = r2plus1dVideoClassifier("resnet-3d-18",classes,InputSize=[112,112,3,32]) устанавливает входной размер сети. Можно задать несколько аргументов name-value.

Примечание

Эта функция требует Модели Computer Vision Toolbox™ для R (2+1) Видео Классификация D. Можно установить Модель Computer Vision Toolbox для R (2+1) Видео Классификация D из Add-On Explorer. Для получения дополнительной информации об установке дополнений, смотрите, Получают и Управляют Дополнениями. Чтобы использовать этот объект, у вас должна быть лицензия на Deep Learning Toolbox™.

Свойства

развернуть все

Сконфигурируйте свойства классификатора

Это свойство доступно только для чтения.

Размер видео сети классификатора в виде четырехэлементного вектора-строки в форме [H, W, C, T], где H и W представляют высоту и ширину соответственно, C, представляют количество каналов, и T представляет количество кадров для видео подсети.

Типичные значения для количества кадров равняются 8, 16, 32, или 64. Увеличьте количество кадров, чтобы получить временную природу действий когда обучение классификатор.

Это свойство доступно только для чтения.

Статистика нормализации для видеоданных в виде структуры с именами полей MinMax среднее значение, и StandardDeviation. Min и Max значения полей задают минимальные и максимальные значения для того, чтобы перемасштабировать видеоданные. Mean, и StandardDeviation значения задают среднее и стандартное отклонение для входной нормализации. Все значения полей должны быть заданы как вектор-строка из размера, равного количеству каналов для данных о вводе видео.

Структура по умолчанию содержит поля, MinMax среднее значение и StandardDeviation со значениями [0,0,0], [255,255,255],, [0.45,0.45,0.45], и [0.225,0.225,0.225], соответственно. Необходимо вычислить значения статистики от набора данных, которому вы - обучение видео классификатор. Чтобы перемасштабировать данные с помощью минимальных и максимальных значений, предварительно вычисленных из набора данных, задайте оба Min и Max. В противном случае минимальные и максимальные значения вычисляются от каждой входной последовательности при использовании updateSequence или classifyVideoFile.

Примечание

Объект нормирует данные путем перемасштабирования его между 0 и 1, и затем перемасштабированные данные стандартизированы путем вычитания среднего значения и деления на стандартное отклонение. Перемасштабированные данные стандартизированы если Mean и StandardDeviation поля непусты. Вход автоматически нормирован при использовании updateSequence или classifyVideoFile функции объекта. Данные должны быть вручную нормированы при использовании forward или predict функции объекта.

Имя обученного видео классификатора в виде строкового скаляра.

Это свойство доступно только для чтения.

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

classes = ['kiss','laugh','pick','pour','pushup'];

Учебные свойства

Настраиваемые параметры для ResNet (2+1) видео классификатор D в виде таблицы с тремя столбцами.

  • Layer — Имя слоя в виде строкового скаляра.

  • Parameter — Название параметра в виде строкового скаляра.

  • Value — Значение параметров в виде dlarray Объект (Deep Learning Toolbox).

Сетевые настраиваемые параметры содержат функции, изученные сетью. Например, веса свертки и полносвязных слоев.

Состояние nonlearnable параметров для ResNet (2+1) видео классификатор D в виде таблицы с тремя столбцами.

  • Layer — Имя слоя в виде строкового скаляра.

  • Parameter — Название параметра в виде строкового скаляра.

  • Value — Значение параметров в виде dlarray Объект (Deep Learning Toolbox).

Сетевое состояние содержит информацию, которую помнит сеть между итерациями. Например, состояние длинных краткосрочных сетей (LSTM) и слоев нормализации партии. Во время обучения или вывода, можно обновить сетевое состояние с помощью выхода forward и predict функции объекта.

Свойства классификации потоковых видео

Это свойство доступно только для чтения.

Видео последовательность раньше обновляла и классифицировала последовательности для потоковой передачи классификации в виде 4-D числового массива. Каждый вектор в массиве имеет форму [H, W, C, T], где H и W представляют высоту и ширину соответственно, C представляет количество каналов, и T представляет количество кадров для видео подсети. updateSequence и classifySequence возразите, что функции используют видео последовательность, заданную VideoSequence свойство.

Функции объекта

развернуть все

classifyVideoFileКлассифицируйте видеофайл
classifySequenceКлассифицируйте видео последовательность
resetSequenceСбросьте видео свойства последовательности для классификации потоковых видео
updateSequenceОбновите видео последовательность для классификации
forwardВычислите видео классификатор выходные параметры для обучения
predictВычислите видео предсказания классификатора

Примеры

свернуть все

В этом примере показано, как классифицировать видеопоток с помощью предварительно обученного R (2+1) видео классификатор D.

Загрузите предварительно обученный R (2+1) видео классификатор D.

rd = r2plus1dVideoClassifier();

Создайте VideoReader, чтобы считать видеокадр системой координат.

videoFilename = "visiontraffic.avi";
reader = VideoReader(videoFilename);

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

player = vision.VideoPlayer;
player.Position(:,3:4) = [reader.Width reader.Height];

Задайте частоту, на которой системы координат потокового видео будут классифицированы как 10. Классификатор будет применен к последовательности видеокадров каждые 10 систем координат, чтобы сбалансировать эффективность во время выполнения относительно эффективности классификации.

classificationFrequency = 10;

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

sequenceLength = rd.InputSize(4);

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

numFrames = 0;
text = "";

while hasFrame(reader)
    frame = readFrame(reader);
    numFrames = numFrames + 1;

    % Update the sequence with the next video frame.
    rd = updateSequence(rd,frame);

    % Classify the sequence based on the classificationFrequency.
    if mod(numFrames, classificationFrequency) == 0 && numFrames >= sequenceLength
        [label,score] = classifySequence(rd);
        text = string(label) + "; " + num2str(score, "%0.2f");
    end

    % Insert the predicted label into the video frame.
    frame = insertText(frame,[30,30],text,'FontSize',18);

    % Display the video and label. 
    step(player,frame);
end

Введенный в R2021b