我想创建一个网络,它将 n 帧作为一个输入并将其标记为一个分类器。
我想建立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) # …Run Code Online (Sandbox Code Playgroud)