RCNN、FastRCNN、FasterRCNN、MaskRCNN目标检测

R-CNN

训练阶段:

        CNN训练是在imagenet上预训练好的,迁移进行fine-tuning训练,将最后一层替换为N类+1背景类输出,fine-tuning时正负样本选择:将与ground-truth的IoU≥0.5的proposal作为正样本,不分类别,剩下作为负样本,每个batch中正负样本比例是1:3。

        N个SVM训练时正负样本选择:正样本是ground-truth,负样本是IoU<0.3的proposal,忽略>0.3的proposal,采用hard negative mining method加快训练。

        Bounding box regression训练,输入是IoU>0.6的proposal,label是ground-truth,预测的是dx(P),dy(P),dw(P)和dh(P)这四个缩放因子,损失函数如式(2)所示。P对应的是候选框的中心坐标以及框的高宽,G对应的是最终预测的边界框的中心坐标以及宽高。

测试阶段:

        输入一张图像,采用Selective Search方法生成约2k个候选框region proposal,将proposal缩放到统一大小,输入到CNN中提取proposal的feature,再采用SVM对feature进行分类,判别feature所属类别的置信度,采用非极大值抑制(NMS,non-maximum suppression)方法剔除重复预测的proposal,然后将剩下的proposal的feature输入至linear regression来修正候选框的位置,得到预测框bouding box。

Fast-RCNN

训练阶段:

      Fast-RCNN实现了端到端训练。采用Selective Search算法在一张图像上生成约2k个proposal,然后经过正负样本采样获得合适的proposal,将图像输入网络得到feature map,将图像上的proposal投影到feature map获得对应的特征矩阵,特征矩阵通过ROI pooling层,ROI pooling层是将输入的proposal划分为7x7大小的块,在每个块中进行maxpooling,这样可以不限制输入图像的尺寸。然后经过一系列的FC层,通过softmax进行分类,类别为N+1,bbox regression修正候选框的位置,输出为N个类别分别对应的回归参数,共4N个。

        正负样本采样:在每个batch中包含2张图像和128个proposal,每张图像有64个proposal,挑选batch中25%的proposal作为正样本,这些proposal的IoU>0.5。

        式(3)是模型的整体损失。式(4)是分类损失,也是交叉熵损失。式(5)是bbox regression损失,[u≥1]代表如果是正样本,u=1,如果是负样本,u=0

测试阶段:

        通过SS在图像上生成2K个proposal,图像输入网络得到feature map,proposal映射到feature map得到对应的特征矩阵,再通过ROI pooling和一系列FC得到预测的类别和回归修正值,然后通过NMS得到对proposal进行筛选,得到bounding box。

Faster-RCNN

        Faster-RCNN和Fast-RCNN的区别就在于proposal的选取,Faster-RCNN用RPN来代替SS算法选取proposal。Faster-RCNN的训练过程是先将图像输入网络得到feature map,使用RPN生成proposal,将proposal投影到feature map获得对应的特征矩阵,特征矩阵通过ROI pooling层,ROI pooling层是将输入的proposal划分为7x7大小的块,在每个块中进行maxpooling,这样可以不限制输入图像的尺寸。然后经过一系列的FC层,通过softmax进行分类,类别为N+1,bbox regression修正候选框的位置,输出为N个类别分别对应的回归参数,共4N个。

        RPN是先以feature map每个像素对应的原图上的像素为中心得到3x3个不同的anchor,通过正负样本采样,一个图像得到k个anchor,通过CNN与feature map卷积得到大小不变通道数减少的特征向量,每个向量长度是通道个数,将所有特征向量经过FC层,再通过cls layer(1x1的2k个卷积)得到k个anchor对应的前景背景的置信率,一共是2k个,再通过reg layer(1x1的4k个卷积)得到每个anchor的4个回归偏置,损失函数如式(6),根据偏置调整后的anchor是得到的proposal。在测试部分,通过NMS再进一步筛选proposal。

        正负样本采样:每张图片采样256anchor,正负样本比例是1:1,与ground-truthIoU最大的anchorIoU0.7anchor是正样本, IoU0.3anchor是负样本,剩下的忽略。

Mask-RCNN

        Mask-RCNN是在Faster-RCNN上的改进,增加了一个mask分支,mask部分采用的是FCN网络做分割。但是mask部分的输出是K个binary mask,二分类采用的是sigmoid函数,并不预测所属类别,所属类别的预测是依赖于Faster RCNN的分类部分。损失函数如下式。

        模型采用的是FPN架构,可以识别多尺度的物体。论文采用了RoIAlign是因为RoIpooling会出现misalignment RoIAlign通过双线性插值可以得到准确的空间定位。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值