MR-CNN 详解

MR-CNN 详解

    • 一、Multi-Region CNN
      • (一)Activation Maps Module
      • (二)Region Adaptation Module
      • (三)Region 变换
    • 二、Semantic Segmentation-Aware
    • 三、目标的定位

Object detection via a multi-region & semantic segmentation-aware CNN model

论文链接


  以往的目标检测模型在提取完 region proposals 后,直接将生成的 region 输入网络。那么实际上,在输入网络之前,我们也可以对 region 再进行变换。本篇论文就是这种思想。如果在 region 输入网络之前,对 region 进行变换。例如,我们只看一部分 region,或者我们将 bounding box 放大,关注其上下文环境。对于最终的分类和 bounding box 的回归应该是都会有所提高的。
  本篇论文的主要贡献:(1)提供了一些丰富的对象表示,能够捕获各种不同的判别外观的因素。(2)使用语义分割的弱监督方式来感知目标检测中的对象。(3)使用 Iterative Localization 和 Bounding box voting 提高了目标定位的能力

MR-CNN 详解_第1张图片

图 1:三种目标检测中常见的情况。

  那么变换 region proposals 的 idea 是从哪来的呢?我们看图 1。对于第一幅图中的羊,如果我们不结合图像中的上下文环境,很难检测且很难判断它是羊,因为此目标过小。对于第二幅图来说,如果加入上下文环境,是会对最后的结果造成影响的。对于第三幅图,图中的车只有一半,有遮挡。

  那么,如果我们将生成的 region proposals 在输入模型时进行一些变化,是否可以增加最终模型的效果呢?比如,对于第一幅图,我们加入上下文环境,对于第二幅图,我们不做变换,对于第三幅图,我们将原图截掉一半。通过这样的处理,我们使原始对象的信息更加的丰富。对于遮挡问题,或者小物体的检测应该会有更好的效果。这就是本篇论文的核心思想。



一、Multi-Region CNN


Multi-Region CNN 简称为 MR-CNN 是本篇论文提出的一种可以丰富对象表示的模型。此模型可以分为 2 个模块:
(1)Activation maps 模块
(2)Region adaptation 模块

MR-CNN 详解_第2张图片

图 2:MR-CNN 的结构,最后使用 SVM 进行分类


(一)Activation Maps Module


  此模块输入整个图像,通过一系列的卷积操作输出 feature map。这部分的网络,可以使用各种经典的网络结构,比如 AlexNet,VGG16 等。通过 Activation Maps Module,我们只是提取原始图像中的特征信息。(见图 2)


(二)Region Adaptation Module


  给定一个 region R 和 网络输出的 feature map。此模块将 R 映射到 feature map,进行裁剪后,连接到 Adaptive Max-Pooling,并传到多个多层的网络中。 (见图 2)


注意
(1)每一种变化后的 region 都送到与变换对应的独立的网络进行学习
(2)在通过 Region Adaptation Module 后需要将多个模型的结果拼接起来,得到最后的结果


那么为什么对每一种 region 变换都使用单独的网络呢?主要原因有以下 2 点:
(1)迫使网络捕捉对象外观的各个互补方面
(2)可以使结果对不准确的定位更加敏感


(三)Region 变换


图 3:各种 Region 的变换。
(f)是通过将候选框缩放 0.5 倍得到的。
(g)内部 box 是将候选框缩放 0.3 倍,而外部 box缩放 0.8 倍
(h)内部 box 将候选框放大 0.5 倍,外部 box 的大小与候选框相同。
(i)内部 box 是通过将候选框缩放 0.8 倍,而外部 box 缩放 1.5 倍
(j)内部 box 是候选框本身,外部 box 是通过将候选框缩放 1.8 倍得到的。

  对于 Region 的形状,有 2 种:(1)矩形(2)环状矩形。(a)中的 Region 即为矩形,(h)中的 Region 即为环状的矩形,对于环形中间的那个矩形,我们使用 0 来填充。这样就可以输入 CNN 网络进行训练。对于 Region 的类型有以下几种(见图 3):

  1. 原始候选框: (a)。
  2. 半框: (b)(c)(c)(e)。有 4 种,分别是上下左右的半框。引导学习只出现半个物体或物体边界的各个边的外观特征,目的是相对于遮挡使表现更加稳健。
  3. 中心 Region:(f)(g)。通过这种方式可以减少上下文环境对此物体的干扰。
  4. 边框 Region:(h)(i)。我们期望它在网络将被引导专注于物体边界两边的联合外观特征,目的是使表示对不准确的定位更加敏感。
  5. 上下文 Region: (j)。它将引导网络去关注围绕着一个对象的上下文特征,例如它的背景或它旁边的其他对象。


二、Semantic Segmentation-Aware


这篇论文的另一个重要的 idea 就是 Semantic Segmentation-Aware CNN Model。它是将语义分割通过弱监督学习的方式用于目标检测来感知对象。

MR-CNN 详解_第3张图片

图 4:
左侧列:马和人的图像和对应的 ground truth
中侧列:FCN 训练中使用的分割目标值。这个目标值就是左侧列上的 ground truth人工生成的。
右侧列:根据我们训练好的FCN模型估计前景的概率得出的 heatmap。这清楚地证明了,尽管我们的训练是弱监督的,但是我们提取的特征包含了重要的语义分割信息

  我们可以对之前的模型再进行优化。其中另一个 idea 就是,图像分割相关的线索应该也是有助于目标检测。在这里我们使用 FCN 来训练前景的概率。训练的方法是,我们在 Region Adaptation Module 中新添加一个 Region 变换 。这个 Region 变换是将候选检测框放大 1.5 倍。然后将 ground truth 边界框内的标记为前景,将边界框外的标记为背景。放入 FCN 网络进行训练。在FCN被训练完成前景分割的辅助任务后,我们去掉最后一个分类层,只使用剩下的部分。最后将 MR-CNN 网络的结果和此结果进行合并输出。

  需要注意的是,这里我们并没有使用其他能将人或马分割出来的标签,只是使用 ground truth 作为训练的目标。然而我们发现,在 FCN 网络输出的 heatmap 图中,我们学习到的边界并不是矩形,而是此图形中选定区域中的对象的大体边界。也就是得到了语义分割的特征。(见图(4)右侧列)。这是因为语义分割是对像素进行预测,会得到更加精确、细致的信息。



三、目标的定位


  1. Bounding Box 回归:回归的网络是 2 个隐藏层 + 1 个输出层(每个类输出 4 个值,代表左上角和右下角的坐标)为了避免遗漏,把预测的 box 扩大1.3倍。
  2. Iterative Localization:利用分类器打一个分,然后筛掉低分的,对于剩下的高分的 proposal 重新回归位置,之后根据这个重新回归的位置再利用分类器打个分,然后再回归一次位置。
  3. Bounding box voting:上述两步会在每个object附近都产生不少bbox,这里利用上附近的bbox进行投票打分,具体来说,取一个最高分的bbox,然后还有它附近跟他overlap超过0.5的bbox,然后最后的bbox位置是他们的加权平均(权值为overlap)。


参考链接:

https://www.cv-foundation.org/openaccess/content_iccv_2015/papers/Gidaris_Object_Detection_via_ICCV_2015_paper.pdf
https://blog.csdn.net/u014119694/article/details/88421397
https://blog.csdn.net/alfred_torres/article/details/83022967

你可能感兴趣的:(目标检测)