0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

算法 | 超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法

WpOh_rgznai100 来源:YXQ 2019-06-11 10:34 次阅读

在论文《YOLACT:Real-time Instance Segmentation》中,作者提出了一种简洁的实时实例分割全卷积模型,仅使用单个 Titan Xp,以 33 fps 在MS COCO 上实现了 29.8 的 mAP,速度明显优于以往已有的算法。而且,这个结果是就在一个 GPU 上训练取得的!

引言

一开始,作者提出了一个疑问:创建实时实例分割算法需要什么?

在过去的几年中,在实例分割方向取得了很大进展,部分原因是借鉴了物体检测领域相关的威廉希尔官方网站 。比如像 mask RCNN 和 FCIS 这样的实例分割方法,是直接建立在像Faster R-CNN 和 R-FCN 这样的物体检测方法之上。然而,这些方法主要关注图像性能,而较少出现 SSD,YOLO 这类关注实时性的实例分割算法。因此,本文的工作主要是来填补这一空白。SSD 这类方法是将 Two-Stage 简单移除成为 One-Stage 方法,然后通过其它方式来弥补性能的损失。而这类方法在实例分割领域扩充起来却并不容易,由于 Two-Stage 的方法高度依赖于特征定位来产生 mask,而这类方法不可逆。而 One-Stage 的方法,如 FCIS,由于后期需要大量的处理,因此也达不到实时。

YOLACT 介绍

基于此,作者在这项研究中提出一种放弃特征定位的方法——YOLACT(You Only Look At CoefficienTs)来解决实时性问题。

YOLACT 将实例分割分解为两个并行任务:(1)在整副图像上生成非局部原型 mask 的字典;(2)为每个实例预测一组线性组合系数。 从这两部分内容生成全图像实例分割的想法简单:对于每个实例,使用预测的系数线性组合原型,然后用预测边界框来 crop。作者通过这种方式来让网络学会如何定位实例mask本身,这些在视觉上,空间上和语义上相似的实例,在原型中却不同。

作者发现,由于这个过程不依赖于 repooling,因此此方法可以产生高质量和高动态稳定性的 masks。尽管本文使用了全卷积网络实现,但模板 mask 可以自己在具有平移变换情况下对实例进行定位。最后,作者还提出了 Fast NMS,这比标准 NMS 的快12ms,并且性能损失很小。

这种方法有是三个优点:第一,速度非常快。第二,由于没使用类似“repool”的方法,mask的质量非常高。第三,这个想法可以泛化。生成原型和mask系数的想法可以添加到现有的目标检测的算法里面。

算法

算法介绍

为了提高实例分割的速度,作者提出了一种快速、单阶段的实例分割模型——YOLACT。主要思想是将 Mask 分支添加到单阶段目标检测框架中。因此,研究人员将实例分割任务分解为两个更简单的并行任务,将其组合以形成最终的 Mask。YOLACT 的网络结构图如下图所示。

作者将实例分割的复杂任务分解为两个更简单的并行任务,这些任务可以组合以形成最终的 mask。 第一个分支使用 FCN 生成一组图像大小的“原型掩码”(prototype masks),它们不依赖于任何一个实例。第二个是给目标检测分支添加额外的 head ,用于预测每个 anchor 的“掩码系数”(mask coefficients)的向量,其中 anchor 是在编码原型空间中的实例表示。最后,对经过NMS后的每个实例,本文通过线性组合这两个分支来为该实例构造mask。

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

原型生成

原型生成分支是预测整个图像的一组K个原型 mask。采用 FCN 来实现protonet ,其最后一层有 k 个 channels(每个原型一个)并将其附加到 backbone 特征层。

掩码系数(mask coefficients)

在实验中,YOLACT 为每个Anchor预测(4+C+k)个值,额外 k 个值即为 mask系数。另外,为了能够通过线性组合得到 mask,很重要的一步是从最终的mask 中减去原型 mask。换言之,mask 系数必须有正有负。所以,在 mask系数预测时使用了 tanh 函数进行非线性激活,因为 tanh 函数的值域是(-1,1)。

合成Mask

为了生成实例掩模,通过基本的矩阵乘法配合 sigmoid 函数来处理两分支的输出,从而合成 mask。

其中,P 是 h×w×k 的原型 mask 集合;C 是 n×k 的系数集合,代表有 n 个通过 NMS 和阈值过滤的实例,每个实例对应有 k 个 mask 系数。

