菜鸟实习日记~day1(PSPNet)
今天看论文时,突然想到,费了这么大力气来到国内最顶尖的科研机构实习,是不是该每天记录点什么,虽说实习生是实验室里最低级的存在。。。但是也不能糊里糊涂的浪费未来的半年。所以,从今天开始,每天下班之前,写一点收获感受啦~
生活:
桌子上终于有了一盆小小的绿植,同学说叫薄雪万年草,查了一下也叫矶小松,挺有意思的名字。
在网上买的杯子到了,终于不用来来回回背着保温杯啦~
科研:
1、搞定翻墙问题 网址:ssv9s.pw
2、阅读Semantic Segmentation (语义分割)系列先锋论文:Pyramid Scene Parsing Network.(PSPNet)。论文里提到了使用金字塔类型的一种划分多级自区域方式,来防止上下文关系(Context relationship)被忽略和单一向量(vector)造成的模糊和出错。
涉及新的知识点:
@1:dilated convolution:扩张卷积
dilated convDilated convolutions. A recent development (e.g. see paper by Fisher Yu and Vladlen Koltun) is to introduce one more hyperparameter to the CONV layer called the dilation. So far we’ve only discussed CONV filters that are contiguous. However, it’s possible to have filters that have spaces between each cell, called dilation. As an example, in one dimension a filter w of size 3 would compute over input x the following: w[0]*x[0] + w[1]*x[1] + w[2]*x[2]. This is dilation of 0. For dilation 1 the filter would instead compute w[0]*x[0] + w[1]*x[2] + w[2]*x[4]; In other words there is a gap of 1 between the applications. This can be very useful in some settings to use in conjunction with 0-dilated filters because it allows you to merge spatial information across the inputs much more agressively with fewer layers. For example, if you stack two 3x3 CONV layers on top of each other then you can convince yourself that the neurons on the 2nd layer are a function of a 5x5 patch of the input (we would say that the effective receptive field of these neurons is 5x5). If we use dilated convolutions then this effective receptive field would grow much quicker.
@2:FCN(fully convolutional networks)网络
全卷积网络(FCN)的概念,针对语义分割训练一个端到端,点对点的网络,达到了state-of-the-art。这是第一次训练端到端的FCN,用于像素级的预测;也是第一次用监督预训练的方法训练FCN。FCN主要用到了三种技术:
1.卷积化(convolutionalization)
分类所使用的网络通常会在最后连接全连接层,它会将原来二维的矩阵(图片)压缩成一维的,从而丢失了空间信息,最后训练输出一个标量,这就是我们的分类标签。
而图像语义分割的输出则需要是个分割图,且不论尺寸大小,但是至少是二维的。所以,我们丢弃全连接层,换上卷积层,而这就是所谓的卷积化了。
这幅图显示了卷积化的过程,图中显示的是AlexNet的结构,简单来说卷积化就是将其最后三层全连接层全部替换成卷积
2.上采样(Upsampling)
上采样也就是对应于上图中最后生成heatmap的过程。
在一般的CNN结构中,如AlexNet,VGGNet均是使用池化层来缩小输出图片的size,例如VGG16,五次池化后图片被缩小了32倍;而在ResNet中,某些卷积层也参与到缩小图片size的过程。我们需要得到的是一个与原图像size相同的分割图,因此我们需要对最后一层进行上采样,在caffe中也被称为反卷积(Deconvolution),可能叫做转置卷积(conv_transpose)更为恰当一点。
3.跳跃结构(Skip Architecture)
其实直接使用前两种结构就已经可以得到结果了,但是直接将全卷积后的结果上采样后得到的结果通常是很粗糙的。所以这一结构主要是用来优化最终结果的,思路就是将不同池化层的结果进行上采样,然后结合这些结果来优化输出