Keras多类语义分割标签

时间:2018-07-30 09:27:48

标签: keras deep-learning conv-neural-network

对于语义细分,通常最后一层是

postData(data): Promise<any>{ const url = `your_url`; return this.http.post(url,data, {headers: your_header}) .toPromise() .catch(this.handleError); }

我的问题是,如何为此准备标签?例如,如果我要识别10个类,每个类都有不同的颜色。对于每个标签图像,我是否需要对一种特定颜色应用蒙版,将其转换为灰度图像,以便可以与模型输出中的1个滤镜进行比较?还是有办法将一张完整的RGB图片作为标签传递?

2 个答案:

答案 0 :(得分:1)

您的网络输出将是一个具有10个通道的图像,其中每个像素将由一个概率矢量组成,这些概率矢量之和为1(由于softmax)。示例:[0.1,0.1,0.1,0.05,0.05,0.1,0.1,0.1,0.1,0.2]。您希望标签图像具有相同的形状:具有10个通道的图像,并且每个像素都是一个二进制矢量,在类的索引处为1,在其他位置为0。那么您的细分损失函数就是逐像素交叉熵。

为实现:keras中的softmax具有轴参数:https://keras.io/activations/#softmax

答案 1 :(得分:0)

np_utils.to_categorical(labels, num_classes)

当标签为(row,col)时,输出形状将为:(row,col,num_classes)

示例: https://github.com/naomifridman/Unet_Brain_tumor_segmentation