Mask RCNN:目标检测+实例分割
作用:可以完成目标分类,目标检测,语义分割,实例分割,人体姿态识别等多种任务。
1.实例分割与语义分割的区别和关系?
通常的目标分割是指语义分割,实例分割是从目标分割独立出来的一个小领域,两者相比实例分割更加复杂。
实例分割需要在语义分割的基础上对同类物体进行更加精细的分割。
2.算法主要思想
Mask rcnn算法是由faster rcnn 和语义分割算法FCN组成。前者完成目标检测任务,后者可以准确完成语义分割的任务。
主要思路:原始Faster-rcnn算法的基础上面增加了FCN来产生对应的MASK分支。
(发现了ROI Pooling中所存在的像素偏差问题,提出了对应的ROI Align策略,加上FCN精准的像素MASK,使得其可以获得高准确率。)
3.Mask R-CNN算法步骤
1.把图片输入到网络中获得对应的特征图;
2.然后把这个特征图中的每一点设定个ROI(感兴趣区域),从而获得多个候选ROI;
3.再把这些候选的ROI送入RPN网络中进行二值分类(前景或后景)和回归,过率掉一部分候选的ROI;
4.接着对这些剩下的ROI进行ROI Align操作(即先将原图和特征图的pixel对应起来,然后将特征图和固定的特征对应起来);
5.最后,再对这些ROI进行分类(多分类)、回归(BB)和MASK生成(在每一个ROI中进行FCN操作)
4.ROI Align 详解
ROI Align与ROI Pooling区分比较:
最大区别:ROI Pooling使用了两次量化(取整)操作,但是ROI Align没有采用量化操作,而是使用了线性插值算法。
ROI Pooling 技术
1.图像坐标----特征图坐标 出现小数后,取整,第一次量化
2.特征图坐标—ROI特征坐标 出现小数,取整,第二次量化, 两次量化导致特征像素出现丢失和偏差。
ROI Align 技术
未引入量化操作,使用双线性插值方法来解决像素浮点数问题。
双线性插值方法:利用原图中的虚拟点四周的四个真实存在的像素值来共同决定目标图中的一个像素值,即20.56浮点数像素值的虚拟位置点对应的像素值估计出来。
4.FCN 语义分割详解
FCN算法思想:首先对图像进行卷积和池化,不断减小其feature map,然后进行反卷积操作,即进行插值操作,增大其feature map,最后对每一个像素值进行分类。
[1]参考博客https://blog.csdn.net/WZZ18191171661/article/details/79453780