SalGAN: Visual saliency prediction with generative adversarial networks
SalGAN: Visual saliency prediction with generative adversarial networks
2017-03-17
摘要:本文引入了对抗网络的对抗训练机制来进行显著性物体的预测。虽然我们老板很不喜欢显著性,但是,做显著性检测的人还是会说:这是有意义的。如本文说的:恩,显著性可以作为 soft-attention,来引导其他计算机视觉任务的进行,也可以直接引导 marketing 领域。
本文区别于其他方法最显著的地方在于:the usage of generatvie adversarial networks。本文将训练分为两个阶段:
1. 产生器产生一个服从训练集合的伪造的样本;
2. 判别器就是用于判断给定的样本是 真实的 还是 伪造的。
本文中谈到的 data distribution 意思是:实际的图像 和 对应的显著性图。
本文总结的贡献点是:
1. 探索了 GAN 在显著性物体检测上的应用,在某些数据集上取得了不错的效果;
2. 在训练 DCNN 时,应用 二元交叉熵损失函数 和 下采样显著性图 是可以提升效果的。
本文的网络框架设计如图所示:

网络结构分析:
1. 产生器:
Convolutional encoder-decoder architecture
2. 判别器:
就是一个 CNN 结构。
训练(Training):
1. Content Loss
由于 产生器 部分的输出是 saliency map,要计算的这部分就是:输出的 saliency map 和 gt saliency map 之间均方差 loss 。
用的就是 两个 map 之间的欧式距离:

本文中 MSE 就是用来作为 baseline 的,因为大部分显著性检测的方法都是基于这个 loss function。GT saliency maps 被归一化到 0-1 之间。
这里用到了 二元交叉熵损失函数:

2. 对抗损失
关于 GAN 这里就不在介绍了,那么显著性检测和 gan 有什么不同呢?
1. 首先,目标是拟合一个 决策函数 来产生实际的 saliency values,而不是从随机的 noise 中得到 真实的图像;
这样的话,输入给产生器的东西就不再是 随机的 noise,而是一张图像;
2. 其次,显著性所对应的图 是衡量质量的;
所以我们将图像和 saliency map 作为输入给产生器
3. 最后,在 GAN 产生图像的时候,没有 gt 进行对比,属于无监督学习;
但是,在显著性检测的时候,我们是有现有的 gt 作为对比的。
我们发现产生器函数更新的时候,我们发现 利用判别器的loss 和 对比gt得到的交叉熵损失函数,可以显著地提升对抗训练的稳定性和收敛速度。
最终的 loss function 可以定义为:

实验结果:

SalGAN: Visual saliency prediction with generative adversarial networks的更多相关文章
- GD-GAN: Generative Adversarial Networks for Trajectory Prediction and Group Detection in Crowds
GD-GAN: Generative Adversarial Networks for Trajectory Prediction and Group Detection in Crowds 2019 ...
- 语音合成论文翻译:2019_MelGAN: Generative Adversarial Networks for Conditional Waveform Synthesis
论文地址:MelGAN:条件波形合成的生成对抗网络 代码地址:https://github.com/descriptinc/melgan-neurips 音频实例:https://melgan-neu ...
- StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记
StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 本文将利 ...
- 论文笔记之:Semi-Supervised Learning with Generative Adversarial Networks
Semi-Supervised Learning with Generative Adversarial Networks 引言:本文将产生式对抗网络(GAN)拓展到半监督学习,通过强制判别器来输出类 ...
- 《Self-Attention Generative Adversarial Networks》里的注意力计算
前天看了 criss-cross 里的注意力模型 仔细理解了 在: https://www.cnblogs.com/yjphhw/p/10750797.html 今天又看了一个注意力模型 < ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- (转)Introductory guide to Generative Adversarial Networks (GANs) and their promise!
Introductory guide to Generative Adversarial Networks (GANs) and their promise! Introduction Neural ...
- Generative Adversarial Networks,gan论文的畅想
前天看完Generative Adversarial Networks的论文,不知道有什么用处,总想着机器生成的数据会有机器的局限性,所以百度看了一些别人 的看法和观点,可能我是机器学习小白吧,看完之 ...
- 论文笔记之:UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS
UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GENERATIVE ADVERSARIAL NETWORKS ICLR 2 ...
随机推荐
- Linux 进程间通讯
一.Linux 下进程间通讯方式 1)管道(Pipe)及有名管道(named pipe): 管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允 ...
- python中常见的错误类型
Python异常类 Python是面向对象语言,所以程序抛出的异常也是类.常见的Python异常有以下几个 ,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用 ...
- loadRunner手动关联, web_reg_save_param_regexp()函数正则匹配字符,赋值给变量
loadRunner写脚本实现登录机票网站,手动关联,获取页面源码中特定字符 手动关联,就是通过函数获取某个步骤生成的字符,赋值给一个变量,这个变量可以作为接下来某个步骤的输入, 以便这个脚本能够在存 ...
- go语言,golang学习笔记2 web框架选择
go语言,golang学习笔记2 web框架选择 用什么go web框架比较好呢?能不能推荐个中文资料多的web框架呢? beego框架用的人最多,中文资料最多 首页 - beego: 简约 & ...
- Codeforce 733B - Parade (枚举)
Very soon there will be a parade of victory over alien invaders in Berland. Unfortunately, all soldi ...
- bzoj4445 小凸想跑步
题目链接 半平面交,注意直线方向!!! 对于凸包上任意一条边$LINE(p_i,p_{i+1})$都有$S_{\Delta{p_i} {p_{i + 1}}p} < S_{\Delta{p_0} ...
- git push跳过用户名和密码认证配置教程
在使用git commit命令将修改从暂存区提交到本地版本库后,只剩下最后一步将本地版本库的分支推送到远程服务器上对应的分支了,如果不清楚版本库的构成,可以查看我的另一篇,git 仓库的基本结构. 新 ...
- P1216 数字金字塔
P1216 数字金字塔 我们可以用 f [ i ] [ j ] 表示从(1,1)出发,到达(i,j)的最大权值和. (i , j)可以由(i - 1 , j)或者(i - 1 , j - 1)转化来 ...
- Spring MVC前传递和后端接收的参数名不一致处理方式
前端传递的变量和后端接收的变量名字不一致时,用注解@RequestParam来实现数据的传递 例如:@RequestParam(value="id") //实现商品的分类目录展现 ...
- Spring AOP(基于代理类的AOP实现)
#基于代理类的AOP实现:step1: 1 package com.sjl.factorybean; /**切面类*/ import org.aopalliance.intercept.MethodI ...