最近看了几篇文章,其中均用到了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变小。

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

最新文章

  1. PHP 转换snmp的时间格式
  2. Core Java Volume I — 3.10. Arrays
  3. AngularJS 1.5.0-beta.2 and 1.4.8 have been released
  4. 关于sphinx+PHP在高并发时响应性能低下的解决办法
  5. [转载]非常完善的Log4net详细说明
  6. 自定义滚动条CSS样式
  7. 算法导论——lec 10 图的基本算法及应用
  8. php订单生成唯一Id
  9. git配合tortoiseGit的基础使用
  10. Flask web开发 请求拦截和预处理
  11. MySQL复制表结构,表数据。
  12. DES加密:8051实现(C语言) & FPGA实现(VHDL+NIOS II)
  13. 201521123068 《java程序设计》 第13周学习总结
  14. ios判断手机号是否可用
  15. R语言实现二分查找法
  16. 使用HttpClient4.5实现HTTPS的双向认证
  17. filter和listener的生命周期
  18. Web前端-Vue.js必备框架(四)
  19. spring boot 启动
  20. winform devexpress 用法汇总

热门文章

  1. php-建造者模式(Builder)解析
  2. javascript的地基
  3. core python applications
  4. MySQL数据库(表)的导入导出(备份和还原)
  5. Linux:安装rstatd,报错
  6. Linux 命令 创建文件
  7. ue4 c++ 接口
  8. 8、SQL Server 表分区
  9. python随便笔记。。。
  10. ModalPopup 描述