【论文笔记】InverseForm: A Loss Function for Structured Boundary-Aware Segmentation

news2024/11/16 21:51:35

论文

标题:InverseForm: A Loss Function for Structured Boundary-Aware Segmentation

收录于:CVPR 2021

论文:[2104.02745] InverseForm: A Loss Function for Structured Boundary-Aware Segmentation (arxiv.org)

代码:GitHub - Qualcomm-AI-research/InverseForm

参考:【图像分割】InverseForm: A Loss Function for Structured Boundary-Aware Segmentation - 知乎 (zhihu.com)

摘要

提出了一种新的基于逆变换网络的边界感知损失项语义分割方法(InverseForm boundary loss),该方法能够有效地学习估计边界和目标边界之间的参数变换程度。此损失项补充了捕获边界变换时的交叉熵损失,并允许在不增加其大小和计算复杂性的情况下,对分段主干模型进行一致且显著的性能改进。分析该损失函数对三个室内和室外分段基准的定量和定性影响,包括Citycapes、NYU-Depth-v2和Pascal,并将其整合到单任务和多任务环境下的几个骨干网络的训练阶段。大量实验表明,该方法的性能始终优于基线,甚至在两个数据集上都达到了sota。

We present a novel boundary-aware loss term for semantic segmentation using an inverse-transformation network, which efficiently learns the degree of parametric transformations between estimated and target boundaries. This plug-in loss term complements the cross-entropy loss in capturing boundary transformations and allows consistent and significant performance improvement on segmentation backbone models without increasing their size and computational complexity.

引言

语义分割有两个改进方向:一是集成多分辨率和多层特征;二是利用边界信息进行增强。

以往的工作大多采用交叉熵Cross-entropy 来作为边界检测的损失函数,但是cross-entropy 只是衡量了预测值和Ground Truth之间的像素变化,忽略了像素离目标边界的空间距离,并且它不能有效地测量局部空间变化,如平移、旋转、缩放等。

为解决上述问题,在常用的分割损失函数中引入一种基于边界距离的度量--InverseForm。我们设计了一个逆变换网络来建模边界图之间的距离,该网络可以有效地学习局部空间区域之间的参数变换程度。这一措施使我们能够在不增加推理规模和网络计算复杂性的情况下,使用任何骨干模型在语义分割方面实现显著和一致的改进。

具体地说,我们在训练阶段提出了一种边界感知的分割方案,通过将我们的空间距离损失InverseForm整合到现有的基于像素的损失中。我们基于距离的损失是对捕捉边界变换的基于像素的损失的补充。我们利用我们的逆变换网络来测量与边界的距离,并联合优化像素标签精度和边界距离。我们可以将我们提出的方案集成到任何分割模型中;

例如,我们采用了最新的HRNet[45]架构作为主干之一,因为它保持了高分辨率的特征地图。我们还采用了各种MTL框架[31][44]来利用它们的边界检测任务,在不增加计算和存储成本的情况下,进一步提高分割性能。在这个变种中,我们展示了所有任务的一致性能改进。

在NYU-Depth-v2 ,Cityscapes and PASCAL-Context进行实验,性能明显提升。

图1:左图:城市景观Val基准图片[9]。中:HRNet-48-OCR基线的分割预测。右:同样的骨干训练使用 InverseForm boundary loss。我们的模型取得了明显的改进,例如,顶部图形的路边边界与边界结构更好地对齐,底部的路边被正确检测出来。

本文的主要工作包括以下几个方面:

  • 提出一种基于边界距离的语义分割方法--InverseForm。实验结果表明,与基于交叉熵的分割方法相比,该方法能够更好地捕捉空间边界变换,从而得到更准确的分割结果。
  • 我们的方案与主干架构选择无关,并且非常灵活地插入到任何现有的分段模型中,而不需要额外的推理成本。由于其即插即用的特性,它不会影响网络的主要结构。它是灵活的并且可以适应多任务学习框架。
  • 大量实验表明,我们的边界感知分割方法的性能始终优于它的基线,并且在单任务(NYUDepth-v2)和多任务设置(Pascal)上都优于最先进的方法。

方法 InverseForm

基于距离的度量的动机 Motivation for distance-based metrics

