当前位置:   article > 正文

R-CNN、Fast RCNN和Faster RCNN网络介绍

rcnn

前言

  虽然现在在目标检测领域yolo系列非常火(对yolo感兴趣的小伙伴可以跳转到我的yolo系列博文介绍:YOLO系列博文),但是在实际工业应用中Faster R-CNN的应用也是非常广泛,如Mask R-CNN 就是建立在Faster R-CNN 基础上的分割网络。下面我从R-CNN开始介绍Faster RNN的演进过程。

一.R-CNN

全称Region with CNN feature,利用深度学习进行目标检测的开山之作。

1.1.网络结构

  R-CNN是深度学习用于目标检测的开山之作,网络模型如下,整个算法思想很简单,就是先对输入的图像进行分割候选框选取,然后将选取的候选框送入CNN网络进行类别预测,非极大值抑制处理(下面会介绍),预测框修正。
R-CNN网络框架:
在这里插入图片描述
在这里插入图片描述

1.2.算法步骤

  1. 一张图像生成1K~2K个候选区域(SS算法)
  2. 对每个候选区域,使用深度网络提取特征
  3. 特征送入每一类的SVM 分类器,判别是否属于该类
  4. 使用回归器精细修正候选框位置

1.3.候选区域生成

  使用了SS方法从一张图像生成约2000-3000个候选区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。基本步骤如下:

  1. 使用一种过分割手段,将图像分割成小区域。
  2. 查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置。
  3. 输出所有曾经存在过的区域,所谓候选区域。

1.4.特征提取

1.4.1.预处理

  使用深度网络提取特征之前,首先把候选区域归一化成同一尺寸 227 × 227 227\times227 227×227

1.4.2.对每个候选区域,使用深度网络提取特征

  通过SS算法可以再一张图片中生成大概2000个候选区域,将候选区域送到CNN网络之前先进行resize处理,将2000候选区域缩放到 227 × 227 227\times227 227×227(原文是不管候选框多大都resize 227 × 227 227\times227 227×227),接着将候选区域输入事先训练好的AlexNet CNN网络获取4096维的特征得到2000×4096维矩阵。

1.4.3.特征送入每一类的SVM分类器,判定类别

  将2000×4096维特征与20SVM组成的权值矩阵4096×20相乘,获得2000×20维矩阵表示每个建议框是某个目标类别的得分。分别对上述2000×20维矩阵中每一列即每一类进行NSM(非极大值抑制)剔除重叠建议框,得到该列即该类中得分最高的一些建议框。示意图如下:
在这里插入图片描述
上图中左边对应的是2000个候选框通过分类网络生成的2000个向量,中间是SVM权值矩阵,每一对应着一个类别权值向量。将得到的2000行向量每一列(即每个类别)进行NMS即可得到最终的检测结果。

非极大抑制剔除重叠建议框流程:

  1. 寻找得分最高的目标
  2. 计算其他目标与该目标的IoU
  3. 删除所有IoU值大于给定阀值的目标
  4. 在剩下的边界框中重复前三步,直到将所有边界框遍历完

看不懂的可以参考这篇博文:非极大值抑制

1.4.5.使用过回归器精细修正候选框位置

  对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box。在原文中作者是这么做的:保留与真实目标比IoU大于某一阈值的预测框,不满足的直接删除,接着再分别使用20个回归器对剩余的预测框进行回归操作,最终得到每个类别的修正后得分最高的预测框。这里的实现方法跟上面的SVM分类差不多,依旧是对卷积神经网络输出的特征向量进行预测,利用每个边界框得到4096维特征向量来预测的。通过回归分类器之后会得到四个参数分别对应着目标建议框的中心点的x,y偏移量和目标边界框的宽高缩放因子。通过预测的四个值对得到的建议框进行调整得到最终的预测边界框。

1.5.R-CNN存在的问题

  1. 检测速度慢,测试一张图片约53s (CPU)。用Selective Search算法提取候选框用时约2秒,一张图像内候选框之间存在大量重叠,提取特征操作冗余。
  2. 训练速度慢,并且训练过程极其复杂。
  3. 训练所需空间大,对于SVMbbox回归训练,需要从每个图像中的每个目标候选框提取特征,并写入磁盘。对于非常深的网络,如VGG16,从VOC07训练集上的5k图像上提取的特征需要数百GB的存储空间。

