Сегментация изображений с 3 классами, но один из них легко найти. Как я могу написать сеть, чтобы не обучаться на легкий? - PullRequest
0 голосов
/ 20 декабря 2018

Я использую MS-D или UNet сеть для сегментации изображения.Мое изображение имеет три класса: шум, сигнал и пустой.Пустой класс легко найти, потому что значения пикселей для пустого класса в основном равны -1, а для двух других классов - между 0-1.

Есть ли способ, которым я только прошу сеть найти шум и класс сигнала, а не беспокоить сеть по поводу простого?Или любой другой ключ, который может помочь?Я вижу, что сеть иногда путается при прогнозировании пикселей сигнала и дает примерно одинаковую оценку, но с более высоким классом сигнала (например, empty0.0001, noise0.0003, signal0.0005) для всех трех классов.Я хочу, чтобы сеть поняла это.

Просто больше информации о моем изображении, около 25% пикселей - это сигнал, 40% - шум и 35% - пустые.Я использую dice_coef для метрики и функции потерь.

1 Ответ

0 голосов
/ 21 декабря 2018

Я не уверен, что вы можете сделать это.Я думаю, что Вы должны применить некоторую регуляризацию и / или отсев к сети и передать ей больше данных.

Но то, что вы могли бы сделать, это пометить все пустые пиксели как noise, так как signal обычно находится всередина и noise находится на внешней стороне графика сигнала.Тогда вы тренируете сеть таким образом.Вам нужно будет установить сетевые выходы на 2: noise или signal.Из исходного изображения вы знаете, какие пиксели были empty, а затем вы можете установить эти пиксели от noise до empty.Тогда вы получите желаемый результат.

Единственное, что здесь может произойти, это то, что сеть будет работать плохо из-за несбалансированных классов, поскольку у вас будет гораздо больше noise, чем signal пикселей.

...