本篇属于转载,原文出自:点击打开链接点击打开链接

首先思考一个问题:

当网络最后一层输出的 prediciton map size 和 label map size 不匹配时,除了 cropping, resize 等暴力措施,且不采取 bilinear , uppooling, deconvolution 等decoder 结构, 为了实现 dense prediction , 该怎么做呢?在论文 《Fully Convolutional Networks for Semantic Segmentation》 "3.2 Shift-sttch is filter rarefaction"这一节,作者指出: 为了实现dense prediction ,他们比较了三种不同方案,分别是 shift and stitch, deceasing subsampling,deconvolution

我们首先看一下FCN作者对 shift and stitch 是怎样描述的:

弄明白之后,再去看,觉得作者描述的已经很清晰了,但是当时怎么也看不懂什么意思。网上关于这一段的翻译更是千篇一律,不知所云,所以很多博客就是搬运工的工作,互相抄来抄去。

网上的关于shift-and-stitch的解释:设原图与FCN所得输出图之间的降采样因子是f,那么对于原图的每个fxf 的区域(不重叠),“shift the input x pixels to the right and y pixels down for every (x,y) ,0 < x,y < f." 把这个f x f区域对应的output作为此时区域中心点像素对应的output,这样就对每个 fxf 的区域得到了 f2 个output,也就是每个像素都能对应一个output,所以成为了dense prediction

啥??啥???这都是些啥???? 黑人问号脸 ?????

其实 shift and stitch的做法是这样的:

设降采样因子是f , 通过 shift pixels (平移像素)的方式,产生 f2 个version 的 input ,输入网络后相应地产生 f2 个output, 然后 stitch(这个词不好翻译,先翻译成串联)所有 output 就实现了 dense prediciton。

在另一篇论文中找到了对shift and stitch 更详尽的描述 :

我们举一个简单的例子来直观地说明 shift and stitch 的做法:

设网络只有一层 2x2 的maxpooling 层,所以下采样因子 f =2, 我们需要对input imagepixels 平移 (x,y)个单位,即将 image 向左平移 xpixels , 再向上平移y个单位,整幅图像表现向左上方向平移,空出来的右下角就以0 padding 。我们当然可以采取 FCN论文中的做法,将图像向右下角平移,空出来的左上角用 0 padding ,这两种做法产生的结果是一致的,没有本质区别。(x,y) 取(0,0), (0,1),(1,0),(1,1) 后,就产生了 f^2^ = 4input。(回答一个读者的问题:图中的数字表示像素值,不是索引值 )

4input分别进行 2x2 的maxpooling 操作后,共产生了4output

最后,stitch the 4 different output 获得 dense prediction :

那么问题来了,是怎样进行 stitch的呢?FCN 作者的说法是:

Process each of these f2 inputs, and interlace the outputs so that the predictions correspond to the pixels at the centers of their receptive fields

说的很明白了,output 中的每个pixel都对应 original image 的不同 receptive field,将receptive field 的中心c填上这个来自outputpixel值,就是网络对original image 中像素 cprediction

为表述简洁,我用 “ 像素 i ” 表示“ 值为 i 的像素 ”

  • 红色 output中的像素1对应shifted input``(0,0) 的红色部分, 而对应 original image 的部分,也即receptive field仅仅为像素[1], 所以 receptive field 的中心为像素[1], 该位置填上红色output中像素 1 的值。

  • 黄色 output 中的像素4 对应 shifted input (1,0)的黄色部分, 而对应 original image 的部分,也即receptive field为像素 [3,4] , 所以 receptive field 的中心为像素[4], 该位置填上黄色output中像素 4 的值。

  • 以此类推..

  • 注意: 我们注意到黄色 output 中的像素 5 与红色 output 中的像素5对应的receptive field 中心是重叠的,所以将黄色 output 中的像素 5 标为灰色,表示不予考虑。同理其他ouput 中的灰色区域也代表 receptive field中心重叠的像素。

感谢作者:月牙眼的楼下小黑 ,写的这么详细,分享给大家,做优秀的博客搬运工 ~~~
再次附上链接:https://www.jianshu.com/p/e534e2be5d7d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

