Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images
Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images
- 摘要
- 1. Introduction
- 2. Related Work
- 3. Method
- 3.1. Weakly-supervised Instance Segmentation via Multi-instance Learning
- 3.2. Joint Training with Salient Images
- 3.2.1 Salient Images
- 3.2.2 Data Augmentation
- 3.3. Multi-task Learning
- 3.3.1 MIL loss for weak segmentation
- 3.3.2 Pixel-wise loss for salient segmentation and transferred segmentation
- 3.4. Training a Proxy Mask R-CNN
摘要
即使不知道目标属于什么类别,人眼也有很强的分割能力。(比如即使有人不认识熊猫也能把熊猫和背景区分开来)由此本文提出了BoxCaseg来解决WSIS任务。这个方法融合了box监督信息和显著性信息。同时它还运用了一个名为merged and dropped strategy的策略来代替GT去训练分割模型。
1. Introduction
弱监督实例分割(WSIS)在计算机视觉领域很重要,原因有二:1.它减少了人工注释工作,因此可用于构建高效标注的视觉识别系统。2.人类可以在没有完美/精确标注的情况下学习如何分割目标,构建类似于人类感知的视觉学习系统是计算机视觉的长期目标;因此研究WSIS是达成人们期望的方式之一。本文用bounding box 标注而不是精确的掩码标注来探讨WSIS问题。
根据《What’s the point: Semantic segmentation with point supervision》中所提,标注一帧掩码大约需要79秒而标注一帧bounding box只需大约10秒。因此,如果一个WSIS算法可以得到和SOTA全监督实例分割算法(如MaskR-CNN)一样的分割精度,这将会大有用处且有可能被投入进实际应用。为了解决这个问题,先前的方法已经在各种WSIS任务中应用了基于手动提取特征、pseudo labeling、multi-instance learning和attention networks的无监督图像分割算法。
我们认为WSIS的关键问题在于box-supervised class-agnostic object segmentation (BoxCaseg),即给定目标的bounding box,我们需要推理pixel-level的目标掩码。人类有很强的BoxCaseg任务处理能力,即使目标是未知的分割类别也可以感知目标边界。为了模仿这种class-agnostic的人类学习过程,我们提出了一种联合训练方法,其中的显著性检测目标分割数据集(也是显著性目标检测数据集)包含class-agnostic pixel-level目标位置信息,以模拟人类的历史记忆。显著性图像和box-annotated图像在一个深度多任务网络中(如Fig. 1所示)训练,且在相同的mini-batches中混合。任务包括以pixel-level来标注显著性图像及对box-supervised图像和显著性图像进行多实例分类。在训练过程中,显著性图像可以提供显著性信息去指导box-supervised图像的分割。另外受Mask* R-CNN的启发,从多实例学习任务到像素标记任务执行权重转移(weight transfer)以增强联合学习。
问题:什么是mini-batches?
回答:一次训练数据集的一小部分,而不是训练整个训练集的技术。它可以使内存较小、不能同时训练整个数据集的电脑也可以训练模型。
学习后的BoxCaseg模型被应用于为box-supervised训练图像生成目标掩码。这些掩码通过我们提出的merging and dropping strategies提炼以训练一个为解决WSIS任务的Mask R-CNN模型。实验在PASCAL VOC和COCO数据集上进行。最终,我们的contributions如下。
1.我们提出了一种新的基于box-supervised class-agnostic object segmentation的WSIS算法,其中的class-agnostic的精确的显著性目标位置信息在训练时被用来作为辅助记忆来改善WSIS任务。
2.我们提出了新的掩码merging and dropping strategies来获取high-quality proxy masks以训练pseudo-training Mask R-CNN。
3.class-agnostic分割模型有很强的泛化能力,实验效果好。
2. Related Work
实例分割要求精细且高成本的pixel-level标注,然而许多弱监督算法只能使用粗糙标注,如image tags, points, scribble和bounding boxes。
我们的体系使用目标bounding box作为弱监督。为了从bounding box获得分割,许多方法使用了传统的图像分割算法去分割目标,如CRF,GrabCut和MCG。然而,这些方法依赖low-level的图像特征,且不能获得稳定的WSIS任务效果。Dai et al. 首次提出了通过迭代训练和伪标注将深度网络和手动提取WSIS任务的目标proposals结合到一起的方法。其他方法像《Box2seg: Attention weighted loss and discriminative feature learning for weakly supervised segmentation》和《Box-driven class-wise region masking and filling rate guided loss for weakly supervised semantic segmentation》关注用mean filling rates提炼伪掩码。Arun et al.提出了一种条件网络和预测网络互相监督的方法。和以上的方法不同的是,BBTP设计了一种多实例学习multi-instance learning (MIL)公式去训练弱监督分割模型。基于BBTP,BoxInst使用projection loss代替MIL loss,且使用从近端像素点得到的先验去改进成对损失 (pairwise loss)。我们的weak segmentation head也基于BBTP且不依赖于任何传统算法。
我们的方法也基于显著性检测salient object detection (SOD, as known as salient object segmentation)的发展。这类任务旨在在图像中找到视觉上的显著目标然后分割成二进制掩码。其已经在深度学习上取得了巨大成功。最近的深度SOD方法得益于通过多级别特征融合(multi-level feature fusion),reverse attention, global and local context integration, cascaded partial decoder, edge-guided network, pooling-based global guidance [32] and nested U-Net(即U2NetU^2NetU2Net)来进行预测擦除(prediction erasing)。
问题:什么是prediction erasing?
回答:就是把预测出来的部分擦除掉,对剩下的部分再进行预测。
显著性目标分割信息已经作为cue应用于WSIS任务中。在《Joint learning of saliency detection and weakly supervised semantic segmentation》中显著性图像和带有类别标签的图像联合训练来得到class-specific semantic segmentation,然后通过聚合class-specific prediction结果得到saliency maps。和其理论上不同的是,我们的方法为class-agnostic object segmentation服务且不依靠显著性图像和box-supervised图像的类别交集。ShapeProp在bounding boxes中使用pixel-wise MIL和message passing来获得class-agnostic saliency information作为半监督实例分割任务的先验。相反,我们的motivation是为了模拟人类强大的 class-agnostic object segmentation能力,且显著性图像和弱监督图像之间的domain gap比ShapeProp中大得多。本文显著性目标信息被用作弱监督分割图像的辅助记忆。
问题:什么是显著性图像和box-supervised图像的类别交集?
回答:
问题:什么是domain gap?
回答:举个例子,某两个数据集之间存在domain gap,在一个数据集上训练模型,在另外一个数据集上进行预测性能可能下降很大。
最后,class-agnostic object segmentation正在成为一个研究热点。(后面是许多关于这个热点的工作介绍,这个问题对WSIS很有帮助之类的。。。)
3. Method
本章先介绍MIL-based WSIS method,然后介绍BoxCaseg的训练方法,最后介绍Proxy Mask R-CNN的训练方法。
3.1. Weakly-supervised Instance Segmentation via Multi-instance Learning
为了实现用bounding box标注就完成实例分割任务,Hsu et al.提出了MIL-based方法,这一方法利用bounding box tightness prior(BBTP)。这一方法在Mask R-CNN中用新的MIL loss代替原先的segmentation loss。正如Fig. 3所示,整个目标在bounding box中,bounding box中的每行或每列至少有一个像素点属于目标。BBTP把这些行和列称作positive bags。bounding box外的其他行和列称为negative bags。一个bag在每行或列上包括了多种像素/特征。因此,无论是box-supervised图像中给定的bounding box还是由salient object mask产生的box,我们都可以把图像分成positive bags和negative bags。
在Mask R-CNN中,值得注意的是,一个目标对应多种region proposals。因此将为每个region proposal分别产生positive和negative bags,然后通过池化(max-pooling)pixel classification probabilities得到目标的classification probabilities。bag classification loss可以通过反向传播来优化像素分类器以实现像素级别的分割。
3.2. Joint Training with Salient Images
以上的MIL-based WSIS方法可以在box supervision下端对端优化。然而我们难以感知目标的精确边界信息。我们提出利用一个相对较小的显著性分割数据集作为辅助知识。这些数据包含了和box-supervised图像联合训练的显著性知识,以在整个学习过程中提供边界位置信息引导。
我们的box-supervised class-agnostic segmentation (BoxCaseg)联合训练网络如Fig. 4所示。BoxCaseg网络将显著性图像和box-supervised图像作为输入。用HRNet进行特征提取。显著性图像特征和box-supervised图像特征被喂入3个受pixel-labeling loss和the MIL loss监督的segmentation heads中。细节如下。
3.2.1 Salient Images
带有mask标注的显著性图像衍生于现有的显著性目标检测数据集DUTS-TR。在每张显著性图像中我们都保证只有一个目标。显著性目标类别范围广且在图像中占主要位置。显著性图像提供具有一般性的精细的边界位置信息。为了避免过拟合,我们确保在算法中使用的显著性图像和目标WSIS数据集(即PASCAL和COCO)没有重合。
3.2.2 Data Augmentation
BBTP在Mask R-CNN中同时完成检测和分割任务,其使用ROIAlign来提取patch的特征,与其不同的是,我们的方法分别训练 classagnostic object segmentation model。BBTP中的ROIAlign可以高效获取patch feature,但是正如PointRend中所说的,其不能为精确的目标分割任务提取如此准确地特征。因此,本文不使用ROIAlign作为网络输入,而是根据目标位置crop patches作为BoxCaseg网络输入。对于显著性图像和box-annotated图像的patch cropping(即数据增广)策略是不同的。对于每张显著性图像,首先resize到320×320320×320320×320的大小,然后随机裁剪成288×288288×288288×288大小作为输入;对于box-annotated图像,我们发现下面更积极的数据增广策略表现更好。
这个数据增广技术转换了bounding box的位置和形状,采用了背景信息。得到新的box后,一个image patch被cropped和resized成288×288288×288288×288的大小以进行联合训练。
3.3. Multi-task Learning
如Fig. 4所示,我们的BoxCaseg网络有三个训练任务,即box-supervised图像的MIL训练,显著性图像的MIL训练和显著性图像的pixel级别精度的标注。3个 segmentation heads分别被称作salient segmentation head, transferred segmentation head和weak segmentation head。这3个heads有相同的网络结构。
3.3.1 MIL loss for weak segmentation
显著性图像的卷积的特征用PsP_sPs表示,弱监督(即box-supervised)图像用PwP_wPw表示。Ps,PwP_s, P_wPs,Pw被送入weak segmentation head,通过一个pixel-wise的sigmoid函数分别得到单通道的probability maps Ss,SwS_s, S_wSs,Sw。另外,上采样确保了Ss,SwS_s, S_wSs,Sw有和输入图像一样的大小。正如3.1节所说,我们把Ss,SwS_s, S_wSs,Sw中positive bags B+B^+B+的集合和negative bags B−B^-B−的集合作为样本。MIL loss定义成如下。
Lmil(S,B+,B−)=−∑B∈B+log(maxp∈BS(p))−∑B∈B−log(1−maxp∈BS(p))+0.05×φ(S,B+,B−)L_{mil}(S,B^+,B^-)=-\sum_{B\in B^+}log(\max_{p\in B}S(p))-\sum_{B\in B^-}log(1-{\max_{p\in B}S(p)})+0.05×\varphi (S,B^+,B^-) Lmil(S,B+,B−)=−B∈B+∑log(p∈BmaxS(p))−B∈B−∑log(1−p∈BmaxS(p))+0.05×φ(S,B+,B−)
其中ppp是在一个bag B∈{B+,B−}B\in \{B^+,B^-\}B∈{B+,B−}中的一个空间位置和一个在S∈{Ss,Sw}S\in \{S_s,S_w\}S∈{Ss,Sw}的score map,S(p)S(p)S(p)表示在位置ppp的score,最后一项φ(S,B+,B−)\varphi (S,B^+,B^-)φ(S,B+,B−)是一个带有固定权重为0.05的smooth term,如下所示。
φ(S,B+,B−)=∑p∈{B+,B−}∑p′∈Ω(p)∣∣S(p)−S(p′)∣∣2\varphi (S,B^+,B^-)=\sum_{p\in \{B^+,B^-\}}\sum_{p'\in \Omega (p)}||S(p)-S(p')||^2 φ(S,B+,B−)=p∈{B+,B−}∑p′∈Ω(p)∑∣∣S(p)−S(p′)∣∣2
其中Ω(p)\Omega (p)Ω(p)表示像素点ppp周围邻近的8个像素点。在第一个公式中,求和部分用MIL对像素进行分类,pairwise部分(就是第二个式子)旨在保持local smoothness。positive bags至少含有一个目标像素,因此我们激励positive bags中的最大score尽量接近1,同时抑制negative bags中的最大scores。
3.3.2 Pixel-wise loss for salient segmentation and transferred segmentation
pixel-wise loss公式只在salient图像上使用。带有pixel-wise loss的精确的salient图像标注对于我们的BoxCaseg网络捕捉class-agnostic边界信息很有帮助。由于它不能在box-supervised图像上使用,我们提出了一个 transferred segmentation head去使得pixel-wise labeling parameters更加适合box-supervised图像。这可以通过权重转移(weight transfer)实现,这一操作首先在Mask* RCNN中被提出。正如Fig. 4所示,我们把weak segmentation head分离的卷积参数通过weight transfer模块转移到transferred segmentation head中。至于weight transfer模块,我们只用了一个两层的带有leaky ReLU激活函数的多层感知机(MLP)。需要注意weight transfer是一个单向不可逆过程,因此它是从weak segmentation head中分离出来的,即梯度不会反向传播给weak segmentation head。在训练的过程中,weight transfer MLP的参数被不断优化。给定一个显著性图像,其gt是一个二值化的掩码,记为MMM,我们把它从salient segmentation head和transferred segmentation head中输出的score maps记作Sa,StS_a,S_tSa,St。然后,pixel-wise loss函数就是一个标准的二进制交叉熵损失,如下所示。
Lpix(M,Sa,St)=−Mlog(αSa+(1−α)St)−(1−M)log(1−(αSa+(1−α)St))L_{pix}(M,S_a,S_t)=-Mlog(\alpha S_a+(1-\alpha)S_t)-(1-M)log(1-(\alpha S_a+(1-\alpha)S_t)) Lpix(M,Sa,St)=−Mlog(αSa+(1−α)St)−(1−M)log(1−(αSa+(1−α)St))
其中α∈[0,1]\alpha \in [0,1]α∈[0,1]是用来控制使用多少transferred segmentation map来计算pixel-wise loss的参数。
最终的loss函数如下所示。
L=Lmil(S,B+,B−)+λLpix(M,Sa,St)L=L_{mil}(S,B^+,B^-)+\lambda L_{pix}(M,S_a,S_t) L=Lmil(S,B+,B−)+λLpix(M,Sa,St)
其中如果输入是box-supervised图像,λ\lambdaλ等于0,否则为1。最后,在训练过程中,box-supervised图像和显著性图像都在一个mini-batch中。他们的比例在实验中可见详情。这个混合的输入策略有助于稳定训练过程,且解决了数据不平衡问题,即在COCO数据集中box-supervised图像很多而显著性图像很少。
3.4. Training a Proxy Mask R-CNN
为了使用联合训练的BoxCaseg网络做实例分割,我们首先需要在测试阶段用一个分类器得到目标的位置。为了简化这一过程同时避免two-step testing procedure的耗时长的问题。我们在一个网络中重复训练一个Mask R-CNN去执行box localization和mask prediction。我们的解决方式是直接前传 - 我们使用BoxCaseg模型在训练集上去生成伪掩码。在用预训练的BoxCaseg网络为训练实例生成伪掩码时,我们只通过gt boxes从图像上crop patches作为输入,且只使用salient segmentation head和transferred segmentation head去预测目标掩码。在我们的方法中,Mask R-CNN模型用bounding box标注和伪掩码进行训练,因此叫做Proxy Mask R-CNN。
虽然联合训练的BoxCaseg模型有很好的效果,但仍然不可避免地会有一些分割错误。主要是因为许多目标在一个bounding box中严重重合,例如在Fig. 5中摩托车上的人和沙发上的人。由于这些成对的目标极有可能一起出现,弱监督算法难以解决。为了减少这样的错误,我们提出了merge and drop策略,即用smaller object better思想合并掩码,和用proxy box agreement规则丢弃掩码,细节如下。
Merging via smaller object better: 先验知识告诉我们每个像素点只能属于一个目标。在合并分割结果时,那些属于多个预测出来的掩码的像素被归类为最小的目标所有。因为因为小目标通常都在大目标的box里面。
Dropping via proxy box agreement: merge操作之后,我们要丢弃低质量的掩码。可以观察到低质量的掩码明显不同于他们的gt。然而,我们只有gt boxes没有gt masks。因此,我们找到伪掩码的bounding box,称为伪bounding box(proxy bounding box),计算proxy bounding box和GT bounding box的IoU作为proxy box agreement。proxy mask和GT mask的mask的IoU的下限可以反应分割的质量。需要注意的是,丢弃mask不意味着把它从标注文件中移除。而是在Mask R-CNN的mask head训练的反向传播过程中忽略掉那些被删除的masks。
Weakly-supervised Instance Segmentation via Class-agnostic Learning with Salient Images相关推荐
- Weakly Supervised Instance Segmentation using Class Peak Response
据说是第一篇关于图像级实例分割的文章... 看了很多关于这篇文章的博客和知乎,总觉得他们没有写清楚最关键的几个问题:例如,怎么从局部极大值点中筛选出峰值?怎么从MCG等传统图像处理方法获得的图像边缘中 ...
- Weakly Supervised Instance Segmentation using the Bounding Box Tightness Prior 论文笔记
Weakly Supervised Instance Segmentation using the Bounding Box Tightness Prior 论文笔记 一.摘要 二.引言 三.相关工作 ...
- Weakly Supervised Semantic Segmentation list
Weakly Supervised Semantic Segmentation list 文章转自Github:https://github.com/JackieZhangdx/WeakSupervi ...
- Weakly Supervised Semantic Segmentation with Boundary Exploration
Weakly Supervised Semantic Segmentation with Boundary Exploration 摘要 1 Introduction 2 Related Work 3 ...
- 3D Instance Segmentation via Multi-Task Metric Learning
Abstract 我们提出了一种新方法,用于密集3D体素网格的实例标签分割.我们的目标是使用深度传感器或多视图立体方法获取的体积场景表示,并使用语义3D重建或场景完成方法进行处理.主要任务是学习有关单 ...
- 【论文阅读】Online Attention Accumulation for Weakly Supervised Semantic Segmentation
一篇弱监督分割领域的论文,其会议版本为: (ICCV2019)Integral Object Mining via Online Attention Accumulation 论文标题: Online ...
- 【论文阅读】Regional Semantic Contrast and Aggregation for Weakly Supervised Semantic Segmentation
论文标题: Regional Semantic Contrast and Aggregation for Weakly Supervised Semantic Segmentation 作者信息: 代 ...
- 【论文阅读】Weakly Supervised Semantic Segmentation using Out-of-Distribution Data
一篇弱监督分割领域的论文,发表在CVPR2022上: 论文标题: Weakly Supervised Semantic Segmentation using Out-of-Distribution D ...
- 机翻《C-CAM: Causal CAM for Weakly Supervised Semantic Segmentation onMedical Image 》
前言 <C-CAM: Causal CAM for Weakly Supervised Semantic Segmentation onMedical Image>CVPR2022,有源码 ...
- Non-Salient Region Object Mining for Weakly Supervised Semantic Segmentation
Non-Salient Region Object Mining for Weakly Supervised Semantic Segmentation 摘要 1. Introduction 2. R ...
最新文章
- 用户系统-开放平台的一些思考
- Android:禁用listView上的突出显示单击
- 关于按值传递和按引用传递(送给这个方面的新手——包括我自己)
- windows mobile C# net3.5 如何捕捉Arrow的CheckBox的KeyDown事件?
- 手写自己的MyBatis框架-V2.0结果集处理
- day36 Pyhton 网络编程03
- Linux知识积累(2)dirname的使用方法
- 物资管理系统c语言运行程序,C语言实现仓库物资管理系统.pdf
- 本地管理表空间(LMT)
- mysql 联合索引底层结构_MySQL联合索引底层数据结构
- Eclipse安装WindowsBuilder失败解决方法
- 实现一下黑客帝国代码雨
- 【AI简报20210625期】自动驾驶运动预测挑战赛、20美元的宜家台灯算力有多强?...
- 三星手机使用应用沙盒动态修改sdk数据
- 《数据结构》实验三:单链表
- EasyNLP 发布融合语言学和事实知识的中文预训练模型 CKBERT
- How to manually generate ssl certificate for own site in Linux
- 名品极选联合大牌美妆,全面拓展消费需求
- infra-structure Ad Hoc
- 写给VC++ Windows开发的初学者 一片不错的博文
热门文章
- 14.PG分区表-传统分区表
- 计算机二级python基础知识总结-江苏省计算机二级python样卷
- 类似高佣联盟怎么赚的?
- 如果要设计个分布式文件系统,该从哪些方面考虑?
- 骑行天下之北京到天津(1)
- 论文阅读:Automatic segmentation of pulmonary lobes using a progressive dense V-network
- 亲测好用,AI论文写作工具推荐
- 走进MySQL---分享dept、emp、bonus、salgrade员工信息管理表
- 计算机怎么重装win7,如何重装电脑系统win7,最新电脑重装系统教程
- 如何知道当前linux登录的是哪个终端设备