RCNN系列(三)——终结者之mask rcnn

这周开始上手一些小项目了,所以工作日会比较忙可能没有什么时间写博客(才不会承认每天还在花一个多小时锻炼以及一个多小时玩游戏)。良心发现,我觉得写博客可以是一个很终身的习惯,有助于学习思考以及交流,所以决定将周末的时间都用来吃——还有写博客。讲我上周看的rcnn系列的最后一篇吧,rcnn,我称它为终结者。(其实后面还有许多更厉害的框架,只是我还没看,所以这个系列可能暂时先到这里了)。遥拜何凯明大神。

上干货,mask rcnn框架图:

这里抱怨一句大神文章里给的框架,太过简洁,我等凡夫俗子第一眼时看不懂的。那么为了利己利人,我找到了这张图:

那么通过这幅图,我先过一下mask rcnn的封神理由,首先通过mask rcnn将原先fast rcnn中只是简单地通过几个卷积层以及池化层来提取feature换成了自家的产品res-net50以及FPN进行特征提取(对没错,rencnn也是何凯明大神提出来的),然后获得state-of-art的feature map。然后呢,通过ROIAlign解决了misalignment的问题,最后是引入了mask二元掩码,提高了框架的准确度和鲁棒性。

1)mask rcnn

首先要理解这个框架,为什么要被称为mask rcnn。这是因为能够在进行检测任务的同时进行实例mask分割任务,如图一的最后输出结果展示,所以这个网络被称为mask rcnn。读过我上篇文章的朋友,也许会发现mask rcnn的网络结构比较fast rcnn在总体框架上只是多了多了一个mask branch。在整体上的改动并不是特别大。但是他有很多让我们叹为观止的小trick。首先关于利用res-50进行特征检测,但是因为残差网络实在是太出名了,讲太多未免有文抄公的嫌疑,所以这里忽略。有兴趣的朋友可以自己看。

2)什么是FPN

说FPN可能大家都有点蒙蔽,有个很土味的讲法,金字塔结构。是不是突然就觉得这个东西我肯定懂。不懂没关系我来给你讲讲他的前世今生,在目标检测的时候,我们通常使用比较深的网络来挖掘足够的信息,这样对于一些比较小的目标,当卷积池化到最后一层可能所携带的语义信息已经丢失或者被比较大的语义信息给覆盖同化了。所以为了解决多尺度的目标检测问题,FPN就应运而生了。下面简单的看一看这个结构:

利用CNN层次能够多层发掘信息的金字塔结构,这样的结构有一个好处就是在所有的尺度上都具有强语义信息。所以FCN我们可以注意到它具有横向纵向所有尺度的连接,这样的操作就能够同时发现具有高分辨率的浅层layer特征以及具有低分辨率的深层特征layer。这样的操作就可以单尺度的输入而获得多尺度的特征金字塔。

3)了解了FPN的特征提取方式,下面再看看what is ROI relign?

讲Roi align自然就要将他与Roi pooling的过程进行比较,然后才会反映出差距来。Roi pooling有着两个量化的过程,而好死不死这两个量化过程都会引入量化误差,这势必就会对我们最后需要的acc造成一个连锁的影响。

首先在Roi pooling的过程中,由于最后得到的feature map与原始的输入图片大小必然会有着一定的差距,这里他们的大小之比是1/16,所以这里我们将roi proposal映射到feature map公式为x/16,x是原始图像上的尺寸,而这个过程往往会是浮点数,所以就需要我们对他进行取整。第二个过程就是将feature map划分为7*7,然后进行max pooling,在这个划分bin的过程中,feature不可能刚刚好是7的倍数,所以这里也会引入误差。这里盗个图:

大家看这个图,也就是说,我们最后实际得到的Roi可能与原original roi是存在位置偏差的。

所以呀,作者说,这多low,并向你甩出roi align

简单来说,确定了region protection之后,对应后面需要的输入就将他分成固定的k块,然后将这k块每个bin分为四块,取得他们的中心点,因为这里的中心点位置通常是浮点数,所以就采用插值法来获得这四个采样点点的像素值,然后对这四个点进行最大池化输出,这样的一个过程就避免了roi pooling的过程造成的misalign。有朋友就要问了,问什么要对四个点采样,人讲是因为经过大量的实验,发现取四个点效果最好呗。

好啦,关键的几个技术点都给自己复习啦,RCNN系列。

over

我是多多,系列文章纯属个人学习使用,如有失误欢迎指正交流。

参考&致谢:

1、https://blog.csdn.net/xiamentingtao/article/details/78598511 Mask RCNN笔记

2、https://arxiv.org/pdf/1703.06870.pdf

3、https://blog.csdn.net/u014696921/article/details/65626233 mask rcnn理解

4、https://blog.csdn.net/xiamentingtao/article/details/78598027  Feature Pyramid Networks for Object Detection 总结

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

与贰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值