目录
一 SegNet的网络结构
二 对网络结构的说明
应用VGG16框架,去掉全连接层,搭建对称模型。
左测是卷积提取特征,通过pooling增大感受野,同时图片变小,该过程称为Encoder,右边是反卷积与upsampling,通过反卷积使得图像分类后特征得以重现,upsampling还原到图像原始尺寸,该过程称为Decoder,最后通过Softmax,输出不同分类的最大值,得到最终分割图。
三 主要内容
1.主要贡献
Pooling的时候会把选取元素的坐标记录下来,在上采样的时候应用这个坐标来恢复空间信息
2.对主要贡献的说明
Pooling&Upsampling(decoder):
Pooling在CNN中是使得图片缩小一半的手段,通常有max与mean两种Pooling方式,下图所示的是max Pooling。max Pooling是使用一个2x2的filter,取出这4个权重最大的一个,原图大小为4x4,Pooling之后大小为2x2,原图左上角粉色的四个数,最后只剩最大的6,这就是max的意思。
在SegNet中的Pooling与其他Pooling多了一个index功能(该文章亮点之一),也就是每次Pooling,都会保存通过max选出的权值在2x2 filter中的相对位置,对于上图的6来说,6在粉色2x2 filter中的位置为(1,1)(index从0开始),黄色的3的index为(0,0)。同时,从网络框架图可以看到绿色的pooling与红色的upsampling通过pool indices相连,实际上是pooling后的indices输出到对应的upsampling(因为网络是对称的,所以第1次的pooling对应最后1次的upsamping,如此类推)。
Upsamping就是Pooling的逆过程(index在Upsampling过程中发挥作用),Upsamping使得图片变大2倍。我们清楚的知道Pooling之后,每个filter会丢失了3个权重,这些权重是无法复原的,但是在Upsamping层中可以得到在Pooling中相对Pooling filter的位置。所以Upsampling中先对输入的特征图放大两倍,然后把输入特征图的数据根据Pooling indices放入,下图所示,Unpooling对应上述的Upsampling,switch variables对应Pooling indices。
FCN的上采样卷积层有一些短链接相连用于产生粗糙的分割区域map,因此SegNet接纳这个观点引入了更多的短链接,从网络结构可以看出,SegNet是对称的,对应层有短链接相连,上采样的时候是直接把数据填回去,然后再接入conv层。但是FCN是直接利用feature做反卷积产生上采样结果。
3.评价
FCN合SegNet都是encoder-decoder架构的
目前的新方法的准确率已经远远超过了SegNet
四 相关网络资源
1.SegNet介绍:https://blog.csdn.net/zhuzemin45/article/details/79709874
2.SegNet实现:https://blog.csdn.net/Freeverc/article/details/83309714