类型 | 说明 |
---|---|
论文信息 | Fully Convolutional Networks for Semantic Segmentation Jonathan Long, Evan Shelhamer, Trevor Darrell UC Berkeley |
会议期刊 | CVPR(IEEE Conference on Computer Vision and Pattern Recognition) 2015 |
解决的问题 | 图像分割任务 |
模型结构 | 说明 |
---|---|
模型1 | - 这个是实验用的修改已有模型(例如,VGG,AlexNet,GooglNet)的全卷积网络,主要就是将原有模型的卷积层部分保留,而后全连接层用对应的1×1卷积层取代,而后加上对应通道为数据集标签数的1×1卷积层,再加上一个转置卷积层得到原尺寸预测图。 |
模型2 | - ②这个是论文新提出的模型结构,主要思想就是跳跃结构。 |
跳跃结构 | 后一层的卷积层/池化层的输出特征图上采样得到与前一层相同尺寸(包括通道)的特征图,二者对应求和得到新的特征图,新的特征图要么上采样直接到输出预测,要么进一步向前融合,以此类推。文中只进行了两次融合。 |
跳跃结构的意义 | 这是这篇论文最重要的贡献,以至于对于后来的模型影响很大。因为模型浅层捕获的是较精细的特征(包括位置信息),而高层则捕获更加抽象的粗糙信息,有关文献表明,浅层特征有利于最终像素定位以及预测。 |
上采样方式 | 说明 |
---|---|
①Shift-and-stitch | ) 这里参考一篇博文:设下采样因子为$f$,即卷积核大小,通过向原图填充$f-1$个padding得到新图,之后将原图在新图的基础左上移动$(x, y)(0<=x,y<f)$,可以得到$f*f$个新的输入图,经过卷积,可以得到$f*f$张特征图(尺寸比原图小),而后根据每个特征图每个元素下采样时对应的原图位置在输出图(大小与原图一致)上进行交错编织。具体$2*2$最大池化的例子如图所示,灰色部分是重复插入了,故可以舍去。 |
②Filter Rarefaction | 两层结构: ①步长为$S$的池化层或卷积层 ②卷积核大小为$f$的卷积层,其卷积核权重为$f_{i,j}$ 为了达到同Shift-and-stitch一样的目的,可以将后一层卷积核权重矩阵稀疏化,前一层步长为1) 例如 这里理解还有待进一步验证 |
③Deconvolution | 这里参考一篇博文 卷积的矩阵表示: 卷积核:)输入重排:) 卷积核重排:) 卷积的矩阵运算:) 输出重排 ) 反卷积的矩阵表示: 反卷积核重排后转置: ) 输出重排 |
选择 | 论文经过比较,采用第三种转置卷积层(反卷积)的方式,速度更快,效果也差不多 |
实验 | 说明 |
---|---|
①三个经典结构重构后的实验 | VGG,AlexNet,GooglNet对应修改成全卷积结构在PASCAL VOC 2011数据集上的实验 |
②新颖跳跃结构的实验 | 数据集 PASCAL VOC, NYUDv2, and SIFT Flow |
③Whole image与Patch Sampling方式对比实验 | 数据集PASCAL VOC 2011 |
评价指标 |
结论 |
---|
通过修改分类模型用于分割任务,多层特征图融合的方式可以有效提高预测精度,同时简化和加速模型学习和推断。 |
其他 |
---|
①Patchwise training的论文部分有些不理解,大致为Patchwise的方式在采样图像高度重合的时候,Whole image训练能够加速训练。 ②三种上采样方式之后试着代码实现以下,有些地方还没搞懂 ③其他实施细节需要关注论文源代码。 |