Class Agnostic的物体检测/分割

最近在看Class Agnostic的物体检测/分割,今天分享三篇文章

1、进入主题之前,先介绍这方面主要用到的数据集

Class Agnostic是一个通用的方法,可以用在很多任务上面。
Class Agnostic需要的数据集大概是图片信息+标签(bounding box, mask之类),看到的主要在 PASCAL VOC 2012 和COCO数据集上做。

一般网络的设计都是两个分支的,一个是support branck,提供图片和label,另外一个是query brach,提供图片信息,label由网络预测。

2、相关工作

2.1、Few-shot learning

主要用于学习transferable knowledge,使网络可以泛化到之带有少量标签的新的类别物体。比如识别带有少量标签的物体。
用一个网络学习特征和一个网络学习相似性
few-shot learning的方法主要可以总结为两种

  • 1 metric learning approach 这个方法主要学习一个关于query images和sample images的projection functions。
  • 2 meta-learning
2.2、 Few-show semantic segmentation

泛化segmentation能力。一般是两个分支。

2.3 Co-Segmentation

这个工作的目标是在像素级别分割图片中相同的实例,一般一次分割出一类。比如几张图片里都有人,狗,猫,最后出来是某一类的分割结果。

2.4 Co-Detection

检测出相同的实例,需要类别信息。

2.5 Co-Generate Object Proposal

这个是想通过一系列的object candidates中的信息来提高proposals的质量

2.6 Co-Localization

定位出多张图片中同个物体的位置

3、文章

3.1首先是2019年cvpr文章 CANet: Class-Agnostic Segmentation Networks with Iterative Refinement and Attentive Few-Shot Learning

这篇文章作者开源了大部分代码。

总结

这篇文章实现了 class agnostic semantic segmentation,效果不错不过也是到百分之50多,对于每张图片,只能预测出一个前景目标的mask.

3.1.1、文章的目标:

假设有一个训练的数据集,希望在另一个带有少量标签的数据集上能做出很好的预测。这里的预测指分割。
任务:
1)有一个support training set S = { ( x s i , y s i ( c ) ) } i = 1 k S = \{(x^i_s, y^i_s(c))\}^k_{i=1} S={(xsi,ysi(c))}i=1k, x s i x^i_s xsi 是RGB图片, $y^i_s 是 m a s k . 2 ) 一 个 q u e r y ( t e s t ) s e t , 是mask.\\ 2)一个query(test) set, mask.2)query(test)set,Q = {x_q,y_q©} , , ,y_q©$是gt
那么输入就是训练的support图片,mask,和query图片。目标就是得到query的mask了。
同一张图可能会有多个类别,所以query不同的类别的时候,gt对应的mask是不同。

3.1.2、方案

文章的网络结果如下。
整个网络包括dense comparison module(DCM)和iterative optimization module(IOM)模块。图片是1-shot网络结构,k-shot网络结构和1-shot相似,多了attention mechanism模块。

网络框架如图所示

3.1.2.1 Dense Comparison Module

这部分包括两个分支。一个是support set输入,一个是query set输入。这个模块分为了前面的特征提取器和后面的比较模块。
特征提取器用的是 ResNet-50, 文章中作者认为太过浅层的信息是比较low-level cues,比如边缘、颜色。而太过深层的信息是object-level方面比如物体类别。但是又希望网络能够分割出新的类别。不需要很强的物体类别信息,选择了ResNet第二层和第三层的信息。并且在训练的过程中这部分参数固定的。
Dense Comparisin这里图片的前景可能有很多物体。但是其实只需要目标物体。作者先利用mask,在前景上做global average pooling, 得到特征向量后,再和query image的图片特征concatenate一起,然后再提特征。
mask在这里可以提取出目标的特征。如果网络能够学到目标的特征,那么也许在测试中就不需要这个mask了?或者换另一种方式学习,这样就可以抛掉这个mask了

3.1.2.2 Iterative Optimization Module

这部分主要是把第一次预测mask作为信息,用来提高预测准确度。从代码看,具体实现起来,就是把测试的时候得到的mask,作为输入,迭代几次。

3.1.2.3 Attention Mechanism for k-shot Segmentation

这部分是为了fusion k-shot设置下的信息。这部分包含两个模块,卷积+max pooling,卷积+average pooling,并且给attention 分支加了权重。
在这里插入图片描述

3.2 Segmenting Unknown 3D Objects from Real Depth Images using Mask R-CNN Trained on Synthetic Data

总结

感觉这篇文章就是把maskrcnn用在了depth上,大数据的训练实现了class agnostic。本文的一个亮点是提供了一个数据集,该数据集既有合成的,又有对应真实数据集。
既然简单地分成了前景和背景,那么其他的检测?分割的方法也可以这么做。
而且只是要简单地分割成前景背景,太多的rgb信息反而容易形成混淆。深度图训练效果会比较好。

3.2.1 WISDOM-Sim和WISDOM-Real
3.2.2 Synthetic Depth MASK R-CNN(SD Mask-rcnn)
  • 1 将深度图看成灰度图,改成三通道。
  • 2 将类分成两类,前景和背景
  • 3 depth输入改成512*512
  • 4 网络主框架从ResNet 101改成ResNet 35
  • 5 设置mean pixel value
    在这里插入图片描述
    从这张图看,但训练的图片越多,还有类别越多,效果会越好。

3.3 Class Agnostic Image Common Object Detection

这篇文章发在了tip,文章的introduction,related work介绍了很多,对于刚看这个方向的值得好好看一看。

3.3.1目标

直接发现两张图片中相同的物体,而不需要知道他们的类别。

3.3.2框架

输入是两张图片,输出是,网络框架包括locating module和matching module。输出是物体对。

3.3.2.1问题描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值