目标检测入门 Part 2:CNN,DPM 和 Overfeat

在 "目标检测入门"系列第一部分介绍了:(1)图像梯度向量的概念以及 HOG 算法如何汇总一张图像中所有梯度向量的信息;(2)图像分割算法如何工作以检测可能包含对象的区域;(3)选择性搜索算法如何优化图像分割的结果,以获得更好的区域建议。

第2部分介绍了几种用于图像分类的经典卷积神经工作架构设计(AlexNet,VGG,ResNet),以及用于对象识别的 DPM(可变形零件模型)和 Overfeat 模型。

转载声明: 本文参考 Lil’Log 的相关内容,并进行翻译和编辑

图像分类中 CNN

CNN是“卷积神经网络”的缩写,是深度学习领域中计算机视觉问题的首选解决方案。在某种程度上,它受到了人类视觉皮层系统工作原理的启发。

卷积运算

强烈推荐阅读卷积算法指南,其中包含大量的可视化内容和示例,从而提供了清晰明确的解释。在本文中,我们在处理图像时,将重点放在二维卷积上。

简而言之,卷积运算将预定义的内核(也称为“filter”)滑动到输入特征图(图像像素的矩阵)的顶部,将内核和部分输入特征的值相乘并相加以生成输出。这些值形成一个输出矩阵,通常,内核比输入图像小得多。

convolution-operation
Fig. 1. 在输入特征图上应用内核以生成输出的示意图。(Image source: River Trail documentation)

在 Fig. 2 中展示了两个真实的示例,说明如何将 3x3 内核卷积在 5x5 的 2D 数值矩阵上以生成 3x3 的矩阵。通过控制填充大小和步幅长度,我们可以生成一定大小的输出矩阵。

numerical_no_padding_no_strides
numerical_padding_strides
Fig. 2. 2D 卷积操作的两个示例:(上)无填充和 1x1 步长;(下)1x1边界零填充和 2x2 步长。(Image source: deeplearning.net)

AlexNet (Krizhevsky et al, 2012)
  • 5个卷积[+可选的最大池化]层+ 2个 MLP 层 + 1个 LR 层
  • 使用数据增强技术来扩展训练数据集,例如图像平移,水平反射和块提取。

alex_net_illustration
Fig. 3. AlexNet 的体系结构。 (Image source: link)

VGG (Simonyan and Zisserman, 2014)
  • 该网络在当时被认为是“非常深的”:19层
  • 仅 3x3 卷积层和 2x2 池化层极大地简化了该体系结构。小型 filter 的堆叠可模拟具有较少参数的大型 filter。
ResNet (He et al., 2015)
  • 网络确实非常深;152层简单的体系结构。
  • 残差块: 某一层的某些输入可以在两层后传递给组件。残留块对于保持深层网络可培训并最终起作用至关重要。没有残留块时,由于梯度消失和爆炸,层数增加时,平面网络的训练损失不会单调减少。

residual-block
Fig. 4. ResNet 残差块的示意图。在某种程度上,我们可以说残差块的设计灵感来自人类视觉皮层系统中 V4 直接从 V1 获取输入。 (left image source: Wang et al., 2017)

评估指标:mAP

在许多对象识别和检测任务中使用的常见评估指标是 “mAP”,是 “mean average precision” 的缩写。从0到100的数字。值越高越好。

  • 结合所有测试图像中的所有检测结果,为每个类别绘制一条精确召回曲线(PR曲线);“平均精度”(AP)是PR曲线下的面积。
  • 鉴于目标对象位于不同的类别中,我们首先为每个类别分别计算AP,然后对各个类别进行平均。
  • 如果检测结果的“联合交叉点”(IoU)的底线框大于某个阈值(通常为0.5;如果是,则度量为 “mAP@0.5”),则为真阳性。

可变形部件模型

可变形部件模型 (DPM) (Felzenszwalb et al., 2010) 使用可变形零件的混合图形模型(马尔可夫随机场)识别对象。该模型包括三个主要部分:

  1. root filter 定义了一个大致覆盖整个对象的检测窗口。filter 为区域特征向量指定权重。
  2. 多个 part filters 覆盖对象的较小部分。 Parts filters 的学习分辨率是 root filter 的两倍。
  3. 一种 spatial model,用于对 part filters 相对于 root filter 的位置进行评分。

