对于语义细分,通常最后一层是
postData(data): Promise<any>{
const url = `your_url`;
return this.http.post(url,data, {headers: your_header})
.toPromise()
.catch(this.handleError);
}
我的问题是,如何为此准备标签?例如,如果我要识别10个类,每个类都有不同的颜色。对于每个标签图像,我是否需要对一种特定颜色应用蒙版,将其转换为灰度图像,以便可以与模型输出中的1个滤镜进行比较?还是有办法将一张完整的RGB图片作为标签传递?
答案 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