当前最快的实例分割模型:YOLACT 和 YOLACT++

机器学习AI算法工程

共 3622字,需浏览 8分钟

 ·

2021-12-31 22:12

1f40ddf6e543ccd23984e6250c0db1e6.webp

向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx



YOLACT

  • YOLACT: Real-time Instance Segmentation


    https://arxiv.org/abs/1904.02689



这篇文章的目标是解决实例分割的实时性问题。通过在现有one-stage目标检测模型的基础上添加mask分支来解决这一问题。与Mask R-CNN等明显使用特征定位步骤(特征repooling)的方法不同,在YOLACT中并不存在这一步。

为了达到这一目的,作者将实例分割任务划分为两个更简单的平行任务,通过对这两个任务的结果进行融合来得到最终的实例分割结果。具体如下:

  • 第一分支:使用全卷积网络(FCN)作为分支来产生一些具有整个图像大小的“prototype masks”,这些prototype masks不与任何实例相关;

  • 第二分支:在目标检测分支的基础上添加额外的head,该head针对每一个anchor都预测一个掩膜系数(mask coefficients)。这些系数的作用是在prototype空间对某个实例的表示进行编码。

最后,在使用NMS得到所有的实例后,对其中的每一个实例都通过对上述两个分支的结果进行线性组合来得到所对应的掩膜。结构如下图所示:

c10d79703eb22a6234d3fb06af3711b2.webp


作者这么做的依据在于掩膜之间是空间相关的:例如相邻的两个像素更有可能属于同一个实例。卷积层很自然地利用了这一相关性,但全连接层没有。这会导致一个问题,对于one-stage目标检测器来说,其使用全连接层来针对每一个anchor输出类别预测和box系数,无法利用到掩膜的空间相关性;而类似于Mask R-CNN的two stages方法则使用额外的定位步骤(RoI-Align)来解决这一问题,定位步骤既保留了特征图中的空间相关性,也可以使用卷积运算得到掩膜输出。但是这一做法的代价是,定位层会引入额外的计算,降低算法的运行效率。

因而,将这一问题分为了两个平行的步骤:使用善于产生语义向量的全连接层来产生掩膜系数,而使用善于产生空间相关掩膜的卷积层来产生”prototype masks”。

Protonet由FCN构成,其最后一层输出k个通道,每一个通道对应一个类别的prototype mask。结构如下所示。

a92dc0c6a357e63e9c98cd7c5e3d7431.webp


2eaad570fc827a844a3ba9794cababdf.webp



接着,将上述两个步骤得到的prototype mask和掩膜系数做矩阵乘法,并使用Sigmoid进行激活,便可以得到最终的实例掩膜。


146afc708db11531cf4c26a9ff484ab2.webp



374ecdd36829bf3ed6a6cd76bf3d8c0c.webp


实验结果

8a4f3223f4285103bd61dfc62284beed.webp



ac1db05b589eaaecb01a628fac1c93f8.webp


在COCO上的对比结果:

cc4616497b1ff078976bc76c6c24ef39.webp



总结

大多数错误来自于目标检测部分:误分类、边界框误对准。但是,除此之外,掩膜生成算法部分也有两个典型的错误:

  • 定位失败:如果在一个场景中的某一个点上有着太多的目标,那么网络则无法在prototype中定位每一个目标。在这种情况下,网络将输出与前景掩膜更为接近的而不是这一组中的一些目标实例分割。

  • 泄露:该算法的裁剪步骤是在掩膜集成后进行的,因而无法过滤裁剪区域之外的噪声。当边界框是准确的时候,这一方法有着较好的效果,但当边界框不准确的时候,噪声将被裁剪进实例的掩膜中,导致裁剪区域之外的掩膜的泄露。同时,当预测的边界框太大时,掩膜中也会包含一些离得很远的实例掩膜。

  • 导致AP差距的原因:作者认为这一差距是由检测器相对差的性能所导致的,而不是产生masks的方法。


YOLACT  YOLACT++ 获取方式:

关注微信公众号 datayx  然后回复 实例分割 即可获取。

YOLACT++

  • YOLOACT++ Better Real-time Instance Segmentation

https://arxiv.org/abs/1912.06218


在YOLACT的基础上,作者进一步进行了如下修改,来得到一个准确度更高的实例分割模型。

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

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

  • 加入新的mask re-scoring支路。

最终,在MS COCO上,YOLACT++可以获得34.1mAP和33.5fps的成绩,其精度已经非常接近SOTA模型。

Fast Mask Re-Scoring分支

对于模型来说,其分类置信度和预测的掩膜的质量之间是存在差异的。为此,作者引入了一个fast mask re-scoring分支,该分支依据所预测的掩膜与ground-truth的IoU对掩膜进行评分。具体来说,Fast Mask Re-Scoring网络由6层FCN组成,每一层卷积层之后跟一层ReLU,最后一层为全局池化层。该网络以YOLACT所输出的裁剪过的mask(未经过阈值)为输入,输出mask对于每一个目标种类的IoU。接着,将分类分支预测的类别所对应的mask IoU与相对应的类别置信度的乘积作为该mask最终的分数。

与Mask Scoring R-CNN相比,作者提出的方法有以下不同:

  • 输入为全尺寸的图像的mask(预测框之外的区域值为0),而Mask Scoring R-CNN输入的是RoI repooled的掩膜与来自于掩膜预测分支的特征图所拼接得到的;

  • 没有全连接层,因而本方法更快,加入Fast Mask Re-Scoring分支后时间仅增加了1.2ms。

可变形卷积

通过加入可变形卷积,mAP提高了1.8,速度慢了8ms。作者认为性能提升的原因有以下几点:

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

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

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

7b2ac96fe163d4ee916ae3b873325cbe.webp


实验结果

下图为YOLACT和YOLACT++的实验结果对比:

e7b3115329df438924162261731eb376.webp


下表为加入改进措施后的性能提升:

da8e074a70e94fa83da025239e3ba396.webp


可变形卷积的不同插入位置的结果对比:

dee092f336872674fc4de4ef1d99d6c7.webp


机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码




阅读过本文的人还看了以下文章:


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  

浏览 25
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报