Mask R-CNN原理直观理解

maskrcnn的原理按照我自己的理解来讲,分为如下几步:

1、将image输入resnet获取5组大小不同的特征图

2、在这5组特征图上逐点确定3种长宽比例不同的边框,并将这些边框对应的位置映射回原图像(就是一个比例映射)

3、在特征图上使用卷积预测每个点每个框对应的两组数据(2维度:前后景的概率值,4维度:与真实边框的中心点位置差距和长宽缩放因子总共4个值)

4、之前映射回原图的框有很多,每个框都有自己的前后景概率和偏移量,根据每个框的前后景概率排序选出前6000个框,其他框舍去,根据iou条件确定框是正样本或负样本(即前景或者是背景,例如至少和一个框的iou大于0.5则为前景),对于正样本需要计算与真实框之间的偏移量,这里计算的是否是正样本、偏移量将作为后面计算rpn损失的label

5、上一步中预测了框的便偏移量,对框执行这些偏移量(此时框与真实框之间仍存在差值,因为执行的是预测的偏移量,而非上一步中所说的label)

6、类似于4中计算三组label,首先是框的类别,判断方法就是这个框与哪个真实框之间的iou最大,那么5他的类别就是这个,其次是偏移量,就是这个框与真实框之间还存在多少差距(因为之前移动的并不是真正的差距,而是预测的,所以现在肯定还存在差距),最后是mask值,这个mask值是指在一个框中每个元素对应是前景或者是背景,直接使用的是iou最大的那个真实框的mask

7、经过上面的步骤我们获取了5类标签rpn_class, rpn_bbox, marcnn_class, marcnn_bbox, marcnn_mask,这些标签是用来计算loss的,接下来需要预测后三个值,因为前两个已经在rpn网络中预测了

8、这一步是需要将原图中的框映射到特征图上,使用比例映射,之后对映射后的框进行池化,池化为7*7大小的特征,对每一个特征图都进行操作映射为7*7(但比例映射的比例不同,因为特征图大小不同)

9、经过上面的操作后每个框有许多的7*7,将这么多7*7用于预测class,bbox,mask,具体映射方式不难,通过卷积或者全连接都可以实现。

10、最后计算5个损失值,进行梯度下降就可

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值