图像分割(六):模型(MaskRCNN)

本文介绍了深度学习模型Mask R-CNN的工作原理,它是在Faster R-CNN基础上增加了图像分割任务。文章详细阐述了ROI Align的重要性,避免了传统ROI Pooling导致的像素偏移问题,并解释了网络的两部分——Backbone和Head Architecture的设计。训练过程中,模型通过Lcls、Lbox和Lmask三个损失函数进行优化。尽管结构复杂,Mask R-CNN在实例分割、目标检测等领域表现出色。
摘要由CSDN通过智能技术生成

三、图像分割的模型

6.Mask RCNN

原论文

Mask RCNN其实就相当于Faster RCNN + Mask(FCN),也就是在Faster RCNN的基础上,增加了一个分支用作图像分割。

模型结构为:


同样是two-stage的模型,相较于Faster RCNN的区别:

  1. 增加了一个分支mask,用于图像分割:对于Faster RCNN输出的每一个建议框,都使用FCN做语义分割,分类、回归、分割三个任务同时进行。
  2. 使用ROI Align替换了ROI Pooling。


为什么使用ROI Align?

因为ROI Pooling的量化操作(四舍五入取整)会导致原图生的ROI和特征图不对齐(分割无法与输入对应),像素会有偏移。

ROI Pooling应用了两次取整操作:

  1. 输入图片到特征图时(建议框的x、y、w、h一般会是小数,但为了方便操作而进行取整)
  2. 特征图转化为固定大小的维度时(后面要进全连接)

这种取整操作对ROI分类或是回归的影响不大,但对像素级别的图像分割却有很大影响。


ROI Align操作:

在这里插入图片描述

这种操作的改进:

  1. 取消了上文第一次取整。
  2. 取消了第二次取整,而使用双线性插值的方法获得坐标为浮点数的像素点上的图像数值,从而将整个特征聚集过程转化为一个连续的操作。

流程(如图):

  1. 遍历每个候选区域,保持浮点数不取整(图中下面大的整块虚线区域为一个候选区,也就是一张特征图)
  2. 将每个候选区分成 k x k 个单元(图中为2 x 2),每个单元边界同样不取整
  3. 每个单元又同样分成4个格子,计算每个格子的中心点像素,也就是那4个蓝点(这是虚拟的坐标位置,像素坐标都是整数没有浮点数,使用双线性插值,依靠相邻4个真实像素的值计算得来),最后对4个点进行maxpooling,得到这个单元最终的值。

关于双线性插值:

概念可以自行百度,说得很清楚,大概原理可以看下这些博客(与OpenCV中使用的方法还是有区别的):

https://zhuanlan.zhihu.com/p/49832888

https://blog.csdn.net/qq_37577735/article/details/80041586

https://blog.csdn.net/xiaqunfeng123/article/details/17362881

https://blog.csdn.net/siyue0211/article/details/92660001

关于网络架构


将网络分成了两部分:

  1. Backbone:卷积主干用于提取特征(论文中使用了resnet-50,resnet-101,resnext-50,resnext-101,还有FPN),经过对比,作者发现使用ResNet-FPN更快、精度更高。
  2. Head Architecture:网络头用于bbox识别(分类、回归)和mask预测。

训练:

  1. 与之前相同,IoU > 0.5 时,才会纳入 L m a s k L_{mask} L
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值