非分类掩码的UNet损失函数?
我有一个用Keras实现的UNet分割网络,它的功能是将RGB图像中的每个像素映射到四个类别,训练时使用的是热图掩码(低、低中、高中、高)。通过使用交叉熵损失(CCE)或分类Dice损失,我得到了不错的结果。
不过,这个掩码最初是一个分辨率为255的热图图像。将它强行压缩成四个类别,感觉像是在引入一些完全不必要的错误。
我希望网络输出的图像中,每个像素的值在0到1之间,并且用通过将热图图像乘以1./255得到的掩码来训练网络。
在这种情况下,损失函数会计算掩码和网络预测之间的数学差异。有没有人能告诉我,有没有类似的例子?我觉得我在用相关术语描述我想要的东西时很糟糕,因为这似乎在计算机视觉中是一个相当常见的目标……
相关问题:
- 暂无相关问题
1 个回答
2
如果我理解你的问题没错的话,"真实标签"的掩码其实就是一张灰度图像,里面的数值范围是[0,255]。这意味着图像中的数值之间有很强的关系,比如说25和26是很接近的,而25和70就差得远了。这和普通的分割方法不一样,普通分割是给每个像素分配一个不同的类别,类别的数值可能代表一些随意的物体,比如“自行车”或者“人”。换句话说,这其实是一个回归问题,更具体地说,是图像到图像的回归。你要做的就是重建一张灰度图像,它的每个像素都应该和真实标签的掩码一模一样。
如果我理解得没错的话,你应该关注回归损失。常见的例子有均方误差(也叫MSE,L2范数)或者平均绝对误差(也叫MAE,L1范数)。这些是比较常用的方法,我建议你可以先从这两个开始,虽然还有很多其他的损失函数可以选择。