在上述图像中,你可以看到这些工作是如何完成的。Fast R-CNN 在 CNN 顶部用简单的 softmax 层代替了支持向量机分类器(SVM classfier)以输出分类。它还添加了与 softmax 层平行的线性回归层以输出边界框坐标。这样,所有需要的输出均来自一个单一网络!下面是整个模型的输入和输出: 输入:带有区域提案的图像 输出:带有更紧密边界框的每个区域的目标分类 2016:Faster R-CNN—加速区域提案 即使有了这些进步,Faster R-CNN 中仍存在一个瓶颈问题——区域提案器(region proposer)。正如我们所知,检测目标位置的第一步是产生一系列的潜在边界框或者供测试的兴趣区域。在 Fast R-CNN,通过使用选择性搜索创建这些提案,这是一个相当缓慢的过程,被认为是整个流程的瓶颈。
微软研究院首席研究员孙剑领导了 Faster R-CNN 团队。 2015 年中期,由 Shaoqing Ren、Kaiming He、Ross Girshick 和孙剑组成的微软研究团队,找到了一种被其命为 Faster R-CNN 的架构,几乎把区域生成步骤的成本降为零。 Faster R-CNN 的洞见是,区域提案取决于通过 CNN 的前向(forward pass)计算(分类的第一步)的图像特征。为什么不重复使用区域提案的相同的 CNN 结果,以取代单独运行选择性搜索算法?
在 Faster R-CNN,单个 CNN 用于区域提案和分类。 事实上,这正是 Faster R-CNN 团队取得的成就。上图中你可以看到单个 CNN 如何执行区域提案和分类。这样一来,只需训练一个 CNN,我们几乎就可以免费获得区域提案!作者写道: 我们观察到,区域检测器(如 Fast R-CNN)使用的卷积特征映射也可用于生成区域提案 [从而使区域提案的成本几乎为零]。 以下是其模型的输入和输出: 输入:图像(注意并不需要区域提案)。 输出:图像中目标的分类和边界框坐标。 如何生成区域 让我们花点时间看看 Faster R-CNN 如何从 CNN 特征生成这些区域提案。Faster R-CNN 在 CNN 特征的顶部添加了一个简单的完全卷积网络,创建了所谓的区域提案网络。
区域提案网络在 CNN 的特征上滑动一个窗口。在每个窗口位置,网络在每个锚点输出一个分值和一个边界框(因此,4k 个框坐标,其中 k 是锚点的数量)。 区域生成网络的工作是在 CNN 特征映射上传递滑动窗口,并在每个窗口中输出 k 个潜在边界框和分值,以便评估这些框有多好。这些 k 框表征什么? 我们知道,用于人的边框往往是水平和垂直的。我们可以使用这种直觉,通过创建这样维度的锚点来指导区域提案网络。 我们知道图像中的目标应该符合某些常见的纵横比和尺寸。例如,我们想要一些类似人类形状的矩形框。同样,我们不会看到很多非常窄的边界框。以这种方式,我们创建 k 这样的常用纵横比,称之为锚点框。对于每个这样的锚点框,我们在图像中每个位置输出一个边界框和分值。 考虑到这些锚点框,我们来看看区域提案网络的输入和输出: 输入:CNN 特征图。 输出:每个锚点的边界框。分值表征边界框中的图像作为目标的可能性。 然后,我们仅将每个可能成为目标的边界框传递到 Fast R-CNN,生成分类和收紧边界框。 2017:Mask R-CNN - 扩展 Faster R-CNN 以用于像素级分割
图像实例分割的目的是在像素级场景中识别不同目标。 到目前为止,我们已经懂得如何以许多有趣的方式使用 CNN,以有效地定位图像中带有边框的不同目标。 (责任编辑:本港台直播) |