二. Fast R-CNN

  继2014年的R-CNN之后,Ross Girshick在15年推出Fast R-CNN,大幅提升了目标检测的速度。Fast R-CNNR-CNN相比,训练时间从84小时减少为9.5小时,测试时间从47秒减少为0.32秒。在PASCAL VOC数据集测试的准确率大约67%。Fast R-CNN的主干网络仍然是VGG16。

2.1.改进

  Fast R-CNN对上面提到的R-CNN的三个缺点进行了改进优化。
R-CNN存在的问题:
问题一:测试时速度慢
  R-CNN一张图像内候选框之间大量重叠,提取特征操作冗余。
  Fast R-CNN将整张图像归一化后直接送入深度网络。在连接时,才加入候选框信息,在末尾的少数几层处理每个候选框。
问题二:训练时速度慢
  原因同上。
  Fast R-CNN在训练时,本文先将一张图像送入网络,紧接着送入从这幅图像上提取出的候选区域。这些候选区域的前几层特征不需要再重复计算。
问题三:训练所需空间大
  R-CNN中独立的分类器和回归器需要大量特征作为训练样本。
  Fast R-CNN把类别判断和位置精调统一用深度网络实现,不再需要额外存储。

2.2.Fast R-CNN算法流程

  1. 一张图片生成1K~2K个候选区域(使用SS算法).
  2. 将图像输入到网络得到相应的特征图。将SS算法生成的候选区域投影到特征图上获得相应的特征矩阵。
  3. 将每个特征矩阵通过ROI Pooling(Region of Interest Pooling)层缩放到7 X 7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

Fast R-CNN框架:

在这里插入图片描述
  从上面的网络框图可以看到,整个模型不需要在单独训练分类器和回归器了,直接把他们放到一个网络中了,就是在网络的最后输出层并联两个全连接,一个用于分类预测,一个用于回归预测,全部用深度学习的方法。

在这里插入图片描述

2.3.R-CNN和Fast R-CNN生成候选框的区别

R-CNN:
  R-CNN生成候选框是首先对每一个生成的候选区域进行缩放,然后再输入到网络中获取特征,通过SS算法获得了2000个候选框,那么就要进行2000正向传播,这就造成了冗余,因为候选区域存在大量重叠的部分。
Fast R-CNN:
  Fast R-CNN生成候选框是直接将整张图像输入到CNN中得到特征图,然后根据候选区域和特征图对应的映射关系,直接在特征图中获取特征矩阵(借鉴SPPNet的做法)。ROI Pooling层将后将候选框统一缩放到统一尺寸。
注意:
  SS算法选出了2000个候选框,但是在训练的时候并不是所有的候选框都会使用,只使用其中的一小部分,并且这一小部分还分正样本和负样本,正样本就是候选框中确实存在我们需要检测的目标,负样本可以理解为背景,里面不含有我们要检测的目标。论文中作者说的是对2000个候选框选取其64个候选区域,然后这64个人候选区域一部分是正样本,一部分是负样本。那么这64个框的正负样本是如何区分的呢?候选框与真实目标的IoU的大于0.5就认定为是正样本,但是这些选定为正样本的候选框也不是去全部被使用,也只有一部分会被使用。负样本是那些与真实目标的IoU最大的且IoU[0.1,0.5)之间的,在Faster R-CNN中改为了[0,0.5)。下面是作者在原文中的解释:
在这里插入图片描述
Faster R-CNN中的阈值设定:
在这里插入图片描述
ROI Pooling:
  有了训练样本之后,将用于训练样本的候选框通过RoIPooling层将其缩放到统一的大小。怎么实现RoIPooling层呢?假设下图中的左边图为一个候选区域对应的一个特征矩阵,将特征矩阵划分为 7 × 7 7\times7 7×749等份,然后对每一个区域进行最大池化下采样操作,得到如图右所示的 7 × 7 7\times7 7×7特征矩阵。关于RoIPoolRoIAlign我的另一篇介绍MASK R-CNN博文中有介绍:MASK R-CNN网络介绍
