array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 《Understanding Convolution for Semantic Segmentation》论文笔记 - 爱码网

What:    《Understanding Convolution for Semantic Segmentation》是图森研究组对语义分割的一次深入的研究实验。不仅做了DUC和HDC两个很好的突破,还对语义分割的各个影响因素做了对比实验。文章两个重要的创兴点是DUC和HDC:

DUC:可学习的上采样卷积,以维度信息C取特征图的尺度H和W。

HDC:混合空洞卷积,所谓混合是指空洞率不是保持不变的(例如一直是2),而是变化的(例如一组:1,2,5)。

文章除了提出DUC和HDC外,还做了大量的对比试验,探究了采样率(DS)、ASPP通道数、数据增强(augmentation)的应用、cell数(1,2  这个我也不清楚是啥)、批尺寸(patch size)的影响,以及以下对比:DUC与线性插值去卷积的对比(不可学习上采样)、有无CRF条件随机域的对比、HDC比率设置的对比、网络深度的对比。结果表明:采样率大、ASPP通道数大、应用数据增强、cell取2、 patch size 大一点、采取DUC、有CRF、Dilation-bigger网络更深取的效果更好

Why:    为什么作者会提出DUC和HDC?关于DUC就又的提到我上一篇文章提到的CNN的几个缺点,其中一个就是上采样的不可学习性,往往导致的细节的忽略。为此作者构建了一个DUC的结构。使得上采样变得可学习,对细节描述更好。HDC则是对空洞卷积的一次升级。为什么要升级呢,先看下面一副解释图:

《Understanding Convolution for Semantic Segmentation》论文笔记
在(a)图中,所有卷积层delated rate 都取2,由此,一个非常明显的缺点是,膨胀卷积只对部分像素点有作用,对其他大部分像素点都是没有用到的。所以带来第一个缺点:局部信息丢失.
另外这些作用的像素点都是不连续的,所以会导致:信息不连续。
更近一步,如果delated  rate非常大,那么卷积核作用的像素点就会离中心点非常用,这也带来另外一个问题:信息不相关。

由于以上的一些列缺点,作者对膨胀卷积做了一个升级或者说是一些限定,首先要满足:
(1)《Understanding Convolution for Semantic Segmentation》论文笔记             《Understanding Convolution for Semantic Segmentation》论文笔记
然后还要(2)貌似要保证delated rate 有个1,要不然全覆盖有点难(3)且一组delated rate要互质....嗯,具体的还是得看论文。取一组HDC(1,2,3)这样就可以得到(b)所示的卷积图, 解决覆盖不全,不连续等问题,至于太大不相关...可以取小一点嘛。

How:      怎么做到的?其实将上面两个部分的时候已经讲的差不多了。DUC的实现原理就是用深度信息换取长宽信息,如下图所示。将H/d*W/d*c的特征图采成H/d*W/d*d^2*c个特征图,为什么多了d^2?因为特征图长宽都被降采样了d倍,这样经过reshape后这一组特征图正好是H*W*c。这一波操作真是双击666啊。
HDC:HDC的实现原理总结起来就是用了一组不同的膨胀率的膨胀卷积。这一组膨胀率最好满足上面提到的几个条件。

《Understanding Convolution for Semantic Segmentation》论文笔记

接下来很大一部分都是在描述对比实验,这些对比实验不属于文章的创兴点,但却是文章的重要组成部分,可以帮助读者更好的了解语言分割的影响因素,以后做语意分割有个更好的指导,这也是文章题目的含义。做实验无非就是控制变量法,结果上文已经提到过了。

Result:这篇文章对比实验很多,所以实验结果也很多。那些表的结果就不关注了,重点关注下面两幅图:
《Understanding Convolution for Semantic Segmentation》论文笔记
第三组用DUC的明显在小物体上变现出良好的性能,第二组很多小物体如路灯就分割不出来,这也体现了可学习的上采样的优势。
《Understanding Convolution for Semantic Segmentation》论文笔记
很明显的一个棋盘效应的对比图,第二幅图明显的不连续,局部信息缺失,这也体现了HDC的优势。

以下是对比实验表:

《Understanding Convolution for Semantic Segmentation》论文笔记
《Understanding Convolution for Semantic Segmentation》论文笔记
《Understanding Convolution for Semantic Segmentation》论文笔记

相关文章: