【发布时间】:2019-03-31 22:23:08
【问题描述】:
我想创建一个将 n 帧作为一个输入并将其标记到一个分类器的网络。
enter for my target network to understand me
我想建立 2 个网络,
首先:使用 Alexnet、Googlenet 等模型来做到这一点。 第二:使用LSTM模型来做到这一点。
顺便说一下,n 帧是视频帧中的连续帧。我想这对第一个模型无关紧要。对第二个很重要。
我是图像深度学习领域的新手。我正在使用 Keras,但我不知道如何构建这个我必须做的网络。尤其是第一个。 Alexnet 架构只需要一个帧作为输入,但我想给 n 帧作为输入。
这只是我尝试的一个例子。我选择 n=5。为了将 n 帧作为输入,我将 n 帧堆叠为通道。当我告诉你我做了什么时,人们说:“天哪,你在做什么。”我不明白为什么。 (FlowNet 架构不使用这种方式?)我仍然不知道该怎么做。
img1 = cv2.cvtColor(cv2.imread('frame0'),cv2.COLOR_BGR2GRAY) # 64x64x1
img2 = cv2.cvtColor(cv2.imread('frame1'),cv2.COLOR_BGR2GRAY) # 64x64x1
img3 = cv2.cvtColor(cv2.imread('frame2'),cv2.COLOR_BGR2GRAY) # 64x64x1
img4 = cv2.cvtColor(cv2.imread('frame3'),cv2.COLOR_BGR2GRAY) # 64x64x1
img5 = cv2.cvtColor(cv2.imread('frame4'),cv2.COLOR_BGR2GRAY) # 64x64x1
# this is only a sample for label1. (a sample = 5 sequential frames)
a_sample_for_label1 = np.stack([img1,img2,img3,img4,img5],axis=2) # gives me 64x64x5
img1_ = cv2.cvtColor(cv2.imread('other_frame0'),cv2.COLOR_BGR2GRAY) # 64x64x1
img2_ = cv2.cvtColor(cv2.imread('other_frame1'),cv2.COLOR_BGR2GRAY) # 64x64x1
img3_ = cv2.cvtColor(cv2.imread('other_frame2'),cv2.COLOR_BGR2GRAY) # 64x64x1
img4_ = cv2.cvtColor(cv2.imread('other_frame3'),cv2.COLOR_BGR2GRAY) # 64x64x1
img5_ = cv2.cvtColor(cv2.imread('other_frame4'),cv2.COLOR_BGR2GRAY) # 64x64x1
# this is only a sample for label2. (a sample = 5 sequential frames)
a_sample_for_label2 = np.stack([img1_,img2_,img3_,img4_,img5_],axis=2) # gives me 64x64x5
model = alexnet(shape=(64,64,5))
model.compile(...)
model.fit(np.array[a_sample_for_label1,a_sample_for_label2],[1,2])
【问题讨论】:
标签: python deep-learning conv-neural-network