YOLACT: Real-time Instance Segmentation

paper
https://arxiv.org/abs/1904.02689
git
https://github.com/dbolya/yolact
目的:
像maskrcnn->fastrcnn,在单阶段检测算法上增加分割。

0 效果

在这里插入图片描述
在这里插入图片描述

19年最新的CVPR,目前达到实时级别,~30fps。训练时只是用了一个GPU titanxp.
精度跟MS RCNN差的比较多,10左右。
同样精度时,比maskrcnn快3.8倍左右。

1 创新点

1 解决分割的新的分两步方法。

在单阶段识别基础上,将分割任务划分为两个子任务:what 和where.
where:在一张图上(并不像maskrcnn使用ROIPOOING带来质量损失)产生一系列prototypes,
what:预测每个实例预测掩膜mask的线性结合系数。(该方法能够自主的定位实例位置,同时这些mask类别上独立,因此可以在类间共享)
在这里插入图片描述
2.提出了Fast NMS
带来12ms的提速,以非常小的精度损失。

在这里插入图片描述

同时做了很多speed vs performance对比实验

  • backbone (resnet50,101,darknet53 ) 图像分辨率(400 550 700)

在这里插入图片描述

  • prototype数量
    在这里插入图片描述
  • 速度
    在这里插入图片描述在这里插入图片描述
    其中,fc-mask是掩膜输出使用fc层的模型,为了证明使用FCN网络的protonet作为掩膜预测的有效性(FCN具有空间特性,而fc适合输出cls和bbox系数)。

2 相关工作

实例分割也分为单阶段(6,22,4)和两阶段(MASK MASKSCORING ),间接方式一般先语义分割随后边界检测、像素聚类或学习形成实例掩膜,是多阶段往往包含大量的聚类过程。
而能达到实时性的往往效果较差。
Box2pix在 KITTI 、Cityscape数据集上能够达到35fps,11fps,但是在多类目标上的迁移性较差。
综上,mask 仍然很牛掰。

对于prototype,是文本和可视词这类文本处理的方法,利用稀疏性和位置先验。现在扩展到视觉领域,表征特征。(prototype的稀疏性是指??)
本文prototype不是针对整个数据集学习,而是对每个实例图片。

3 YOLACT

增加两个分支
1.使用全卷积网络产生原图尺寸的prototype masks ,并不依赖于某个实例。FCN可以有更好的空间相关性。
2.在检测网络上增加head,利用fc层为每个锚点预测mask系数向量,该向量对prototype空间中的实例(个人理解更像是被检测网络中挑出来的)进行编码。fc层能更好产生语义向量。

最后,对经过NMS筛选出来的实例通过线性组合两个分支生成掩膜。

3.1 prototype生成(protonet)

protonet= FCN -->k channels prototype masks
在这里插入图片描述
P3出来尺寸69*69*256(FPN最大尺寸最底层的输出,可以有更好的鲁棒性),两个3*3卷积后,upsample一倍(到原图的1/4,高分辨率可以提高掩膜质量和小目标检测效果),最后是1*1×k卷积接RELU(响应值不设边界,更有利用表征特征,比如指出背景位置)。
中间用的什么激活函数需要看code,看过的可以解答:

3.2 mask coefficients

在这里插入图片描述
在这里插入图片描述
经过FPN第Pi层输出,除了两个预测类别c和边界框4的分支,增加了mask系数预测分支k个,对应k个prototpyes.所以对于每个锚点预测c+4+k个值。Pi层共a个锚点。
为了保证非线性,需要能够减掉prototype。否则不能生成掩膜。(跟非线性什么关系??)
kmask 系数分支使用tanh,在没有非线性下输出更加稳定。?(跟谁比较?)

3.3 mask assembly

为了产生最终的mask,将二者结合。

在这里插入图片描述
利用次公式计算输出。
其中P是prototypes尺度HWk,
C是mask coefficients尺度n*k,其中n是n个实例结果(经过NMS和score thresh后的)
最后sigmod非线性输出。

此处线性组合保证简洁快速。

loss

cls 和box是SSD的
mask是二值交叉熵损失BCE(M,Mgt)

小目标crop

为保存在prototype中的小目标
测试时候用bbox裁剪,
训练时候真值框代替裁剪,并通过真值框区域划分Lmask??
(有小目标判断?怎么划分loss mask)

backbone

因为两个分支网络都难train,速度特征丰富度都要考虑、检测器在Retinanet思路上强调速度。
并没有使用retinanet的focal loss,而是用的OHEM

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Deep Snake是一种用于实时实例分割的算法。它基于深度学习技术,通过对图像中的每个像素进行分类,实现对目标物体的精确分割。Deep Snake算法具有高效性和准确性,可以应用于许多领域,如自动驾驶、医学影像分析等。 ### 回答2: DeepSnake是一个用于实时实例分割的新型神经网络模型。与传统的基于卷积神经网络(CNN)的实例分割方法不同,DeepSnake使用自适应的密集曲线组件,来更好地关注目标对象的形状特征,从而实现更精确的分割结果。 DeepSnake的设计基于一种称为“变形回归”的曲线回归方法。该方法使用两个CNN分支,来分别处理图像区域和曲线参数,然后将它们组合起来进行端到端的训练。其中,图像分支出自用于目标检测任务的ResNet,而曲线分支则采用了U-Net结构。 DeepSnake的优点在于可以克服目标形状多样性和大小变化等问题,能够适应各种不同的数据集,并且在计算效率上具有很高的实时性。与一些竞争的实例分割算法相比,DeepSnake在准确率和速度上都有不错的表现。在PASCAL VOC 2012和COCO 2017数据集上测试,DeepSnake的性能超过了相同条件下的大多数算法,同时具有更低的计算成本。 总之,DeepSnake为实时实例分割任务提供了一种创新的方法,可以应用于许多领域,如智能监控、自动驾驶和机器人导航等。 ### 回答3: Deep Snake是一种用于实时实例分割的新型神经网络架构,由来自华盛顿大学的研究团队开发。与目前主流的神经网络架构Mask R-CNN相比,Deep Snake的优势在于能够更加准确地分割物体,同时在速度和计算资源消耗方面表现更好。 具体来说,Deep Snake使用了一种名为“蛇形控制器”的新型机制来协调具有各自目标的多个神经元。这种机制使得网络在提取图像中物体的轮廓信息时更加准确。Deep Snake还采用了特殊的分组卷积层,用于在不同的尺度上提取特征,以更好地分割物体。 此外,Deep Snake还可以使用相对较少的内存和计算资源,快速运行实例分割任务。研究者使用COCO数据集进行了实验,结果表明Deep Snake在准确率和速度方面都优于Mask R-CNN。在单个Nvidia 1080Ti GPU上,Deep Snake可以实现每秒5.7帧的实时实例分割,准确率高达33.6%。 总的来说,Deep Snake是一种非常有潜力的神经网络架构,可用于实时实例分割。它不仅可以提高准确性,还可以节省计算资源和实现更快的运行速度。未来,深度学习的研究者将继续探索和改进这种架构,以满足不断发展的实时实例分割需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值