2017-05-28 45 views
-3

我有一個形狀爲(128,128,6)的圖像張量。它包含沿着第三維(2x3 = 6個通道)堆疊的兩個圖像。現在我想在這個維度上使用卷積,這樣我就可以得到一個(128,128,3)張量,我可以用它作爲使用Keras的預訓練模型(例如vgg16)的輸入。使用Keras對兩個圖像進行卷積

這兩個圖像可以被視爲視頻的相鄰幀。目標是獲得關於第一和第二圖像之間的變化的信息(找到圖像之間的某些局部相關)

如何使用(例如)5x5x6內核執行此類卷積。或者,我可以用5x5x2內核將每個圖像的各個通道進行卷積(分別對兩幅圖像的紅色,綠色和藍色通道進行卷積處理)。

我怎麼會在Keras或本地Tensorflow實現這一點?

回答

1

我會做的是使用三個輸入,在這裏我用每兩個圖像。然後你可以使用像這樣的標準卷積:Convolution2D(1, 5, 5, border_mode='same')分別爲每個輸入實現所需的結果。之後,您可以將它們與合併圖層進行合併,並將生成的圖像提供給預培訓的網絡。

,不論是這樣的tensorflow dim_ordering:

inp1 = Input((128,128,2)) 
cv1 = Convolution2D(1, 5, 5, border_mode='same') 
inp2 = Input((128,128, 2)) 
... 
model_input = merge([cv1, cv2, cv3], mode='concat', concat_axis=-1)