热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[论文阅读]LookingfortheDetailandContextDevils:HighResolutionSalientObjectDetection

论文地址:https:dx.doi.org10.1109TIP.2020.3045624发表于:TIP2021Abstract近年来,

论文地址:https://dx.doi.org/10.1109/TIP.2020.3045624
发表于:TIP 2021


Abstract

近年来,随着大规模基准测试与深度学习技术的成就,显著目标检测(SOD)已经显示出巨大的成功。然而,现有的SOD方法主要集中在低分辨率的自然图像上,如400×400或更低。这一缺陷阻碍了它们在先进实际应用中的落地,因为这些应用需要高分辨率且富含细节的结果。此外,显著目标缺乏边界细节以及语义上下文信息也是准确SOD的一个关键问题。为了解决这些问题,在本文中,我们专注于解决高分辨率显著目标检测(HRSOD)任务。从技术角度,我们提出了第一个端到端的可学习框架,名为双重细化网络(DRFNet),用于全自动的HRSOD。具体而言,所提出的DRFNet由一个共享的特征提取器与两个有效的细化头组成。通过对细节与上下文信息的解耦,其中一个细化头采用了全局感知的特征金字塔,在不增加太多计算负担的情况下,它可以提升空间细节信息,从而缩小高层语义与低层细节之间的差距。同时,另一个细化头采用了混合空洞卷积块与分组上采样,其在提取上下文信息方面十分有效。基于双重细化。我们的方法可以扩大感受野,并从高分辨率图像中获得更多可区分的特征。在高分辨率基准测试(DUT-HR SOD&DAVIS-SOD)上的实现结果表明,我们的方法不仅高效,而且比其他SOTA更加准确。此外,我们的方法在典型的低分辨率基准测试上具有良好的通用性。


I. Motivation

随着硬件的发展,现阶段高分辨率的应用比以前多得多(4K电视、智能手机、高清显示器)。但是现有的大部分方法都是针对低分辨率图像进行设计的,不能直接应用在高分辨率图像上(计算量很大)。因此有必要设计相应的高分辨率SOD模型。

文中指出HRSOD模型的设计主要有以下的难点:


  • 高分辨率图像可能包含更多具有不同结构与形状的物体
  • 高分辨率图像可能包含更多的精确细节,如发丝等

而目前视觉任务中处理高分辨率图像的思路主要有以下几种:


  • 将高分辨率图像裁剪/放缩至低分辨率,然后用一般的网络来处理得到一个低分辨率结果,再将结果上采样回高分辨率
  • 设计专门的轻量级网络来平衡掉输入高分辨率图像时所带来的开销。不过文中认为这种方法由于还是使用了多级下采样,容易丢失空间信息
  • 设计非对称网络,使用不同的分支来分别处理不同分辨率下的图像,即利用图像的高分辨率版本,提取其低级细节特征;利用图像的低分率版本,提取以高级语义特征,最后进行融合。不过文中认为由于多级特征之间存在gap,目前的方法大多没处理好gap的问题,导致结果不理想

本文主要是对第三种思路进行改进,实现更好的特征融合;而至于"不同分辨率"的问题,本文的实现形式是在共享Encoder的情况下使用双Decoder。


II. Network Architecture

在这里插入图片描述
属于一种Encoder-Decoder架构的变体。不过本文提到了这么一点,轻量级的网络在完成SOD任务时也很有效,因此本文出于计算效率的考虑,使用了VGG-16/ResNet18作为backbone,而非其他SOD模型中常用的ResNet50。为了后文表述方便,记Encoder提取的各级特征为Fi,i∈[1,…,5]\mathbf{F}_{i}, i \in[1, \ldots, 5]Fi,i[1,,5]


III. Detail Refinement Head

细节细化头的作用是专注于提取高分辨率图像的低级特征,其包含三个子模块:


  • 卷积特征缩减块CFRB
  • 深度特征上采样块DFUB
  • 全局特征交互块GFIB

当然,文中虽然把这几样东西称作是模块,其实从本质上讲其更类似于特定的卷积设计技巧。接下来我们将对这三个模块分别进行介绍。


Convolutional Feature Reduction Block

