增量学习不只有finetune,三星AI提出增量式少样本目标检测算法ONCE | CVPR 2020
论文提出增量式少样本目标检测算法ONCE,与主流的少样本目标检测算法不太一样,目前很多性能高的方法大都基于比对的方式进行有目标的检测,并且需要大量的数据进行模型训练再应用到新类中,要检测所有的类别则需要全部进行比对,十分耗时。而论文是增量式添加类别到模型,以常规的推理形式直接检测,十分高效且数据需求十分低,虽然最终的性能有点难看,但是这个思路还是可以有很多工作可以补的
来源:晓飞的算法工程笔记 公众号
论文: Incremental Few-Shot Object Detection

Introduction
论文研究了非常有意义的增量式少样本目标检测场景iFSD(Incremental Few-Shot Detection),场景设置如下:
- 检测模型可以在包含充足样本的基础类别上进行训练
- 训练好后,iFSD能够应用到真实世界中,任何新类别在任何时候都能通过少量标注样本进行注册
- 对于无限的新类别的学习,在内存使用量、存储用量和计算量上都应该是可行的,理想情况下,模型可以发布在资源有限的设备上,如手机和机器人
目前的常规目标检测算法大都难以适用于iFSD的场景设置,一般的做法是对新类别进行fine-tune,但这样既耗时效果又一般。为此,论文提出无限制CentreNet(OpeN-ended Centre nEt, ONCE),在原CentreNet(CenterNet?)的基础上,采用基于特征的知识迁移策略,将网络分成类可知和类不可知模块进行增量式少样本学习。首先使用基类训练一个通用的特征提取器,然后基于meta-learning学习class code生成器,最后通过结合特征和class code进行目标定位
论文的主要贡献如下:
- 在增量式少样本目标检测问题上,论文首次尝试减少常规需要深度训练的目标检测算法对大量训练数据进行批量训练的依赖
- 提出无限制CentreNet(OpeN-ended Centre nEt, ONCE),将CentreNet适应到增量式少样本场景中
- 在目标检测和服装关键点检测实验上,ONCE都比目前的方法要好
Methodology
增量式少样本目标检测算法(Incremental Few-Shot Detection, iFSD)的目标为获得能够仅使用少量样本就能进行增量式学习新类别学习器,将目标类别分为足够样本的基础类别和少量样本的新类别,分别用于系统初始化和增量式学习,注意在增量式学习期间不能使用基类数据
Object Detection Architecture
常规的目标检测算法由于两阶段设计以及softmax分类器的使用,导致很难动态直接加入新类别。论文选择了CentreNet作为基础模型,出于以下两点考虑:
- 高效的one-stage目标检测pipeline
- 类别独立的建模范式(per-class heatmap centroid prediction),新类能够以插件形式接入

CentreNet将目标检测定义为point-attribute的回归问题,结构如图1,将中心点和空间大小(宽和高)作为回归目标,每个目标使用2D heatmap进行表示,而heatmap是类间独立的
Incremental Few-shot Object Detection
由于CentreNet是批量学习的模型,不适合iFSD场景,在其结构上引入meta-learning的思想,即文中的无限制CentreNet(OpeN-ended Centre nEt , ONCE)

Model formulation,ONCE将CtreNet分为两部分:(i) 通用的特征提取器,将输入转化为3D特征图 (ii) 目标定位器,包含用于将特征图成heatmap的类特定编码(class code)。为了脱离批量学习的形式,类特定编码(class code)由meta-learned network(class code generator)根据辅助集生成
Meta-Training: Learning a Few-Shot Detector,为了充分压榨基础类别的作用,将ONCE训练分别两个串行的阶段。第一阶段训练类不可知的特征提取器,第二阶段固定特征提取器,联合训练目标定位器和meta-network,meta-network根据给定的辅助集生成类特定编码,目标定位器则结合类编码和特征进行少样本目标定位学习
Meta-Testing: Enrolling New Classes,给予包含少量标注图片的新类别辅助集,直接使用学习到的特征提取器、目标定位器和meta-network。先通过meta-network生成类特定编码参数化目标定位器,然后直接进行图2 stage I对应的推理,不需要模型再训练
Stage I: Feature Extractor Learning
阶段一主要训练ONCE的类可知特征提取器$f$,使用正常的CentreNet训练方法进行完整训练,目标定位器$h$不用于阶段二,但后面基类的class code会复用阶段一的

对于训练图片$I\in \mathcal{R}^{h\times w\times 3}$,提取类可知特征图$m=f(I)$, $m\in \mathcal{R}^{\frac{h}{r}\times \frac{w}{r}\times c}$,目标定位器结合学习到的与类$k$相关的卷积核(class code)$c_k\in \mathcal{R}^{1\times 1\times c}$得到类$k$的中心点heatmap$Y_k$

