问题描述:
剖析一下Mask R-CNN获得实例分割的这三个步骤。第一步,利用先验框获得建议框。第二步,利用建议框获得预测框。第三步,利用预测框获得语义分割结果。
问题解答:
-
生成建议框(Region Proposal):
- 使用特征金字塔网络(FPN)提取多尺度的特征图。
- 在特征图上使用区域提议网络(RPN)生成一系列候选建议框。这些建议框通常是在不同尺度上提出的,并具有不同的长宽比。
-
生成预测框(RoI Align):
- 将生成的建议框传递给 RoI Align 层,使用 RoI Align 对每个建议框内的特征图进行精准的区域提取。这里使用 RoI Align 以避免空间精度损失。
- 通过 RoI Align 提取的特征图,进行目标分类和边界框回归。这一步与 Faster R-CNN 类似,预测每个建议框的类别和位置。
-
生成语义分割结果(Mask 分支):
- 在每个建议框上,引入一个额外的分支,即 Mask 分支。
- Mask 分支包括一个全卷积网络,用于生成每个像素的类别概率分布,表示该像素属于哪个类别。
- 同时,Mask 分支还包括一个二进制掩模预测网络,用于生成每个实例的掩模,表示实例的精确轮廓。
- 这个过程导致在每个建议框上获得像素级别的语义分割结果,形成实例的二进制掩模。
通过这三个步骤,Mask R-CNN 实现了同时进行目标检测和实例分割的任务。建议框生成了候选区域,预测框完成了目标分类和边界框回归,而语义分割结果由 Mask 分支生成,提供了每个实例的精确掩模。这使得 Mask R-CNN 在图像中同时获得目标检测和实例分割的结果。