метка и прогноз в маске R-CNN - PullRequest
       29

метка и прогноз в маске R-CNN

0 голосов
/ 29 сентября 2018

Я попытался реализовать функцию потерь в модели mask-RCNN , используя инструмент Tensorflow .Я использовал средняя сигмоидальная перекрестная энтропия функция потерь ::

loss_mask = tf.reduce_mean(tf.nn.sigmoid_cross_entropy_with_logits( labels=y_true, logits=y_pred))

ветвь маски , используемая для задачи классификации объектов.Они использовали сигмоидальную плотную классификацию пикселей для каждого RoI (карта объекта).Форма выходных логитов равна [batch_size num_roi, m, m, k] , где m m - маска (RoImap) разрешение и k - количество классов.

Я запутался с формой метки и логитов в функции loss .Приведенный ниже абзац взят из Mask-Rcnn paper , и это меня смущает.

Ветвь маски имеет K (m * m) размерный выход для каждого RoI, который кодируетK двоичных масок разрешения m × m, по одной для каждого из K классов.Для этого мы применяем сигмоид на пиксель и определяем Loss_mask как среднюю двоичную кросс-энтропийную потерю.Для RoI, связанного с классом истинности земли, Loss_mask определяется только для k-й маски (другие выходные данные маски не вносят свой вклад в потерю).Наше определение Loss_mask позволяет сети генерировать маски для каждого класса без конкуренции между классами;мы полагаемся на специальную ветвь классификации, чтобы предсказать метку класса, используемую для выбора выходной маски

Я не понимаю, что они означают для

Для RoI, связанного с землей-Правда класса k, Loss_mask определяется только для k-й маски (другие выходы маски не способствуют потере).

Что я должен изменить в logits и метки перед введением их в функцию потерь , чтобы моя реализация была правильной?

Другими словами, logits и метки в функции потери - маска всего изображения с каналом k ( [batch_size, img_height, img_width, k] ).я должен объединить RoI logits того же изображения в одну маску?

...