论文笔记 《Fully Convolutional Neural Networks for Crowd Segmentation》

论文出处:http://arxiv.org/abs/1411.4464
王晓刚老师实验室的论文,估计也是用来投CVPR15的。

概述


如上图,将有人地方从背景中区分出来,就是人群分割(Crowd Segmentation问题)
用CNN做分割的方法有如下三种:

-(a)patch-wise的输入方法,缺点是每次只能输出一个pixel的结果,速度慢。
-(b)全图输出,用全连接层来输出全图结果,速度有保证,但是认为没有translation invariance,也就是同样的patch如果在不同的位置输出结果会不一样。
-(c)将全连接层改成1x1卷积层,兼顾(a)和(b)的优点,保证速度,且有translation invariance

本文用的方法自然是(c),这一篇其实跟上一篇FCN大同小异,不过提供了一些FCN没有的地方,可以互相对照着看看。

3.2 FCNN 中的一些实现细节

记录本章提到的一些细节:

  • 对于卷积层,通过加padding,使得输出和输入的map大小一致(其实就是pad=(kernel_size-1)/2)
  • 对于pooling,做的是2x2的non-overlap,所以每经过一个pool,输出就会变成原来的1/2。这篇文章的网络总共是两个pool,所以最后seg map是原始图片的1/4
  • gt的得到方式是经过两个pool,而不是直接调用resize函数(这个算很细节的考虑了)
  • 最后loss函数,是对每个点都做logistic。

4 Multi-stage FCNN

本质上是生成了三种特征输入,最后做一个fusion:

三种特征分别是Apperance,Motion,Structure。
作者这里比较仔细地讨论了fusion的方式:

  • input fusion:直接在输入时候用channel拼起来
  • feature fusion:在最后一层特征做fusion,之后predict结果
  • decision fusion:三个网络三个predict map,最后对三张predict map做融合

另外训练网络的细节也是用他们实验室一个常用的trick:训练好一个网络,fix住,然后训练后面的网络

结果


如上图,可以看成,其实fusion有提高,但是不会太多。感觉对于分割问题,同尺度的fusion对提高准确率差别不多。

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