论文阅读(二十九):Multi-scale Interactive Network for Salient Object Detection

文章目录

  • Abstract
  • 1.Introduction
  • 2.Scale Variation
  • Proposed Method
    • 3.1Network Overview
    • 3.2Aggregate Interaction Module
    • 3.3 Self-Interaction Module
    • 3.4Consistency-Enhanced Loss
  • 4.Experiments
    • 4.1Implementation Details
    • 4.2 Comparison with State-of-the-arts
    • 4.3Ablation Study


  论文:Multi-scale Interactive Network for Salient Object Detection(用于显著性目标检测的多尺度交互网络)
  论文链接:Multi-scale Interactive Network for Salient Object Detection
  代码链接:Github

Abstract

  本文提出了聚合交互模块来整合来自相邻水平的特征,其中由于只使用小的上/下采样率,引入了较少的噪声。为了从集成特征中获得更高效的多尺度特征,在每个解码器单元中嵌入自交互模块。此外,尺度变化引起的类不平衡问题削弱了二元交叉熵损失的效果,导致预测结果的空间不一致。因此,本文利用一致性增强的损失来突出前/背景差异并保持类内一致性。

1.Introduction

在这里插入图片描述
  上图中,绿色块、橙色块和灰色块分别表示编码器、传输层和解码器中不同的卷积块。左列表示常见的编码器与传输层之间的连接模式;右列表示传输层和解码器之间的连接模式。
  本文提出了一种聚合交互策略(Aggregate Interaction Strategy,AIM)以更好地利用多层次特征,避免不同分辨率特征图之间的差异对特征融合造成干扰,并有效整合来自相邻分辨率的上下文信息。
  模型结构采用架构(h),本文的主要贡献如下:

  • 1.提出多尺度交互模块(MINet,Multi-scale Interactive Network)用于显著性目标检测任务,其包含的聚合交互模块(Aggregate Interaction Module,AIM)通过相互学习的方式有效地利用相邻层的特征,自交互模块(Self-Interaction Module,SIM)使网络能够自适应地从数据中提取多尺度信息,更好地处理尺度变化。
  • 2.提出一致性增强的损失函数用于模型训练,帮助模型均匀突出整个显著区域,更好地处理由于物体的不同尺度导致的前后区域像素不平衡问题,且无需任何后处理或额外的参数。

2.Scale Variation

  尺度变化是显著性目标检测任务的主要难题之一。一方面,嵌入在不同分辨率特征中的物体信息量随着物体尺度的变化而变化,另一方面,每个卷积层只具有处理特定规模的能力。因此,本研究通过构建多路径特征提取结构,从单层对多尺度信息进行表征。

  • Multi-level Information(多层次信息):由于相邻编码器提取的特征抽象程度相近,因此MINet模型只融合相邻层的特征,以获得丰富的尺度信息。
  • Multi-scale Information(多尺度信息):本文提出了一个由两个分支交互学习特征的多尺度处理模块,可以学习到丰富的多尺度信息。此外,过大和过小的对象会导致前景和背景样本之间的不平衡,从而削弱像素级监督的效果。本研究中引入一致性增强损失(CEL)作为交叉熵损失的辅助,其对物体的大小不敏感,而更关注预测的整体效果,有助于获得更均匀的显著性结果。

Proposed Method

3.1Network Overview

在这里插入图片描述
  网络结构如上图所示。模型以大小为 ( 320 , 320 , 3 ) (320,320,3) (320,320,3)的RGB图像作为输入,处理流程为:

  • 1.以预训练的VGG-16或ResNet-50的特征图提取网络作为编码器来提取多层次特征和抽象。
  • 2.使用 A I M s ( { A I M i } i = 0 4 ) AIMs(\{AIM^i\}^4_{i=0}) AIMs({AIMi}i=04)对编码器提取的特征进行集成,并以相邻层的特征作为输入,为当前分支提供相关的补充。
  • 3.使用 S I M s ( { S I M i } i = 0 4 ) SIMs(\{SIM^i\}^4_{i=0}) SIMs({SIMi}i=04)和融合单元(FU,Fusion Unit)将输出的特征进行组合,并在真实掩模的监督下生成最终预测。

后续内容均以VGG-16作为网络主干。

