我具有以下要素:
(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])
tiles
,labels
和bboxes
必须采用什么形式才能与上述模型一起使用?
我将以上内容基于this post,但由于它没有显示输出和返回值的示例,而只是显示了代码,因此令人困惑。我设法创建了所有的锚点和标签,并根据它们与边界框的接近程度对其进行了评估,但是要提取到model.fit()
中的最终形状(尤其是要素地图的形状)仍然是一个完全的谜。