【实例分割】YOLACT++:Better Real-time Instance Segmentation论文详解

目录

🏆论文下载:paper

🏆代码下载 :code

🏆YOLACT论文解析:YOLACT

🍉🍉1.YOLACT++与YOLACT区别

🌷🌷2.摘要

🍋🍋3.创新点

3.1可变形卷积

3.2快速的mask重新计算网络结构

3.3优化预测头

🍇🍇4.结果对比

4.1YOLACT与YOLACT++识别效果对比

4.2YOLACT与YOLACT++精度对比 

​编辑

4.3YOLACT++识别效率对比​编辑

🍓🍓5.YOLACT++ configs代码


🏆论文下载:paper

🏆代码下载 :code

🏆YOLACT论文解析:YOLACT


🍉🍉1.YOLACT++与YOLACT区别

首先来看下YOLACT++区别于YOLACT的地方是什么?

  1. 在backbonde网络中加入可变形卷积(deformable convolutions);

  2. 使用更好的anchor尺度和比例对prediction head进行优化;

  3. 加入新的mask re-scoring支路。

        看下原版的YOLACT的网络结构:

🌷🌷2.摘要

        我们为实时(> 30 fps)实例分割提供了一个简单的全卷积模型,该模型在单个Titan Xp上评估的MS COCO上取得了SOTA结果,这比以前的任何最新的方法都快得多。此外,我们仅在一个GPU上训练后即可获得此结果

        我们通过将实例分割分为两个并行的子任务来完成此任务:(1)生成一组原型(prototype) masks,以及(2)预测每个实例的mask 系数。然后,我们通过将原型与模板系数线性组合来生成实例 masks。我们发现,由于此过程不依赖于 repooling,因此此方法可产生非常高质量的masks。

        此外,我们分析了 prototype 的 emergent 行为,并显示了它们是完全卷积的。我们还提出了快速NMS,这是对标准NMS的12毫秒快速替代,仅会有点影响性能。最后,通过将可变形(deformable)卷积合并到骨干网络中,使用更好的 anchor 尺度和长宽比优化预测head,并添加新颖的快速 masks 重新评分分支,我们的YOLACT ++模型可以在MS COCO上以33.5 FPS的实现34.1 mAP

🍋🍋3.创新点

3.1可变形卷积

        通过给骨干网络加入可变形卷积,具体实现方式是在resnet的C3-C5过程中,将原始3*3卷积替换成3*3可变形卷积。结果导致mAP提高了1.8,速度慢了8ms。作者认为性能提升的原因有以下几点:

  • 通过和目标实例进行对准,使得网络可以处理不同尺度、旋转角度和比例的实例;

  • YOLACT本身没有再采样策略,因而一个更好、更灵活的采样策略更重要。

同时作者发现,在引入可变形卷积时需要选择合适的插入位置才能取得性能的提升。

PS:在 COCO 上,34.1 mAP,速度高达 33.5 FPS! 

3.2快速的mask重新计算网络结构

        Mask 评分分支由6个具有ReLU非线性的卷积层和1个全局池化层组成。由于没有特征级联,也没有fc层,因此速度开销仅为〜1 ms。

        这种结构受到 Mask Scoring R-CNN 的启发,发现模型的分类置信度和预测掩模质量存在差异(即更高质量的掩模分割不一定具有更高的类别置信度)。 因此,为了更好地关联掩模质量的班级信心,掩模评分 R-CNN像Mask R-CNN 添加了一个新模块,用于学习回归预测掩模与其掩模与真实值的IoU。

        根据掩模 IoU 重新计算预测掩模具体来说,我们的快速掩模重新评分网络是每个卷积层具有 ReLU 非线性的 6 层 FCN,以及最终的全局池化层。 它以 YOLACT 的裁剪掩膜作为输入预测(阈值化之前)并输出每个对象类别的掩模 IoU。我们通过分类头预测的类别的预测掩码 IoU 与相应的分类置信度之间的乘积来重新评分每个掩码。

3.3优化预测头

        YOLACT是基于anchor-base检测器的,因此选择正确的anchor超参数是很重要的,作者尝试了两种策略:

  1. 保持anchor尺度不变,增加比例数量:[1,1/2,2]到[1,1/2,2,1/3,3]
  2. 保持比例不变,将每个FPN等级的尺度数量增加3倍

        以上两种方法均可以增加anchor数量。

🍇🍇4.结果对比

4.1YOLACT与YOLACT++识别效果对比

4.2YOLACT与YOLACT++精度对比 

4.3YOLACT++识别效率对比

🍓🍓5.YOLACT++ configs代码

# ----------------------- YOLACT++ CONFIGS ----------------------- #

yolact_plus_base_config = yolact_base_config.copy({
    'name': 'yolact_plus_base',

    'backbone': resnet101_dcn_inter3_backbone.copy({
        'selected_layers': list(range(1, 4)),

        'pred_aspect_ratios': [ [[1, 1/2, 2]] ]*5,
        'pred_scales': [[i * 2 ** (j / 3.0) for j in range(3)] for i in [24, 48, 96, 192, 384]],
        'use_pixel_scales': True,
        'preapply_sqrt': False,
        'use_square_anchors': False,
    }),

    'use_maskiou': True,
    'maskiou_net': [(8, 3, {'stride': 2}), (16, 3, {'stride': 2}), (32, 3, {'stride': 2}), (64, 3, {'stride': 2}), (128, 3, {'stride': 2}), (80, 1, {})],
    'maskiou_alpha': 25,
    'rescore_bbox': False,
    'rescore_mask': True,

    'remove_small_gt_mask': 5*5,
})

yolact_plus_resnet50_config = yolact_plus_base_config.copy({
    'name': 'yolact_plus_resnet50',

    'backbone': resnet50_dcnv2_backbone.copy({
        'selected_layers': list(range(1, 4)),

        'pred_aspect_ratios': [ [[1, 1/2, 2]] ]*5,
        'pred_scales': [[i * 2 ** (j / 3.0) for j in range(3)] for i in [24, 48, 96, 192, 384]],
        'use_pixel_scales': True,
        'preapply_sqrt': False,
        'use_square_anchors': False,
    }),
})

整理不易,欢迎一键三连!!!


送你们一条美丽的--分割线--

🌷🌷🍀🍀🌾🌾🍓🍓🍂🍂🙋🙋🐸🐸🙋🙋💖💖🍌🍌🔔🔔🍉🍉🍭🍭🍋🍋🍇🍇🏆🏆📸📸⛵⛵⭐⭐🍎🍎👍👍🌷🌷

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zy_destiny

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值