作者 | VincentLee
来源 | 晓飞的算法工程笔记
该论文研究了非常有意义的增量式少样本目标检测场景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都比目前的方法要好
方法论
增量式少样本目标检测算法(Incremental Few-Shot Detection, iFSD)的目标为获得能够仅使用少量样本就能进行增量式学习新类别学习器,将目标类别分为足够样本的基础类别和少量样本的新类别,分别用于系统初始化和增量式学习,注意在增量式学习期间不能使用基类数据。
目标检测架构
常规的目标检测算法由于两阶段设计以及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对应的推理,不需要模型再训练。
阶段一主要训练ONCE的类可知特征提取器 ,使用正常的CentreNet训练方法进行完整训练,目标定位器 不用于阶段二,但后面基类的class code会复用阶段一的。
对于训练图片 ,提取类可知特征图 , ,目标定位器结合学习到的与类 相关的卷积核(class code) 得到类 的中心点heatmapYk。
对于目标的定位,先确定局部峰值 ,局部峰值为bbox输出位置,要求大于等于所有临界像素,最终的bbox结果如公式2,为中心偏移,为尺寸预测,结合offset code和size code获得,具体方法与上面的类别heatmap获取类似,使用 回归损失对 的参数和 的参数 进行优化。
在阶段一学习到的参数 仅包含基类,是固定的。为了适应iFSD场景,使用class code生成器 来根据样本图片在线生成新类别的class code。生成器的训练使用matching network的meta-learning策略,从基类中采样大量的少样本训练数据子集,模拟测试时的场景。
定义单个iFSD任务 为在基类上平均采样获得的类标签集 ,标签集仅包含一个或几个类别,将标签集中的每个类的图片随机分为辅助集合(meta-training) 和查询集(meta-valudation)Q。
在推理阶段,辅助集 用于为每个类别 生成class code
基于class code集合 ,按照公式4和公式5在查询图片 上进行目标检测,通过最小化在 上的平均预测误差来优化class code生成器的参数,误差计算使用 损失 , 为GT heatmap。
给予少量的标注样本,新类别的meta-testing流程如下:
使用少量的标注样本通过公式3获取class code
通过公式4获取测试图片的特征
通过公式1定位新类别的目标实例
找到heatmap中局部最大位置,通过公式2获取所有bbox的坐标进行输出
对于基类的测试在第一步直接使用阶段一学习到class code,通过上述步骤,可以简单且独立地将新类别加入到iFSD中。
特征提取器 使用主干为ResNet的Simple baseline,结构如上图,包含encoder-decoder对。首先提取图片 的低分辨率的3D特征图,然后通过可学习的上采样卷积输出高分辨率的特征图 。class code生成器使用相同的encoder主干,在进行阶段二之前,生成器的权重拷贝特征提取器的权重进行初始化,最终通过global average pooling输出256维的class code 。鉴于辅助集的数量可能各不一样,最终的class code为类所有辅助图片 的class code的平均值。
实验
将样本少的新类(10 shot)和样本充足的基类(all)混在一起进行训练,结果如表1。
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采样。
ONCE的性能比其它方法优异,尽管在新类别上的准确率普遍较低,但ONCE算是一种不错的快速解决增量式少样本检测的方法。
在逐渐增加类别的场景下,ONCE表现稳定,而其它方法的表现则逐渐变差。
与same-dataset的结果相差不大。
结论
论文地址:https://arxiv.org/abs/2003.04668
【end】
◆有奖征文◆
推荐阅读了解这4个重点,带你探索未来将如何设计智能系统和机器人!IJCAI 2020灭霸式拒稿,AI审稿是否更公平?64% 的企业未实现智能化,5 成公司算法工程师团队规模小于 10人,AI 工程师的机遇在哪里?Docker 开发环境的滑坡比特币Logo背后有哪些历史及象征意义?Logo 上的“B”为什么会向右倾斜?抗住百万人直播、被联合国推荐,起底飞书技术演进之路!你点的每个“在看”,我都认真当成了AI