2016-05-02 9 views
5

Nachdem Sie ein Videoframe über ein Convnet übergeben und eine Ausgabe-Feature-Map erhalten haben, wie leiten Sie diese Daten an ein LSTM weiter? Wie übertrage man mehrere Frames an den LSTM durch den CNN?
In anderen Arbeiten möchte ich Video-Frames mit einem CNN verarbeiten, um die räumlichen Merkmale zu erhalten. Dann möchte ich diese Features an einen LSTM weitergeben, um eine zeitliche Verarbeitung der räumlichen Merkmale vorzunehmen. Wie verbinde ich den LSTM mit den Videofunktionen? Zum Beispiel, wenn das Eingangsvideo 56x56 ist und dann, wenn es durch alle CNN-Schichten läuft, sagen wir, es kommt als 20: 5x5 heraus. Wie sind diese Frame für Frame mit dem LSTM verbunden? Und sollten sie zuerst eine vollständig verbundene Ebene durchlaufen? Danke, JonWie übertrage ich Videofunktionen von einem CNN zu einem LSTM?

Antwort

1

enter image description here

Die Architektur von cnn + LSTM Modell wie das Diagramm unten aussehen Grundsätzlich müssen Sie die Zeit verteilt Wrapper für CNN-Ebene erstellen und dann die Ausgabe von CNN auf die LSTM Schicht passieren

cnn_input= Input(shape=(3,200,100,1)) #Frames,height,width,channel of imafe 
conv1 = TimeDistributed(Conv2D(32, kernel_size=(50,5), activation='relu'))(cnn_input) 
conv2 = TimeDistributed(Conv2D(32, kernel_size=(20,5), activation='relu'))(conv1) 
pool1=TimeDistributed(MaxPooling2D(pool_size=(4,4)))(conv2) 
flat=TimeDistributed(Flatten())(pool1) 
cnn_op= TimeDistributed(Dense(100))(flat) 

Danach können Sie Ihre CNN Ausgabe an LSTM

passieren

erinnern Sie bitte den Eingang zu dieser Zeit verteilt CNN sein muss (Anzahl der Frames, row_size, COLUMN_SIZE, Kanäle)

Und schließlich können Sie softmax auf der letzten Ebene anwenden, um einige Vorhersagen zu erhalten

+0

Danke , das ist großartig! – Jon

+0

Ich denke, ich verdiene ein upvote :-) – naaviii

Verwandte Themen