专栏首页CVer加州大学提出:实时实例分割算法YOLACT,可达33 FPS/30mAP!现已开源!

加州大学提出:实时实例分割算法YOLACT,可达33 FPS/30mAP!现已开源!

前戏

最近实例分割方向,出了很多paper,CVer也立即跟进报道(点击可访问):

本文要介绍一篇很棒的实时实例分割论文:YOLACT,该论文是由 加利福尼亚大学 提出。截止2019年4月16日,据Amusi所了解,上述MS R-CNN应该是实例分割(Instance Segmentation)mAP 最高的算法;而本文 YOLACT 是实例分割中最快的算法(即FPS最大)。难能可贵都是这两篇paper,都已经开源!

注:YOLACT应该是Amusi了解到的第一个又快又好的实例分割算法,如果你有发现比这两个算法还fancy的paper,欢迎后台留言进行补充。

简介

《YOLACT: Real-time Instance Segmentation》

arXiv: https://arxiv.org/abs/1904.02689

github: https://github.com/dbolya/yolact

作者团队:加利福尼亚大学

注:2019年04月05日刚出炉的paper

Abstract:我们提出了一个用于实时实例分割的简单全卷积模型,在单个Titan Xp上以33 fps在MS COCO上实现了29.8 mAP,这比以前的任何算法都要快得多。此外,我们只在一个GPU上训练后获得此结果。我们通过将实例分割分成两个并行子任务:(1)生成一组原型掩膜(prototype mask);(2)预测每个实例的掩膜系数(mask coefficients)。然后我们通过将原型与掩模系数线性组合来生成实例掩膜(instance masks)。我们发现因为这个过程不依赖于 repooling,所以这种方法可以产生非常高质量的掩模。此外,我们分析了 the emergent behavior of our prototypes,并表明他们学会以 translation variant manner 定位实例,尽管是完全卷积的。最后,我们还提出了快速NMS(Fast NMS),比标准NMS快12 ms,只有一点点性能损失。

正文

背景

先介绍一下为什么叫YOLACT,因为其全称为:You Only Look At CoefficienTs。这里应该是致敬YOLO。

原作者在论文中引用了YOLOv3中的这句话,“Boxes are stupid anyway though, I’m probably a true believer in masks except I can’t get YOLO to learn them.”

注:日常催更,YOLOv4该来了吧!

本文算法(YOLACT)

YOLACT的目标是将掩模分支添加到现有的一阶段(one-stage)目标检测模型,其方式与Mask R-CNN对 Faster-CNN 操作相同,但没有明确的定位步骤(如,feature repooling)。 为此,我们将实例分割的复杂任务分解为两个更简单的并行任务,这些任务可以组合以形成最终的掩码。第一个分支使用FCN生成一组图像大小的“原型掩码”(“prototype masks),它们不依赖于任何一个实例。 第二个向目标检测分支添加额外的 head 以预测用于编码原型空间中的实例表示的每个 anchor 的“掩模系数”(“mask coefficients)的向量。最后,对经过NMS后的每个实例,我们通过线性组合这两个分支的工作来为该实例构造掩码。

YOLACT将问题分解为两个并行的部分,利用 fc层(擅长产生语义向量)和 conv层(擅长产生空间相干掩模)来分别产生“掩模系数”和“原型掩模” 。 然后,因为原型和掩模系数可以独立地计算,所以 backbone 检测器的计算开销主要来自合成(assembly)步骤,其可以实现为单个矩阵乘法。 通过这种方式,我们可以在特征空间中保持空间一致性,同时仍然是一阶段和快速的。

1 原型生成(Prototype Generation)

本文将 protonet 实现为FCN,其最后一层有k个 channels(每个原型一个)并将其附加到 backbone 特征层

2 掩膜系数(Mask Coefficients)