在这里插入图片描述

2.4.两个全连接层

  在Fast R-CNN的最后并联了两个全连接层,第一个全连接层用于目标概率的预测,第二个全连接层用于边界框回归参数的预测。
目标概率预测分类器:
  目标概率预测分类器输出N+1个类别概率,其中N为检测目标的种类,1为背景,以PASCAL VOC为例,它有20个类别,则会输出21个概率类别(通过softmax处理之后的,满足和为1),第一个概率为候选框为背景的概率,剩下的对应需要检测的类别的概率,即全连接中有21个节点。如下图所示,坐左边第一个数表示背景概率,其余20个表示所属目标的概率。

00.1000.600000.1000.10000.10000

边界框回归器:
  边界框回归器会输出N+1个类别候选边界框回归参数( d x d_{x} dx, d y d_{y} dy, d w d_{w} dw, d h d_{h} dh),因为每个类别对应四个候选边界框回归参数,所以全连接层有(N+1)x4个节点。注意这里只是以一个框为例,不要误以为整幅图就这几个参数。
XA

2.5.预测边界框生成

  根据如下公式根据回归参数计算得到边界框的横纵坐标和宽度和高度。
G ^ x = P w d x ( P ) + P x G ^ y = P h d y ( P ) + P y G ^ w = P w exp ⁡ ( d w ( P ) ) G ^ h = P h exp ⁡ ( d h ( P ) )

G^x=Pwdx(P)+PxG^y=Phdy(P)+PyG^w=Pwexp(dw(P))G^h=Phexp(dh(P))
G^xG^yG^wG^h=Pwdx(P)+Px=Phdy(P)+Py=Pwexp(dw(P))=Phexp(dh(P))

  • P x P_{x} Px, P y P_{y} Py, P w P_{w} Pw, P h P_{h} Ph分别为候选框的中心x,y坐标,以及宽高。
  • G ^ x \hat{G}_{x} G^x, G ^ y \hat{G}_{y} G^y, G ^ w \hat{G}_{w} G^w, G ^ h \hat{G}_{h} G^h分别为最终预测的边界框中心的x,y坐标。
    d x , d y , d w , d h d_{x},d_{y},d_{w},d_{h} dx,dy,dw,dh为边界框回归参数,从上面的公式可以看出这几个参数就是用来调整候选框的中心坐标和宽高。

在这里插入图片描述

2.6.Fast R-CNN损失函数

L ( p , u , t u , v ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L l o c ( t u , v ) L\left(p, u, t^{u}, v\right)=L_{c l s}(p, u)+\lambda[u \geq 1] L_{l o c}\left(t^{u}, v\right) L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)
  其中,左边表示分类损失,右边一项表示边界框回归损失。中括号表示艾佛森括号,只有当u≥1的时候中括号等于1,否者等于0u表示的是目标的真实标签,u≥1表示候选区确实属于所需检测的某个类别,对应着正样本。这一项的作用就是说只计算正样本的损失,负样本直接省略不计算。

  • p p p是分类器的预测的softmax概率分布 p = ( p 0 , . . . , p k ) p =(p_{0},...,p_{k}) p=(p0,...,pk)
  • u u u对应真实类别标签
  • t u t^{u} tu对应边界框回归器预测的对应类别 u u u的的回归参数 ( t x u , t y u , t w u , t h u ) (t_{x}^{u},t_{y}^{u},t_{w}^{u},t_{h}^{u}) (txu,tyu,twu,thu)
  • v v v对应真实的边界框回归参数 ( v x , v y , v w , v h ) (v_{x},v_{y},v_{w},v_{h}) (vx,vy,vw,vh)

