新闻中心

盘点图像分割中的损失函数

2025-07-31
浏览次数:
返回列表
图像分割一直是一个活跃的研究领域,在设计基于复杂图像分割的深度学习架构时,通常会遇到了一个至关重要的选择,即选择哪个损失/目标函数,因为它们会激发算法的学习过程,以为其数据集获得更好的结果。本项目盘点了过去的几年里各种论文提出了不同的目标损失函数,为大家在训练分割模型时提供帮助。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

盘点图像分割中的损失函数 -

介绍

图像分割一直是一个活跃的研究领域,在设计基于复杂图像分割的深度学习架构时,通常会遇到了一个至关重要的选择,即选择哪个损失/目标函数,因为它们会激发算法的学习过程,以为其数据集获得更好的结果。本项目盘点了过去的几年里各种论文提出了不同的目标损失函数,为大家在训练分割模型时提供帮助。

1. 概要

损失函数主要是用于评估模型的预测值和真实标签的匹配程度的重要指标。基于图像分割的损失函数可大致分为4类。

1.1 损失函数

损失函数主要是用于评估模型的预测值和真实标签的匹配程度的重要指标。一般形式上,损失函数 L 采用期望风险最小化的形式表示:

L=E(G,S)L=E(G,S)

其中, G=gi,S=siG=gi,S=si 分别表示真实标签和预测的分割图像。

1.2 汇总

16种基于图像分割的损失函数可大致分为4类

  • 基于分布的损失函数 (Distribution-based)
  • 基于区域的损失函数 (Region-based)
  • 基于边界的损失函数 (Boundary-based)
  • 基于复合的损失函数 (Compounded)

盘点图像分割中的损失函数 -        

2. Distribution-based loss

基于分布的损失函数

2.1 Binary Cross-Entropy:

二分类交叉熵损失函数

交叉熵定义为对给定随机变量或事件集的两个概率分布之间的差异的度量。它被广泛用于分类任务,并且由于分割是像素级分类,因此效果很好。

在多分类任务中, 经常采用 softmax 激活函数+交叉熵损失函数,因为交叉熵描述了两个概率分布的差异,然而神经网络输出的是向量,并不是概率分布的形式。所以需要 softmax激活函数将一个向量进行“归一化”成概率分布的形式,再采用交叉熵损失函数计算 loss。

表达式:

Motiff妙多 Motiff妙多

Motiff妙多是一款AI驱动的界面设计工具,定位为“AI时代设计工具”

Motiff妙多 334 查看详情 Motiff妙多

L=[ylogy^+(1y)log(1y^)]L=−[ylogy^+(1−y)log(1−y^)]

yiyi 表示样本i的label,正类为1,负类为0。

P(y=1x)=y^P(y=1∣x)=y^表示预测值.

计算 N 个样本的总的损失函数:

L=i=1N[yilogy^i+(1yi)log(1y^i)]L=−i=1∑N[yilogy^i+(1−yi)log(1−y^i)]

#paddle已实现import paddlefrom paddle.nn import loss

loss.BCELoss() # 二分类loss.CrossEntropyLoss() # 多分类交叉熵
       

缺点:

当图像分割任务只需要分割前景和背景两种情况。当前景像素的数量远远小于背景像素的数量时,即y=0y=0的数量远大于y=1y=1的数量,损失函数中y=0y=0的成分就会占据主导,使得模型严重偏向背景,导致效果不好。

2.2 Weighted Binary Cross-Entropy

加权交叉熵损失函数

加权交叉熵损失函数只是在交叉熵Loss的基础上为每一个类别添加了一个权重参数为正样本加权。设置β>1β>1,减少假阴性;设置β1β

表达式:

WCE(p,p^)=[βplogp^+(1p)log(1p^)]WCE(p,p)=−[βplogp+(1−p)log(1−p)]

#paddle已实现import paddlefrom paddle.nn import lossloss.CrossEntropyLoss(weight=weight)
       

缺点:

需要人为的调整困难样本的权重,增加调参难度

2.3 Balanced Cross-Entropy

平衡交叉熵损失函数

与加权交叉熵损失函数类似,但平衡交叉熵损失函数对负样本也进行加权。

表达式:

BCE(p,p^)=[βplogp^+(1β)(1p)log(1p^)]BCE(p,p^)=−[βplogp^+(1−β)(1−p)log(1−p^)]

2.4 Focal Loss

Focal loss是在目标检测领域提出来的。其目的是关注难例(也就是给难分类的样本较大的权重)。对于正样本,使预测概率大的样本(简单样本)得到的loss变小,而预测概率小的样本(难例)loss变得大,从而加强对难例的关注度。