典型的基于Anchor(anchor-based)的目标检测器在其预测 head 中具有两个分支:一个分支用于预测 c 类置信度(confidences),另一个分支用于预测 4 个边界框回归量。对于掩模系数预测,本文简单地添加并行的第三个分支,其预测 k 个掩模系数,一个对应于每个原型。因此,不是每个 anchor 产生4 + c个系数,而是产生4 + c + k

3 掩膜合成(Mask Assembly)

为了生成实例掩码,我们需要将原型分支和掩模系数分支进行合成,使用前者与后者的线性组合作为系数。这个运算可以由单个矩阵相乘完成:

其中,P是 h*w*k 的原型掩膜,C是 n*k 的掩膜系数。

4 YOLACT 检测器(Detector)

Backbone:ResNet-101 + FPN

Image Size:550*550

注:本文其实尝试了ResNet-101和DarkNet-53,这部分很好理解,backbone越轻量级,YOLACT运行速度越快,但mAP越低。不过使用ResNet-101就能达到33 FPS,真的很赞。

4 快速非极大值抑制(Fast NMS)

实验结果

YOLACT在COCO test-dev上的mAP和FPS,其中基于ResNet-101的YOLACT-550 比之前具有相同mAP的算法快了 3.8倍。

Fast NMS的有效性

YOLACT部分实例分割结果

本文分享自微信公众号 - CVer(CVerNews),作者:Amusi

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • YOLACT++:更强的实时实例分割网络,可达33.5 FPS/34.1mAP!

    近期推出的实例分割(Instance Segmentation)论文很多,有时间 Amusi 出一期:一文看尽实例分割系列。同时值得关注的实例分割论文也很多,比...

    Amusi
  • [计算机视觉论文速递] 2018-07-10 CVPR GAN专场1

    这篇文章有 2篇论文速递,都是生成对抗网络GAN方向(CVPR 2018),一篇解决为前景目标找到逼真的几何校正的问题,使得它在合成到背景图像中时看起来很自然,...

    Amusi
  • GTA 5真香!哦不,我在用深度学习做自动驾驶

    用深度学习当「外挂」,本文将教你如何用 PyTorch 在GTA 5 中训练自动驾驶模型。

    Amusi
  • 安全测试通用用例

    如:https://walmon-competition.gz.cvte.cn/competition_api/admin/v1/user/role_user_...

    小菠萝测试笔记
  • 看看你是哪种级别的Python程序员(已跪)

    同一个问题 不同层次的Python程序员 编出的Python代码 编程新手 def factorial(x): if x == 0: ret...

    量化投资与机器学习微信公众号
  • 程序员的进化

    程序员的进化   不久前,在互联网上出现了一篇有趣的文章,讲的是对于同一个问题,不同层次的程序员编出的Python代码显示出了不同的风格,代码都很简单,有趣。我...

    用户1289394
  • Django 2.1.7 form处理select下拉菜单

    在开发的过程,会有很多form表单需要select下拉菜单的枚举类设置,如果一个个在前端中写死是很不合理的。应该要在models数据模型设置的时候就直接配置好,...

    Devops海洋的渔夫
  • H3C三层交换机之IRF虚拟化技术详解及配置

    一、IRF是什么? 目前,网络中主要存在两种结构的通信设备,固定盒式设备和模块框式分布式设备。固定盒式设备成本低廉,但没有高可用性支持;模块框式分布式设备具有高...

    小手冰凉
  • 寺库迟到的财报:盈利成为过去式

    在2020年第一季度里,作为奢侈品电商老大哥的寺库并不好过,原本难熬的日子在疫情里更是雪上加霜。财报数据显示,在2020年第一季度里,寺库实现营收为10.05亿...

    刘旷
  • 从MySQL的ibtmp1文件太大说起

    测试环境机器磁盘空间不足的告警打破了下午的沉寂,一群人开始忙活着删数据。但是,不久前刚清理了一波数据,测试环境在没做压测的情况下不至于短短一个月不到就涨了200...

    July

扫码关注云+社区

领取腾讯云代金券