概述
https://blog.csdn.net/WZZ18191171661/article/details/79453780
Mask-RCNN 的网络结构示意:
其中 黑色部分为原来的 Faster-RCNN, 红色部分为在 Faster 网络上的修改:
1) 将 Roi Pooling 层替换成了 RoiAlign;
2) 添加并列的 FCN 层(mask 层);
先来概述一下 Mask-RCNN 的几个特点(来自于 Paper 的 Abstract):
1)在边框识别的基础上添加分支网络,用于 语义 Mask 识别;
2)训练简单,相对于 Faster 仅增加一个小的 Overhead,可以跑到 5FPS;
3)可以方便的扩展到其他任务,比如人的姿态估计 等;
4) 不借助 Trick, 在每个任务上, 效果优于目前所有的 single-model entries;
图中灰色部分是 原来的 RCNN 结合 ResNet or FPN 的网络,下面黑色部分为新添加的并联 Mask 层,这个图本身与上面的图也没有什么区别,旨在说明作者所提出的Mask RCNN 方法的泛化适应能力 - 可以和多种 RCNN 框架结合,表现都不错。
Mask-RCNN 技术要点
- 技术要点 1 - 强化的基础网络
通过 ResNeXt-101+FPN 用作特征提取网络, 达到 state-of-the-art 的效果。 - 技术要点 2 - ROIAlign
采用 ROIAlign 替代 RoiPooling(改进池化操作) 。引入了一个插值过程,先
通过双线性插值到14*14
,再 pooling 到7*7
,很大程度上解决了仅通过 Pooling 直接采样带来的 Misalignment 对齐问题。
PS: 虽然 Misalignment 在分类问题上影响并不大, 但在 Pixel 级别的 Mask上会存在较大误差。ROIAlign 带来较大的改进, Stride 越大改进越明显。 - 技术要点 3 - Loss Function
每个 ROIAlign 对应 K * m^2 维度的输出。 K 对应类别个数,即输出 K 个
mask, m 对应 池化分辨率(7*7)。 Loss 函数定义:
Lmask(Cls_k) = Sigmoid (Cls_k), 平均二值交叉熵(average binary cross-entropy) Loss,通过逐像素的 Sigmoid 计算得到。
Why K 个 mask? 通过对每个 Class 对应一个 Mask 可以有效避免类间竞争(其他 Class 不贡献 Loss )。
最后
以上就是迷你奇异果为你收集整理的神经网络的认识(十二)Mask-RCNN的全部内容,希望文章能够帮你解决神经网络的认识(十二)Mask-RCNN所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复