关于FCN 论文中的 Shift-and-stitch 的详尽解释相关推荐

  1. Yan Goodfellow 在生成对抗网络(GANs)论文中提到的比喻 “the Helvetica Scenario” 的解释及其来龙去脉

    1.the Helvetica Scenario 可以音译为:海奥维提卡情景.海奥维提卡场景.海奥维提卡现象等 <Generative Adversarial Nets>[1] 原文提及: ...

  2. 读博无门,就业碰壁,孤独当了7个月“民科”后,他的论文中了顶会

    ‍ 来源 | 量子位 报道 | 公众号 QbitAI   赖可 发自 凹非寺 一位丹麦科技大学硕士毕业的机器学习研究生,没有申请到博士学位,也没有找到合适的工作. 他决定给自己8个月的时间,在顶会上发 ...

  3. 将论文中的所有参考文献编号批量上标化

    论文中的参考文献编号位数不一,如[1].[12].[2-3].[9-11].[5,9-10].[6,9,16-18],如何将文档中所有的参考文献编号(包括[]在内)快速地改成上标呢? 利用Word的& ...

  4. latex公式对齐_论文中的公式如何对齐

    在写论文的时候,我们会使用word自带的公式编辑器输入公式,然而在输入多个公式或者使用事例括号时,很难保证多行公式对齐.接下来我介绍几种公式对齐的方法: 使用&(类似于latex语法) 使用s ...

  5. 深度学习与TensorFlow:FCN论文学习笔记

    七月 上海 | 高性能计算之GPU CUDA培训 7月27-29日三天密集式学习  快速带你入门阅读全文> 正文共1708个字,5张图,预计阅读时间8分钟. 这篇文章陆陆续续看了快两周,其中也遇 ...

  6. 论文中绘制神经网络工具汇总

    目录 1. LaTeX的tikz库 2. ConvNetDraw 3. Visio 4. Inkscape-自由绘图 5. Omnigraffle 6. draw_convnet 7. PlotNeu ...

  7. 从论文中导出参考文献至EndNote

    从 pdf 论文中导出参考文献到管理工具科研er必备技巧https://mp.weixin.qq.com/s?__biz=MzUyMTE2NDYxMQ==&mid=2247490125& ...

  8. 数学建模学习——聚类(包含优秀建模论文中的应用)

    #聚类 ##一.目的 将具有相似特征的样本聚成一类,与其他类别进行有效区分. ##二.聚类的研究方法 ###1.基于层次的聚类 层次聚类.BIRCH算法(平均迭代规约和聚类).CURE算法(代表点CH ...

  9. 在论文中参考文献的引用

    在论文中完成对参考文献的引用 先全选参考文献 点击定义新编号格式,并在编号格式1的前后输入英文格式的方括号: 然后再需要引用的句子的句号前面点击插入的交叉引用 选择引用类型选择编号项和引用内容选择段落 ...

最新文章

  1. 大数据如何有序地“变废为宝”
  2. 使用Qt作窗口截屏(含源码)
  3. Drools 6.4.0.Final提供
  4. 解决:阿里云ECS服务器 远程连接不上、极慢 (主机监控的实现)
  5. 环形链表||(Leetcode第142题)
  6. 1.阿里云RDS配置白名单,实例,外网地址,mysql数据库。
  7. 多场景下MySQL临时表的作用
  8. decodeURI decodeURIComponent
  9. 魅族 计算机 隐藏,不知道你们发现了么,魅族Flyme6 超好用的隐藏功能
  10. 解除宝塔面板强制绑定手机号教程
  11. 导数、微分、偏导数、全微分、方向导数、梯度的定义与关系
  12. SPI FLASH 波形测量演示实例
  13. [英语阅读]英国13岁男孩当爹引各界热议
  14. 嵌入式linux程序加密,基于嵌入式操作系统uClinux实现网络安全加密系统的设计
  15. python语音识别(语音转文字)
  16. linux 如何做共享磁盘阵列,在Linux上玩转磁盘阵列分享
  17. 分析游戏外挂样本的9大诀窍
  18. 进入命令框,输入“cd D:”,为什么会这样 - 搜搜问问
  19. 网站UI设计10大原则
  20. (附源码)基于BS结构的企业人事管理系统的设计与实现 毕业设计121727

热门文章

  1. I2C总线-DDC传输协议-显示器EDID结构介绍.doc
  2. D3 - 绘制条形统计图
  3. Go: go mod获取第三方依赖包unknown revision xxx错误解决
  4. 【写博客常用】latex表格详细教程(table, tabular, multirow, multicolumn)latex表格内如何自动换行
  5. python中的二维数组_Python中的二维数组实例(list与numpy.array)
  6. Mysql max_allowed_packet自动重置为1024的情况
  7. MySQL的分页你还在使劲的limit?
  8. 博客系统后端设计(三) - 实现获取博客列表页功能
  9. SpringBoot进行系统监控(通过OSHI)
  10. RIME(小狼毫)踩坑实录(常见问题)