YOLACT++:Better Real-time Instance Segmentation
yolactplusplus 通过引入可变形卷积、使用更多的 anchor、重新生成的 Mask scoreing 分支等措施,改进了 yolact 模型
什么是 yolactplusplus ?
- YOLACT 主要是通过两个并行的子网络来实现实例分割的。(1) Prediction Head 分支生成各个 anchor 的类别置信度、位置回归参数以及 mask 的掩码系数;(2) Protonet 分支生成一组原型 mask。然后将原型 mask 和 mask 的掩码系数相乘,从而得到图片中每一个目标物体的 mask
- yolactplusplus 通过引入可变形卷积、使用更多的 anchor、重新生成的 Mask scoreing 分支等措施,改进了 yolact 模型
yolactplusplus 的网络结构?
- Featrue Backbone&Featrue Pyramid:使用 ResNet101 提取图片特征,并引入可变形卷积,然后使用 FPN 结构进行特征融合
- prototypes:从 P3 级别的特征生成全局的 prototype mask (138,138,32),这里固定是 32 个 mask,后续所有实例的 mask 是这 32 个 mask 的线性组合
- Predict Head:基于 anchor 预测目标的类别、位置和 Mask coefficients,其中 Mask coefficients 是每个 anchor 预测长度为 32 的向量,用于加权 prototypes,得到当前 anchor 的 mask 预测
- corp&Threashold:根据定位结果和 Mask 预测结果,裁剪目标区域,并使用二值化求得目标的 Mask
- Mask Re-Scoring:受MS R-CNN的启发,高质量的mask并不一定就对应着高的分类置信度,换句话说,以包围框得分来评价mask好坏并不合理,所以在模型后添加了Mask Re-Scoring分支,该分支使用YOLACT生成的裁剪后的原型mask(未作阈值化)作为输入,输出对应每个类别的GT-mask的IoU
yolactplusplus 的 Fast Mask Re-Scoring 分支?
- 受MS R-CNN的启发,高质量的mask并不一定就对应着高的分类置信度,换句话说,以包围框得分来评价mask好坏并不合理,所以在模型后添加了Mask Re-Scoring分支,该分支使用YOLACT生成的裁剪后的原型mask(未作阈值化)作为输入,输出对应每个类别的GT-mask的IoU
yolactplusplus 的 Prediction Head?
- YOLACT 是 anchor-based 的,yolactplusplus对 anchor 设计进行优化。经过实验,选择在每个 FPN 层上乘3种大小,相当于anchor数量较原来的YOLACT增加了3倍
yolactplusplus 的可变形卷积?
- 参考Deformable ConvNets v2的思路,将ResNet的C3-C5中的各个标准3x3卷积换成3x3可变性卷积,但没有使用堆叠的可变形卷积模块,因为延迟太高
yolactplusplus 与 yolact 的区别?
- yolactplusplus 通过引入可变形卷积、使用更多的 anchor、重新生成的 Mask scoreing 分支等措施,改进了 yolact 模型,yolactplusplus 效果越来越好,但是速度变慢了
yolactplusplus 与 Mask RCNN 的区别?
- YOLACT++直接使用全尺寸的 mask 作为 scoring 分支的输入,而 MS R-CNN 使用的是 ROI Align 后的特征再与其经过 mask 预测分支计算后的特征拼接后的组成的特征
- YOLACT++的scoring分支没有使用FC层,这使得分割的速度提高
参考: