图像语义分割损失函数loss盘点 汇总了常用语义分割损失函数.

这里针对二类图像语义分割任务,常用损失函数有:

[1] - softmax 交叉熵损失函数(softmax loss,softmax with cross entroy loss)

[2] - dice loss(dice coefficient loss)

[3] - 二值交叉熵损失函数(bce loss,binary cross entroy loss).

其中,dice loss 和 bce loss 仅支持二分类场景.

对于二类图像语义分割任务,经常出现类别分布不均衡的问题,比如:工业产品的瑕疵检测、道路提取及病变区域提取等.

如,DeepGlobe比赛中道路提取(Road Extraction)中,训练数据道路占比为:4.5%. 如下为其图片样例, 可以看出道路在整张图片中的比例很小.

1. Dice Loss

Dice loss 有助于解决二分类语义分割中类别不均衡问题.

医学图像分割之 Dice Loss - AIUAI

Dice loss 的定义如:

$$ diceloss = 1- \frac{2|Y \cap P|}{|Y| + |P|} $$

其中,Y 表示 groundtruth,P表示预测结果. $| \cdot |$ 表示矩阵元素之和. $Y \cap P$ 表示 Y 和 P 的共有元素数,实际通过求两者的逐像素乘积之和进行计算. 例如:

其中,1 表示前景,0 表示背景.(GT图片中要求前景像素值为1,背景像素值为0).

Dice 系数 - 维基百科)

2. Dice Loss 与类别不均衡

类别不均衡问题上,dice loss效果为什么比softmax 交叉熵 loss 更好?

Dice-coefficientlossfunctionvscross-entropy - AIUAI

首先,softmax 交叉熵 loss 的定义为:

$$ L = -\sum_{c=0}^C y_c log(f(p_c)) $$

其中,

$$ f(p_k) = \frac{e^{p_k}}{\sum_J^{c^{p_j}}} $$

其中,y 表示 groundtruth, p 表示网络输出.

图像分割任务中,softmax 交叉熵loss 是对每一个像素点进行类别预测,然后平均所有的像素点. 其本质上仍是对图片的每个像素进行平等的学习,这就导致如果图像上的多种类别存在不平衡时,模型的训练会由最主流的类别所主导. 网络更偏向于对主流类别的学习,而降低了对非主流类别的特征提取能力.

而,Dice loss 通过预测和GT的交集除以它们的总体像素进行计算,将一个类别的所有像素作为一个整体进行考量,而且计算交集在总体中的比例,所以不会受大量主流像素的影响,能够提取更好的效果.

实际中,dice loss 往往与 bce loss 结合使用,以提升模型训练的稳定性.

Last modification:February 27th, 2020 at 09:20 pm