边界感知分割方法使用像素级交叉熵或平衡交叉熵损失。这种损失函数考虑了像素级特征(强度等)。而不是物体边界和地面真实边界之间的空间距离。因此,它们不足以实施边界对齐以进行分割。

基于像素的损耗不足以衡量这些输入间的距离。为抵消对小位移的敏感性的影响,用基于像素的损失训练的边界检查网络会产生更厚和扭曲的边界。需要一个损失函数,可以准确地建模对象边界的两个图像间地距离,且计算高效。

逆变换网络 Inverse transformation network

为了模拟两个边界图之间的空间关系,假设它们通过单应变换相互关联。为此创建一个网络,它输入两个边界图,并预测“单应变化”作为其输出。理论上,该网络执行空间变压器网络(Spatial transformer network,STN)的逆操作。

 如图3(A)所示,STN将图像x作为其输入,生成受控变换矩阵θ,并生成逼真的变换边界图像tt_{\theta }(x)。图3(B)显示论文提出的网络。网络的输入是两个边界图。网络将这些映射之间的变换参数作为其输出进行回归。逆变换网络,用于学习两幅图像间的变换关系。

从单应性测量距离 Measuring distances from homography

假设两个边界映射通过单应变换相互关联,逆变换网络输入两个边界映射并估计变换矩阵参数。在逆变换网络被训练后,冻结它的权重以产生InverseForm loss。如果输入边界图之间存在完美匹配,则网络应估计单位矩阵。因此,可以通过将网络输出与单位矩阵进行比较来计算边界图之间的空间距离的测量。

这里有两个距离度量,将其联系起来:Euclidean distance and Geodesic distance. (欧几里德距离和测地距离)。

 

 

使用InverseForm作为损失函数 Using InverseForm as a loss function

 

 

实验

数据集和评价指标 

 

 实验结果

 NYU-Depth-v2

 

 

 PASCAL

Cityscapes 

 消融实验

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70829.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据都应用在哪些领域?

大数据被应用较多的领域有哪些?疫情期间大数据技术对于疫情的防控发挥了巨大的作用,抗疫期间多家互联网企业纷纷加强大数据在疫情防控中的应用。小到社区大到部委相关部门都将大数据作为不可或缺的防疫工具,生活中很多方面涉及到大数据由此可…

Scala014--Scala中的函数

一,函数的定义和声明 对于其他计算机语言来说,如Java,python,函数和方法是一样的,但是对于Scala来说,函数和方法并不是同一个概念,方法是类或者是对象的成员,而函数是一个对象。但是…

澳亚集团通过聆讯:毛利率波动,预计利润将下滑,陈荣南为董事长

