ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Mask-R-CNN 学习笔记 | 深度学习

2022-01-21 13:02:36  阅读:301  来源: 互联网

标签:分割 Mask 网络 学习 掩码 CNN Block


Mask R-CNN for Object Detection and Segmentation

基于深度神经网络Mask R-CNN,使用TensorFlow实现。

感谢何凯明等人完成的惊人成就,论文传送门:Mask R-CNN

我的github地址

Demo

  • balloon分割
  • 矿物显微图像的实例分割
  • 基于CT扫描的土石混合体图像的精准分割(选择U-Net效果更好)

环境

  • tensorflow==1.15.0
  • numpy==1.17.4
  • scipy
  • pillow
  • cython
  • matplotlib
  • scikit-image==0.16.2
  • keras==2.1.5
  • opencv-python
  • h5py==2.10
  • imgaug
  • pyqt5
  • labelme
  • PyYAML
  • pycocotools

Mask R-CNN 架构分解

整体网络结构

主干特征提取网络

主干网络是一个残差神经网络( ResNet50 和 ResNet101),作为特征提取器

ResNet101有两个基本的块,分别名为Conv Block和Identity Block,其中Conv Block输入和输出的维度是不一样的,所以不能连续串联,它的作用是改变网络的维度;Identity Block输入维度和输出维度相同,可以串联,用于加深网络的。

  • Conv Block

  • Identity Block

特征金字塔FPN

特征金字塔FPN的构建是为了实现特征多尺度的融合,可以在多个尺度上更好地表征目标。在Mask R-CNN当中,我们取出在主干特征提取网络中长宽压缩了两次C2、三次C3、四次C4、五次C5的结果来进行特征金字塔结构的构造。

区域建议网络(RPN)

在这里插入图片描述

RPN 是一个轻量的神经网络,它用滑动窗口来扫描图像,并寻找存在目标的区域。RPN 扫描的区域被称为 anchor

RPN用于帮助网络推荐感兴趣的区域,也是Faster-RCNN中重要的一部分。
在这里插入图片描述

ROI Align

Mask-RCNN中提出了一个新的idea就是RoIAlign,其实RoIAlign就是在RoI pooling上稍微改动过来的,但是为什么在模型中不能使用RoI pooling呢?现在我们来直观的解释一下。

在这里插入图片描述

可以看出来在RoI pooling中出现了两次的取整,虽然在feature maps上取整看起来只是小数级别的数,但是当把feature map还原到原图上时就会出现很大的偏差,比如第一次的取整是舍去了0.78,还原到原图时是0.78*32=25,第一次取整就存在了25个像素点的偏差,在第二次的取整后的偏差更加的大。对于分类和物体检测来说可能这不是一个很大的误差,但是对于实例分割而言,这是一个非常大的偏差,因为mask出现没对齐的话在视觉上是很明显的。而RoIAlign的提出就是为了解决这个问题,解决对齐问题。

Classifier

在这里插入图片描述

Classifier分类网络就是对每一个ROI进行分类和回归(class + box),即完成图像分类目标检测

Mask Branch

在这里插入图片描述

掩码分支是一个卷积网络,取 ROI 分类器选择的正区域为输入,并生成它们的掩码。其生成的掩码是低分辨率的:28x28 像素。但它们是由浮点数表示的软掩码,相对于二进制掩码有更多的细节。掩码的小尺寸属性有助于保持掩码分支网络的轻量性。在训练过程中,我们将真实的掩码缩小为 28x28 来计算损失函数,在推断过程中,我们将预测的掩码放大为 ROI 边框的尺寸以给出最终的掩码结果,每个目标有一个掩码。

在这里插入图片描述

注意这个是实现的语义分割而不是实例分割。因为每个ROI只对应一个物体,只需对其进行语义分割就好,相当于了实例分割了,这也是Mask-RCNN与其他分割框架的不同,是先分类再分割

参考

标签:分割,Mask,网络,学习,掩码,CNN,Block
来源: https://blog.csdn.net/jun_zhong866810/article/details/122618905

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有