论文笔记 《Fully Convolutional Networks for Semantic Segmentation》

论文出处:http://arxiv.org/abs/1411.4038
估计是用来投CVPR15的,个人觉得应该至少是oral的节奏。

概述


如上图,直观地说,将所有层都变“胖”,然后就可以直接生成spatial output map了,之后可以做pixelwise的分割问题。

如何变“胖”


这里可以参考这个帖子:
http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/net_surgery.ipynb
上面例子讲述了怎么改写训练好的AlexNet,通过将fc6改成6x6x256x4096的conv6,fc7改成1x1x4096x4096的conv7,fc8改成1x1x4096x1000的conv8。输出从227x227改成451x451,这样就能够生成8x8的spatial output了

overfeat的trick

这里讲overfeat是怎么形成dense output的,个人有点忘了,等看回之后补充。

另一种trick,对feature map直接做upsample

这里是作者实际用的trick,本质上,就是对feature map做一个bilinear的上采样。作者还提到其实这样的上采样参数也是可以学习的,实现上基本就是对conv的FP和BP反过来。

结果


自然是state-of-the-art

coarse to fine


由于输出空间的map的步长大概是32,所以边缘很不好。于是作者想到一种方法来refine。

过程大致如上图,本质上,是认为较低层的步长比较短,感受野也比较小,能够得到更加fine的结果。于是分别作了几个heatmap,然后fusion。

很久没有更新网站,发现多了不少评论和问题,无法一一回复,如果现在仍有问题请再次留言 :) 2016.03.29