分类损失为交叉熵损失函数:
L c l s ( p , u ) = − l o g ( p u ) L_{c l s}(p, u)=-log(p_{u}) Lcls(p,u)=log(pu)
边界框损失如下:
L l o c ( t u , v ) = ∑ i ∈ { x , y , w , h } smooth ⁡ L 1 ( t i u − v i ) L_{l o c}\left(t^{u}, v\right)=\sum_{i \in\{x, y, w, h\}} \operatorname{smooth}_{L_{1}}\left(t_{i}^{u}-v_{i}\right) Lloc(tu,v)=i{x,y,w,h}smoothL1(tiuvi)
smooth ⁡ L 1 ( x ) = { 0.5 x 2  if  ∣ x ∣ < 1 ∣ x ∣ − 0.5  otherwise  \operatorname{smooth}_{L_{1}}(x)=

{0.5x2 if |x|<1|x|0.5 otherwise 
smoothL1(x)={0.5x2x0.5 if x<1 otherwise 
在这里插入图片描述
关于L1,L2,Smooth-L1损失可以参考这篇博文:回归损失函数1:L1 loss, L2 loss以及Smooth L1 Loss的对比

三.Faster R-CNN

  Faster R-CNN是继R-CNNFast R-CNN之后,目标检测界的领军人物Ross Girshick团队在2015年的又一力作,骨干网络还是VGG16。对比三种检测模型框图,从R-CNNFast R-CNN,再到本文的Faster R-CNN,目标检测的四个基本步骤(候选区域生成,特征提取,分类,边界框回归)终于被统一到一个深度网络框架之内。所有计算没有重复,完全在GPU中完成,大大提高了运行速度。
在这里插入图片描述
  Faster R-CNN可以简单地看RPN+Fast R-CNN的系统,用区域生成网络RPN代替Fast R-CNN中的Selective Search方法。所以学会了RPN也就学会了Faster R-CNN。论文着重解决了这个系统中的三个问题:

  • 如何设计区域生成网络。
  • 如何训练区域生成网络。
  • 如何让区域生成网络和Fast R-CNN网络共享特征提取网络。

3.1.算法步骤

  1. 将图像输入网络得到相应的特征图。
  2. 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵。
  3. 将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

  实际上就是将Fast R-CNNSS算法换成了RPN 算法,会了RPN算法也就会了Faster R-CNN算法。所以Faster R-CNN的核心就是RPN
Faster R-CNN网络框架:

在这里插入图片描述

3.2.RPN算法

在这里插入图片描述

  在特征图上使用滑动窗口在特征图上进行滑动,每滑动到一个位置就生成一个一维的向量,在向量的基础上通过两个全连接层输出2k个目标概率值和4k个边界框回归参数。这里的2k是针对kanchor box
2k个目标概率值和4k个边界框回归参数是什么?
2k个目标概率值:
  在2kscores中两两一组,其中第一个值为背景的概率,第二个值为不是背景的概率,只判断目前anchor中是背景还是前景。256是特征图的深度,用不同的网络深度可能会不一样。
4k个边界框回归参数:
  将4kcoordinates各参数为一组,其中前两个为anchor(可以理解成预先设定好的候选框,尺寸大小都是预先给定的)的中心坐标偏移量,后两个为anchor的相对宽度和高度。Faster R-CNN中共使用三种尺度( 128 × 128 128\times128 128×128, 256 × 256 256\times256 256×256, 512 × 512 512\times512 512×512)和三种比例的anchor,每个位置在原图上都对应3x3=9anchor。三种比例分别为1:11:22:1。对于一张1000x600x3的图像,大约有60x40x9(20k)anchor,忽略跨越边界的anchor以后,剩下约6k个anchor。对于剩下的约6kanchor再使用RPN网络生成的相应的边界框回归参数,将这6kanchor调整为6k个候选框,即proposal。注意区分下anchorproposal,他们不是一个东西,只是利用预先给定的anchor,经过筛选之后通过RPN网络生成proposal,即proposal是由anchor计算得到的(或者说proposal是由anchor利用RPN调整得到的)。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值(NMS)抑制,IoU设为0.7,这样每张图片只剩2k个候选框。
RPN网络怎么实现?
  里面的滑动窗口就是使用 3 × 3 3\times3 3×3的卷积实现,卷积的步距为1padding也为1。通过 3 × 3 3\times3 3×3的卷积之后,我们又生成了一个高度以及宽度和我们这个feature map一样的特征矩阵,然后它的深度也是与我们feature map一样的,所以说通过我们这个 3 × 3 3\times3 3×3的卷积之后他所得到的特征矩阵的shape和我们这个feature map是一模一样的。紧接着在我们所得到的特征矩阵上再并联两个 1 × 1 1\times1 1×1的卷积层来实现对类别的预测和边界框回归参数的预测。然后后面就是通过并联深度为2k 1 × 1 1\times1 1×1的卷积和深度为4k 1 × 1 1\times1 1×1的卷就得到了图中的2k scores4k coordinates

RPN正负样本:
  我们在训练过程中的正负样本是如何生成的呢?我们刚才介绍了通过滑动窗口在特征图上进行滑动,在原图上大概会生成20000anchor,但这些anchor并不是说每个都用来训练我们的RPN网络,论文中作者说的是,对于每一张图片,我们从刚刚上万个anchor当中采样256anchor,这256anchor是由正样本和负样本两部分组成,比例在1:1左右。如果我们的正样本的个数不足128的话,就用负样本来进行一个填充。负样本填充正样本是什么意思?就是假设256个样本中只有100个正样本,那么负样本就采用256-100=156个负样本。那么正负样本是怎么定义的呢?正样本原文给了两种定义方式:1.只要anchor与标注框的IoU大于0.7就是正样本;2.anchor与标注框有最大的IoU标记为正样本,这个就是对第一个条件的补充,防止没有正样本。负样本怎么定义呢?负样本是针对那些与所有的标注框的的IoU值都小于0.3,这样的anchor定义为负样本。正样本和负样本之外的anchor全部丢弃。

3.3.损失函数

损失有两部分:RPN损失Faster R-CNN损失
RPN损失:
L ( { p i } , { t i } ) = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) + λ 1 N reg ∑ i p i ∗ L reg  ( t i , t i ∗ ) L\left(\left\{p_{i}\right\},\left\{t_{i}\right\}\right)=\frac{1}{N_{c l s}} \sum_{i} L_{c l s}\left(p_{i}, p_{i}^{*}\right)+\lambda \frac{1}{N_{\text {reg}}} \sum_{i} p_{i}^{*} L_{\text {reg }}\left(t_{i}, t_{i}^{*}\right) L({pi},{ti})=Ncls1iLcls(pi,pi)+λNreg1ipiLreg (ti,ti)
包含两部分,分类损失和边界框回归损失。参数解释如下:

  • p i p_{i} pi表示第 i i ianchor预测为真实标签的概率。
  • p i ∗ p_{i}^{*} pi为正样本是为1,为负样本时为0。跟Fast R-CNN中的艾佛森括号一个意思。
  • t i t_{i} ti表示预测第 i i ianchor的边界框回归参数。
  • $t_{i}^{*}$表示第 i i ianchor对应的GT BOX
  • N c l s N_{cls} Ncls表示一个mini-batch中的所有样本数量256
  • N r e g N_{reg} Nreg表示anchor位置的个数,约2400个。前面系数 λ = 10 \lambda=10 λ=10

在实际计算的时候 N c l s N_{cls} Ncls 1 λ × N r e g \frac{1}{\lambda} \times N_{reg} λ1×Nreg都当做一个值来算,都取值256或者240,简化了计算。

分类损失如下:
L c l s = − l o g ( p i ) L_{cls}=-log(p_{i}) Lcls=log(pi)
边界框回归损失:
  同Fast R-CNN的边界框回归损失
L r e g ( t i , t i ∗ ) = ∑ i smooth ⁡ L 1 ( t i − t i ∗ ) t i = [ t x , t y , t w , t h ] t i ∗ = [ t x ∗ , t y ∗ , t w ∗ , t h ∗ ]

Lreg(ti,ti)=ismoothL1(titi)ti=[tx,ty,tw,th]ti=[tx,ty,tw,th]
Lreg(ti,ti)=ismoothL1(titi)ti=[tx,ty,tw,th]ti=[tx,ty,tw,th]
smooth ⁡ Σ 1 ( x ) = { 0.5 x 2  if  ∣ x < 1 ∣ x − 0.5  otherwise  \operatorname{smooth}_{\Sigma_{1}}(x)=
{0.5x2 if x<1x0.5 otherwise 
smoothΣ1(x)={0.5x2x0.5 if x<1 otherwise 

其中:
t x = ( x − x a ) / w a , t y = ( y − y a ) / h a , t w = log ⁡ ( w / w a ) , t h = log ⁡ ( h / h a ) , t x ∗ = ( x ∗ − x a ) / w a , t y ∗ = ( y ∗ − y a ) / h a , t w ∗ = log ⁡ ( w ∗ / w a ) , t a ∗ = log ⁡ ( h ∗ / h a )
tx=(xxa)/wa,ty=(yya)/ha,tw=log(w/wa),th=log(h/ha),tx=(xxa)/wa,ty=(yya)/ha,tw=log(w/wa),ta=log(h/ha)
tx=(xxa)/wa,ty=(yya)/ha,tw=log(w/wa),th=log(h/ha),tx=(xxa)/wa,ty=(yya)/ha,tw=log(w/wa),ta=log(h/ha)

其中,

  • p i ∗ p_{i}^{*} pi为正样本是为1,为负样本时为0。
  • t i t_{i} ti表示预测第 i i ianchor的边界框回归参数。
  • t i ∗ t_{i}^{*} ti表示第 i i ianchor对应的GT BOX的回归参数。

Faster R-CNN损失:
L ( p , u , t u , v ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L l o c ( t u , v ) L\left(p, u, t^u, v\right)=L_{c l s}(p, u)+\lambda[u \geq 1] L_{l o c}\left(t^u, v\right) L(p,u,tu,v)=Lcls(p,u)+λ[u1]Lloc(tu,v)

p p p 是分类器预测的 softmax 概率分布 p = ( p 0 , … , p k ) p=\left(p_0, \ldots, p_k\right) p=(p0,,pk)
u u u对应目标真实类别标签
t u t^u tu 对应边界框回归器预测的对应类别
u u u 的回归参数 ( t x u , t y u , t w u , t h u ) \left(t_x^u, t_y^u, t_w^u,t_h^u\right) (txu,tyu,twu,thu)
v v v 对应真实目标的边界框回归参数 ( v x , v y , v w , v h ) \left(v_x, v_y, v_w, v_h\right) (vx,vy,vw,vh)

3.4.训练

  1. 利用ImageNet预训练分类模型初始化前置卷积网络层参数,并开始单独训练RPN网络参数。
  2. 固定RPN网络独有的卷积层以及全连接层参数,再利用ImageNet预训练分类模型初始化前置卷积网络参数,并利用RPN网络生成的目标建议框去训练Fast
    R-CNN网络参数。
  3. 固定利用Fast R-CNN训练好的前置卷积网络层参数,去微调RPN网络独有的卷积层以及全连接层参数。
  4. 同样保持固定前置卷积网络层参数,去微调Fast R-CNN网络的全连接层参数。最后RPN网络与Fast R-CNN网络共享前置卷积网络层参数,构成一个统一网络。

四.三种算法步骤对比

R-CNN

1.在图像中确定约1000-2000个候选框 (使用选择性搜索Selective Search)
2.每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取
3.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4.对于属于某一类别的候选框,用回归器进一步调整其位置

Fast R-CNN

1.在图像中确定约1000-2000个候选框 (使用选择性搜索Selective Search)
2.对整张图片输进CNN,得到feature map
3.找到每个候选框在feature map上的映射patch,将此patch作为每个候选框的卷积特征输入到SPP layer和之后的层
4.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
5.对于属于某一类别的候选框,用回归器进一步调整其位置

Faster R-CNN

1.对整张图片输进CNN,得到feature map
2.卷积特征输入到RPN,得到候选框的特征信息
3.对候选框中提取出的特征,使用分类器判别是否属于一个特定类
4.对于属于某一类别的候选框,用回归器进一步调整其位置

  • R-CNN:(Selective Search + CNN + SVM)
  • Fast R-CNN:(Selective Search + CNN + ROI)
  • Faster R-CNN:(RPN + CNN + ROI

至此,关于RCNNFast R-CNNFaster R-CNN的内容就介绍完了,如有错误,敬请指正!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/652092
推荐阅读
相关标签
  

闽ICP备14008679号