Polygonal Building Extraction by Frame Field Learning

深度学习中的图像分割与边缘检测损失函数解析
本文详细介绍了深度学习在图像分割任务中如何利用SegEdgeInteriorLoss进行边缘检测与内部区域约束。首先,通过计算屋顶预测结果的梯度来获取边缘概率;然后,基于预测的边缘和内部区域概率计算互斥损失,并利用权重函数调整损失贡献,其中权重与屋顶和边缘的概率相关。权重设计旨在使得边缘模糊或内部区域不确定时,损失权重增大,从而引导模型优化这些区域。

SegEdgeInteriorLoss 预测边缘与预测的屋顶分割结果的制约

(1) 根据屋顶预测结果来计算概率
seg是屋顶预测结果,值为[0-1],shape为(b,c,h,w); seg_grad_norm是根据seg计算的屋顶边缘概率,值为[0-1],shape为(b,c,h,w)。

seg_grads = 2 * self.spatial_gradient(seg)  # (b, c, 2, h, w),
seg_grad_norm = seg_grads.norm(dim=2)

**(2)**计算整张图的mutual_loss, seg_edge是通过分割预测得到的边缘概率; seg_interior_grad_norm是第(1)步得到的结果
raw_loss = torch.abs(seg_edge - seg_interior_grad_norm)

(3) 损失权重获取:屋顶概率(seg_interior)越高,权重越低,越低权重越高;边缘概率越高,权重越高。

# seg_interior是预测的屋顶概率;seg_interior越接近1,outside_mask越小;seg_interior越接近0,outside_mask越小。
outside_mask = (torch.cos(np.pi * seg_interior) + 1) / 2
# seg_interior_grad_norm是边缘概率,边缘概率越接近1,boundary_mask越大;边缘概率越接近0,boundary_mask越小;
boundary_mask = (1 - torch.cos(np.pi * seg_interior_grad_norm)) / 2

mask = torch.max(outside_mask, boundary_mask).float()

损失权重中第一点(屋顶概率(seg_interior)越高,权重越低,越低权重越高;),我不是完全同意。应该是屋顶概率越接近0.5,权重越大,越远离0.5,权重越小。

权重mask:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值