撰稿|汤汤 来源|贝多财经 近日,港交所披露的信息显示,澳亚集团有限公司(下称“澳亚集团”)通过港交所聆讯,并披露了聆讯后资料集(即招股书),中金公司和星展银行(DBS&am…

如何从 Power BI 示例中获取数据以供练习

如果您是 Power BI 初学者, Microsoft Power BI 教程中提供的示例是入门的好地方。 在这篇文章中,我将按照步骤在 excel 中查看示例数据,以便您可以将这些数据用于练习目的。 下载 Excel 文件 首先,在浏览器中打开人力资源数据。文包含有关如何使用数据构建 Power BI 报…

不是我穷,是他真的很好用!

今天猫猫为您推荐一款良心vx小程序——喵盐配音!利用小程序的特性,无需安装,即走即用。 这个配音软件超多功能,太强大了!操作简单,输入文本,一键配音,小白也会用超多声音主播&#…

12月8日绿健简报,星期四,农历十一月十五

12月8日绿健简报,星期四,农历十一月十五1. 中国铁路:即日起购票乘车及进出站停止查验核酸和健康码;联防联控机制:不再对跨地区流动人员查验健康码,无症状和轻型病例一般采取居家隔离。2. 包头:交…

torchnet 简单使用文档

torchnet 是用于 torch 的代码复用和模块化编程的框架: 主要包含4个部分: Dataset:各种不同方式处理数据。Engine:各种机器学习算法Meter:性能度量指标。 Log:Log:Log: 模块详细分为如下部分:D…

FLStudio2023电脑版安装下载及fl21版本新功能介绍

FL Studio水果简称FL,全称:Fruity Loops Studio,国人习惯叫它"水果"。软件现有版本是 FL Studio 21,已全面升级支持简体中文语言界面 。FL Studio 能让你的计算机就像是全功能的录音室一样,完成编曲、剪辑、…

YourKit Profiler for .NET功能和内存一体探查器

YourKit Profiler for .NET功能和内存一体探查器 Windows和Linux的简单易用内存和性能.NET探查器。 功能和内存一体的.NET探查器 远程和本地评测各种.NET Center和.NET设计应用程序、服务器和Windows服务。 探索测试、开发和制造环境中的性能问题。 与Visual Studio和JetBrains…

一键式开启:IDaaS 日志接入 SLS日志审计发布

背景 什么是IDaaS 应用身份服务IDaaS(Identity as a Service)是阿里云原生身份管理系统,可以统一管理各应用中分散的账号,并集中分配应用访问控制权限,降低低效、重复的账号访问配置和运维工作。IDaaS 旗下的EIAM(Enterprise IA…

java计算机毕业设计ssm乡村疫情防控管理系统37804(附源码、数据库)

java计算机毕业设计ssm乡村疫情防控管理系统37804(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

时间都去哪了?

在很长一段时间我并不知道怎么去平衡速率和质量之间的关系,我虽然看过不少书和文章告诉我只有保证质量才能保证速率,但我还没有见过反例,我没办法很好地说服别人,我只能看着他们义无反顾的冲向进度,然后抱怨时间不够。…

大数据hadoop_HDFS的shell操作(2)

文章目录1. 基本语法2. hadoop hdfs命令指南3. 常用命令操作指南3.1 准备工作3.2 上传3.3 下载3.4 基本操作1. 基本语法 hadoop fs 具体的命令 或者 hdfs dfs 具体的命令一般是使用hadoop fs 具体的命令,因为是简单好记,容易理解。 2. hadoop hdfs命令…

TypeScript 开发环境搭建

TypeScript是JavaScript类型的超集,它可以编译成纯JavaScript代码,TypeScript可以在任何浏览器,任何计算机和任何操作系统上运行。 目录 依赖环境 搭建步骤 1.新建一个文件夹 2.初始化一个NPM项目 3.安装typescript 包 4.新建一个tscon…

SQLite 基本命令使用方式

本文介绍创建一个简单的数据库,并能够在需要的时间和地点快速使用它们。SQLite 在世界范围内的许多设备中使用。 什么是SQLite? SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的…

Spring Cloud Alibaba整合Sentinel进行服务熔断降级

一、下载Sentinel Dashboard控制台服务 Releases alibaba/Sentinel GitHub 一样的,根据自己的Spring Cloud Alibaba版本下载相应版本的Sentinel 启动服务,可以指定端口 java -Dserver.port8849 -Dcsp.sentinel.dashboard.serverlocalhost:8849 -Dp…

记录下QT读取串口数据时遇到的问题

一、如果使用QT读取串口数据 使用定时器定时发送信号,然后调用槽函数来读取串口数据,串口数据读取过程加锁。 timer1 startTimer(15); connect(this, SIGNAL(callCapData()), this, SLOT(CapData()));void ecgfrom::timerEvent(QTimerEvent *event) {…

Allegro如何批量把器件放在指定的格点上操作指导

Allegro如何批量把器件放在指定的格点上操作指导 Allegro支持批量把器件放在指定的格点上,具体操作如下 以下图为例,器件在小数点位以后的格点上,如果只是个别器件,只需要切换好格点,并且手动移动下就可以了,如果有大量的器件都是这样,这样会比较费时 选择File-change…

Java中注解的理解

一.什么是注解 1.Annotation是从JDK5开始引入的最新技术 2.Annotation的作用: 1)不是程序本身,可以对程序做出解释,(这一点和注释(comment)没什么区别)。 2)可以被其他程序(比如编译器)读取…

【论文随笔】Time-Incremental Learning from Data Using Temporal Logics

[1] E. Aasi, M. Cai, C. I. Vasile, and C. Belta, “Time-Incremental Learning from Data Using Temporal Logics.” arXiv, Dec. 28, 2021. doi: 10.48550/arXiv.2112.14300. 好久没看文献了,来更一篇 Outline time-variant weights of STL weights are learn…