目录
写在前面
- overfeat(2014)是在AlexNet(2012)基础上进行改进的。
- overfeat与R-CNN的发布时间很相近,但是overfeat名气好像比较小,关键应该在于,R-CNN的创新点在于把Region Proposal Algorithms与CNN结合,而overfeat只是使用CNN设计了一种特征提取器。从可扩展性角度来看,后来的模型更受到R-CNN的影响。
本文重点
- 将卷积层-》全连接层以及全连接层-》全连接层在测试时都以卷积层-》卷积层来理解。
- 提出了overfeat这种特征提取器,并且设计了基于overfeat的fast和accurate两种模型。
- 提出了multi-scale classification多尺度分类和multi-scale input多尺度输入。
- 以一种框架模型完成图片分类、定位和识别。
模型由【特征提取部分+物体分类部分 & 边界框回归部分】构成,图片送入模型后,先进行特征提取,然后同时进行分类识别,在图片中框出识别到的物体。
模型设计
图片分类
步骤一:特征提取(1-5层)
参照AlexNet设计,5层卷积层(部分层后面跟有池化层)+2层全连接层+1000-way分类层。
上下图分别是fast model和accurate model,模型整体结构相差不大,主要是参数设置的改变。
- 前4层由如图卷积层+池化层组成
- 第5层由卷积层+池化+pixel offsets操作组成【本文创新点】测试时使用✔️
pixel offsets的设计思路来自于AlexNet中的扩大训练规模操作,即把图像进行10-crop后送入训练,这样做加大训练量且进行重复计算,最重要的是剪裁操作会忽略图片部分信息。因此, 作者提出了一种可以更好地捕获图片完整特征的pixel offsets方法。
上图是pixel offsets的一维表示, Δ \Delta Δ {0, 1, 2}代表三种池化,以二维来考虑,就有3x3共9种池化操作,扩宽分类尺度规模。但这种方法在之后论文中并未怎么出现,效果不显著。
注:具体解析可看 https://blog.csdn.net/App_12062011/article/details/60956357
步骤二:物体分类(6层-output)
AlexNet有一个缺点,输入图片尺寸只能是固定的,作者就multi-scale input多尺度输入提出了一个新的方法。
- 将全连接层理解成卷积层,实现多尺度输入【本文创新点】测试时使用✔️
由图可知,对于不同尺寸的输入,可以得到不同尺寸的输出。
物体定位
沿用图片分类中的特征提取层,将物体分类层(原6层-output)进行改造。
步骤三:regressor network回归网络
- 改造图片分类模型中的物体分类层,使用回归网络替代。回归网络由两层全连接层组成,回归网络可以在所给图像中生成一个bounding box边界框,进行物体定位。全连接层的最后一层是class spefic的,也就是针对每一类都给出一个边界框。
步骤四:多余框合并
- 从多个边界框中选择一个框需要使用多余框合并方法【本文创新点】✔️
对每个scale选出前k个最可能预测类别,设为Cs;
设Bs为Cs中这些预测类别的所有边界框。B为所有Bs的并集;
从B中选出两个中心距离最小且重合面积最小的边界框,如果他们的和大于指定阈值,则去掉,否则把它们从集合B中去掉,且把这两个边界框的均值加入集合B。
模型缺点
- 回归网络的算法有点繁琐。由实验图可看出其实大部分框都是集中于某个位置的。