最近看了几篇文章,其中均用到了hole algorithm。

最早用的就是deeplab的文章了,Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFS  这篇文章和fcn不同的是,在最后产生score map时,不是进行upsampling,而是采用了hole algorithm,就是在pool4和pool5层,步长由2变成1,必然输出的score map变大了,但是receptive field也变小了,为了不降低receptive field,怎么做呢?利用hole algorithm,将卷积weights膨胀扩大,即原来卷积核是3x3,膨胀后,可能变成7x7了,这样receptive field变大了,而score map也很大,即输出变成dense的了。

这么做的好处是,输出的score map变大了,即是dense的输出了,而且receptive field不会变小,而且可以变大。这对做分割、检测等工作非常重要。

基于这个做检测的文章:SSD: Single Shot MultiBox Detector

接下来做分割的文章:Learning Dense Convolutional Embeddings for Semantic Segmentation      Multi-Scale Context Aggregation by Dilated Convolutions

后来经同事提醒,回头看了看xiaogang wang的文章,Highly Efficient Forward and Backward Propagation ofConvolutional Neural Networks forPixelwiseClassification 确实是一样的,但是他们的这篇文章引用率却不咋地啊,可能也和他们的开源态度有关系吧,他们只放出来部分代码,没诚心啊。

和同事讨论这个算法,我同事觉得这个后面的卷积核的变化必须和前面的pooling协调使用。可我始终觉得没有这个限定啊,目前都是这样用,是因为基本上都是用pooling进行降维,而不是convlution,感觉从文章里看也是没这个限定啊。当然如果能协调使用,就最大限度保证了位置信息,但是pooling步长变化了,其实严格来讲,已经不完全和之前的模型完全一样了,已经有变化了,但是如果不协调使用的话,变化就会更大了。而且如果从receptive field的角度来讲,其实是可以变化的,也就是说可以把receptive field变大,而且可以变的很大,而不是仅仅保持不变小,感觉其实hole algorithm的存在,一方面原因也是不想让receptive field变小。

这两篇文章都是我讲的,估计过几天我又忘记了。

deeplab hole algorithm的更多相关文章

  1. 转 SSD论文解读

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/u010167269/article/det ...

  2. 关于SSD和YOLO对小目标的思考

    所谓的小目标,要看是绝对小目标(像素),和相对小目标(相对原图的长宽来看的).大目标小目标只跟receptive field(感受野)有关,cnn本身可以检测任何尺度的物体.ssd对小目标检测不太适用 ...

  3. 论文阅读之:Is Faster R-CNN Doing Well for Pedestrian Detection?

    Is Faster R-CNN Doing Well for Pedestrian Detection? ECCV 2016   Liliang Zhang & Kaiming He 原文链接 ...

  4. R-FCN论文翻译

    R-FCN论文翻译 R-FCN: Object Detection viaRegion-based Fully Convolutional Networks 2018.2.6   论文地址:R-FCN ...

  5. 【Semantic Segmentation】 Instance-sensitive Fully Convolutional Networks论文解析(转)

    这篇文章比较简单,但还是不想写overview,转自: https://blog.csdn.net/zimenglan_sysu/article/details/52451098 另外,读这篇pape ...

  6. 中文版 R-FCN: Object Detection via Region-based Fully Convolutional Networks

    R-FCN: Object Detection via Region-based Fully Convolutional Networks 摘要 我们提出了基于区域的全卷积网络,以实现准确和高效的目标 ...

  7. Mesh Algorithm in OpenCascade

    Mesh Algorithm in OpenCascade eryar@163.com Abstract. Rendering a generic surface is a two steps pro ...

  8. 《In Search of an Understandable Consensus Algorithm》翻译

    Abstract Raft是一种用于管理replicated log的consensus algorithm.它能和Paxos产生同样的结果,有着和Paxos同样的性能,但是结构却不同于Paxos:它 ...

  9. POJ 1584 A Round Peg in a Ground Hole --判定点在形内形外形上

    题意: 给一个圆和一个多边形,多边形点可能按顺时针给出,也可能按逆时针给出,先判断多边形是否为凸包,再判断圆是否在凸包内. 解法: 先判是否为凸包,沿着i=0~n,先得出初始方向dir,dir=1为逆 ...

随机推荐

  1. ionic 里使用 iframe 可能遇到的问题

    无法访问外部url的问题--两个步骤解决: iframe的src属性用ng-src属性替代,并指明绑定对象: ng-src="{{targetUrl}}" 在controller里 ...

  2. pthon在Notepad++中执行方式

    使用 Notepad++ 编辑运行 Python 程序         Notepad++是一个开源的文本编辑器,功能强大而且使用方便.编辑和调试 Python 程序使用什么编辑器或者 IDE不同人有 ...

  3. linux arch目录下处理器体系架构介绍

    alpha 处理器Alpha 处理器最早由美国DEC 公司设计制造,在Compaq (康柏)公司收购DEC 之后,Alpha 处理器继续得到发展,并且应用于许多高档的Compaq 服务器上,HP (惠 ...

  4. Java日志——2016年5月30日

    1. 局部变量必须初始化,可以定义的同时初始化,也可以定义完成之后进行初始化. 2. Java7新特性:数字之间可以使用"_"连接,eg:23_44_5 = 23445,0B110 ...

  5. 44、NLP的其他分词功能测试

    1. 命名实体识别功能测试 @Test public void testNer(){ if (NER.create("ltp_data/ner.model")<0) { Sy ...

  6. Vim配置(k-vim)

    无意发现一个vim的插件 转载:http://www.cnblogs.com/yxy2829/p/5250587.html 截图 solarized主题 molokai主题 安装步骤 1. clone ...

  7. SQL Server 数据库的维护(二)__触发器

    --维护数据库-- --触发器-- --概述: 触发器是一种特殊类型的存储过程,用来强制执行业务规则.在调用执上,触发器不能像存储过程那样可以由用户通过T-SQL语句直接调用,而是需要有数据库所发生的 ...

  8. poj1985 Cow Marathon (求树的直径)

    Cow Marathon Time Limit: 2000MS   Memory Limit: 30000K Total Submissions: 3195   Accepted: 1596 Case ...

  9. win7系统部分便笺的元数据已被损坏怎么恢复

    解决Windows7系统打开便笺:部分便笺的元数据已被损坏,便笺已将其恢复为默认值.这个问题! Windows7下有一部分系统打开便笺就会报出以下情况 其实这个方法很好解决! 我们需要重新注册一下下面 ...

  10. 查询阻塞的sql

    WITH ProcessCTE(blocked) AS ( SELECT blocked FROM sys.sysprocesses WHERE blocked>0 union SELECT s ...