Форма ввода для соответствия сети RPN - PullRequest
0 голосов
/ 14 февраля 2020

У меня есть следующие элементы:

  • карта объектов с формой (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() (особенно в карту объектов), остаются полной загадкой.

...