对于目标的定位,先确定局部峰值$\mathcal{P}k={(x_i,y_i)}{i=1}^n$,局部峰值为bbox输出位置,要求大于等于所有临界像素,最终的bbox结果如公式2,$(\delta x_i,\delta y_i)=O_{x_i, y_i}\in \mathcal{R}^{1\times 1\times 2}$为中心偏移,$(h_i,w_i)=S_{x_i,y_i}\in \mathcal{R}^{1\times 1\times 2}$为尺寸预测,结合offset code和size code获得,具体方法与上面的类别heatmap获取类似,使用$L_1$回归损失对$f$的参数和$h$的参数$c$进行优化
Stage II: Class Code Generator Learning
在阶段一学习到的参数$c$仅包含基类,是固定的。为了适应iFSD场景,使用class code生成器$g$来根据样本图片在线生成新类别的class code。生成器的训练使用matching network的meta-learning策略,从基类中采样大量的少样本训练数据子集,模拟测试时的场景
定义单个iFSD任务$T$为在基类上平均采样获得的类标签集$L$,标签集仅包含一个或几个类别,将标签集中的每个类的图片随机分为辅助集合(meta-training)$S$和查询集(meta-valudation)$Q$

在推理阶段,辅助集$S$用于为每个类别$k$生成class code

基于class code集合${\hat{c}_k}$,按照公式4和公式5在查询图片$I$上进行目标检测,通过最小化在$Q$上的平均预测误差来优化class code生成器的参数,误差计算使用$L_1$损失$|\hat{Y}-Z|$,$Z$为GT heatmap
Meta Testing: Enrolling New Classes
给予少量的标注样本,新类别的meta-testing流程如下:
- 使用少量的标注样本通过公式3获取class code
- 通过公式4获取测试图片的特征
- 通过公式1定位新类别的目标实例
- 找到heatmap中局部最大位置,通过公式2获取所有bbox的坐标进行输出
对于基类的测试在第一步直接使用阶段一学习到class code,通过上述步骤,可以简单且独立地将新类别加入到iFSD中
Architecture

特征提取器$f$使用主干为ResNet的Simple baseline,结构如上图,包含encoder-decoder对。首先提取图片$I$的低分辨率的3D特征图,然后通过可学习的上采样卷积输出高分辨率的特征图$f(I)$。class code生成器使用相同的encoder主干,在进行阶段二之前,生成器的权重拷贝特征提取器的权重进行初始化,最终通过global average pooling输出256维的class code $c_k$。鉴于辅助集的数量可能各不一样,最终的class code为类所有辅助图片$I_i^{k,s}$的class code的平均值
Experiments
Non-Incremental Few-Shot Detection

将样本少的新类(10 shot)和样本充足的基类(all)混在一起进行训练,结果如表1
Incremental Few-Shot Object Detection
Experimental setup
same-dataset实验,将COCO的60类作为基类,其余20类作为新类别。对于meta-training,从基类随机采样32个任务,每个任务包含3个类别,每个类别包含5个标注的bbox。对于meta-testing,使用全部20个新类别,每个类别随机采样几张图片,有两种测试方法,一种是一次性加入全部类别(incremental batch learning),另一种是逐步加入类别(continuous incremental learning)
cross-dataset实验,跟上述类似,只是meta-training的基类从COCO采样,meta-testing的新类从VOC采样
Object detection on COCO


ONCE的性能比其它方法优异,尽管在新类别上的准确率普遍较低,但ONCE算是一种不错的快速解决增量式少样本检测的方法

在逐渐增加类别的场景下,ONCE表现稳定,而其它方法的表现则逐渐变差
Object detection transfer from COCO to VOC

与same-dataset的结果相差不大
Few-Shot Fashion Landmark Detection


Conclusion
在研究了现实的增量少样本目标检测问题后,论文提出了一个不错的快速解决算法ONCE,能够以推理的形式将新类别进行注册而不需要再使用旧的训练数据,相比其它类似的方法更有效
这里需要注意的是,论文的方法与主流的少样本目标检测算法不太一样,目前很多性能高的方法大都基于比对的方式进行有目标的检测,并且需要大量的数据进行模型训练再应用到新类中,要检测所有的类别则需要全部进行比对,十分耗时。而论文是增量式添加类别到模型,以常规的推理形式直接检测,十分高效且数据需求十分低,虽然最终的性能有点难看,但是这个思路还是可以有很多工作可以补的
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

