精华内容
下载资源
问答
  • 实例分割

    2020-05-14 15:52:46
    如何从边缘优化改进实例分割

    陈昊-CVPR2020 BlendMask:高质高效的实例分割模型

     

     

     

    对象检测到实例分割:学习应用几种算法

     

     

     

    如何从边缘优化改进实例分割?

     

     

     

     

     

     

     

     

     

     

    展开全文
  • 实例分割任务实例分割任务比语义分割任务更有挑战性,因为它在保证语义分割的同时,还要将图中的所有目标物单独分割出来。集合中任意图片中的目标所属的语义分类标签集合是固定的、确定的,但是实例的数量却是变化的...

    5b34618ec589a645431c4092b1470ea4.png

    实例分割任务

    实例分割任务比语义分割任务更有挑战性,因为它在保证语义分割的同时,还要将图中的所有目标物单独分割出来。

    集合中任意图片中的目标所属的语义分类标签集合是固定的、确定的,但是实例的数量却是变化的。因此语义分割任务可以轻松建模成“密集逐像素分类任务”,而实例分割不能这么做。

    主流实例分割方法

    1.先检测,然后分割--自顶向下

    先检测出bbox,然后在每个bbox中分割出实例掩码(Mask R-CNN)。在训练过程中bbox标注作为监督信号,起重要作用。

    2.先预测嵌入向量,然后通过聚类将像素点分组为单个实例--自底向上

    通过疏远不同实例像素、拉近同一实例像素,使模型学习依赖关系(affinity relation),每个像素分配一个嵌入向量(embedding vector)。最后通过分组的后处理手段来分割实例。

    本文方法

    作者设计出一个单阶段实例分割模型SOLO(Segmenting Objects by Locations),它在实例掩码标注的监督下,可以直接分割实例,而无需bbox检测或者额外的像素成对关系。

    核心问题在于如何将目标实例映射到一个确定的集合中,也即什么是“图像中各个实例间根本性的不同”。作者经过统计分析coco数据集,绝大多数目标(98.3%)对的中心距离大于30个像素,而对于中心距离小于30个像素的目标对,他们中有40.5%的尺度比高于1.5。有理由相信,可以通过 center locationsobject sizes区分目标实例。因此,作者引入“实例类别”(instance categories)的概念(即量化的中心位置和目标尺寸),用于区分不同实例。

    对于语义分割任务,全卷积网络的输入为N通道,每一个输出通道负责一个语义类别(包括背景)。类似地,作者采用实例类别(instance categories)作为分类依据。

    SOLO总览

    • Locations

    一张图像会被划分为S×S个grid,它们为

    个center location categories(CLC)。根据目标中心的坐标,一个目标实例会被分配到其中的一个gird中,这样就确定了该实例的CLC。不同于DeepMask和TensorMask,该模型通道维度不是mask图,而是CLC。每个输出的通道对应一个CLC,最终几何信息自然地保存在了width×height维度的空间矩阵中。

    本质上来说,实例类别(instance category)可近似为实例对象的目标中心,因此将每个像素分到对应的实例类别,也就等同于从每个像素回归预测出目标中心。

    然而,这里的关键点在于将定位预测任务转换为通过分类而非回归解决。因为分类直接将模型设计从实例不断变化的困境中解放出来,从而设计出固定数量的通道,同时还不依赖后处理。

    • Sizes

    为了区分不同尺度的实例,作者引入FPN,将不同尺度的目标分配到特征图的不同层级。后续实验表明FPN是该模型中的核心组件,对分割性能有相当大影响。

    SOLO细节

    如果一个实例的目标中心落在其中的grid中,那么这个grid负责:

    1. 预测实例的语义类别
    2. 分割出目标实例
    • Semantic Category(语义类别)

    对于每一个grid,SOLO都会预测出C维输出,对应类别概率。如果输入图像分割为S×S个grids,那么输出空间就为S×S×C。

    • Instance Mask(实例分割)

    如果输入图像分为S×S个grids,那么总共会有

    个预测的mask图。那么分割分支输出的维度就为
    。第k个channel的mask也就对应于grid(i , j)的实例分割结果,其中

    通常使用FCN用于预测实例掩码,但是这种传统的卷积方法具有空间不变性(spatially invariant),它对于诸如图像分类任务能够引入鲁棒性。但是这里的任务要求空间敏感(spatially variant/sensitive)。作者通过ConvConv解决这个问题,semi-convolutional也可以解决该问题。

    • Forming Instance Segmentation

    在SOLO中,类别预测和mask预测通过grid cell关联:

    。在得到结果之后,还要通过NMS处理,得到最终的实例分割结果。

    SOLO Learing

    • Label Assignment

    grid(i, j)在gt mask的中心区域则为正样本,否则为负样本。中心区域定义:给定中心

    以及gt mask的宽高,通过常数尺度因子
    确定中心区域
    。作者将该因子设为0.2,平均每个gt mask能对应到3个正样本。

    对于每个正样本,都对应一个分割mask。因为每张图片被分为S×S个grids,那么每张图片就有

    个输出的mask图。对于每个正样本,对应的mask即为标注。
    • Loss Function

    其中

    为Focal Loss,
    为:

    5f50dcc64311e5c2704e3e1c3176f6e0.png

    其中

    作者选取为Dice Loss:

    b74c633f41d8bb7cb7f39a9f020807e7.png

    dd5458b8a55e0c0386364b4e5b11575b.png

    SOLO Inference

    input image->network->category score maps+masks

    首先通过设置置信度阈值(0.1),过滤掉低置信度分类预测结果。然后选择前500个masks进行NMS。为了将soft mask转换为binary mask,作者设置阈值为0.5。

    实验

    • 横向对比

    0ff54038ab8db24302fd6bf3d5da91c2.png
    • 纵向对比

    5388cd9a8b9d08b687fb3c6979ebbd5d.png

    fcfc2f53206caf63778b526e60c8de0c.png

    262529ac46408b83c124f65d31a85720.png

    c99b37cc893444a2b228f6615151818f.png

    5f48a58ca72cca7a5348596cd820641e.png

    4cd0274e36ef09267b7ea0164237d70d.png
    • 可视化

    ffcd4f042991df00f13338a7e1f523f8.png

    改进网络(Decoupled SOLO)

    考虑到网络输出channel冗余,作者提出改进:

    c292cdcc4e6f4a50c9ce6210ce133705.png

    实验结果表明改进网络的有效性:

    53094f44e7bb6fcaa081d3a0accec361.png

    TODO。。。

    展开全文
  • 0. Abstract用动态卷积的思想来生成实例敏感的滤波器来编码实例信息,不...1. MotivationMask R-CNN仍然是实例分割任务的top解决方法,它将实例分割分成两个阶段的任务--先检测后分割。首先用目标检测器如Faster...

    122e58074c69bc4df7426df2c81f2839.png

    0. Abstract

    用动态卷积的思想来生成实例敏感的滤波器来编码实例信息,不依赖box及RoI crop和特征对齐。用FCOS检测实例类别,然后用参数动态生成的mask head在原型mask和相对坐标图结合图上卷积生成相应实例mask。

    1. Motivation

    Mask R-CNN仍然是实例分割任务的top解决方法,它将实例分割分成两个阶段的任务--先检测后分割。首先用目标检测器如Faster R-CNN预测每个实例的框,然后使用ROIAlign操作将每个实例的ROI featuer map裁剪出来,最后为了预测这些实例ROI区域的前背景使用一个复杂的FCN结构。然而,基于ROI的方法有一些缺点。

    • 因为ROI是由实例的框决定的,对于那些不规则形状的物体,它们的ROI feature map可能包含背景和其他实例。这一问题可以通过旋转的ROI来减轻。
    • 为了区别前景实例和背景及背景中的其他实例,mask头部需要大的感受野导致需要更深的网络。
    • ROI通常具有不同的大小,为了使用更有效的batch计算,通常需要将不同大小的ROI feature map缩放到同一尺度。例如Mask R-CNN中使用14x14大小的ROI然后输出28x28的分割结果,这与实际需要的分辨率差很多。

    在计算机视觉中最接近实例分割的任务是语义分割,FCNs网络在语义分割中已取得巨大成功。FCNs也在很多像素级的预测任务上取得了效果,比如low-level的去噪,超分辨;mid-level的光流估计,轮廓检测;high-level的目标检测,深度估计和计数。然而大多数基于FCNs的实例分割方法效果都不如基于ROI的好,这是为什么呢?作者观察将FCNs应用于实例分割的主要问题是相似的图像appearance可能需要不同的预测,但FCNs结构不能做到这一点。简单理解就是实例分割需要平移变换性。例如两个人A和B具有相似的图像appearance,当预测实例A的mask时需要将B预测为背景。因此ROI操作用于将实例的ROI裁剪出来。本质上实例分割需要两种信息:

    1. appearance information,去分类物体
    2. location information, 去区分属于同样类别的多个实例

    几乎所有的方法都依赖于ROI cropping,它显似编码了实例的位置信息。在CondInst中而是利用位置/实例敏感的卷积滤波器和附加到feature map的相对坐标来利用位置信息。

    dynamic filtering networkCondConv启发,CondInst的mask头部网络参数根据实例动态生成的。期望网络的参数能编码该实例的特征然后filter出属于该实例的像素。这一条件生成的mask头部可应用在整个特征图上而不需要ROI操作。起初这一想法可能work的不好因为如果某些图像中包含多达几十个实例,则实例掩码头可能需要更多的网络参数。然而实验表明这一动态生成的紧凑的mask头部效果还不错。

    Conditional Convolution: 不像传统的卷积网络一旦训练完滤波器就变不了,而条件卷积的滤波器能根据输入动态地由另一个控制器网络生成。起初条件卷积主要用增加分类网络的表达能力。CondInst这里把它应用在实例分割中。

    2. Approach

    实例分割的目的是预测可变数量的mask及其类别

    。如果说Mask R-CNN用bounding box来表示实例,那么CondInst则是用滤波器的参数来表示实例。它相比于规则的box能处理任意形状的实例。与Mask R-CNN类似表示实例的滤波器也能想学box一样从检测其中学出。CondInst和Mask R-CNN一样都是instance-first,先出instance后出mask。

    CondInst的整个网络结构是建立在FCOS检测框架下的,然后类似YOLACT添加Mask Branch并将YOLACT的系数组合+crop变成这里的Conditional Convolution直接根据每个实例生成不同mask头部参数在全图特征图上卷积得到实例mask。

    3713596dbc74e645fec0d3e60429e107.png

    网络的输出分支有四个:

    1. Classification Head: 跟FCOS一样输出实例的类别置信度。
    2. Controller Head: 用于输出跟实例相关的滤波器参数
      用于mask头部网络。可类比Yolact中的系数不过它能编码更复杂的信息包括实例的appearance和location。论文中
      的维度
    3. Center-ness Head: 跟FCOS一样衡量当前位置与实例中心的偏离程度进一步抑制低质量的实例预测。 其实网络还可加上跟FCOS一样的box预测分支。这可用于做box nms。
    4. Mask Branch+Head: 类似Yolact生成全图的mask原型通道数为
      分辨率为原图的1/8,并与相对位置(x,y)的相对坐标图concate起来,作为(x,y)处实例的原型输入。头部是三个1x1卷积通道数为8参数由controller head生成。使用relu激活输出使用sigmoid预测实例前景像素概率。
      PS:为什么这里要用1x1卷积叠加而不是3x3或其他结构?

    损失函数:

    与FCOS中一致

    为Dice loss为了克服前背景像素不平衡的问题。这里没有用focal loss因为它需要明确的初始化这对于动态生成的参数是不好实现(?这里不太懂)。最后输出被上采样4倍与实例gt mask下采样2倍后计算损失。

    推断: 先前向生成

    ,使用Box NMS得到K个实例,然后对每个实例
    计算相对坐标图并与
    concate,然后用参数
    得到mask head卷积网络参数计算该实例的mask。由于mask head很轻花费的时间代价很小。

    31b41d639d45b0b2777dc0a26adf66a0.png

    3. Experiments

    实验表明效果对mask head的结构并不敏感。1x1卷积的深度为3,宽度为8,

    为8时性能最好后续继续增加并不能带来提升。我觉得这可能更表示实例信息的维度有关,由于mask head参数是动态生成的它编码实例相关的信息当网络更深时需要参数多信息维度更高存在冗余。

    c269a4984151d4ebc7e3042461c1972f.png

    对网络的影响很小这与Yolact类似。但加不加相对坐标图还是加绝对坐标差别很大,因为相对坐标图提供了实例位置的线索,从实验结果也可看到不加相对坐标差了很多,还有只加相对坐标和只加
    差不多,这也证明了动态生成的卷积参数
    编码了实例的位置信息。使用绝对坐标效果也差很多因为实例分割是translation variance的这也证明了CondInst是具有此性质的。

    6b15fbecf0845d43f21daa08cbaab5f2.png

    a4ba0f64ecae4e8dd652bcc7f1cc2b47.png

    对mask进行上采样对性能有不错的提升,论文中说上采样过大时性能反而会变差一点点是因为COCO的低质量的标注。所以保持原图的1/4分辨率是最好的。

    354442e4c177aba1f48e83681b75f485.png

    论文也实验了不做box预测及用box做nms而是对分类预测的每个

    计算其mask,然后使用mask nms也能的得到一样的效果。

    整体上看CondInst比Mask R-CNN稍好,mAP: 35.9% vs 35.5%,时间:49ms vs 65ms。

    71cb5feac495f6866920120c3efc7bec.png

    4. Conclusion

    用动态卷积的思想来生成实例敏感的滤波器,跟Yolact类似的结构不同是不要box来编码实例而直接使用实例敏感的卷积网络在原型mask中生成实例mask。相对于Mask R-CNN这一全卷积的方式去掉了对box的依赖以及roi crop操作中特征对齐及维度固定的问题。

    展开全文
  • 作者:Xinlong Wang, Tao Kong, Chunhua ... ByteDance AI Lab一句话总结:SOLO[1]将实例分割问题formulate为,每一小格(将图像网格化)进行语义类别预测和实例Mask生成,类似于YOLO了。卷积操作具有spatially invari...

    b69f460d2ed2db2a4ceb274dea36413b.png

    作者:Xinlong Wang, Tao Kong, Chunhua Shen, Yuning Jiang, Lei Li

    单位:The University of Adelaide; ByteDance AI Lab

    一句话总结:SOLO[1]将实例分割问题formulate为,每一小格(将图像网格化)进行语义类别预测实例Mask生成,类似于YOLO了。

    卷积操作具有spatially invariant,而实例分割需要spatially variant/position sensitive,SOLO使用坐标卷积操作CoordConv[2]去解决,也提及semi-convolutional操作[3]可以解决。坐标卷积在肺叶分割中被用过,按理也适用于肺段分割和肝段分割。

    SOLO很简洁,性能也不错。更多讨论可以阅读这个问题[4]的答案。

    参考

    1. ^SOLO Segmenting Objects by Locations arXiv 2019 https://arxiv.org/abs/1912.04488
    2. ^An Intriguing Failing of Convolutional Neural Networks and the CoordConv Solution NIPS 2018 http://papers.nips.cc/paper/8169-an-intriguing-failing-of-convolutional-neural-networks-and-the-coordconv-solution
    3. ^Semi-convolutional Operators for Instance Segmentation ECCV 2018 https://arxiv.org/abs/1807.10712
    4. ^如何看待SOLO: Segmenting Objects by Locations,是实例分割方向吗? https://www.zhihu.com/question/360594484
    展开全文
  • 作者 | 孙叔桥编辑 | 言有三本期论文:《Learning to Segment Object Candidates》1 实例分割区别于本系列之前介绍的语义分割任务,实例分割任务有其自己的任务需求与度量矩阵。简单来讲,语义分割只分割视野内目...
  • 这里之所以单独成文是因为Mask ...目标检测和实例分割的区别在于,实例分割不仅仅需要将目标识别,还需要将它的轮廓绘出。这意味着需要对每一个像素进行分类。这么说也不严谨,因为容易跟语义分割混淆。我们还是统一...
  • 以人工智能为导向的现代计算机视觉技术,在过去的十年中发生了巨大的变化。今天,它被广泛用于图像分类、人脸识别、物体检测、视频分析以及机器人及... 本文会着重介绍语义分割和实例分割的应用以及原理。Email: wi...
  • 然而面对更为复杂的应用场景,新的视觉问题和任务也在被提出,如何解决目标密集型场景下的对象实例的分割提取成为关注较多的一个问题,因此基于深度学习的实例分割(Instance segmentation)模型也应运而生。...
  • b 语义分割 c 实例分割 d 全景分割 全景分割 = 语义分割 + 实例分割 (以后谁再问我,直接发这个图)
  • 参考了:什么是语义分割、实例分割、全景分割,记录一下,方便以后查看。 1. 什么是语义分割 就是对图像中的每个像素进行分类,打上类别标签。如下图所示,将相同的类别分割出来(人:红色,树:深绿,草地:浅绿,...
  • 语义分割与实例分割

    2020-05-22 16:48:08
    (2)实例分割 顾名思义,像素级别的语义分割,对图像中的每个像素都划分出对应的类别,即实现像素级别的分类; 而类的具体对象,即为实例,那么实例分割不但要进行像素级别的分类,还需在具体的类别基础上区别开...
  • 实例分割语义分割全景分割Good article on the ongoing fragmentation of roles in the Software Industry. [From Sylvain Duford] 关于软件行业中角色持续分散的好文章。 [来自西尔万·杜福德] How many ...
  • 语义分割 实例分割

    2020-04-20 14:37:34
    知乎SOLO: Segmenting Objects by Locations https://github.com/Epiphqny/SOLOv2 SOLOv2: Dynamic, Faster and Stronger 【2019进展综述】单阶段实例分割(Single Shot Instance Segmentation) ...
  • 点击上方“小白学视觉”,选择“星标”公众号重磅干货,第一时间送达...2)提出了一个两阶段的管道进行实例分割:初始轮廓提议和轮廓变形。在Cityscapes,KINS,SBD和CoCo数据集上展示了该方法的最新性能。对于512x51...
  • 下一章:深度篇——实例分割(三)细说mask rcnn 实例分割代码 训练自己数据 之 相关网络,数据处理,工具等 论文地址:《Mask R-CNN》 作者代码地址:Mask R-CNN code 我优化的代码地址:mask_rcnn_pro(只需修改...
  • 语义分割和实例分割

    2020-01-13 13:14:19
    注意语义分割不同于实例分割,举例来说,如果一张照片中有多个人,对于语义分割来说,只要将所由人的像素都归为一类,但是实例分割还要将不同人的像素归为不同的类。也就是说实例分割比语义分割更进一步。 ...
  • 实例分割综述

    千次阅读 2018-12-10 19:18:46
    目前实例分割分为两大类: propose & verify,即先用目标检测找出实例可能的边界框并分类,再对边界框进行前后景分割。这类方法以Mask RCNN为代表。缺点是对拥挤、遮挡、小目标和不规则物体的分割精度不高...
  • mask rcnn实例分割In this article, I will be creating my own trained model for detecting potholes. For detection, I will be using the instance segmentation technique using the Mask-RCNN with the help ...
  • PANet 实例分割

    千次阅读 2019-03-25 21:28:02
    用于实例分割的路径聚合网络 代码:https://github.com/ShuLiu1993/PANet CVPR2018 Spotlight paper, coco2017实例分割第一名目标检测第二名 当前实例分割最佳模型Mask-RCNN的信息传播还不够充分,低层特征到高.....
  • 3D点云实例分割

    千次阅读 热门讨论 2020-01-07 14:52:15
    3D点云实例分割 3D语义分割区分场景中各类对象,3D实例分割区分场景中各类别中的各种个体。近两年来,3D实例分割的关注度越来越高,相应的方法也被接连提出。众多方法的思想主要分为两类:基于候选区域的实例分割...
  • 实例分割工作流程 (使用Keras和Ray Tune的U-Net / Mask R-CNN工作流程进行实例细分) 肺部实例分割工作流程使用通过模型从图像中预测肺罩。 运行工作流程 使用命令git clone cd进入lung-instance-segmentation...
  • tensorflowlite 实例分割 安卓app 可直接安装
  • 物体识别或场景理解相关技术从粗粒度推理到细粒度推理的演变:四幅图片分别代表分类、识别与定位、语义分割、实例分割。 目前的分割任务主要有两种: (1)像素级别的语义分割 (2)实例分割 这个有意思,什么叫实例...
  • 语义分割、实例分割、全景分割2.1 语义分割2.2 实例分割2.3 全景分割 1. 语义分割 语义分割是从具体到抽象的过程 分割:把不同目标标注成不同颜色的过程 语义:图片所表达的意思,例如:一个人正在骑一辆自行车 2....
  • 实例分割与语义分割的区别

    千次阅读 2019-07-06 16:48:26
    实例分割 实例分割的基本思路:目标检测 + 语义分割 机器自动从图像中使用目标检测方法框出不同实例,然后用语义分割方法在不同区域内进行逐像素标记 ...
  • 书的购买链接书的勘误,优化,源代码资源本文PDF全文链接:3D实例分割本文作者:岳麓青年3D实例分割3D语义分割区分场景中各类对象,3D实例分割区分场景中各类别中的各种个体。近两年来,3D实例分割的关注度越来越高...
  • 基于深度对象检测与分割网络的叶实例分割与计数
  • 目标检测基础1 semantic segmentation(语义分割)2 Instance segmentation(实例分割)3 Panoramic segmentation(全景分割) 学习目标检测,首先要了解图像分类。图像分类任务虽然简单,应用范围也有限,但是它是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,199
精华内容 3,279
关键字:

实例分割