Loss 设计:Loss 由分类损失、边界框回归损失和 mask 损失三部分组成。其中分类损失和边界框回归损失同 SSD,mask 损失为预测 mask 和 ground truth mask 的逐像素二进制交叉熵。

Mask 裁剪:为了改善小目标的分割效果,在推理时会首先根据检测框进行裁剪,再阈值化。而在训练时,会使用 ground truth 框来进行裁剪,并通过除以对应 ground truth框面积来平衡 loss 尺度。

Emergent Behavior

在实例分割任务中,通常需要添加转移方差。在 YOLACT 中唯一添加转移方差的地方是使用预测框裁剪 feature map 时。但这只是为了改善对小目标的分割效果,作者发现对大中型目标,不裁剪效果就很好了。

Backbone 检测器

因为预测一组原型 mask 和 mask 系数是一个相对比较困难的任务,需要更丰富更高级的特征,所以在网络设计上,作者希望兼顾速度和特征丰富度。因此,YOLACT 的主干检测器设计遵循了 RetinaNet 的思想,同时更注重速度。 YOLACT 使用 ResNet-101 结合 FPN 作为默认主干网络,默认输入图像尺寸为550×550,如上图所示。使用平滑-L1 loss 训练 bounding box 参数,并且采用和 SSD 相同的 bounding box 参数编码方式。 使用 softmax 交叉熵训练分类部分,共(C+1)个类别。同时,使用 OHEM 方式选取训练样本,正负样本比例设为 1:3. 值得注意的是,没有像 RetinaNet 一样采用 focal loss。

快速 NMS(fast NMS)

a.对每一类的得分前 n 名的框互相计算 IOU,得到 C*n*n 的矩阵X(对角矩阵),对每个类别的框进行降序排列。

b.其次,通过检查是否有任何得分较高的框与其 IOU 大于某个阈值,从而找到要删除的框,通过将 X 的下三角和对角区域设置为 0 实现。这可以在一个批量上三角中实现,之后保留列方向上的最大值,来计算每个检测器的最大 IOU 矩阵 K。

c.最后,利用阈值 t(K

论文实验

作者在 MS COCO 的 test-dev 数据集上对 YOLACT 和目前最好的方法进行了性能对比。本文的关注点在于速度的提升,且所有实验都是在 Titan Xp 上进行的,故一些结果和原文中的结果可能略有不同。

实验来验证本文模型在不同大小输入图像情况下的性能。除了基本的 550×550 模型,还有输入为 400×400 和 700×700 的模型,相应地也调整了 anchor 的尺寸(sx=s550/550*x s)。降低图像大小会导致性能的大幅度下降,这说明越大的图像进行实例分割的性能越好,但提升图像尺寸带来性能提升的同时会降低运行速度。

当然作者还做了关于 Mask 质量与视频动态稳定性相关的对比实验,并详细分析了优劣缘由。详见论文。

总结

YOLACT 网络的优势:快速,高质量的 mask,优良的动态稳定性。

YOLACT 网络的劣势:性能略低于目前最好的实例分割方法,很多由检测引起的错误,分类错误和边界框的位移等。

此外,作者最后还提到了该方法的一些典型错误:

1)定位误差:当场景中一个点上出现多个目标时,网络可能无法在自己的模板中定位到每个对象,此时将会输出一些和前景 mask 相似的物体,而不是在这个集合中实例分割出一些目标。

2)特征泄露(Leakage):网络对预测的集成 mask 进行了裁剪,但并未对输出的结果进行去噪。这样一来,当b-box 准确的时候,没有什么影响,但是当 b-box 不准确的时候,噪声将会被带入实例 mask,造成一些“泄露”。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4744

    浏览量

    129016
  • 算法
    +关注

    关注

    23

    文章

    4615

    浏览量

    93005

