输入形状以适合RPN网络

时间:2020-02-13 21:44:07

标签: python tensorflow keras faster-rcnn

我具有以下要素:

  • 形状为(1, 4, 3, 1536)的特征图(将图像输入到经过预先训练的InceptionResNetV2模型中的输出)
  • [1., 0., 0., 1.]格式的锚标签列表
  • [(tx, ty, tw, th)]形式的锚定边界框回归列表

RPN网络将接受上面提到的元素,但是我不知道如何重塑它们:

k = 9

feature_map_tile = Input(shape=(None,None,1536))

convolution_3x3 = Conv2D(
    filters=512,
    kernel_size=(3, 3),
    padding='same',
    name="3x3"
)(feature_map_tile)

output_deltas = Conv2D(
    filters= 4 * k,
    kernel_size=(1, 1),
    activation="linear",
    kernel_initializer="uniform",
    name="delta_1"
)(convolution_3x3)

output_scores = Conv2D(
    filters=1 * k,
    kernel_size=(1, 1),
    activation="sigmoid",
    kernel_initializer="uniform",
    name="score_1"
)(convolution_3x3)

model = Model(inputs=[feature_map_tile], outputs=[output_scores, output_deltas])

model.compile(optimizer='adam', loss=dict(delta_1='mse', score_1='binary_crossentropy'))

model.fit(tiles, [labels, bboxes])

tileslabelsbboxes必须采用什么形式才能与上述模型一起使用?

我将以上内容基于this post,但由于它没有显示输出和返回值的示例,而只是显示了代码,因此令人困惑。我设法创建了所有的锚点和标签,并根据它们与边界框的接近程度对其进行了评估,但是要提取到model.fit()中的最终形状(尤其是要素地图的形状)仍然是一个完全的谜。

0 个答案:

没有答案