RPN 工作道理:
- 在最后卷积获得的特点图上,应用一个 3×3 的窗口在特点图上滑动,然后将其映射到一个更低的维度上(如 256 维),
- 在每个滑动窗口的地位上,RPN 都可以基于 k 个固定比例的 anchor box(默认的界线框)生成多个可能的区域。
- 每个 region proposal 都由两部分构成:a)该区域的 objectness 分数。b)4 个表征该区域界线框的坐标。

图中 2k 分数代表了 k 中每一个界线框正好覆盖「目标」的 softmax 概率。这里留意到,尽管 RPN 输出了界线框的坐标,然而它并不会去对任何可能的目标进行分类:它惟一的工作仍然是给出对象区域。如不雅一个 anchor box 在特定阈值之上存在一个「objectness」分数,那么这个界线框的坐标就会作为一个 region proposal 被向前传递。
一旦我们有了 region proposal,我们就直接把他们输入一个本质上是 Fast R-CNN 的模型。我们再添加一个池化层、一些全连接层以及最后,一个 softmax 分类层和界线框回归器(bounding box regressor)。所以在某种意义上,Faster R-CNN=RPN+Fast R-CNN。
总体而言,Faster R-CNN 较 Fast R-CNN 在速度上有了大年夜幅晋升,并且其精确性也达到了最尖端的程度。值得一提的是,尽管将来的模许可以或许在检测速度上有所晋升,然则几乎没有模型的表示能明显超出 Faster R-CNN。换句话说,Faster R-CNN 也许不是目标检测最简单、最快的办法,然则其表示照样今朝最佳的。例如,Tensorflow 应用 Inception ResNet 打造的 Faster R-CNN 就是他们速度最慢,但却最精准的模型。
R-FCN
R-FCN,或称 Region-based Fully Convolutional Net(基于区域的全卷积收集),可以在每个输出之间完全共享计算。作为全卷积收集,它在模型设计过程中碰到了一个特别的问题。
一方面,当对一个目标进行分类义务时,我们欲望学到模型中的地位不变性(location invariance):无论这只猫涌如今图中的哪个地位,我们都想将它分类成一只猫。另一方面,当进行目标检测义务时,我们欲望进修到地位可变性(location variance):如不雅这只猫在左上角,那么我们欲望在图像左上角这个地位画一个框。所以,问题出现了,如不雅想在收集中 100% 共享卷积计算的话,我们应当如安在地位不变性(location invariance)和地位可变性(location variance)之间做出衡量呢?
R-FCN 的解决筹划:地位敏感分数图
每个地位敏感分数图都代表了一个目标类(object class)的一个相干地位。例如,只如果在图像右上角检测到一只猫,就会激活一个分数图(score map)。而当体系看见左下角出现一辆车瓯,另一个分数图也将会被激活。本质上来讲,这些分数图都是卷积特点图,它们被练习来辨扰绫强个目标的特定部位。
以下是 R-FCN 的工作方法:
- 在输入图像上运行一个 CNN(本例中应用的是 ResNet)。
- 添加一个全卷积层,以生成地位敏感分数图的 score bank。这里应当有 k²(C+1) 个分数图,个中,k²代表切分一个目标的相干地位的数量(比如,3²代表一个 3×3 的空间网格),C+1 代表 C 个类外加一个背景。
- 运行一个全卷积 region proposal 收集(RPN),以生成感兴趣区域(regions of interest,RoI)。
- 对于每个 RoI,我们都将其切分成同样的 k²个子区域,然后将这些子区域作为分数图。
- 对每个子区域,我们检查其 score bank,以断定这个子区域是否匹配具体目标的对应地位。比如,如不雅我们处在「上-左」子区域,那我们就会获取与这个目标「上-左」子区域对应的分数图,并且在感兴趣区域(RoI region)里对那些值取平均。对每个类我们都要进行这个过程。
- 一旦每个 k²子区域都具备每个类的「目标匹配」值,那么我们就可以对这些子区域求平均值,获得每个类的分数。
- 经由过程对剩下 C+1 个维度向量进行 softmax 回归,来对 RoI 进行分类。
下面是 R-FCN 的示意图,用 RPN 生成 RoI:
SSD 的工作方法听上去很直接,然则练习它却会见临一个不一般的挑衅。在之前那两个模型那边,region proposal 收集可以确保每个我们测验测验进行分类的对象都邑有一个作为「目标」的最小概率值。然而,在 SSD 这里,我们跳过了这个筛选步调。我们大年夜图像中每个单一地位那边进行分类并画出外形、大年夜小不合的界线框。经由过程这种办法,我们可以生成比其余模型更多的界线框,然则它们根本上满是负面样本。

还记得 Fast R-CNN 是若何经由过程在所有 region proposal 上共享同一个 CNN,来改良检测速度的吗?这也是设计 R-FCN 的一个念头:经由过程最大年夜化共享计算来晋升速度。
当然,即便有上述文字以及图片的解释,你可能仍然不太明白这个模型的工作方法。诚实说,当你可以实际看到 R-FCN 的工作过程时,你会发明懂得起来会加倍简单。下面就是一个在实践中应用的 R-FCN,它正在大年夜图中检猜一?婴儿:

SSD
我们只用简单地让 R-FCN 去处理每个 region proposal,然后将其切分成子区域,在子区域上反复询问体系:「这看起来像是婴儿的『上-左』部分吗?」,「这看起来像是婴儿的『上-中』部分吗?」,「这看起来像是婴儿的『上-右』部分吗?」等等。体系会对所有类反复这个过程。如不雅有足够的子区域表示「是的,我切实其实匹配婴儿的┞封个部分!」那么 RoI 就会经由过程对所有类进行 softmax 回归的方法被分类成一个婴儿。」
推荐阅读
对于组而言,在组名前面应用 % 字符;这意味着 sys 组的所有成员都可以不消暗码应用sudo 。 【沙龙】51CTO诚邀您9月23号和多位技巧大年夜咖一路聊智能CDN的优化之路,抓紧时光哦! 假设你在只>>>详细阅读
本文标题:深度学习目标检测模型全面综述:Faster R-CNN、R-FCN和SSD
地址:http://www.17bianji.com/lsqh/37531.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示