表达式:

FL(p,p^)=[α(1p^)γplogp^+(1α)p^γ(1p)log(1p^)]FL(p,p^)=−[α(1−p^)γplogp^+(1−α)p^γ(1−p)log(1−p^)]

#paddle已实现import paddlefrom paddle.nn import functional as FF.sigmoid_focal_loss()
       

缺点:

引入了额外参数,增加了调参难度,目前在图像分割上只是适应于二分类。

2.5 Distance map derived loss penalty term

距离图得出的损失惩罚项

可以将距离图定义为ground truth与预测图之间的距离(欧几里得距离、绝对距离等)。合并映射的方法有2种,一种是创建神经网络架构,在该算法中有一个用于分割的重建head,或者将其引入损失函数。遵循相同的理论,可以从GT mask得出的距离图,并创建了一个基于惩罚的自定义损失函数。使用这种方法,可以很容易地将网络引导到难以分割的边界区域。

paper: https://arxiv.org/pdf/1908.03679.pdf

表达式:

L(y,p)=1Ni=1N(1+ϕ)(Θ)LCE(y,p)L(y,p)=N1i=1∑N(1+ϕ)(Θ)LCE(y,p)

3. Region-based loss

基于区域的损失函数

3.1 Dice Loss

Dice系数是计算机视觉界广泛使用的度量标准,用于计算两个图像之间的相似度。在2016年的时候,它也被改编为损失函数,称为Dice损失。

Dice系数: 是用来度量集合相似度的度量函数,通常用于计算两个样本之间的像素之间的相似度,

公式如下:

s=2XYX+Y=2TP2TP+FN+FPs=∣X∣+∣Y∣2∣X∩Y∣=2TP+FN+FP2TP

分子中之所以有一个系数2是因为分母中有重复计算X和Y的原因,s的取值范围是[0,1]。而针对分割任务来说,X表示的就是Ground Truth分割图像,而Y代表的就是预测的分割图像。

表达式:

s=12XYX+Ys=1−∣X∣+∣Y∣2∣X∩Y∣

此处,在分子和分母中添加1以确保函数在诸如y = 0的极端情况下的确定性。Dice Loss使用与样本极度不均衡的情况,如果一般情况下使用Dice Loss会回反向传播有不利的影响,使得训练不稳定。

#paddle已实现import paddlefrom paddle.nn import functional as FF.dice_loss()
       

缺点:

对小目标十分不利,因为在只有前景和背景的情况下,小目标一旦有部分像素预测错误,那么就会导致Dice大幅度的变动,从而导致梯度变化剧烈,训练不稳定。

3.2 Generalized Dice loss

当病灶分割有多个区域时,一般针对每一类都会有一个DICE,而Generalized Dice index将多个类别的dice进行整合,使用一个指标对分割结果进行量化。

paper:https://arxiv.org/pdf/1707.03237.pdf

表达式:

GDL=12l=1Lwlnrlnplnl=1Lwlnrlnpln+plnGDL=1−2∑l=1Lwl∑nrlnpln+pln∑l=1Lwl∑nrlnpln

wlwl为每个类别的权重, rlnrln为类别ll在第nn个像素的标准值(GT),而plnpln为相应的预测概率值

wl=1(n=1Nrln)2wl=(∑n=1Nrln)21

效果 盘点图像分割中的损失函数 -        

缺点: 在AnatomyNet中提到GDL面对极度不均衡的情况下,训练的稳定性仍然不能保证

3.3 Tversky Loss

Tversky系数是Dice系数和 Jaccard 系数的一种推广。当设置α=β=0.5,此时Tversky系数就是Dice系数。而当设置α=β=1时,此时Tversky系数就是Jaccard系数。α和β分别控制假阴性和假阳性。通过调整α和β,可以控制假阳性和假阴性之间的平衡。

paper: https://arxiv.org/pdf/1706.05721.pdf

表达式:

T(A,B)=ABAB+αAB+βBAT(A,B)=∣A∩B∣+α∣A−B∣+β∣B−A∣∣A∩B∣

TL(p,p^)=11+pp^1+pp^+β(1p)p^+(1β)p(1p^)TL(p,p)=1−1+pp+β(1−p)p+(1−β)p(1−p)1+pp

3.4 Focal Tversky Loss

与“Focal loss”相似,后者着重于通过降低易用/常见损失的权重来说明困难的例子。Focal Tversky Loss还尝试借助γ系数来学习诸如在ROI(感兴趣区域)较小的情况下的困难示例