增量学习不只有finetune,三星AI提出增量式少样本目标检测算法ONCE | CVPR 2020的更多相关文章
- AI佳作解读系列(五) - 目标检测二十年技术综述
计算机视觉中的目标检测,因其在真实世界的大量应用需求,比如自动驾驶.视频监控.机器人视觉等,而被研究学者广泛关注. 上周四,arXiv新出一篇目标检测文献<Object Detection ...
- 谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN
谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN 朱晓霞发表于目标检测和深度学习订阅 235 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 ...
- 超越Mask-RCNN:谷歌大脑的AI,自己写了个目标检测AI
这是一只AI生出的小AI. 谷歌大脑的Quoc Le团队,用神经网络架构搜索 (NAS) ,发现了一个目标检测模型.长这样: △ 看不清请把手机横过来 它的准确率和速度都超过了大前辈Mask-RCNN ...
- AI R-CNN目标检测算法
Region-CNN,简称R-CNN,是首次将深度学习应用于目标检测的算法. bounding box IOU 非极大值抑制 selective search 参考链接: https://blog.c ...
- AI SSD目标检测算法
Single Shot multibox Detector,简称SSD,是一种目标检测算法. Single Shot意味着SSD属于one stage方法,multibox表示多框预测. CNN 多尺 ...
- AI佳作解读系列(二)——目标检测AI算法集杂谈:R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3
1 引言 深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理.本文着重与分析目标检测领域的深度学习方法,对其中的经典模型框架进行深入分析. 目标检测可以理解为是物 ...
- 《垃圾回收的算法与实现》——增量式垃圾回收与RC Immix算法
增量式垃圾回收 为了控制最大暂停时间,通过逐渐推进垃圾回收即垃圾回收与mutator交替执行. 三色标记算法 以标记-清除算法为例使用三色标记算法. 利用降低吞吐量来缩短最大停顿时间. 基础 将GC中 ...
- 旷世提出类别正则化的域自适应目标检测模型,缓解场景多样的痛点 | CVPR 2020
论文基于DA Faster R-CNN系列提出类别正则化框架,充分利用多标签分类的弱定位能力以及图片级预测和实例级预测的类一致性,从实验结果来看,类该方法能够很好地提升DA Faster R-CNN系 ...
- 带你读AI论文丨用于目标检测的高斯检测框与ProbIoU
摘要:本文解读了<Gaussian Bounding Boxes and Probabilistic Intersection-over-Union for Object Detection&g ...
随机推荐
- Netty为什么不直接用AtomicXXX,而要用AtomicXXXFieldUpdater去更新变量呢?
更多技术分享可关注我 前言 如果仔细阅读过Netty的线程调度模型的源码,或者NIO线程对象及其线程池的创建源码,那么肯定会遇到类似“AtomicIntegerFieldUpdater”的身影,不禁想 ...
- A AK的距离
时间限制 : - MS 空间限制 : - KB 评测说明 : 1s,128m 问题描述 同学们总想AK.于是何老板给出一个由大写字母构成的字符串,他想你帮忙找出其中距离最远的一对'A'和'K'. ...
- andlua,andlua发送http请求,并解析json数据
andlua发送http请求,并解析json实例 import'cjson'import 'http'--导入cjson库url = 'https://www.baidu,com'--设置urlHtt ...
- Azure多因素认证
什么是多重身份验证? 双重验证是需要多种验证方法的身份验证方法,可为用户登录和事务额外提供一层重要的安全保障. 它的工作原理是需要以下两种或多种验证方法: 用户知道的某样东西(通常为密码) 用户具有的 ...
- TC1.6SourceCode java课程表
/** * @version 2.0 * @author sharks */ /** * Instruction * this version will use IO * apply file to ...
- 如何在VMwareWorkstation中安装Ubuntu系统
文章更新于:2020-03-17 注:如果安装之后重启停留在Write through,则关闭客户机,将 ISO 镜像换为物理光驱,或取消勾选开机连接.再次开机即可正常进入系统. 文章目录 一.安装环 ...
- Powershell抓取网页信息
一般经常使用invoke-restmethod和invoke-webrequest这两个命令来获取网页信息,如果对象格式是json或者xml会更容易 1.invoke-restmethod 我们可以用 ...
- EOS基础全家桶(七)合约表操作
简介 本篇我们开始来为后续合约开发做准备了,先来说说EOS内置的系统合约的功能吧,本篇将侧重于合约表数据的查询,这将有利于我们理解EOS的功能,并可以进行必要的数据查询. EOS基础全家桶(七)合约表 ...
- std::string::insert函数
string& insert (size_t pos, const string& str); string& insert (size_t pos, const string ...
- Mycat使用配置实践
本来写了好多,关于配置的解释和使用以及注意,但是发现有点啰嗦含金量也不高,所以直接把实际使用的一个例子放着吧,供参考. <!DOCTYPE mycat:schema SYSTEM "s ...