Title: OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks (2014)
Link: Paper
Tips:
- 理解本文的主要贡献:提出一个能同时完成三个任务的集成框架,以前的网络都是针对一个任务的。
- 了解网络架构(3)
- 了解卷积网络计算的高效性(3)
- 理解定位任务中,如何根据多个预测框合并成一个最终的边界框(4)
Summary:
文章结构很清晰,先介绍文章贡献,提出问题及相关方法,再简单介绍涉及的任务,接着对三个任务分别描述,最后是总结和讨论。
文章提出的框架能同时解决三个视觉任务(分类+定位+检测)。 但实际上,检测=分类+定位(大致上),所以训练的网络只需要完成分类和定位任务。这两个任务的区别是机器学习领域的分类和回归,特征提取可共享,所以两个任务只需要改一下输出部分就行。
我们需要学习的主要是两点:一是怎么把一个任务的网络改成另一个任务的网络(分类到定位),二是如何把多个预测结果合并成一个最终结果(实际是选择的过程,涉及到集合的概念)
我没怎么看比赛结果部分。
Abstract
- 本文提出了一个使用卷积网络进行分类,定位和检测的集成框架。
- 介绍了一种新颖的深度学习方法,通过学习预测对象边界来定位。
- 使用单个共享网络可以同时学习不同的任务。
- 比赛:集成框架是 ILSVRC2013 的localization task 冠军,detection and classifications tasks 也取得了有竞争力的结果。
1 Introduction
本文主要目的:
- 表明训练卷积网络以同时对图像中的对象进行分类,定位和检测可以提高分类精度以及所有任务的检测和定位精度 。
- 介绍了一种通过累积预测边界框进行定位和检测的新方法。
问题描述:
ImageNet 分类数据集的图像主要包含一个填充大部分图像的居中对象,但我们感兴趣的不一定是这个主要物体。想研究一些小物体或不居中的物体该怎么办?
- 方法一:在图像中的多个位置,以滑动窗口的方式并在多个比例上应用卷积网络。缺点:窗口得到的可能是物体一部分,不包含物体中心,分类不错,定位检测效果差;
- 方法二:不仅为每个窗口生成类别上的分布,还要对窗口中对象的边界框的位置和大小进行预测;
- 方法三:收集每个位置和大小的每个类别的信息。
一些现有的相关的方法:
- 使用 ConvNet 在多个尺度上使用滑动窗口进行检测和定位;
- 使用 ConvNet 直接预测要定位的对象的实例化参数,例如相对于窗口的位置或对象的姿态;
- 通过基于 ConvNet 的分割执行对象定位。
2 Vision Tasks
文章研究的是难度递增的三个计算机视觉任务:分类,定位和检测。每个任务都是下一个任务的子任务,作者使用单个框架和共享的特征学习来完成所有任务。
数据集:2013 ImageNet Large Scale Visual Recognition Challenge (ILSVRC2013)
分类:判断图像主要物体的类别
定位:预测图像主要物体的边界框
检测:预测图像所有物体的边界框和类别,要注意加上背景后类别数加一(指标是 mean average precision mAP)
下面对三个任务分别介绍。
3 Classification
网络架构如表 1 所示,随本文发布的特征提取器(feature extractor) 称为 “OverFeat”,有 fast 和 accurate 两种模式,accurate 模式比 fast 更精确,表 1 展示的是 fast 模式。
实验中,通过在每个位置和多个规模密集运行网络来探索整个图像。这种方法产生了更多的投票视图,从而提高了鲁棒性,同时保持了效率。将卷积网络卷积在任意大小的图像上的结果是每个尺度上C维向量的空间图。
分类结果如表 2 所示,指标是 top-1 和 top-5 错误率。表 2 展示了不同的方法,其中第一行是 2012 年的 AlexNet。
计算高效性:与许多滑动窗口方法一次为输入窗口的每个窗口计算整个管道的方法相比,ConvNet 以滑动方式应用时具有内在的高效性,因为它们共享重叠区域的计算。
图 5 展示了卷积网络计算的效率。在训练期间,ConvNet 仅产生单个空间输出(图 5 上面)。但是当在测试时将其应用于较大的图像时,它会产生一个空间输出图,例如2x2(图 5 下面)。由于所有层都是卷积计算的,因此较大图像所需的额外计算仅限于黄色区域。
4 Localization
分类到定位:基于分类任务,把网络的分类层替换为回归层,训练这个网络预测每个位置和尺寸的物体的边界框,就可以完成定位任务。
训练思路:
预测边界框的网络与分类网络相比,特征提取层是共享的,所以分类和定位的网络可以同时运行,只是定位网络最后的回归层需要在分类结束后重新计算(因为回归需要用到分类结果)。因为 softmax 层会输出一个该位置关于某类别的分数,所以我们可以给每个 bounding box 附个 confidence。
更具体一些,把分类网络的 1 到 5 层(用于特征提取)固定,回归网络使用每个例子的预测值和真实边框的 L2 损失。最终的回归器层是特定于类的,具有1000个不同的版本(数据集有 1000 个类),每个类一个回归器版本。
还要注意,多尺度的方式训练回归器对于跨尺度的预测组合非常重要。 单尺度的训练将在该规模上表现良好,而在其他规模上仍然可以合理地进行。 但是,多尺度训练将使预测在各个尺度之间正确匹配,并以指数方式增加合并预测的置信度。
预测框的结合:
图 7 是回归网络预测的边框,每个物体都有 1000 个预测的边界框,我们需要合并它们,找到一个最合适的边界框。
简单概括合并的流程,其实是筛选的过程——
以分类输出的分数为依据,找出分数高的类别,因为物体最可能属于这些类;然后针对挑出的类和不同的尺寸,分别生成边界框,再从这些边界框中选择最可能的框;有些框太相似了,参考价值不大,就把这种相似的框取平均值当成一个框;处理后的边界框集就剩下一些可能性高差别又大的边界框,我们选分类分数最高的那个当作最终结果。
合并算法如下:
- Cs 是分类网络输出的针对尺寸 s 的前 K 大的类别集合,s ∈ 1…6 ;
- 在尺寸 s 的所有空间位置上,将 Cs 中每个类别的回归网络预测的边界框集合分配给 Bs ;
- B 是 Bs 的并集,也就是所有尺寸下,该物体对应最可能的类别回归器输出的的边界框集合;
- 重复下述的合并步骤直至停止;
- 当我们得到最可能的各个尺寸的边界框后,我们要去除相似的两个边界框。
其中,match_score 函数计算两边界框的中心距离与重叠区域面积的和;argmin 就是使 match_score 这个式子达到最小值时的 b1,b2 的取值;b1 和 b2 是上面的集合 B 中两个不同的元素。
- 算法停止迭代的条件:如果最近的两个框的分数都比一个阈值 t 大,停止迭代,说明集合 B 中的每个框都有比较大的差别;
- 否则,计算这两个最近的边界框的平均坐标,然后把这两个框从集合 B 中移除,把这个平均效果的边界框加入。其中, box_merge 函数计算两边界框的平均坐标。
最终选分类成绩最高对应的那个边界框。
5 Detection
分类定位到检测:基于分类和定位任务,把预测的所有边界框,以及每个位置物体的分类结果结合起来,就可以完成检测任务。
检测训练类似于分类训练,但是在空间上。 可以同时训练图像的多个位置。 由于该模型是卷积模型,因此所有位置之间均共享所有权重。 与定位任务的主要区别在于,当不存在任何对象时,必须预测背景类。
6 Discussion
文章贡献:
- 提出了一种可用于分类,定位和检测的多尺度滑动窗口方法,该方法用于比赛取得了好成绩。
- 解释如何将ConvNets有效地用于检测和定位任务。
可改进:
- 定位任务,没有在整个网络 back-propping
- 使用的是loss2损失,而不是直接优化测量性能的 IOU 标准.
- 边界框的替代参数设置可能有助于解相关输出,这将有助于网络训练。