paper: https://arxiv.org/pdf/1810.07842.pdf

表达式:

FTL=c(1TIc)γFTL=c∑(1−TIc)γ

3.5 Sensitivity Specificity Loss

敏感性–特异性 loss

sensitivity-specificity loss通过提高特异性的权重来解决类别不平衡的问题。

paper: http://www.rogertam.ca/Brosch_MICCAI_2015.pdf

  1. 敏感性即召回率,检测出确实有病的能力:

Sensitivity=TPTP+FNSensitivity=TP+FNTP

  1. 特异性,检测出确实没病的能力:

Specificity=TNTN+FPSpecificity=TN+FPTN

Sensitivity Specificity Loss:

SS=λn=1N(rnpn)2rnn=1Nrn+ϵ+(1λ)n=1N(rnpn)2(1rn)n=1N(1rn)+ϵSS=λ∑n=1Nrn+ϵ∑n=1N(rn−pn)2rn+(1−λ)∑n=1N(1−rn)+ϵ∑n=1N(rn−pn)2(1−rn)

其中式左边为病灶像素的错误率即1Sensitivity1−Sensitivity ,而不是正确率,所以设置λ 为0.05。其中(rnpn)2(rn−pn)2是为了得到平滑的梯度。

3.6 Log-Cosh Dice Loss

Dice系数是一种用于评估分割输出的度量标准。它也已修改为损失函数,因为它可以实现分割目标的数学表示。同时,Log-Cosh方法已广泛用于基于回归的问题中,以平滑曲线。

paper: https://arxiv.org/pdf/2006.14822.pdf

示意图: 盘点图像分割中的损失函数 -        

盘点图像分割中的损失函数 -        

将Cosh(x)函数和Log(x)函数合并,可以得到Log-Cosh Dice Loss:

Llcdce=log(cosh(DiceLoss))Llc−dce=log(cosh(DiceLoss))

#paddle下实现import paddle
from paddle.nn import functional, loss

def lc_dce(pred, label):
    x = functional.dice_loss(pred, label)    return paddle.log(paddle.cosh(x))
       

缺点:

但是由于其非凸性,它多次都无法获得最佳结果。Lovsz-softmax损失旨在通过添加使用Lovsz扩展的平滑来解决非凸损失函数的问题。

In [1]
import paddlefrom paddle.nn import functional, lossdef lc_dce(pred, label):
    x = functional.dice_loss(pred, label)    return paddle.log(paddle.cosh(x))
   

3.7 Lovasz-Softmax Loss

LovaszSoftmax,是一种基于IOU的loss,效果优于cross_entropy,可以在分割任务中使用。

paper:https://arxiv.org/pdf/1705.08790.pdf

多分类任务中,把softmax + CE改造成基于IOU的loss, 主要过程如下:

softmax 函数:

fi(c)=eFi(c)cceFi(c),i[1,p],cCfi(c)=∑c′∈ceFi(c′)eFi(c),∀i∈[1,p],∀c∈C

CE:

loss(f)=1pi=1plogfi(yi)loss(f)=−p1i=1∑plogfi(yi∗)

一个像素的类别:

y~i=cCFi(c)y~i=c∈CargmaxFi(c)

表达式

Jc(y,y~)=(y=c)(y~=c)(y=c)(y~=c)Jc(y∗,y~)=∣(y∗=c)∪(y~=c)∣∣(y∗=c)∩(y~=c)∣

ΔJc(y,y~)=1Jc(y,y~)ΔJc(y∗,y~)=1−Jc(y∗,y~)

4. Boundary-based loss

基于边界的损失函数

4.1 Shape-aware Loss

Shape-aware Loss考虑了形状。通常,所有损失函数都在像素级起作用,Shape-aware Loss会计算平均点到曲线的欧几里得距离,即预测分割到ground truth的曲线周围点之间的欧式距离,并将其用作交叉熵损失函数的系数。

paper:https://arxiv.org/pdf/1908.03679.pdf

定义如下: (CE指交叉熵损失函数)

Ei=D(C^,CGT)Ei=D(C^,CGT)

Lshapeaware=iCE(y,y^)iEiCE(y,y^)Lshape−aware=−i∑CE(y,y^)−i∑EiCE(y,y^)

4.2 Hausdorff Distance Loss

Hausdorff Distance Loss(HD)是分割方法用来跟踪模型性能的度量.

paper: https://arxiv.org/pdf/1904.10030v1.pdf

定义式:

d(X,Y)=maxxXminyYxy2d(X,Y)=maxx∈Xminy∈Y∣∣x−y∣∣2

缺点:

