非分类掩码的 UNet 损失函数?

Posted

技术标签:

【中文标题】非分类掩码的 UNet 损失函数?【英文标题】:UNet Loss function for non-categorical Mask? 【发布时间】:2020-09-04 19:17:33 【问题描述】:

我在 Keras 中实现了一个 UNet 分割网络,它简单地将 RGB 图像中的所有像素映射到 4 个类别,这些类别在热图掩码上进行了训练(低、中低、中高、高)。使用 CCE 或分类 Dice 损失,我可以获得不错的结果。

但是,原始形式的掩码是分辨率为 255 位的热图图像。通过将 255 位的分辨率降低为 4 类来将其硬塞到 Unet 中,这似乎是一种完全任意的错误引入。

我希望网络输出每个像素的值介于 (0,1) 之间的图像,并使用通过将热图图像乘以 1./255 生成的掩码训练网络。

在这种情况下,损失函数将包含掩码与网络预测之间的数学差异。谁能指出我做过类似事情的人的方向?我认为我很不擅长用相关术语来描述我正在寻找的东西,因为这似乎是计算机视觉中相当普遍的目标..?

【问题讨论】:

【参考方案1】:

如果我正确理解您的问题 - “基本事实”掩码只是一个灰度图像,其值在 [0,255] 范围内,这意味着它的值之间存在很强的关系(例如 - 25 更接近 26然后到 70。这不是常规分割的情况,您为每个像素分配不同的类别,类别值可能代表任意对象,例如“自行车”或“人”)。换句话说,这是一个回归问题,更具体地说,是一个图像到图像的回归。您正在尝试重建一个灰度图像,该图像应该与地面实况掩码相同,像素级。

如果我理解正确 - 你应该寻找回归损失。可以使用的常见示例是均方误差(又名 MSE,L2 范数)或平均绝对误差(又名 MAE,L1 范数)。这些是“常见的嫌疑人”,我建议你从他们开始,尽管还有许多其他损失。

【讨论】:

以上是关于非分类掩码的 UNet 损失函数?的主要内容,如果未能解决你的问题,请参考以下文章

Mask RCNN 的损失函数是啥?

Unet项目解析: 模型编译-优化函数损失函数指标列表

在 CNN 的 keras 自定义损失函数中操作数据

损失函数与鲁棒性

损失函数选择

损失函数(loss function)