TensorFlow: как обрабатывать данные с помеченными помехами в сегментации изображения?

Мне было интересно, как обрабатывать не помеченные части изображения в сегментации изображения с помощью TensorFlow. Например, мой вход представляет собой изображение каналов ширины * ширины *. Этикетки также имеют ширину размера * ширину, с одной меткой для каждого пикселя.

Некоторые части изображения аннотируются, другие - нет. Я бы хотел, чтобы эти части не влияли на вычисления градиента вообще. Кроме того, меня не интересует сеть, предсказывающая эту метку "void".

Есть ли для этого метка или функция? В данный момент я использую tf.nn.sparse_softmax_cross_entropy_with_logits.

Ответы

Ответ 1

Я не на 100% знаком с TF. Однако рассмотрели ли вы использование параметра weights потери?
Глядя на tf.loses.sparse_softmax_cross_entropy, он имеет параметр weights

weights. Коэффициенты потери. Это должно быть скалярным или одинаковым рангом как метки

Вы можете установить weight "void" пикселей на ноль, таким образом, потеря проигнорирует их.

Вы также можете удалить сокращение с tf.nn.sparse_softmax_cross_entropy_with_logits и использовать tf.losses.compute_weighted_loss для выполнения взвешивания.

Ответ 2

Если я правильно понимаю, у вас есть часть каждого изображения с меткой void, в которой вы вообще не заинтересованы. Поскольку нет простого способа получить реальную ценность за этими пятнами пустоты, почему бы вам не сопоставить эти точки с меткой фона и попытаться получить результаты для своей модели? Я бы попытался в состоянии предварительной обработки, чтобы очистить метки данных от этой метки void и заменить их меткой фона.

Еще одна возможная стратегия, если вы просто хотите отобразить void метки в фоновом режиме, - это запустить маску (с непрерывным движением сверху вниз справа налево), чтобы проверить пиксели neigthbooring из пикселя void (скажем, область 5x5 пикселей) и присваивать пикселям void наиболее распространенную метку, кроме void.

Кроме того, вы всегда можете сохранить лучшее подмножество данных, фильтруя данные, где процентные метки недействительных превышают пороговое значение. Вы можете хранить только изображения без ярлыков void или более того, вы можете хранить изображения, которые имеют только под порогом (например, 5%) немаркированных точек. В этих изображениях вы можете реализовать вышеупомянутые стратегии замены меток void.