2016-05-02 18 views
5

Sau khi bạn vượt qua một khung hình video thông qua một convnet và có được một bản đồ đầu ra tính năng, làm thế nào để bạn vượt qua dữ liệu đó vào một LSTM? Ngoài ra, làm thế nào để bạn vượt qua nhiều khung để LSTM thông qua CNN?
Trong các tác phẩm khác, tôi muốn xử lý các khung hình video với CNN để có được các tính năng không gian. Sau đó, tôi muốn chuyển các tính năng này cho một LSTM để xử lý thời gian trên các tính năng không gian. Làm cách nào để kết nối LSTM với các tính năng của video? Ví dụ: nếu video đầu vào là 56x56 và sau đó khi được chuyển qua tất cả các lớp CNN, hãy nói rằng nó xuất hiện dưới dạng 20: 5x5. Các kết nối này được kết nối với LSTM như thế nào trên khung theo khung? ANd shoudl họ đi qua một lớp kết nối đầy đủ đầu tiên? Cảm ơn, JonLàm cách nào để chuyển các tính năng video từ CNN sang LSTM?

Trả lời

5

Về cơ bản, bạn có thể làm phẳng từng tính năng của khung và nạp chúng vào một ô LSTM. Với CNN, nó giống nhau. Bạn có thể nạp mỗi đầu ra của CNN vào một ô LSTM.

Đối với FC, tùy thuộc vào bạn.

Xem cấu trúc mạng từ http://www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-180.pdf.

enter image description here

1

enter image description here

Các kiến ​​trúc của cnn mô hình + lstm sẽ trông giống như sơ đồ dưới đây Về cơ bản bạn phải tạo thời gian phân phối wrapper cho lớp CNN và sau đó vượt qua đầu ra của CNN đến lớp LSTM

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) 

Sau này bạn có thể vượt qua sản lượng CNN của bạn để LSTM

lstm = LSTM(128, return_sequences=True, activation='tanh')(merged) 
op =TimeDistributed(Dense(100))(lstm) 
fun_model = Model(inputs=[cnn_input], outputs=op) 

hãy nhớ đầu vào đến thời điểm này phân phối CNN phải (số khung, row_size, column_size, kênh)

Và Cuối cùng, bạn có thể áp dụng softmax ở lớp cuối cùng để có được một số dự đoán

+0

Cảm ơn bạn , cái đó thật tuyệt! – Jon

+0

Tôi nghĩ rằng tôi xứng đáng nhận được một điều tuyệt vời :-) – naaviii

Các vấn đề liên quan