3.2Aggregate Interaction Module

  特征提取网络中,不同层次的卷积层对应着不同程度的特征抽象。多层次集成可以增强不同分辨率特征的表示能力。

  • 浅层特征:可以进一步加强细节信息,抑制噪声。
  • 中间层特征:同时考虑了语义信息和细节信息,可以根据网络本身的需要自适应调整不同抽象信息在特征中的比例,从而实现更灵活的特征利用。
  • 深层特征:可以挖掘更丰富的语义信息。

聚合交互模块(AIM,Aggregate Interaction Module)通过交互式学习策略来聚合特征。设第 i i i个AIM模块为 A I M i AIM_i AIMi,其输入是来自编码器提取的特征 f e i − 1 、 f e i 、 f e i + 1 f_{e}^{i-1}、f_{e}^{i}、f_{e}^{i+1} fei1feifei+1
在这里插入图片描述
上图依次展示了模型中的三种 A I M AIM AIM模块结构,其中, ( a ) (a) (a)代表 A I M 0 AIM_0 AIM0 ( b ) (b) (b)代表 A I M k , k ∈ { 1 , 2 , 3 } AIM_k,k∈\{1,2,3\} AIMk,k{1,2,3} ( a ) (a) (a)代表 A I M 4 AIM_4 AIM4
  经过卷积+BN+ReLU处理后,来自编码器的输出分为本地分支( B 1 B^1 B1)与辅助分支( B 0 、 B 2 B^0、B^2 B0B2)。通过池化、邻域插值和卷积操作对 B 0 、 B 2 B^0、B^2 B0B2分支进行调整,并通过逐元加法将它们合并到 B 1 B^1 B1分支中,之后通过卷积操作实现特征融合并减少通道数,再通过残差连接得到最终的输出。整个流程如下:
在这里插入图片描述

3.3 Self-Interaction Module

  自交互模块(SIM,Self-Interaction Module)和融合单元将输出的特征进行组合,并在真实掩模的监督下生成最终预测。SIM模块结构图:
在这里插入图片描述

首先通过卷积层降低输入特征的分辨率和通道数,在每个分支中,SIM模块都会对低分辨率特征进行上采样、对高分辨率特征进行下采样,使其与其他分支的特征具有相同的分辨率。不同分辨率、通道数特征的交互操作可获得大量的不同尺度的知识,并以较低的参数量化来主要保持高分辨率信息。此外还采用了残差连接。在经过上采样、归一化和非线性处理后,采用融合单元(FU)对SIM和残差支路的双路径进行处理,将SIM集成到解码器中,使得网络在训练阶段能够自适应地处理不同样本的尺度变化。计算公式如下:
在这里插入图片描述
在这里插入图片描述
其中, f S I M i f^i_{SIM} fSIMi表示 S I M i SIM_i SIMi模块的输出, M ( ⋅ ) M(·) M()表示分支合并, B S I M i , j B^{i,j}_{SIM} BSIMi,j表示 S I M i SIM_i SIMi的第 j j j个分支 B j B^j Bj。输入特征 f a d d i f^i_{add} faddi计算如下:
在这里插入图片描述
U i + 1 ( ⋅ ) U^{i+1}(·) Ui+1() F i + 1 ( ⋅ ) F^{i+1}(·) Fi+1()表示表示自顶向下路径中的第 i + 1 i+1 i+1个上采样操作和融合单元。

3.4Consistency-Enhanced Loss

  本文提出一致性增强损失(CEL)辅助模型训练:
在这里插入图片描述
其中, P ∈ R N × H × W × 1 P∈R^{N×H×W×1} PRN×H×W×1表示一批次数据中的N张显著性图( N = b a t c h _ s i z e N=batch\_size N=batch_size), S i g m o i d ( C o n v ( ⋅ ) ) Sigmoid(Conv(·)) Sigmoid(Conv())表示解码器中具有非线性激活函数的最后一个卷积层。二进制交叉熵损失(BCEL)函数计算公式如下:
在这里插入图片描述
其中, G ∈ { 0 , 1 } N × H × W × 1 G∈\{0,1\}^{N×H×W×1} G{0,1}N×H×W×1表示真实掩模。

4.Experiments