这个东西的作用是减少特征的维度。那么谈到降维,最容易想到的就是1×1卷积,实际上本文的CFRB也确实仅由1×1卷积+BN+ReLU构成。考虑到高分辨率图像带来的计算开销,CFRB统一将通道维度调整至32(对低分辨率图像来说一般是调至64)。


Depth-Wise Feature Upsampling Block

传统SOD网络在decoder进行上采样的过程中一般用的是双线性插值或者反卷积,文中认为这种方法会带来较大的计算开销。为此,本文在上采样时所用的卷积为文[1]所用的depth-wise convolution。


Global-Aware Feature Interaction Block

GFIB做的其实就是一个带通道注意力的特征融合,其结构如下所示:
在这里插入图片描述
对于通过channel-wise concat得到的融合特征,首先使用GAP+FC计算得到一个通道权重αg\alpha_{g}αg。对于传统的低分辨率方法,在计算得到权重后,再与原特征相乘便完成了加权。而这里考虑到高分辨率,对原融合特征使用了3×3卷积进行降通道,然后才与权重相乘进行加权。形式化地,有:αG=σ(W1∗GAP([FC,FD])+b)FR=g(W2∗[FC,FD]+b)FG=αG⊙FR\begin{aligned} &\alpha_{G}=\sigma\left(W_{1} * G A P\left(\left[\mathbf{F}_{C}, \mathbf{F}_{D}\right]\right)+b\right) \\ &\mathbf{F}_{R}=g\left(W_{2} *\left[\mathbf{F}_{C}, \mathbf{F}_{D}\right]+b\right) \\ &\mathbf{F}_{G}=\alpha_{G} \odot \mathbf{F}_{R} \end{aligned} αG=σ(W1GAP([FC,FD])+b)FR=g(W2[FC,FD]+b)FG=αGFR 其中∗*表示矩阵乘,⊙\odot表示elemet-wise乘,W1W_{1}W1W2W_{2}W2bbb表示可学习参数,ggg表示ReLU,σ\sigmaσ表示sigmoid激活函数。


IV. Context Refinement Head

全局细化头的目标就是对融合特征去进行各种更好地后处理了,这也算一种很常见的思路,比如ASPP模块干的就是这个。但是文中指出这类传统的金字塔结构有个问题,即计算量较大,并不完美契合高分辨率任务,因此本文自己搞了个类ASPP模块,同样是做不同感受野特征的融合,记做HDCB。此外,CRH同样也改良了传统的上采样方式,记为GWU。接下来将分别介绍HDCB与GWU这两个模块。


Hybrid Dilation Convolutional Block

HDCB的结构如下所示:
在这里插入图片描述
对于输入特征FiF_{i}Fi,使用不同dilate rate的卷积分支WrjW_{r_{j}}Wrj进行计算,有:Firj=Wrj∗Fi\mathbf{F}_{i}^{r_{j}}=W_{r_{j}} * \mathbf{F}_{i} Firj=WrjFi 这样就可以得到各级特征Firj\mathbf{F}_{i}^{r_{j}}Firj。对于这么个各级特征,再计算空间注意力图AirjA_{i}^{r_{j}}Airj,有:Airj=σ(Wa∗Firj)A_{i}^{r_{j}}=\sigma\left(W_{a} * \mathbf{F}_{i}^{r_{j}}\right) Airj=σ(WaFirj) 其中WaW_{a}Wa指计算注意力时所用1×1卷积中的参数。由于这几张特征图后面还要做融合,因此这里的注意力图还需要进行归一化:A^irj=Airj∑rjAirj\hat{A}_{i}^{r_{j}}=\frac{A_{i}^{r_{j}}}{\sum_{r_{j}} A_{i}^{r_{j}}} A^irj=rjAirjAirj 最后,使用残差连接将原始输入特征FiF_{i}Fi与多尺度特征Firj\mathbf{F}_{i}^{r_{j}}Firj进行相加,得到最终的带注意力特征图Fia\mathbf{F}_{i}^{a}Fia:Fia=Fi+∑jAirjFirj\mathbf{F}_{i}^{a}=\mathbf{F}_{i}+\sum_{j} A_{i}^{r_{j}} \mathbf{F}_{i}^{r_{j}} Fia=Fi+jAirjFirj 文中对于HDCB节省空间的解释是输入特征图的大小与输出特征图的大小相同(主要体现在深度上),这主要得益于最后融合的时候使用的是element-wise sum而非channel-wise concat。此外,也引入了注意力机制,保证了性能。


