Несколько вопросов о графике результатов Unet - PullRequest
0 голосов
/ 02 июля 2019

Я изучаю этот пример про Unet .Речь идет о бинарной сегментации, и у меня есть несколько вопросов о коде:

  1. что означает делать:

    #preprocess the mask 
    mask[mask >= 2] = 0 
    mask[mask != 0 ] = 1
    

    Набор данных содержит изображения "маски"состоит из трех цветов (на самом деле они называются «тримапами»).В качестве теста я попытался построить mask до и после этого фрагмента кода, и похоже, что роль этих строк кода заключается в преобразовании mask изображений из трехцветных в двухцветные (background: purple и foregorund: yellow), но я не знаю, как.

  2. В нижней части раздела « Генераторы » есть изображение, состоящее из трех подизображений.Подизображение посередине представляет собой «черно-белую» маску.Какие строки кода выполняют преобразование цветов «маскирующих» изображений из purple/yellow в black/white?

  3. Наконец, я попытался нанести msk через кодлиния plt.imshow(msk), вместо того, чтобы выводить ее через plt.imshow( np.concatenate([img, msk], axis = 1)) (как сделано в коде).Но результат построения от msk до plt.imshow(msk) - черная картинка, почему?

1 Ответ

1 голос
/ 02 июля 2019
  1. UNet, по крайней мере, в своем первоначальном виде, работает с двоичными масками. У вас есть маски с тремя областями: фон, объект и какой-то край. Этот фрагмент кода делает фон (метка 2) равным нулю, а объект и его ребро (метки 0 и 1) равны единице. Таким образом, у вас есть бинарная маска для использования в качестве основной истины. Вы видите их в пурпурном и желтом, потому что цветовая карта по умолчанию для matplotlib viridis , которая оказывается пурпурной в ноль и желтой в 1. Не то, чтобы это на самом деле выбрасывало полезную информацию из тех масок, которые могли бы быть так или иначе использованы для тренировать лучшую модель. Но все в порядке, чтобы немного упростить вещи и лучше понять, что происходит.

  2. Последний шаг в коде предварительной обработки маски преобразует одноцветные маски в rgb. Поэтому, когда вы наносите их с цветными изображениями, ваша маска может быть либо (0, 0, 0) черного цвета, либо (1, 1, 1) белого цвета.

  3. Не уверен, что это должно работать, возможно, что-то с нормализацией по умолчанию в plt.imshow

...