任何分割模型的目的都是为了最大化Hausdorff距离,但是由于其非凸性,因此并未广泛用作损失函数。有研究者提出了基于Hausdorff距离的损失函数的3个变量,它们都结合了度量用例,并确保损失函数易于处理。

5. Compounded loss

基于复合的损失函数

5.1 Exponential Logarithmic Loss

focal loss + Dice loss

对focal loss 和 Dice loss进行指数和对数转换进行组合,这样网络就可以被迫的关注预测不准的部分,以合并更精细的分割边界和准确的数据分布。

paper:https://arxiv.org/pdf/1809.00076.pdf

定义式:

LExp=wDiceLDice+wcrossLcrossLExp=wDiceLDice+wcrossLcross

LDice=E(ln(DC)γDice)LDice=E(−ln(DC)γDice)

Lcross=E(wl(ln(pl)γcross))Lcross=E(wl(−ln(pl)γcross))

新增添了4个参数权重分别是wDicewDice,  wCrosswCross, γDiceγDice, γCrossγCross,给调参带来不小的麻烦

5.2 Combo Loss

Dice Loss +Balanced CE

组合损失定义为Dice loss和修正的交叉熵的加权和。它试图利用Dice损失解决类不平衡问题的灵活性,同时使用交叉熵进行曲线平滑。

定义为: (DL指Dice Loss)

Lmbce=1Ni=1N[βyilogyi^+(1β)(1y)log(1yi^)]Lm−bce=−N1i=1∑N[βyilogyi^+(1−β)(1−y)log(1−yi^)]

CL(y,y^)=αLmbce(1α)DL(y,y^)CL(y,y^)=αLm−bce−(1−α)DL(y,y^)

6. 实验与结果

数据集: NBFS Skull Stripping Dataset

实验细节: 使用了简单的2D U-Net模型架构

盘点图像分割中的损失函数 -        

对比结果:

盘点图像分割中的损失函数 -        

7. 总结

在设计基于复杂图像分割的深度学习架构时,损失函数的选择对于任何架构学习正确的目标都是至关重要的。

以上是关于图像分割损失函数的汇总:

主要包括4类损失函数。

盘点图像分割中的损失函数 -        

以上就是盘点图像分割中的损失函数的详细内容,更多请关注其它相关文章!


# cos  # 是一种  # 就会  # 至关重要  # 情况下  # 欧几里得  # 的是  # 提出了  # 中文网  # red  # ai  # 都是  # 重庆工厂seo精准获客  # 谷歌营销推广公司有哪些  # 酒吧营销推广方案文本  # 化妆品网站广告推广文案  # js链接网站优化  # 腾讯网站的SEO  # 集团网站建设找哪家好点  # 聊城抖音seo排名方案  # 长丰seo优化公司费用  # 嘉兴抖音营销推广有哪些  # 多个 


相关栏目: 【 行业资讯67740 】 【 技术百科0 】 【 网络运营39195


相关推荐: 如何在固态硬盘上安装win7系统  苹果16有哪些可以设置  j*a二数组怎么创建  没基础做单片机怎么样  j*a数组怎么取元素  空调主板单片机怎么拆开  51单片机贴片怎么*  怎么在项目中使用typescript  manager是什么意思  typescript参数怎么用  春运抢票何时开始抢票的  如何更新固态硬盘固件  如何通过命令行聊天  学typescript需要什么基础么  市盈率292是什么意思  虚拟机如何用命令清除垃圾  youtube受限模式是什么_youtube受限模式是什么意思  反向春运抢票方式  苹果手机16新款颜色有哪些  春运提前抢票攻略  type-c输入接口是什么  如何操作fixup命令  夸克链信有什么用  angluar如何命令删除dist  linux如何合并分区命令  虚拟机服务器如何关机命令  新网站如何填写域名解析  linux如何安装yum命令  如何发挥固态硬盘性能  安装固态硬盘如何设置  固态硬盘如何打开软件  苹果16都有哪些型号  市盈率亏损是什么意思  typescript如何做项目  win10系统如何打开cmd命令  光刻机分类有哪些品牌的  ai文件里无法找到链接文件怎么解决  新找到ao3镜像网站链接入口  typescript怎么添加css样式  手机如何更改固态硬盘  ready是什么意思  如何固态硬盘4k对齐  课程伴侣登不上怎么办  怎么把手机里爱奇艺的视频下载到u盘里  linux如何切换到命令行模式  基金市盈率是什么意思  笔记本电脑多少钱  舆论是什么意思  车子上面nfc功能是什么意思  vi命令如何退出编辑模式 

搜索