前言
前段时间看到这个SFEM模块,首先这个模块的出处是一篇论文,关于人流密度监测的,我不是做这个的,我就不详细介绍了详细的原理我也不会会特别详细的介绍如果有兴趣可以去看这两篇文章:[Crowd_Counting]-DSSINet-ICCV2019 - 知乎 https://zhuanlan.zhihu.com/p/87990860
一文理解条件随机场CRF - 知乎 https://zhuanlan.zhihu.com/p/70067113
那么我们讲什么?当然是他干嘛用的了。
干什么?
先看一张图:
这就是SFEM模块的出处,首先可以看到他像什么?如果熟悉计算机视觉的就会感觉这幅图特别像一个东西:特征金字塔,对!可以看到他就是不同大小的特征图,但是区别于特征金字塔的是,这个结构是输入的图片大小不一呈2倍关系,那么D是什么呢就是下采样,所以I1是I2的2倍,然后i1的conv2-2是它下采样的结果,这样它的大小就等于i2的conv1-2,所以就是两个相同大小的特征图经过SFEM模块。那么这个操作像什么?没错特征融合。
传统特征融合
我们先不说他是怎么做的我们先说传统的特征融合是怎麽做的。首先特征融合是比较常见的,在计算机视觉中的特征金字塔中一般的做法就是首先通过反卷积让两张特征图大小相同。然后在通道维度上拼接,这种方式简单粗暴就好像排队,后来的人站到队伍后面成为新的队伍。这种做法简单粗暴,但是效果却不一定好,因为你想虽然可以通过卷积融合通道信息。但是正常图片的通道信息的排列方式肯定不是这样排列的,而且融合的两个特征图之间信息实际上是对等的,区别就在于感受野所以这种排列式的融合方式相当于有两张特征图,也是特别好。
为什么要特征融合
这里有两点:一、是感受野,再经过卷积操作时,特征图会随着卷积的加深而变小。而在这个变小的过程中,每个像素点就结合了原来特征图的多个特征点的信息。也就是我们说的感受野的变大。所以说不同大小的特征图的感受野是不同的。而我们要做到检测不同大小的目标,就是要将不同大小的感受野融合。其次,CNN不同深度的层包含的信息不同,浅层的feature包含更多结构化的信息,而深层的feature包含更多语义的信息,而我们想做的是让两者互补就可以得到检测效果。所以就要进行特征融合。
SFEM模块出处
SFEM模块产生于条件随机场CRF,这个东西挺复杂的不太好解释。但是,其中有一点很重要,就是他可以融合前一时刻的信息。这就是他可以做到更好的融合信息的原理。那么他是怎么做的呢。公式挺复杂的,但是实际上的做法却很简单。他是一个多次迭代的结果,方法是把一个特征图加上另外一个特征图经过1X1卷积的结果,然后多次重复这个操作就完成了特征信息的融合。
做什么
最后要说的就是他能做神魔了,其实前面说的很多了,就是特征融合,SFEM模块是很好的特征融合的替代方式。但是有一点要注意1X1卷积势必带来计算量的增加,虽然不多。但是也要考虑一下
最后
先写到这,后续有什么还会补充