1.语义分割
语义分割就是把每个像素都打上标签(这个像素点是人,树,背景等)(语义分割只区分类别,不区分类别中具体单位)
2.实例分割
实例分割不光要区别类别,还要区分类别中每一个个体
3.分割任务的损失函数定义
逐像素的交叉熵: 还经常需要考虑样本均衡问题
交叉熵损失函数公式如下:
增加难负样本的权重
Gamma通常设置为2,例如预测正样本概率0.95, 如果预测正样本概率0.4, (相当于样本的难易权值)。再结合样本数量的权值就是Focal Loss
4.IOU计算
多分类任务时:iou_dog = 801 / true_dog + predict_dog - 801
IoU(Intersection over Union,交并比)
Dice系数和mIoU是语义分割的评价指标,在这里进行了简单知识介绍。讲到了Dice顺便在最后提一下Dice Loss,以后有时间区分一下在语义分割中两个常用的损失函数,交叉熵和Dice Loss。
一、Dice系数
1.概念理解
Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]:
其中 |X∩Y| 是X和Y之间的交集,|X|和|Y|分表表示X和Y的元素的个数,其中,分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的原因。
对于语义分割问题而言,X-GT分割图像(Ground Truth),Y-Pred分割图像
看图一直观理解一下
图一 Dice系数示意图
公式就可以理解为
2.实际计算
首先将 |X∩Y| 近似为预测图pred和label GT 之间的点乘,并将点乘的元素的结果相加:
(1)预测分割图与 GT 分割图的点乘:
(2)逐元素相乘的结果元素的相加和:
对于二分类问题,GT分割图是只有0,1两个值的,因此 |X∩Y| 可以有效的将在 Pred 分割图中未在 GT 分割图中激活的所有像素清零. 对于激活的像素,主要是惩罚低置信度的预测,较高值会得到更好的 Dice 系数.
(3)计算|X|和|Y|,这里可以采用直接元素相加,也可以采用元素平方求和的方法:
三、Dice Loss
Dice Loss的计算公式非常简单如下:
这种损失函数被称为 Soft Dice Loss,因为我们直接使用预测概率而不是使用阈值或将它们转换为二进制mask。
Soft Dice Loss 将每个类别分开考虑,然后平均得到最后结果。比较直观如图三所示。
图三 soft dice loss
需要注意的是Dice Loss存在两个问题:
(1)训练误差曲线非常混乱,很难看出关于收敛的信息。尽管可以检查在验证集上的误差来避开此问题。
(2)Dice Loss比较适用于样本极度不均的情况,一般的情况下,使用 Dice Loss 会对反向传播造成不利的影响,容易使训练变得不稳定。
所以在一般情况下,还是使用交叉熵损失函数。