4.1Implementation Details

  模型采用DUTS-TR数据集作训练数据集,在训练阶段,随机水平翻转、随机旋转和随机颜色抖动作为数据增强技术来避免过度拟合问题。以 b a t c h _ s i z e = 4 batch\_size=4 batch_size=4训练了50个epoch,编码器(即VGG-16和ResNet-50)使用在ImageNet数据集上预训练的相应模型初始化,其余参数由PyTorch的默认设置初始化。使用SGD优化器,其权重衰减为5e-4,初始学习率为1e-3,动量为0.9。此外,采用了一个系数为0.9的ploy学习率调整策略,图像输入尺寸为 320 × 320 × 3 320 × 320×3 320×320×3

4.2 Comparison with State-of-the-arts

在这里插入图片描述
  上表列出了含有六个指标的详细实验结果。使用红、绿、蓝依次表示性能前三名。
在这里插入图片描述
  上图列出了一些有代表性的例子。

4.3Ablation Study

  • Effectiveness of the AIMs and SIMs
    在这里插入图片描述
      使用类似FPN的网络架构作为基准模型,其使用横向连接将最浅层的通道数减少到32,其他层减少到64。可见,两个模块都在基线上实现了显著的性能改进。

在这里插入图片描述

  从可视化结果可见,由于交互式特征学习可以捕获更丰富的多尺度上下文信息,因此AIMs和SIMs可以有效地抑制背景干扰并完全分割显著目标。

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

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

相关文章

【力扣】[Java版] 刷题笔记-21. 合并两个有序链表

题目: 21. 合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 从题目和示例可以看出,应该是要循环遍历链表进行比较,然后组成新的链表。 第一种:递归…

存储过程(SQL)

1.存储过程 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。 2.MySQL存储过程创建…

PostgreSQL的前世今生

PostgreSQL的起源可以追溯到1977年的加州大学伯克利分校(UC Berkeley)的Ingres项目。该项目由著名的数据库科学家Michael Stonebraker领导,他是2015年图灵奖的获得者。以下是PostgreSQL起源的详细概述: 一、早期发展 Ingres项目…

LabVIEW换流变换器智能巡检系统

基于LabVIEW的换流变换器智能巡检系统通过自动化检测和数据分析,提高换流变换器的运行效率和可靠性,降低人工维护成本。 项目背景: 换流变压器作为电力系统的重要组成部分,其性能的可靠性直接影响到整个电网的稳定运行。然而&…

完美解决phpstudy安装后mysql无法启动

phpstudy数据库无法启动有以下几个原因。 一、自己在电脑上安装了MySQL数据库,MySQL的服务名为MySQL,这会与phpstudy的数据库的服务名发生冲突,从而造成phpstudy中的数据库无法启动,这时我们只需要将自己安装的MySQL的服务名改掉就行。 但是&#xff0…

软件测试的重要一环:「性能测试」怎么做?

性能测试是软件测试中的重要一环,今天给大家介绍性能测试及如何使用RunnerGo完成性能测试任务。 性能测试是什么? 一句话概括:不断地通过不同场景的系统表现去探究系统设计与资源消耗之间的平衡,为开发人员提供消除瓶颈所需的诊…

Ajax:表单 模板引擎

Ajax&#xff1a;表单 & 模板引擎 form 表单form 属性 Ajax操控表单事件监听阻止默认行为收集表单数据 模板引擎art-template{{}}语法原文输出条件输出循环输出过滤器 原理 form 表单 在HTML中&#xff0c;可以通过<form>创建一个表单&#xff0c;收集用户信息。而采…

基于docker 部署redis

1、拉取镜像 docker pull redis:latest如果拉取失败可以尝试下配置镜像源&#xff0c;具体参考如下&#xff0c;目前暂可以使用 Docker切换镜像源-CSDN博客 2、创建配置文件 mkdir /usr/local/redis/conf vim redis.conf bind 0.0.0.0#protected-mode no port 6379 tcp-b…

Fast Simulation of Mass-Spring Systems in Rust 论文阅读

参考资料&#xff1a; Fast Simulation of Mass-Spring Systems in Rust 论文阅读&#xff1a;Fast Simulation of Mass-Spring Systems 【论文精读】讲解刘天添2013年的fast simulation of mass spring system(Projective Dynamics最早的论文) Projective Dynamics笔记(一…

