基于遥感影像的语义分割论文简读

网友投稿 1257 2022-11-23

基于遥感影像的语义分割论文简读

基于遥感影像的语义分割论文简读

文章目录

​​2020​​

​​ResUNet-a​​

2020

ResUNet-a

摘要

高分辨率航空图像的场景理解对于各种遥感应用中的自动化监测任务具有重要意义。 由于感兴趣对象像素值的类内和类间方差很大,这仍然是一项具有挑战性的任务。 近年来,深度卷积神经网络已开始应用于遥感应用中,并展示了图像像素级分类的最新性能。 在此,我们提出了一个可靠的框架,用于单时间非常高分辨率航空图像的语义分割。 我们的框架由一个新的深度学习体系结构ResUnet-a和一个基于Dice损失的新的损失函数组成。 Res UNet-a使用UNet编码器/解码器骨干,结合残差连接、空洞卷积、金字塔场景解析池和多任务推理。Res UNet-a依次填充对象的边界、分割掩码的距离变换、分割掩码和输入的彩色重建。 每个任务都取决于前面任务的推理,从而在各种任务之间建立条件关系,因为这是通过体系结构的计算图来描述的。 我们分析了广义Dice损失用于语义分割的几种风味的性能,并引入了一种新的变体损失函数用于对象的语义分割,它具有良好的收敛特性,即使在高度不平衡的类存在下也表现良好。 在ISPRS2D波茨坦数据集上评估了我们的建模框架的性能。 我们的最佳模型结果表现出了最先进的表现,在所有类别上其平均F1分数达到92.9%。

论文的贡献 在这里,我们介绍了一种新的用于语义分割的完全卷积网络,称为ResUNet-a。该网络结合了从深度学习的计算机视觉应用中提炼出来的思想,并展示了竞争激烈的性能。此外,我们还描述了一个由一个新的损失函数组成的建模框架,它对具有类不平衡的语义分割问题和回归问题都表现良好。综上所述,本文的主要贡献如下:

一种新的架构来识别和标记非常高分辨率的图像的语义分割任务。该架构采用单元(朗内伯格等,2015)编码器/解码器主干,结合残差连接(何等,2016)、空洞卷积(陈等,2016,2017)、金字塔场景解析池(赵等,2017a)和多任务推理(鲁德,2017,我们提出了基本架构的两个变体,单一任务和多任务)。我们分析了不同类型的骰子系数在语义分割中的性能。基于我们的发现,我们引入了骰子丢失函数的一个变体,以加速语义分割任务的收敛性和提高性能。结果表明,即使存在较大的类不平衡时,新的损失函数也表现良好。当该值的目标域在[0,1]的范围内时,该损失也可以用于连续变量。

def Tanimoto_loss(pred, label, smooth=1e-5, dim=[2,3]): Vli = torch.mean(torch.sum(label, dim=dim), dim=0) wli = torch.reciprocal(Vli**2) new_weights = torch.where(torch.isinf(wli), torch.zeros_like(wli), wli) wli = torch.where(torch.isinf(wli), torch.ones_like(wli) * torch.max(new_weights), wli) rl_x_pl = torch.sum(torch.multiply(label, pred), dim=dim) # This is sum of squares l = torch.sum(torch.multiply(label, pred), dim=dim) r = torch.sum(torch.multiply(pred, label), dim=dim) rl_p_pl = l + r - rl_x_pl tnmt = (torch.sum(torch.multiply(wli, rl_x_pl), dim=1) + smooth) / ( torch.sum(torch.multiply(wli, (rl_p_pl)), dim=1) + smooth) return tnmtclass Tanimoto_wth_dual(nn.Module): def __init__(self, smooth=1e-5, dim=[2, 3]): super(Tanimoto_wth_dual, self).__init__() self.Loss = partial(Tanimoto_loss, smooth=smooth, dim=dim) def forward(self, pred, label): # measure of overlap loss1 = self.Loss(pred, label) # measure of non-overlap as inner product preds_dual = 1.0 - pred labels_dual = 1.0 - label loss2 = self.Loss(preds_dual, labels_dual) return torch.sum(0.5 * (loss1 + loss2))

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于遥感影像的道路完整性与连接性评价指标
下一篇:这是卷积神经网络的终结吗?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~