论文地址:http://openaccess.thecvf.com/content_ICCV_2019/papers/Zhao_EGNet_Edge_Guidance_Network_for_Salient_Object_Detection_ICCV_2019_paper.pdf

当前方法的问题

  全卷积网络解决了像素标记问题,出现了几种用于显着物体检测的端到端深度架构。 输出显着性图的基本单位从图像区域开始变成每个像素。 一方面,由于每个像素都有其显着性值,结果突出显示了细节。 但是,它忽略了对SOD重要的结构信息。随着网络感受野的增加,显著性物体的位置越来越准确,但是空间连贯性仍然被忽略了。显著边缘信息和显著物体信息的互补性也没有被注意到。

怎么解决这个问题

  利用显著边缘特征帮助显著物体特征更准确的定位物体(尤其是边界)。

  动机:良好的显着边缘检测结果可以在分割和定位方面帮助显着对象检测任务,反之亦然

网络结构

 

  使用VGG16的去全连接层的部分,由于第一个卷积块离输入近且感受野小,扔掉不用,在第五个卷积块后增加第六个卷积块。

1.渐进显著性物体特征提取:

  PSFEM模块。为了获取鲁棒性更好的显著物体特征,在每条支路后面增加三个卷积层,每个卷积层后有一个RELU层,再通过一个卷积层将将特征图转换成单通道的预测图。具体参数见表1。

  

2.非局部显著边缘特征提取

  通过conv2-2提取局部边缘信息。自顶向下将顶层的位置信息传播到第二层。融合的第二层特征如下

  

  表示为了改变特征通道数的卷积层,表示ReLU激活函数,是将输入上采样到C(2)大小的双线性插值操作。为了简便,用来表示表示第六层经过增强之后的特征,第六层的增强操作可以表示为,第三、四、五层的增强特征可以这样计算,

  

  表示卷积中的参数,表示一系列的卷积操作。在得到后,同样进行一系列卷积处理得到最终显著边缘特征,可以这样表示记做

3.一对一引导模块

  利用显著边缘特征引导显著物体特征在分割和定位上表现的更好。直接融合显著边缘特征和多分辨率显著物体特征时,边缘特征会被淡化,于是采用一对一引导。在每一层将显著边缘特征融合到增强的显著物体特征中去,使高层特征的定位更加准确,对每层的增强后的显著物体特征上采样后与显著边缘特征相融合,得到显著边缘引导特征s-feature,具体操作如下。

   

  与PSFEM类似,对每一层的融合特征进行一系列的卷积操作,然后转换成单通道预测图,通过公式3,得到增强后的s-feature

损失函数

  显著边缘特征部分的损失函数,分别表示显著边缘像素集合和背景像素集合,看源码发现应该是对每个GT都提取了边缘,用来监督边缘图的生成。是手动计算一个权值之后,计算交叉熵损失(F.binary_cross_entropy_with_logits),后面计算损失也全是调用这个函数。

  

  显著物体检测的损失函数,分别表示显著区域像素集合和非显著区域像素集合,

  

  特征提取部分的总损失函数:

  

  对每层得到的输出预测图计算损失,

  

  然后融合多尺度的预测图得到一张融合图,这一步的损失为:

  

  其中表示预测图和GT的交叉熵损失,与公式5结构一样。最后一对一引导模块的损失和该方法的总损失函数如下。

  

实验

  评价指标:F-measure:

  

  MAE:

  

  S-measure:

  

  对比结果:

  

论文阅读:EGNet: Edge Guidance Network for Salient Object Detection的更多相关文章

  1. 论文阅读笔记三十五:R-FCN:Object Detection via Region-based Fully Convolutional Networks(CVPR2016)

    论文源址:https://arxiv.org/abs/1605.06409 开源代码:https://github.com/PureDiors/pytorch_RFCN 摘要 提出了基于区域的全卷积网 ...

  2. 论文阅读 | FPN:Feature Pyramid Networks for Object Detection

    论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 201 ...

  3. [论文阅读笔记] Structural Deep Network Embedding

    [论文阅读笔记] Structural Deep Network Embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 现有的表示学习方法大多采用浅层模型,这可能不能 ...

  4. [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion

    [论文阅读笔记] Unsupervised Attributed Network Embedding via Cross Fusion 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 (1 ...

  5. Minimum Barrier Salient Object Detection at 80 FPS 论文阅读笔记

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  6. (不断更新)关于显著性检测的调研-Salient Object Detection: A Survey

    <Salient Object Detection: A Survey>作者:Ali Borji.Ming-Ming Cheng.Huaizu Jiang and Jia Li 基本按照文 ...

  7. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

  8. 论文阅读:An End-to-End Network for Generating Social Relationship Graphs

    论文链接:https://arxiv.org/abs/1903.09784v1 Abstract 社交关系智能代理在人工智能领域中越来越引人关注.为此,我们需要一个可以在不同社会关系上下文中理解社交关 ...

  9. 【论文阅读】Second-order Attention Network for Single Image Super-Resolution

    概要 近年来,深度卷积神经网络(CNNs)在单一图像超分辨率(SISR)中进行了广泛的探索,并获得了卓越的性能.但是,大多数现有的基于CNN的SISR方法主要聚焦于更宽或更深的体系结构设计上,而忽略了 ...

随机推荐

  1. 常见的RuntimeException报错原因

    对于RuntimeException 做java开发的朋友想必不会陌生,可以用于事物的回滚操作.异常类型也有很多种,写这篇文章主要是为了总结自己开发中遇到的一些异常类型 以便帮助大家遇到相应的报错找不 ...

  2. python爬虫--爬虫介绍

    一 爬虫 1.什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样 2.互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是存放于一台 ...

  3. TimePicker - NG-ZORRO设置

    前言 依照官方例子,要给nz-time-picker组件设置某些时间范围不能选择. 正文 根据列表里设置的开始时间与结束时间,去限制弹框的时间组件选择范围.这里用到了组件的nzDisabledHour ...

  4. Ubuntu修改时间

    Ubuntu修改时区和更新时间 先查看当前系统时间 date -R 结果时区是:+0000 我需要的是东八区,这儿显示不是,所以需要设置一个时区 运行 tzselect 在这里我们选择亚洲 Asia, ...

  5. sendRedirect()和forward()方法有什么区别?

    forward是服务器内部的跳转,浏览器的地址栏不会发生变化,同时可以把request和response传递给后一个请求.sendRedirect()是浏览器方面的跳转,要发送两次请求,地址栏也会发生 ...

  6. SSH框架搭建详细图文教程

    转载请标明原文地址:http://www.cnblogs.com/zhangyukof/p/6762554.html 一.什么是SSH? SSH是JavaEE中三种框架(Struts+Spring+H ...

  7. 《Java算法》贪心算法

    贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解. 贪心算法的经典案例: 跳跃游戏: 给定一个非负整 ...

  8. SpringBoot IoC启动流程、初始化过程及Bean生命周期各个阶段的作用

    目录 SpringBoot IoC启动流程.初始化过程及Bean生命周期各个阶段的作用 简述 首先明确IoC容器是啥 准备-SpringApplication的实例化 启动-SpringApplica ...

  9. Python基础-day01-8

    变量的基本使用 程序就是用来处理数据的,而变量就是用来存储数据的 目标 变量定义 变量的类型 变量的命名 01. 变量定义 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 ...

  10. SpringCloud -创建统一的依赖管理

    场景 Spring Cloud 为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性 Token,全居琐,Leader 选举,分布式 Session,集群状态)中快速构 ...