SOLOv2:Dynamic and Fast Instance Segmentation
SOLOv2是在SOLO的基础上设计的网络,主要是将mask预测分支解耦成掩码核预测(Mask kernel branch)和掩码特征学习(Mask feature branch),分别负责生成卷积核和需要卷积的特征映射,使得mask分支生成速度更快,最后也提出Matrix-nms快速过滤结果
什么是 SOLOv2?
- 在 SOLOv1 的基础上,通过重新设计 Mask 预测分支实现效果提升
- SOLOv 2 的 Mask 分支改进思路是将 Mask 分支解藕成掩码核预测(Mask kernel branch)和掩码特征学习(Mask feature branch),分别负责生成卷积核和需要卷积的特征映射
- 另一个创新是使用矩阵非最大值抑制(NMS)技术显著减少了推理运算的开销
SOLOv2 的网络结构?
- 继承 SOLOv1 的网络结构,将 Mask 分支解藕成掩码核预测(Mask kernel branch)和掩码特征学习(Mask feature branch),分别负责生成卷积核和需要卷积的特征映射
SOLOv2 的动态实例分割?
- 已知 SOLOv1 从 FCN 的特征直接生成 SxS 个 Mask 预测结果,而 SOLOv2 不直接生成掩码预测结果,而是生成掩码核预测(Mask kernel branch)和掩码特征学习(Mask feature branch),分别负责生成卷积核和需要卷积的特征映射
- 上图 G 表示生成的掩码核、F 表示掩码特征,假设需要计算 位置的掩码预测,从 G 中取出对应位置 (i, j)处的值作为卷积核,然后去和 F 做卷积运算,得到的就是掩码预测结果
- Mask kernel G:已知卷积核的通用大小表达形式是 ,其中 是输入输出通道数,由于 F 的特征长度已知 E,即 ,假定输出通道 ,那么当 G 使用 1x 1 卷积时,D=E 满足卷积核大小,当 G 使用 3 x 3 卷积时,D=9E 满足卷积核大小
- Mask Feature F:将所有的 FPN 层融合到 1/4 Mask,作为 Mask 特征分支
SOLOv2 的损失函数?
- 损失函数包含 2 部分,一部分是类别预测、一部分是实例 mask 预测
- 实例 mask 预测使用 Dice loss ,即计算每个正样本对应 mask 的 Dice loss,然后取平均值
参考: