图像分割系列(一)
迪丽瓦拉
2025-05-30 17:36:27
0

图像分割分类

语义分割

把每个像素都打上标签(这个像素点是人,树,背景等)
(语义分割只区分类别,不区分类别中具体单位)
在这里插入图片描述

实例分割

实例分割不光要区别类别,还要区分类别中每一个个体。
在这里插入图片描述

怎么做

损失函数

逐像素做二分类或者多分类,这就涉及到逐像素的交叉熵(神经网络的分类任务其实就是一个交叉熵的问题)。还经常需要考虑样本均衡问题。
交叉熵损失函数公式如下:
loss=−pos_weigh∗ytruelog(ypred)−(1−ytrue)log(1−ypred)loss = -pos\_weigh * y_{true}log(y_{pred})- (1 - y_{true})log(1 - y_{pred})loss=−pos_weigh∗ytrue​log(ypred​)−(1−ytrue​)log(1−ypred​)

其中:
pos_weight=num_negnum_pospos\_weight= \frac{num\_neg}{num\_pos}pos_weight=num_posnum_neg​

根据前景和背景的比例,设置的一个权重值。

公式改进

在这个公式的基础上。稍微做一些改进,这部分改进并不是针对语义分割来做的,很多地方都能看到。

样本也由难易之分,就跟玩游戏一样,难度越高的BOSS奖励越高。
什么是难易之分,每个像素点都要做交叉熵,都会有一个预测结果,都会带来一个损失值,那么要不要把每一个点都相同对待呢?
不能,因为有的像素点好做,一看就是大背景,一看就是大前景,哪些点难做,轮廓比较难做,例如一个人,边里面好做,边外边好做,就边上难做。所以这些像素点也是有难易之分的,那么这里就类似于加上一个注意力机制一样,加上一个权值,将这些比较难做的像素点在损失函数中体现出来。

loss=−(1−ytrue)γ∗ytruelog(ypred)−ytrueγ(1−ytrue)log(1−ypred)loss = - (1 - y_{true})^{γ} * y_{true}log(y_{pred})- y_{true}^{γ} (1 - y_{true})log(1 - y_{pred})loss=−(1−ytrue​)γ∗ytrue​log(ypred​)−ytrueγ​(1−ytrue​)log(1−ypred​)

通俗理解

Gamma通常设置为2,例如预测正样本概率0.95,也就是说预测正样本这件事情比较简单。(1−0.95)2=0.0025(1 - 0.95)^2 = 0.0025(1−0.95)2=0.0025
如果预测正样本概率0.5,(1−0.5)2=0.25(1 - 0.5)^2 = 0.25(1−0.5)2=0.25 (相当于样本的难易权值,也可以理解为哪一个像素点对损失的贡献大,哪一个像素点对损失的贡献小)

整合上述内容
−α(1−ytrue)γ∗ytruelog(ypred)−(1−α)ytrueγ(1−ytrue)log(1−ypred)-α (1 - y_{true})^{γ} * y_{true}log(y_{pred})- (1-α) y_{true}^{γ} (1 - y_{true})log(1 - y_{pred})−α(1−ytrue​)γ∗ytrue​log(ypred​)−(1−α)ytrueγ​(1−ytrue​)log(1−ypred​)
(再结合样本数量的权值就是Focal Loss)
α正负样本(即前景和背景)的比例,γ难易程度设置的权重

评价指标

IOU

(Intersection over Union),又称重叠度/交并比。
在这里插入图片描述

IoU = gt bbox、pred bbox交集的面积 / 二者并集的面积
在这里插入图片描述

MIOU

MIOU就是计算所有类别的平均值,一般当作分割任务评估指标。
Mean Intersection over Union(MIoU, 均交并比),为语义分割的标准度量。其计算两个几个的交集和并集之比,在语义分割问题中,这两个集合为真实值(ground truth)和预测值(predicted segmentation)。这个比例可以变形为TP(交集)比上TP、FP、FN之和(交集)。在每个类上计算IoU,然后取平均。

相关内容