【PraNet】论文代码解读(损失函数部分)——Blank

文中采用的总体损失为:

其中IoU为交并比,BCE为二元交叉熵。在计算损失时使用加权值得方式,使整个模型偏向图像中物体的边缘部分。

关于加权,文中取像素值周围15个像素值(上下左右个各15个),形成31*31的矩阵。计算矩阵中数值的平均值,之后计算平均值与该像素值的差值,这样可以计算该像素点与周围像素点的差异。由于我们只在乎差异的大小,所以需要取绝对值。

weit = 1 + 5*torch.abs(F.avg_pool2d(mask, kernel_size=31, stride=1, padding=15) - mask)

以上计算可以理解为,我们关注图像中每个像素点与周围的区别,那么可以想象,一个只有黑与白的图像,什么地方的像素点与周围的图像差别最大呢(没错,就是黑白交接的地方)。所以通过在损失计算时通过添加权值,可以使模型更加关注图像的边缘部分。


关于IoU的计算

以下内容参考机器学习——概念理解之IoU_helpburn的博客-CSDN博客_机器学习iou

IoU(Intersection over Union):交并比,在SSD的论文中也叫Jaccard Overlap,是一个意思。从字面意思上看是交集和并集的比值。

IoU最初是使用在计算机视觉中的图像捕捉中,检验准确率。计算方法如下图所示

 

后来运用到机器学习中,成为计算损失函数的一种很好的工具,不过为了使函数可导,通常IoU的计算方式为下:

 代码为:

pred = torch.sigmoid(pred)
inter = ((pred * mask)*weit).sum(dim=(2, 3))
union = ((pred + mask)*weit).sum(dim=(2, 3))
wiou = 1 - (inter + 1)/(union - inter+1)

关于BCE二元交叉熵,

以下内容参考交叉熵损失函数原理详解_Cigar丶的博客-CSDN博客_交叉熵损失函数

信息奠基人香农认为“信息是用来消除随机不确定性的东西,也就是衡量信息量的大小,就是看这个消息消除不确定性的程度。

 信息熵用来表示所有信息量的期望,期望是实验中每次可能结果的概率乘以其结果的总和。

 相对熵用来计算对于同一个随机变量X有两个单独的概率分布P(X)Q(X)之间的差异。

在机器学习中我们计算预测集与标签集之间的差异,由于标签集是确定的,我们可将相对熵拆开:


 

 所以交叉熵的公式为

在二分类情况下 使用二元交叉熵公式为:

 

文中代码为:

wbce = F.binary_cross_entropy_with_logits(pred, mask, reduce='none')
wbce = (weit*wbce).sum(dim=(2, 3)) / weit.sum(dim=(2, 3))

 


全部的损失计算为:

def structure_loss(pred, mask):
    weit = 1 + 5*torch.abs(F.avg_pool2d(mask, kernel_size=31, stride=1, padding=15) - mask)

    wbce = F.binary_cross_entropy_with_logits(pred, mask, reduce='none')
    wbce = (weit*wbce).sum(dim=(2, 3)) / weit.sum(dim=(2, 3))

    pred = torch.sigmoid(pred)
    inter = ((pred * mask)*weit).sum(dim=(2, 3))
    union = ((pred + mask)*weit).sum(dim=(2, 3))
    wiou = 1 - (inter + 1)/(union - inter+1)
    return (wbce + wiou).mean()

 


 项目中虚线箭头Deep supervison 表示计算损失。

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值