Постобработка мультиклассовых прогнозов для сегментации изображения?
Мой FCN обучен обнаружению 10 различных классов и производит вывод 500x500x10
с каждым из окончательных измерений, являющихся вероятностями предсказания для другого класса.
Обычно я видел, например, использование одинакового порога 0.5
, для бинаризации вероятностных матриц. Тем не менее, в моем случае это не совсем сократить, потому что IoU для некоторых классов увеличивается, когда порог 0.3
и для других классов это 0.8
,
Следовательно, мне не нужно произвольно выбирать пороговое значение для каждого класса, а скорее использовать более вероятностный подход к завершению пороговых значений. Я думал об использовании CRF, но это также требует, чтобы пороговое значение уже было сделано. Есть идеи, как поступить?
Пример: рассмотрим изображение леса с 5 разными птицами. Теперь я пытаюсь вывести изображение, которое сегментирует лес и пять птиц по 6 классов, каждый с отдельной меткой. Сеть выводит 6 матриц путаницы, указывающих достоверность того, что пиксель попадает в определенный класс. Теперь правильный ответ для пикселя - это не всегда класс с самым высоким значением достоверности. Таким образом, метод одного размера подходит для всех методов или метод максимального значения не будет работать.
1 ответ
CRF Постобработка Подход
Вам не нужно устанавливать пороги для использования CRF. Я не знаком ни с какими библиотеками Python для CRF, но в принципе вам нужно определить следующее:
- Распределение вероятностей по 10 классам для каждого из узлов (пикселей), которое является просто выходом вашей сети.
- Парные потенциалы: матрица 10*10, где элемент Aij обозначает "силу" конфигурации, в которой один пиксель принадлежит классу i, а другой - классу j. Если вы установите для потенциалов значение альфа (альфа >> 1) на диагонали и 1 в другом месте, то альфа - это сила регуляризации, которая обеспечивает согласованность прогнозов (если пиксель X принадлежит классу Y, то соседние пиксели Х чаще принадлежат к одному классу).
Это только один пример того, как вы можете определить свой CRF.
Подход к концу NN подход
Добавьте потери в свою сеть, которые будут штрафовать пиксели, у которых есть соседи другого класса. Обратите внимание, что у вас все равно останется настраиваемый параметр для веса новой потери регуляризации.