DPM
Fig. 5. DPM模型包含(a)a root filter,(b)两倍分辨率的多个part filters,以及(c)用于对零件的位置和变形进行评分的模型。The DPM model contains (a) a root filter, (b) multiple part filters at twice the resolution, and © 一个对 part filters 的位置和变形的评分模型.

通过过滤器的分数减去变形成本来测量物体的检测质量。匹配分数ff用外行的话来说是:

f(model,x)=f(βroot,x)+βpartpart filtersmaxy[f(βpart,y)cost(βpart,x,y)]f(\text{model}, x) = f(\beta_\text{root}, x) + \sum_{\beta_\text{part} \in \text{part filters}} \max_y [f(\beta_\text{part}, y) - \text{cost}(\beta_\text{part}, x, y)]

其中,

  • xx 是具有指定位置和比例的图像;
  • yyxx 的子区域.
  • βroot\beta_\text{root} 是 root filter.
  • βpart\beta_\text{part} 是一个 part filter.
  • cost() 度量 part filter 相对于 root filter 偏离其理想位置的损失。

基本分数模型是 filter β\beta 与区域特征向量 Φ(x)\Phi(x): f(β,x)=βΦ(x)f(\beta, x) = \beta \cdot \Phi(x) 之间的点积。特征集 Φ(x)\Phi(x) 可以由 HOG 或其他类似算法定义。

分数较高的根位置检测到包含对象的可能性较高的区域,而分数较高的部分的位置确认了已识别的对象假设。采用隐式支持向量机对分类器进行建模。

DPM-matching
Fig. 6. DPM 的匹配过程。(Image source: Felzenszwalb et al., 2010)

作者后来声称,DPM 和 CNN 模型不是对象识别的两种不同方法。相反,可以通过展开DPM推理算法并将每个步骤映射到等效的CNN层,将DPM模型公式化为 CNN。 (相关细节请查看 Girshick et al., 2015)

Overfeat

Overfeat【papercode】 是一种将目标检测、定位和分类任务集成到一个卷积神经网络中的先驱模型。其主要思想是(i)以滑动窗口的方式在图像多尺度区域的不同位置进行图像分类,以及(ii)在相同的卷积层上训练一个回归器来预测边界盒的位置。

Overfeat 模型的体系结构与 AlexNet 非常相似。
训练如下:

overfeat-training
Fig. 7. Overfeat 模型的训练阶段。(Image source: link)

  1. 在图像分类任务上训练 CNN 模型(类似于AlexNet)。
  2. 然后,我们用回归网络替换顶级分类器层,并对其进行训练,以预测每个空间位置和比例下的对象边界框。回归器是特定于类的,每个都是针对一个图像类生成的。
    • Input: 带分类和边界框的图像。
    • Output: (xleft,xright,ytop,ybottom)(x_\text{left}, x_\text{right}, y_\text{top}, y_\text{bottom}), 总共4个值,代表边界框边的坐标。
    • Loss: 训练回归器使生成的边界框和每个训练实例的地面真值之间的 l2l2 范数最小化。

在检测时:

  1. 使用预先训练的 CNN 模型在每个位置执行分类。
  2. 在分类器生成的所有分类区域上预测对象边界框。
  3. 合并边界框,这些边界框应与本地化有足够的重叠度,并应有足够的信心从分类器中成为同一对象。

Reference

[1] Vincent Dumoulin and Francesco Visin. “A guide to convolution arithmetic for deep learning.” arXiv preprint arXiv:1603.07285 (2016).

[2] Haohan Wang, Bhiksha Raj, and Eric P. Xing. “On the Origin of Deep Learning.” arXiv preprint arXiv:1702.07800 (2017).

[3] Pedro F. Felzenszwalb, Ross B. Girshick, David McAllester, and Deva Ramanan. “Object detection with discriminatively trained part-based models.” IEEE transactions on pattern analysis and machine intelligence 32, no. 9 (2010): 1627-1645.

[4] Ross B. Girshick, Forrest Iandola, Trevor Darrell, and Jitendra Malik. “Deformable part models are convolutional neural networks.” In Proc. IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), pp. 437-446. 2015.

[5] Sermanet, Pierre, David Eigen, Xiang Zhang, Michaël Mathieu, Rob Fergus, and Yann LeCun. “OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks” arXiv preprint arXiv:1312.6229 (2013).

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020-2022 Eureka Tesla
  • Visitors: | Views:

请我喝杯咖啡吧~