面试经典 150 题 第三周代码

【题目链接】 80. 删除有序数组中的重复项 II 【参考代码】 双指针 class Solution { public:int removeDuplicates(vector<int>& nums) {int size nums.size();if(size < 2){return size;}int slow 2, fast 2;while(fast < size){if(nums[slow-2] ! num…

【C++数学 负进制】1017. 负二进制转换|1697

本文涉及知识点 数学 LeetCode1017. 负二进制转换 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。 注意&#xff0c;除非字符串就是 “0”&#xff0c;否则返回的字符串中不能含有前导零。 示例 1&#xff1a…

可训练的YOLO距离检测

由于很多场景需要测距&#xff0c;而深度图、点云等获取、配准、融合困难&#xff0c;尝试直接在目标增加距离标注进行训练&#xff0c;理论上标注准确&#xff0c;数据集够&#xff0c;就可以实现。 目前已经跑通YOLO增加距离训练&#xff1a; 目前准度不够&#xff0c;仅将…

Flutter Image和Text图文组件实战案例

In this section, we’ll go through the process of building a user interface that showcases a product using the Text and Image widgets. We’ll follow Flutter’s best practices to ensure a clean and effective UI structure. 在本节中&#xff0c;我们将使用“Te…

JVM 实战篇(一万字)

此笔记来至于 黑马程序员 内存调优 内存溢出和内存泄漏 内存泄漏&#xff08;memory leak&#xff09;&#xff1a;在Java中如果不再使用一个对象&#xff0c;但是该对象依然在 GC ROOT 的引用链上&#xff0c;这个对象就不会被垃圾回收器回收&#xff0c;这种情况就称之为内…

鸿蒙next之导航组件跳转携带参数

官方文档推荐使用导航组件的形式进行页面管理&#xff0c;官方文档看了半天也没搞明白&#xff0c;查了各种文档才弄清楚。以下是具体实现方法&#xff1a; 在src/main/resources/base/profile下新建router_map.json文件 里边存放的是导航组件 {"routerMap" : [{&q…

从汇编角度看C/C++函数指针与函数的调用差异

函数指针本质上是一个指针变量&#xff0c;只不过这个变量保存的地址是一个函数的地址&#xff0c;那么直接调用函数和通过函数指针调用有没有区别呢&#xff1f;答案是有的&#xff0c;下面的代码是一个直接调用函数和通过指针调用函数的例子&#xff0c;使用gdb反汇编main函数…

vue开发的时候,目录名、文件名、函数名、变量名、数据库字段等命名规范

在Vue开发中&#xff0c;函数名、文件名、目录名、变量名、数据库字段名的命名规范各有其特点&#xff0c;以下是根据Vue及JavaScript的命名习惯进行的详细解答&#xff1a; 分析 目录名 通常使用kebab-case&#xff08;短横线命名法&#xff09;&#xff0c;全部小写&#x…

mac电脑设置chrome浏览器语言切换为日语英语等不生效问题

在chrome中设置了语言&#xff0c;并且已经置顶了&#xff0c;但是不生效&#xff0c;在windows上直接有设置当前语言为chrome显示语言&#xff0c;但是mac上没有。 解决办法 在系统里面有一个单独给chrome设置语言的&#xff1a; 单独给它设定成指定的语言&#xff0c;然后重…

【每日一题】LeetCode - 判断回文数

今天我们来看一道经典的回文数题目&#xff0c;给定一个整数 x &#xff0c;判断它是否是回文整数。如果 x 是一个回文数&#xff0c;则返回 true&#xff0c;否则返回 false。 回文数 是指从左往右读和从右往左读都相同的整数。例如&#xff0c;121 是回文&#xff0c;而 123 …

Spring Boot整合Stripe订阅支付指南

在当今的在线支付市场中&#xff0c;Stripe 作为一款一体化的全球支付平台&#xff0c;因其易用性和广泛的支付方式支持&#xff0c;得到了许多企业的青睐。本文将详细介绍如何在 Spring Boot 项目中整合 Stripe 实现订阅支付功能。 1.Stripe简介 Stripe 是一家为个人或公司提…