2017-05-28 8 views
-3

私は画像のテンサーの形状が(128,128,6)です。これは、第3次元(2x3 = 6チャンネル)に沿って積み重ねられた2つの画像を含む。今では、Kerasを使用して事前訓練されたモデル(たとえばvgg16)への入力として使用できる(128,128,3)Tensorを取得するような次元で畳み込みを使用したいと思います。ケラスを使った2つの画像の畳みあい

2つの画像は、ビデオの隣接するフレームとして見ることができます。

私は、例えば、5x5x6カーネルを使用する場合、どのようにこのような畳み込みを行うことができますか?あるいは、私は5x5x2カーネル(各画像の赤、緑、青のチャンネルを別々に畳み込む)で各画像のそれぞれのチャンネルを畳み込むことができます。

これをKerasまたはネイティブTensorflowでどのように実装しますか?

答えて

1

私が行うのは、それぞれに2つの画像を使用する3つの入力を使用することです。それでは、希望の結果を得るために、各入力に対して別々のConvolution2D(1, 5, 5, border_mode='same')のような標準的な畳み込みを使うことができます。その後、それらをマージレイヤーとマージし、得られたイメージを事前に訓練されたネットワークに送ることができます。

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) 
:tensorflow dim_orderingのために、このようになります。そのすべてにおいて

関連する問題