Press "Enter" to skip to content

目标检测的“尽头”竟是语言建模?Hinton团队提出Pix2Seq:性能优于DETR

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

作者丨happy

 

原文链接: https://arXiv.org/abs/2109.10852

 

Abstract

 

本文提出了一种简单而通用框架Pix2Seq用于目标检测,不同于已有显式集成先验知识的方案, 我们将目标检测任务转换成了基于观测像素输入的语言模型任务 。关于目标的描述(比如边框、类别)将被描述为离散token序列,我们训练了一个神经网络去感知图像并生成期望的序列。

 

该方法主要基于这样的直觉: 如果神经网络知道目标在哪、目标是什幺,那幺我们仅需要教它如何进行解析 。除了实用任务相关数据增广外,该方法对任务做了最小假设,相比高度优化的检测方案,所提方法在COCO数据集上取得了极具竞争力的结果。

Method

正如前面所提到,Pix2Seq将目标检测任务转换为基于像素输出的语言模型任务。如上图所示,该方案包含四个主要成分:

 

图像增广:正如其他CV模型一样,我们采用图像增广提升训练集的样本丰富,比如随机缩放、随机裁剪;

 

序列构建与增广:由于图像中的目标标注通常为边框与类别集合,因此我们将其转换为离散token序列;

 

网络架构:我们采用了编码-解码架构,其中编码器用于感知像素输入,解码器用于生成目标序列;

 

损失函数:模型通过最大化token的对数似然进行训练。

 

Sequence Construction from Object Descriptions

 

在常规目标检测数据(比如Pascal VOC,COCO以及OpenImages)中,图像往往包含可变数量的目标,每个目标通过边框与类别标签表示。在Pix2Seq中,我们将其表示为离散token序列。

 

类别标签天然的可以表示为离线token,但边框不行。边框可以通过两个角点(比如左上、右下两个角点)确定,或者通过中心加宽高。我们对角点的坐标进行离散化,具体来说, 目标将被表示为五个离散token序列 ,每个连读角点坐标被均匀离散化到整数 ,c为类别索引 。我们对所有目标采用共享词表(vocabulary),故此表大小等于bins数+类别数。这种量化机制使得我们可以使用较小的词表取得高精度。比如,大小图像仅需600bins即可达到零量化误差,这远小于32K词表的语言模型。下图给出了不同水平量化对于边框的影响。

在前面内容中,我们将目标的描述转换为短离散序列,接下来,我们对多目标描述序列化以构建给定图像的单序列。 由于目标的顺序不会对检测任务产生影响,我们采用了随机顺序策略 。我们同样探索了其他确定性顺序策略,但两者性能相当。

 

 

由于不同图像通常包含不同数量的目标,所生成的序列具有不同的长度。 为指示序列结尾,我们引入了EOS词 。上图给出了不同顺序策略下的序列构建过程。

 

Architecture, Objective and Inference

 

前面完成了目标描述的转换,接下来,我们将转向架构、损失函数的构建。

 

Architecture我们采用 编码器-解码器架构 ,编码器是一种广义图像编码器(ConvNet、Transformer或者两者组合君和):它对像素进行感知并编码为隐表达。对于生成器部分,我们采用语言模型中常用的Transformer解码器:它一次生成一个token。这种方式消除了已有目标检测器架构的复杂性与定制化功能,比如bbox proposal、regression等。

 

Objective类似语言模型,Pix2Seq将用于预测token,给定图像与之前的token,最大化似然损失:

 

其中,x表示输入图像,表示输入与目标序列,L表示目标序列长度。

 

Inference在推理阶段,我们从中进行token采样,此时可以选用具有最大似然的token、或者其他随机采样技术。我们发现: nucleus采样具有更高的召回率 。当生成EOS这个token后,序列结束,然后对所的序列进行反量化转换为目标。

 

Sequence Augmentation to Integrate Task Priors

 

EOS的存在允许模型自己决定何时停止生成token,但实际上我们发现: 模型倾向于提前停止,导致无法预测所有目标 。原因可能有一下两个:

 

标注噪声,比如标注者没有标注所有目标

 

某些目标的不确定性

 

由于召回率与准确率对目标检测均非常重要,为得到更高召回率,一个可能的技巧:通过人工降低似然延迟EOS的采样。然而,这会误检、重复检测问题。

 

由于所提方案的任务不可知性,很难对精度-召回率进行均衡调整。 为缓解该问题,我们引入了一种序列增广技术,集成关于任务的先验信息 。传统自回归语言模型中的目标序列与输入序列相同;经过序列增广后,我们不仅对输入序列进行增广,同时还对目标序列进行修改使其能辨别噪声token。这种处理方式可以有效提升模型的鲁棒性。下图给出了所提序列增广示意图。

Altered Sequence Construction我们首先通过如下两种方式构建合成噪声目标以增广输入序列:

 

对已有真实目标添加噪声,如边框随机缩放与移位;

 

生成随机边框与随机类别标签。

上图给出了合成噪声目标示意图,可以看到:合成噪声目标与真实目标会存在重叠。 完成噪声目标合成与离散化后,我们将其添加到原始输入序列尾部;对于目标序列,我们设置噪声目标的目标token为noise类、坐标token为n/a,对应的损失权值为0,即 。

 

Altered inference基于上述序列增广,我们可以极大的延迟EOS词的生成,提升召回率且不会提升噪声/重复预测。我们让模型预测最大长度序列,生成定长目标列表。然后,我们从生成的目标序列中提取边框与类别信息,采用最大似然真实类别标签替换noise类别标签。

 

Experiments

上表给出了所提方案与DETR、Faster R-CNN在COCO数据集上的性能对比,从中可以看到:

 

所提Pix2Seq取得了与基线方案相当的结果 ;

 

相比Faster R-CNN,所提Pix2Seq在小目标与中目标检测方面性能相当,但在大目标检测方面更优;

 

相比DETR,所提Pix2Seq在大/中目标检测方面相当或稍差,但在小目标检测方面更优,高4-5AP。

上图a比较了坐标量化对于性能的影响,结果表明: 500bins量化足矣 。

 

上图b和c比较了不同目标顺序策略的性能对比,结果表明: 随机顺序具有最佳性能 。

上图a比较了图像增广的性能影响,结果表明: 使用不合适的增广时,模型会出现过拟合 。更强的图像增广可能会带来更好的性能提升。

 

上图b比较了序列增广的性能影响,结果表明: 不使用序列增广时,随AR提升,AP出现了大幅下降;而使用了序列增广后,模型具有更好的AR-AP均衡 。

全文到此结束,更多消融实验与分析建议查看原文。

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注