Подготовка данных для видео классификации переменной длины - PullRequest
1 голос
/ 06 марта 2020

Я делаю классификацию видео для обнаружения действий с использованием Keras (v.2.3.1). Моя модель - CNN и LSTM. Мой набор данных состоит из видео продолжительностью 3-7 секунд, каждое из которых представляет конкретное действие c. Я использую OpenCv, чтобы получить кадры из каждого видео. Но так как длина видео различна, я получаю разное количество кадров для каждого видео. Однако мне нужно иметь такое же количество кадров для слоя LSTM. Я немного искал и выглядит так, как будто это делают отступы и маскирующий слой, но я не могу понять, как это сделать с Keras. Любая помощь приветствуется. Вот моя модель:

conv_base = VGG16(weights= 'imagenet', include_top=False)

model = models.Sequential()
model.add(TimeDistributed(conv_base, input_shape = (n_timesteps, img_length, img_height, channel)))
model.add(TimeDistributed((Flatten())))
model.add(LSTM(units = lstm_cells))
model.add(Dropout(0.5))
model.add(Dense(512, activation='relu'))     
model.add(Dense(256, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='sigmoid'))
...