learning and transferring mid-level image representations using convolutional neural networks

cvpr14--Learning and transferring mid-level image representations using convolutional neural networks

Authors:Maxime Oquab1,Ivan Laptev,Leon Bottou, Josef Sivic.

论文理解 

1.贡献

文章是从transfer learning的角度来看看待特征学习,并不是像之前的方法比如R-CNN那样把最后的softmax输出节点个数改成相应数据集class的个数,然后调低学习率再做fine-funing(这种方法一般更恰当的叫法可能叫fine-tuning),这篇文章采用的是把softmax摘掉,重新加入一个fully connection layer--FCa和相应的softmax--FCb,在训练的时候保持前面的参数不变,只是学习FCa和FCb的参数;另比较有意思的是训练集的再加工,用到了尺寸信息,以及后面把heatmap的信息融合起来便于loacalization。文章claim出的分类效果比pascal 2007和pascal 2012的 current state-of-art 的perfermace 还有要好,另外还可以做用来做localization 和action classification。

2.网络架构与训练

learning and transferring mid-level image representations using convolutional neural networks_第1张图片

首先用AlexNet在ImagNet比赛的的训练集上训练出一个softmax为1000-way的网络,指这里是Source task;然后参数迁移,具体是把FC8(也就是softmax)摘掉,把参数迁移到Target task上,另外加上新的Adaptation layers,保持前面的参数不变,用(处理后的)目标训练集去训练FCa和FCb的参数。

目标训练集怎么来呢?

作者分析了ImageNet的数据集和Pascal VOC2007的数据集,如下图:

learning and transferring mid-level image representations using convolutional neural networks_第2张图片

在ImageNet数据集上,每张图片一般都只有一个object,相对来说比较简单,而Pascal VOC的数据集上很多图片是有遮挡,背景复杂,某些图片里含有很多objects,甚至它们来自不同的class,以及分辨率等很多问题,相对于ImageNet的数据集来说复杂很多,也就是说这两个数据集的dataset statistics非常不一样,但局限就是Pascal VOC2007的training set和val set加起来才5000多张,想对于ImageNet classification 的训练集120万张还是不是一个数量级的,从而也适合这样一个大的网络。好,有了VOC这样的数据集,怎样去训练FCa和FCb的参数,接下来作者采用这样的一个策略:

learning and transferring mid-level image representations using convolutional neural networks_第3张图片

具体就是作者用sliding window的方法去找正样本和背景负样本,他们用大小为s(s =min(w,h)/lamda,其中lamda ={1,1.3,1.6,2,2.4,2.8,3.2,3.6,4})的正方形去扫原图,得到一个patch,同时保证每相邻的两个patch至少有50%的overlap(这里的overlap一般考虑的是交并比IoU),这个patch到底是正样本还是负样本,抑或不选呢,我们知道按照前面讲的方法去选patch有可能包含一个object,多个objects或者某些object会被截断,在上图中也比较直观看出这一特点,作者是这样做的,当某个patch被标注为正样本时,必须满足下面的条件,

(1)这个patch与某个object的交必须这个patch的20%及以上,

(2)这个patch与某个object的交必须占到这个object的60%以及上,

(3)满足前面(1)(2)patch中object的个数只能一个。

具体的理解见上面的figure 4 ,用这样的方法大概能提取出500个满足条件的正样本和负样本。

3.测试阶段

也用上面介绍的有用不同尺寸方法去扫测试图片,得到一定数量的patch,对每个patch进行分类,然后对每张测试图片,对每个类做个与原图大小一直的heatmap图,heatmap中每个像素按照下面的公式去填充,

其中的表示patch Pi属于Cn的概率,也就是softmax预测出来的score,M表示patch的大小,k>=1的参数。得到的结果如下图

learning and transferring mid-level image representations using convolutional neural networks_第4张图片

从上面可视化出的heatmap的结果来看就有了分类和定位的功能在里面了。

你可能感兴趣的:(transfer,learning,CNN,论文笔记)