У меня есть следующие элементы:
- карта объектов с формой
(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
, чтобы работать с вышеупомянутой моделью?
Я основал вышеизложенное на этом посте , но это сбивает с толку, так как он не показывает пример выходных данных и возвращаемых значений, он просто показывает код. Мне удалось создать все якоря и метки и оценить их, исходя из их близости к ограничивающим рамкам, но последние фигуры, которые нужно внедрить в model.fit()
(особенно в карту объектов), остаются полной загадкой.