Распознавание действий для нескольких объектов и локализация - PullRequest
0 голосов
/ 23 марта 2019

Я хочу задать вопрос об обнаружении действия на видео с предлагаемыми кадрами.Я использовал Temporal 3D ConvNet для распознавания действий на видео.Успешно обучил его и может распознавать действие на видео.

Когда я делаю вывод, я просто собираю 20 кадров из видео, передаю их на модель, и это дает мне результат.Дело в том, что события на разных видео не одинакового размера.Некоторые из них покрывают 90% кадра, а некоторые могут 10%.Давайте возьмем в качестве примера, что два объекта столкнулись, и это может произойти в другом масштабе, и я хочу обнаружить это действие.

  • Как предоставить модели точное положение для распознавания действия, еслиэто может произойти в разных масштабах с разными объектами?Что приходит в голову, так это использовать Yolo для сбора областей интереса и кормить собранные кадры каждый раз, когда 3D-коннет.Но если объектов много, скорость будет очень медленной.Как с этим справиться?

  • Существуют ли комплексные решения для распознавания действий с предложением местоположения объекта для сети распознавания действий?

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

Так что просто для краткости, идея заключается в том,чтобы получить объект, который потенциально может столкнуться в любом масштабе, а затем подать, например, 20 кадров в 3D-камеру, чтобы вынести решение.

Любой совет от вас?Может быть, кто-то может объяснить мне подход?

1 Ответ

0 голосов
/ 29 марта 2019

Это мои модели CNN + LSTM, поэтому в данный момент пытаюсь его улучшить.

    video = Input(shape=(None, 224,224,3))
cnn_base = VGG16(input_shape=(224,224,3),
                weights="imagenet",
                include_top=False)
cnn_out = GlobalAveragePooling2D()(cnn_base.output)
cnn = Model(inputs=cnn_base.input, outputs=cnn_out)
cnn.trainable = False
encoded_frames = TimeDistributed(cnn)(video)
encoded_sequence = LSTM(32, dropout=0.5, W_regularizer=l2(0.01), recurrent_dropout=0.5)(encoded_frames)
hidden_layer = Dense(units=64, activation="relu")(encoded_sequence)
dropout = Dropout(0.2)(hidden_layer)
outputs = Dense(5, activation="softmax")(dropout)
model = Model([video], outputs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...