Group-Wise Upsampling

这个的思想与上文中介绍的Depth-Wise Feature Upsampling Block类似,也是利用分组反卷积来替代传统的双线性插值操作,从而在保证性能的前提下节省计算量。


V. Guided Feature Boosting

GFB做的是多级特征融合,也就是怎么将DRH获得的低级特征FDRH\mathbf{F}_{D R H}FDRH与CRH获得的高级特征FCRH\mathbf{F}_{C R H}FCRH进行融合的问题,其结构如下所示:
在这里插入图片描述
既然要解决gap,那么就得引入一个额外的中间特征来减轻这个gap,文中所用的便为Encoder最终输出的公共全局特征FG\mathbf{F}_{G}FG。首先,将这三者进行channel-wise concat。由于按通道叠加会带来通道数上升进而影响性能,因此在叠加后需要立刻降通道:Fre=Wre∗[FDRH,FG,FCRH]\mathbf{F}_{r e}=W_{r e} *\left[\mathbf{F}_{D R H}, \mathbf{F}_{G}, \mathbf{F}_{C R H}\right] Fre=Wre[FDRH,FG,FCRH] 其中WreW_{r e}Wre表示降通道所用1×1卷积的参数。之后,将融合特征Fre\mathbf{F}_{r e}Fre与两个粗预测结果相加,得到最终结果:Fboost =PDRH+Fre+PCRH\mathbf{F}_{\text {boost }}=\mathbf{P}_{D R H}+\mathbf{F}_{r e}+\mathbf{P}_{C R H} Fboost =PDRH+Fre+PCRH 因为1×1卷积降通道的过程本身某种程度也算做注意力的过程(将无用特征压缩掉),因此GFB所做的也是一种带注意力的多级特征融合。


VI. ExperViment

性能超越了16个最近模型,包括LEGS(CVPR 2015)、RFCN(ECCV 2016)、DCL(CVPR 2016)、DHS(CVPR 2016)、UCF(ICCV 2017)、AMU(ICCV 2017)、NLDF(CVPR 2017)、DSS(CVPR 2017)、BMP(CVPR 2018)、RAS(ECCV 2018)、DGRL(CVPR 2018)、PAGR(CVPR 2018)、CPD(CVPR 2019)、AFN(CVPR 2019)、EGN(ICCV 2019)、GLF[2](ICCV 2019)。

需要注意的是,由于是进行高分辨率训练,因此所用的训练集为DUT-HRSOD而非传统的DUTS-TR。此外本文也提出了一个DAVIS-SOD数据集作为测试集,用于未来的高分辨率SOD研究。


VII. Summary

高分辨率SOD最早可能是由HRSOD[2]这篇文章提出的,目前也算是属于一个比较起步的阶段,这篇文章可以算是第二篇。本文针对高分辨率的优化,主要集中于在网络的各个部分进行通道压缩以减轻运算量,并且将一些传统操作替换为计算效率更高的操作(如替换掉双线性上采样)。而对于通道压缩所可能带来的性能下降问题,本文采用带注意力的多级特征融合来进行弥补。


Ref

[1] ERFNet: Efficient residual factorized ConvNet for real-time semantic segmentation
[2] Zeng, Yi, et al. “Towards high-resolution salient object detection.” Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019.


推荐阅读
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • IB 物理真题解析:比潜热、理想气体的应用
    本文是对2017年IB物理试卷paper 2中一道涉及比潜热、理想气体和功率的大题进行解析。题目涉及液氧蒸发成氧气的过程,讲解了液氧和氧气分子的结构以及蒸发后分子之间的作用力变化。同时,文章也给出了解题技巧,建议根据得分点的数量来合理分配答题时间。最后,文章提供了答案解析,标注了每个得分点的位置。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 怀疑是每次都在新建文件,具体代码如下 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了在Python张量流中使用make_merged_spec()方法合并设备规格对象的方法和语法,以及参数和返回值的说明,并提供了一个示例代码。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
author-avatar
ccM保佑加琳诺爱儿1984f
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有