原文标题:超Mask RCNN速度4倍,仅在单个GPU训练的实时实例分割算法 | 威廉希尔官方网站 头条

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    华为云 Flexus X 实例部署安装 Jupyter Notebook,学习 AI,机器学习算法

    前言 由于本人最近在学习一些机器算法,AI 算法的知识,需要搭建一个学习环境,所以就在最近购买的华为云 Flexus X 实例上安装了学习环境,Jupyter Notebook。没想到效果格外
    的头像 发表于 01-02 13:43 87次阅读
    华为云 Flexus X <b class='flag-5'>实例</b>部署安装 Jupyter Notebook,学习 AI,机器学习<b class='flag-5'>算法</b>

    GPU是如何训练AI大模型的

    在AI模型的训练过程中,大量的计算工作集中在矩阵乘法、向量加法和激活函数等运算上。这些运算正是GPU所擅长的。接下来,AI部落小编带您了解GPU是如何训练AI大模型的。
    的头像 发表于 12-19 17:54 146次阅读

    PyTorch GPU 加速训练模型方法

    在深度学习领域,GPU加速训练模型已经成为提高训练效率和缩短训练时间的重要手段。PyTorch作为一个流行的深度学习框架,提供了丰富的工具和方法来利用
    的头像 发表于 11-05 17:43 576次阅读

    为什么ai模型训练要用gpu

    GPU凭借其强大的并行处理能力和高效的内存系统,已成为AI模型训练不可或缺的重要工具。
    的头像 发表于 10-24 09:39 330次阅读

    神经网络如何用无监督算法训练

    标记数据的处理尤为有效,能够充分利用互联网上的海量数据资源。以下将详细探讨神经网络如何用无监督算法进行训练,包括常见的无监督学习算法训练过程、应用及挑战。
    的头像 发表于 07-09 18:06 833次阅读

    神经网络反向传播算法的优缺点有哪些

    神经网络反向传播算法(Backpropagation Algorithm)是一种广泛应用于深度学习和机器学习领域的优化算法,用于训练多层前馈神经网络。本文将介绍反向传播算法的优缺点。
    的头像 发表于 07-03 11:24 1056次阅读

    基于神经网络的呼吸音分类算法

    分类器、呼吸(或异常)分类器和某种称为MASK的注意力。该模型的示意图如图1所示。 首先,在模型训练之前,将每个声音样本分割在长度相等的帧上。对于声音样本只有一个异常标签,对于每个帧只有一个噪声标签
    发表于 05-31 12:05

    算法系列:彩色转灰度

    实际上是一样的:3与4、7与8、10与11、13与14、19与20。 所以16位运算下最好的计算公式是使用7位精度,比先前那个系数缩放100的精度高,而且速度快: Gray = (R*38
    发表于 05-22 19:02

    K折交叉验证算法训练

    K折交叉验证算法训练
    的头像 发表于 05-15 09:26 579次阅读

    进一步解读英伟达 Blackwell 架构、NVlink及GB200 超级芯片

    Blackwell GPU,标志着 AI 超级计算的一次重大进步。这种独特的配置显著减少传统网络扩展时 的通信开销,使得对 1.8T 参数的模型进行实时推理成为可能,同时将模型训练速度
    发表于 05-13 17:16

    AI训练,为什么需要GPU

    随着由ChatGPT引发的人工智能热潮,GPU成为了AI大模型训练平台的基石,甚至是决定性的算力底座。为什么GPU能力压CPU,成为炙手可热的主角呢?要回答这个问题,首先需要了解当前人工智能(AI
    的头像 发表于 04-24 08:05 1075次阅读
    AI<b class='flag-5'>训练</b>,为什么需要<b class='flag-5'>GPU</b>?

    科技驱动未来,提升AI算力,GPU扩展正当时

    GPU可以大幅缩短AI算法训练和推断时间,从而节省时间和成本
    的头像 发表于 04-16 18:22 974次阅读
    科技驱动未来,提升AI算力,<b class='flag-5'>GPU</b>扩展正当时

    计算机视觉领域的十大核心威廉希尔官方网站 算法

    图像分割算法是计算机视觉领域的基础算法之一,它的主要任务是将图像分割成不同的区域或对象。常见的图像分割
    发表于 02-25 09:38 1038次阅读

    计算机视觉的十大算法

    视觉威廉希尔官方网站 的发展起到了重要的推动作用。一、图像分割算法图像分割算法是计算机视觉领域的基础算法之一,它的主要任务是将图像
    的头像 发表于 02-19 13:26 1257次阅读
    计算机视觉的十大<b class='flag-5'>算法</b>

    gpu服务器评测

    随着科技的不断发展和进步,GPU服务器在大数据分析、深度学习、人工智能等领域正变得越来越重要。而GPU服务器因其出色的性能和高度定制化的优势,成为了众多企业和研究机构的首选。本文将从不同角度对
    的头像 发表于 01-10 10:37 1424次阅读