最近看了几篇文章,其中均用到了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. Java 2D API - 2. Graphics 入门

    Java 2D API强大而复杂,不过大多时候我们只需使用java.awt.Graphcis类的部分功能.下面的内容将覆盖大多数的常见应用. Graphics 类中的方法大致可以分为两类: Draw ...

  2. OpenWrt自定义和官方一样的固件

    我用的OpenWrt版本是Barrier Breaker 14.07,硬件是NetGear WNDR4300. 我自定义固件的目的是把固件的根分区扩到最大(100MB,总FLASH是128MB),试过 ...

  3. CSS3中box-sizing的理解

    box-sizing属性可以为三个值之一:content-box(默认),border-box,padding-box,inherit(继承父级box-sizing 属性的值.) content-bo ...

  4. 批量插入数据(基于Mybatis的实现-Oracle)

    前言:做一个数据同步项目,要求:同步数据不丢失的情况下,提高插入性能. 项目DB框架:Mybatis.DataBase:Oracle. -------------------------------- ...

  5. JS中Array详细用法

    1.数组的创建 var name= new Array(); //创建一个数组 name[0]="zhangsan";   //给数组赋值 name[1]="lisi&q ...

  6. NHibernate系列文章二十:NHibernate关系之一对一(附程序下载)

    摘要 NHibernate一对一关系虽然不经常碰到,但是在对于数据库结构优化的时候,经常会碰到一对一关系.比如,产品详细信息比较多的时候,可以把产品详细信息放到另一张表里面,Product主表只记录产 ...

  7. myeclipse中将整块的代码所选中的代码左右移动的快捷键

    myeclipse中将整块的代码/所选中的代码左右移动的快捷键选择你要移动的代码,TAB 右移ctrl+TAB左移(我的使用Shift+TAB管用)要是不使用快捷键就是:选中代码,点击右键选中Shif ...

  8. Spring urlMapping

    背景 某url性能测试表明,qps单机最高只有4000多,虽然靠堆机器可以解决问题,但是显然不是什么优雅的方案. 试着把controller里的所有的逻辑都屏蔽,只是简单的返回hello world, ...

  9. java 在linux环境下写入 syslog 问题研究

    1.Syslog 在Unix类操作系统上,syslog广泛应用于系统日志.syslog日志消息既可以记录在本地文件中,也可以通过网络发送到接收syslog的服务器.接收syslog的服务器可以对多个设 ...

  10. 锋利的js之验证身份证号

    我们在做互联网网站时,注册个人资料时,经常要用到身份证号,我们需要对身份证进验证,不然别人随便输个号码就通过,让你感觉这个网站做得很shit. 身份证号是有规则的. 结构和形式 1.号码的结构  公民 ...