从RCNN到MASK-RCNN

  1. R-cnn

第一步:待检测区域提取by selective search。通过一些传统图像处理方法将图像分成若干块,然后通过一个SVM将属于同一目标的若干块拿出来。
第二步:特征提取by alexnet。
第三步:目标检测by svm。在训练这个支持向量机的时候,结合目标的标签(类别)与包围框的大小进行训练。
优势:

  1. 使用了卷积神经网络进行特征提取。
  2. 使用bounding box regression进行目标包围框的修正。
    存在问题:
  3. 耗时的selective search,对一帧图像,需要花费2s。
  4. 耗时的串行式CNN前向传播,对于每一个RoI,都需要经过一个AlexNet提特征,为所有的RoI提特征大约花费47s。
  5. 三个模块是分别训练的,并且在训练的时候,对于存储空间的消耗很大。
  1. Fast r-cnn

首先还是采用selective search提取2000个候选框,然后,使用一个神经网络对全图进行特征提取。接着,使用一个RoI Pooling Layer在全图特征上摘取每一个RoI对应的特征,再通过全连接层(FC Layer)进行分类与包围框的修正。
优势:

  1. 取代R-CNN的串行特征提取方式,直接采用一个神经网络对全图提取特征(这也是为什么需要RoI Pooling的原因)。
  2. 除了selective search,其他部分都可以合在一起训练。
    存在问题:
    耗时的selective search还是依旧存在。
  1. Faster r-cnn

在这里插入图片描述
取代selective search,直接通过一个Region Proposal Network (RPN,区域候选网络)生成待检测区域。
首先使用共享的卷积层为全图提取特征,然后将得到的feature maps送入RPN,RPN生成待检测框(指定RoI的位置)并对RoI的包围框进行第一次修正。之后就是Fast R-CNN的架构了,RoI Pooling Layer根据RPN的输出在feature map上面选取每个RoI对应的特征,并将维度置为定值。最后,使用全连接层(FC Layer)对框进行分类,并且进行目标包围框的第二次修正。
RPN:
首先依靠一个在共享特征图上滑动的窗口,为每个位置生成9种预先设置好长宽比与面积的目标框,这9种初始anchor包含三种面积(128×128,256×256,512×512),每种面积又包含三种长宽比(1:1,1:2,2:1)。
RPN的本质是一个树状结构,树干是一个3×3的卷积层,树枝是两个1×1的卷积层,第一个1×1的卷积层解决了前后景的输出,第二个1×1的卷积层解决了边框修正的输出。对于RPN输出的特征图中的每一个点,一个1×1的卷积层输出了18个值,因为是每一个点对应9个anchor,每个anchor有一个前景分数和一个背景分数,如果一个anchor与ground truth的IoU在0.7以上,那这个anchor就算前景(positive)。采用SmoothL1loss对边框修正值进行训练。
Roi pooling:
一是为每个RoI选取对应的特征,二是为了满足全连接层的输入需求,将每个RoI对应的特征的维度转化成某个定值。
存在问题:
RoI Pooling过后的得到的输出可能和原图像上的RoI对不上,这主要是因为两点原因:

  1. 从输入图上的RoI到特征图上的RoI feature,RoI Pooling是直接通过四舍五入取整得到的结果。
  2. 再将每个RoI对应的特征转化为固定大小的维度时,又采用了取整操作。
  1. Mask r-cnn

在这里插入图片描述
对RoI Pooling做了改进并提出了RoI Align。RoI Align的主要创新点是,针对faster r-cnn的问题1,不再进行取整操作。针对问题2,使用双线性插值来更精确地找到每个块对应的特征。总的来说,RoI Align的作用主要就是剔除了RoI Pooling的取整操作,并且使得为每个RoI取得的特征能够更好地对齐原图上的RoI区域。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值