<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[holmes_MX的博客]]></title><description><![CDATA[好记性不如烂笔头]]></description><link>https://blog.youkuaiyun.com/holmes_MX</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; holmes_MX]]></copyright><item><title><![CDATA[CCNet_Criss-Cross Attention for Semantic Segmentation]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/106319254</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/106319254</guid><author>holmes_MX</author><pubDate>Sun, 24 May 2020 19:35:26 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。

1. 主要思路

  目前的self-attention需要生成 N * N 的affinity 矩阵（其中N = H * W）， 作者提出存在一种更有效的方法？

  因此作者提出了 Criss-Cross attention，使用“十字架” 的结构来代替 所有的位置(感觉使用“十字架”的paper很多，比如GCN使用十字街的conv，SPNet使用“十字架”的Pooling)。然后使用两次 criss-cross attention，这样可以...]]></description><category></category></item><item><title><![CDATA[OCNet_Object Context Network for Scene parsing]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105934732</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105934732</guid><author>holmes_MX</author><pubDate>Tue, 05 May 2020 16:45:33 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。

1. 主要思想

  使用self-attention引入同类的 object context map。 （感觉这个自监督，没有CVPR2020中 CPNet更直观）

  如下图：





2. 模型框架



具体的 OCP 细节：

OCP包括两部分： object context estimation 和 object cont...]]></description><category></category></item><item><title><![CDATA[ACNet_ Adaptive Context Network for Scene Parsing]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105930085</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105930085</guid><author>holmes_MX</author><pubDate>Tue, 05 May 2020 11:38:32 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。

1. 主要思想

 在feature 中对于全局上下文和局部上下文引入不同的权重。



2. 模型的框架

 

GCM 和 LCM：



2.1 GCM 的细节

  主要思想是：计算全局特征p, [C, 1, 1]，然后对于特征A 中的每一个位置计算距离，距离使用L2范式。依据最小的距离，和超参数derta，以及exp函...]]></description><category></category></item><item><title><![CDATA[refineNet_multi-path refinement network for high-resolution semantic seg]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105895606</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105895606</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 21:55:03 +0800</pubDate><description><![CDATA[0. 写作目的

 好记性不如烂笔头。



1. 问题

下采样导致损失了细节信息。



2. 解决方法

高层的信息和低层的信息都有用。 作者对所有的信息都使用。



3. 模型





具体细节：

2x表示使用两次 RCU。逐层进行使用refineNet，如图2中的C图所示，对于下采样32倍的feature，refineNet只有一个输入。对于其他的refineNet则有两...]]></description><category></category></item><item><title><![CDATA[GCN_large kernel matters_improving semantic seg by global conv network]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105891276</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105891276</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 15:53:50 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。



1. 主要思想

分割需要对像素进行分类，同时精确定位，而这两个任务是存在矛盾的。

作者发现 large kernel conv对于分割更有效。

主要是 使用1 * k + k *1 和 k * 1 + 1 * k 的GCN。



2. 模型







3. 实验结果

 实验结果看，效果提升很大。



从效果看，感觉 B...]]></description><category></category></item><item><title><![CDATA[PSPNet_ Pyramid Scene Parsing Network]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105890844</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105890844</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 15:28:20 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。

1. 问题

ADE20K 数据集存在的一些问题：

1， 错分： 图2第一行，船被误分为车了。 如果使用了全局信息，则可以避免这种情况。

2。 迷惑的类别： 第二行，建筑和摩天大楼。

3。 不易区分的类别： 枕头







2. 解决方法

融合全局信息提高分割结果

2.1 模型

模型：

其中（b）feature map得到的...]]></description><category></category></item><item><title><![CDATA[cvpr2020_SPNet_ Strip Pooling: rethinking spatial Pooling for Scene Parsing]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105890450</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105890450</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 15:09:34 +0800</pubDate><description><![CDATA[0. 写作目的

  好记性不如烂笔头。

1. 问题

目前的 spatial pooling 都是 N*N的，这会限制他们捕捉特征。如分布狭长的





2. 解决方法


 使用1*k 和 k * 1的pooling。

 同时结合来PSPNet 中的 Pyramid Pooling。

2.1 SPM （Strip Pooling Module）：来提高感受野。




...]]></description><category></category></item><item><title><![CDATA[cvpr2020_CPNet_ Context Prior for Scene Segmentation]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105888752</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105888752</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 12:22:31 +0800</pubDate><description><![CDATA[0. 写作目的：

   好记性不如烂笔头。



1. 问题

 目前的方法很少区分，不同类之间的上下文依赖，这可能会影响精度。

如：





2. 解决方法

作者使用Context Prior 来同类和不同类的（类内和类间）的关系进行建模。

作者引入 亲和力loss（affinity loss） 来监督 Context Prior layer 来学习 Context Pri...]]></description><category></category></item><item><title><![CDATA[FCN—— Fully Convolutional Networks for Semantic Segmentation]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/105888618</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/105888618</guid><author>holmes_MX</author><pubDate>Sat, 02 May 2020 11:58:03 +0800</pubDate><description><![CDATA[0. 写作目的

   好记性不如烂笔头，为了后续快速查看。



1. 模型架构：

 其中上采样为线性插值。

 融合策略为： element sum





2. 评价指标：







[Reference]

 paper:https://arxiv.org/pdf/1411.4038.pdf
...]]></description><category></category></item><item><title><![CDATA[Google的yapf进行风格标准化]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/103662512</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/103662512</guid><author>holmes_MX</author><pubDate>Mon, 23 Dec 2019 11:37:30 +0800</pubDate><description><![CDATA[0. 目的


   向github上传 code前，使用Google的 yapf模块（python）进行代码格式的修改。


1.使用方法

  1.1 安装： pip install yapf (python3) (对于python2的安装请参考官方)

  假设当前的code为 main.py

  1.2查看当前的code格式： yapf main.py (...]]></description><category></category></item><item><title><![CDATA[如何判断一个点在多边形的内部]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/101074350</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/101074350</guid><author>holmes_MX</author><pubDate>Fri, 20 Sep 2019 19:36:32 +0800</pubDate><description><![CDATA[1. 背景


  给定任意多边形（不一定是凸多边形）的顶点坐标（逆时针给出点的坐标）， 然后给定一点，判断该点是否在多边形内部？




2. 思路

  使用 向量的叉乘（向量积）来进行计算。

  向量积复习：





因此，当多边形点的顺序是逆时针时，如果点在 多边形内，则向量积 的结果时正数（为什么呢，见下面）






特殊：对于三角形，如果给定的点...]]></description><category></category></item><item><title><![CDATA[如何计算深度学习网络中的感受野(Receptive Field)(以DenseBox中的网络为例)]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/89295250</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/89295250</guid><author>holmes_MX</author><pubDate>Sun, 14 Apr 2019 13:29:19 +0800</pubDate><description><![CDATA[1. Receptive Field 计算方法

当前层的stride: 历史所有层的stride的乘机

当前层的Receptive Field: RF = last_RF + (ksize - 1) * history_stride, 其中, last_RF为上一层的Receptive Field, ksize为当前层的kernel size, history_stride为历史积累的...]]></description><category></category></item><item><title><![CDATA[多分类的loss函数，accuracy理解——手写代码]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/87900338</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/87900338</guid><author>holmes_MX</author><pubDate>Tue, 26 Feb 2019 17:35:31 +0800</pubDate><description><![CDATA[0. 写作目的

好记性不如烂笔头。

总结： 博主认为，正是由于Accuracy计算时，采用的是相对最大概率，所以存在计算的loss与accuracy不成正比关系，即当accuracy很高时，有可能存在loss很高，这是由于，我们的目的是：使得最大下标的概率很大，接近于1，但实际是相对最大，导致accuracy很高，loss也很高，如对于三分类，我们期望的预测结果是[1, 0, 0]或者[0.9...]]></description><category></category></item><item><title><![CDATA[C++深入理解（二）——空基类优化 Empty Base Optimization(EBO)的理解]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/87919608</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/87919608</guid><author>holmes_MX</author><pubDate>Mon, 25 Feb 2019 18:09:36 +0800</pubDate><description><![CDATA[0.写作目的

好记性不如烂笔头。

总结：

在VS2012中(win32)

1) 在多继承中，只存在一个“空类”的继承，这里的空类只是不包括non-static成员变量，空类中可以包括enums，typedef，static，non-virtual函数[1]。

在派生类中，如果只存在继承一个空基类，而没有在派生类中定义该空基类或者其他空基类的对象作为成员数据，则虽然sizeof(空基类) ...]]></description><category></category></item><item><title><![CDATA[C++深入理解（一）——自定义类中重载运算符返回引用以及连续赋值的机制理解]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/87630237</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/87630237</guid><author>holmes_MX</author><pubDate>Mon, 18 Feb 2019 17:33:17 +0800</pubDate><description><![CDATA[0. 写作目的

好记性不如烂笔头。

结论：在自定义的类中，运算符重载需要返回类对象的引用。如果返回的是类对象，则在赋值的过程中会调用拷贝构造函数，引起不必要的运算。如果返回的是void，则不能进行连续赋值（如a = b = c）。

（补充：在自定义类的对象连续赋值中a = b = c（a,b,c均为新定义的类的实例），

当运算符重载函数返回的是类对象引用时，其过程为，b = c调用运算符重...]]></description><category></category></item><item><title><![CDATA[QuickSort实现(C++模板函数，python实现)]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/87536734</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/87536734</guid><author>holmes_MX</author><pubDate>Sun, 17 Feb 2019 15:47:14 +0800</pubDate><description><![CDATA[0. 写作目的

好记性不如烂笔头。不同语言实现。（之前都是C++或者C语言实现的QuickSort，今天使用python3来实现）

1. 算法思想

对输入的数组 a[i , j] 进行排序:

1) 分解：将输入的数组分解成三部分—— a[i , k - 1], a[k] 和 a[k + 1 , j],使得a[i , k - 1]中的元素不大于(或者小于)a[k],a[k + 1, j]中的...]]></description><category></category></item><item><title><![CDATA[有趣的编程（一）——海盗分金币问题如何编程求解]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/85121254</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/85121254</guid><author>holmes_MX</author><pubDate>Sat, 12 Jan 2019 16:36:44 +0800</pubDate><description><![CDATA[0. 写作目的

有趣的编程。

1. 问题描述

有n个海盗，分k个金币。

分配原则：依次从第一个人到最后一个人提出分配方法，只有当超过半数的人同意时，方案生效。如果该人提出的方案不能生效，则该人会被扔到水里喂鱼。游戏只能玩一次。问：第一个人如何提出分配方案才能最大化自己的利益？

假设：1) 所有的海盗都很聪明，而且理智；

           2) 人性本恶（如当只有两个人时，无论第一个...]]></description><category></category></item><item><title><![CDATA[Keras 实现细节——dropout在训练阶段与测试阶段的使用分析]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/86166668</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/86166668</guid><author>holmes_MX</author><pubDate>Wed, 09 Jan 2019 17:59:34 +0800</pubDate><description><![CDATA[0. 写作目的

通过实验分析keras中Dropout在训练阶段和测试阶段的使用情况。

结论： Keras使用的 Inverted Dropout，因此测试时不需要修改 Dropout中的参数(rate)。

1.  Dropout 的实现方式

Dropout的实现方式有两种。

Dropout:(使用较少， AlexNet使用的是这种Dropout)

       训练阶段：

    ...]]></description><category></category></item><item><title><![CDATA[神经网络的BP推导]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/85261211</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/85261211</guid><author>holmes_MX</author><pubDate>Wed, 26 Dec 2018 15:23:14 +0800</pubDate><description><![CDATA[0. 写作目的

好记性不如烂笔头。

注意：本博客的求导法则，也许和其他地方不同，主要区别在于是否把链式法则中间的求导省略，如果不省略中间的求导则是本文的推导过程，如果省略则是常见的推导过程。其本质都是一样。

1. 定义

以多层神经元网络为例进行分析。网络如下图所示。




定义：网络共 m 层，第 k 层的第 i 个神经元到第 (k + 1) 层的第 j 个神经元之间的权重为 。第 k ...]]></description><category></category></item><item><title><![CDATA[SSD(caffe) 如何运行ssd_detect.cpp]]></title><link>https://blog.youkuaiyun.com/holmes_MX/article/details/85062206</link><guid>https://blog.youkuaiyun.com/holmes_MX/article/details/85062206</guid><author>holmes_MX</author><pubDate>Tue, 18 Dec 2018 11:35:33 +0800</pubDate><description><![CDATA[0. 写作目的

好记性不如烂笔头。

1. 准备阶段

正确编译caffe-ssd，具体过程可以参考博客。

建议使用anaconda下的opencv（2或者3，建议安装opencv2, opencv3后期可能出现视频不能读入的问题），不建议使用pip install安装的opencv。

 

2. 运行ssd_detect.cpp

在编译的过程中，ssd_detect.cpp已经被编译过了...]]></description><category></category></item></channel></rss>