从cascade RCNN到sparse Rcnn

cascade rcnn原理解析

在这里插入图片描述
图像提取出f,经过rpn网络得到固定宽高的bbox的f1(这个f1是f的局部部分);
f1送入head1,得到cls1和bbox1(假设训练时使用到iou>0.5);
根据得到的bbox1,在f上提取局部特征,记为f2;
f2送入head2,得到cls2和bbox2(假设训练时使用到iou>0.6);
根据得到的bbox2,在f上提取局部特征,记为f3,;
f3送入head3,得到cls3和bbox3(假设训练时使用到iou>0.7);
把cls3和bbox3作为最终结果。

Sparse Rcnn

看配置文件中过了backbone和neck之后是几个head,这个地方有点容易混淆。尤其是proposal feature和roi feature,理解了好半天。
在这里插入图片描述

  • 第一个rpn_head使用的是EmbeddingRPNHead,这里返回的是proposal box和proposal feature,这里的proposal box默认是100个,大小是原图的大小。proposal box和proposal feature都是可学习的。
    ![看代码细节,可知proposal_box是100*4的嵌入模型,proposal_feature是100*256的嵌入模型](https://img-blog.csdnimg.cn/69b1ed0ed472470fb7f11ef5d9d13d69.png
    看代码细节,可知proposal_box是100 * 4的嵌入模型,proposal_feature是100 * 256的嵌入模型

    tips: torch.nn.Embedding(embedding_num, embedding_dim)的意思是创建一个词嵌入模型,embedding_num代表一共有多少个词, embedding_dim代表你想要为每个词创建一个多少维的向量来表示它;

  • 第二个SingleRoIExtractor这个头是用来生成roi feature的,通俗来讲就是:前面网络提取到feature,根据预测出来的bbox框(因为参考了cascade网络结构,所以这个预测出来的bbox框可以参照上面讲的去对应一下),在feature map上选取局部的特征,这个局部特征就是roi feature

  • 第三个是DIIHead,这个头的输出是三个:proposal feature,cls,bbox预测框。在这个头里面,roi feature和proposal feature需要做交互处理

  • 连续6个SparseRoIHead(bbox_roi_extractor[stage](ROI align) + bbox_head[stage] (DIIHead))
    使用cascade rcnn的思想串联这6个head。

不理解的话可以再手动画图看一下,看看源码,个人感觉确实是有点绕。。。

参考:

  1. Sparse RCNN原理及源码分析
  2. sparse rcnn
  3. CVPR2021 Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
  4. Cascade Rcnn 的简单理解
  5. nn.Embedding的理解
  6. Sparse R-CNN:简化版fast rcnn
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值