飞道的博客

PIX2SEQ: A LANGUAGE MODELING FRAMEWORK FOR OBJECT DETECTION

377人阅读  评论(0)


ABSTRACT

我们提出了Pix2Seq,一个简单而通用的目标检测框架。与现有的明确整合任务先验知识的方法不同,我们将对象检测转换为基于观察到的像素输入的语言建模任务。对象描述(例如,边界框和类标签)被表示为离散标记序列,我们训练一个神经网络来感知图像并生成所需的序列。我们的方法主要基于一种直觉,即如果一个神经网络知道物体在哪里和什么,我们只需要教它如何读出它们。除了使用特定于任务的数据增强之外,我们的方法对任务做出了最小的假设,但与高度专业化和良好优化的检测算法相比,它在具有挑战性的COCO数据集上取得了具有竞争力的结果。

1 INTRODUCTION

视觉目标检测系统的目标是识别和定位图像中预定义类别的所有对象。检测到的对象通常由一组边界框和关联的类标签来描述。考虑到任务的难度,大多数现有的方法,如(Girshick,2015;Ren等,2015;他等,2017;Lin等,2017b;Carion等,2020),经过精心设计和高度定制,在选择架构和损失功能方面有大量的先验知识。例如,许多架构针对边界框的使用定制(例如,区域提案(吉尔希克,2015;Ren等人,2015)和区域池(Girshick等人,2014;He等人,2017))。其他的是使用对象查询进行对象绑定(Carion等人,2020)。损失函数通常根据边界盒的使用进行定制,如盒子回归(Szegedy等人,2013;Lin等人,2017b)、基于集合的匹配(Erhan等人,2014;Carion等人,2020),或通过合并特定的性能指标,如边界框上的交叉过联合(Rezatofighi等人,2019)。虽然现有系统发现应用在无数领域,从自动驾驶汽车(太阳et al.,2020),医学图像分析(Jaeger et al.,2020),农业(Sa et al.,2016),专业化和复杂性使他们难以集成到一个更大的系统,或推广到一个更广泛的任务与一般智能相关的。

本文提倡一种新的方法,基于直觉,如果一个神经网络知道物体在哪里和什么,我们只需要教它读出它们。通过学习“描述”对象,模型可以学习将“语言”基于像素观察,从而产生有用的对象表示。这是通过我们的Pix2Seq框架来实现的(见图1)。给定一个图像,我们的模型生成一系列离散标记,这些标记对应于对象描述(例如,对象边界框和类标签),让人联想到图像字幕系统(Vinyals等人,2015b;karpaty&费飞,2015;Xu等人,2015)。在本质上,我们将目标检测转换为以像素输入为条件的语言建模任务,其模型架构和损失函数是通用的和相对简单的,而不是专门为检测任务而设计的。因此,人们可以很容易地将该框架扩展到不同的领域或应用程序,或将其合并到一个支持一般智能的感知系统中,为此,它为广泛的视觉任务提供了一个语言界面。

为了解决Pix2Seq的检测任务,我们首先提出了一种量化和序列化方案,该方案将边界框和类标签转换为离散标记序列。然后,我们利用一个编码器-解码器架构来感知像素输入和生成目标序列。目标函数只是基于像素输入和前面的标记条件的标记的最大似然。虽然架构和损失函数都是任务无关的(不假设关于目标检测的先验知识,例如,边界框),但我们仍然可以将任务特定的先验知识与下面提出的序列增强技术相结合,该技术在训练过程中改变输入和目标序列。通过广泛的实验,我们证明了这个简单的Pix2Seq框架可以在COCO数据集上实现竞争性的结果,而不是高度定制的、建立良好的方法,包括Faster R-CNN(Ren等人,2015)和DETR(Carion等人,2020)。通过在更大的目标检测数据集上对模型进行预训练,可以进一步提高其性能。

2 pix2seq框架

在提出的Pix2Seq框架中,我们将对象检测作为一个语言建模任务,基于像素输入(图1)。该系统由四个主要部件组成(图2):

  • 图像增强:正如在训练计算机视觉模型中常见的那样,我们使用图像增强来丰富一组固定的训练例子(例如,使用随机缩放和作物)。
  • 序列构造和增强:由于图像的对象注释通常表示为一组边界框和类标签,因此我们将它们转换为一系列离散的标记。
  • 架构:我们使用一个编码器-解码器模型,其中编码器感知像素输入,并且解码器生成目标序列(一次一个令牌)。
  • 目标/损失函数:该模型被训练为最大化基于图像和前面的标记的标记的对数似然值(具有softmax交叉熵损失)。

2.1SEQUENCE CONSTRUCTION FROM OBJECT DESCRIPTIONS

在常见的目标检测数据集中,如帕斯卡VOC(埃弗林汉姆等人,2010)、COCO(Lin等人,2014)和开放图像(库兹涅索瓦等人,2020),图像有可变数量的对象,以边界框和类标签集表示。在Pix2Seq中,我们将它们表示为离散标记序列。

然类标签自然地表示为离散标记,但边界框则不是。一个边界框由它的两个角点(即左上角和右下角)决定,或由它的中心点加上高度和宽度决定。我们建议离散用于指定角点的x,y坐标的连续数(如果使用另一种方框格式,则高度和宽度也类似)。具体来说,一个对象被表示为一个由5个离散标记组成的序列,即 [ y m i n 、 x m i n 、 y m a x 、 x m a x 、 c ] [y_{min}、x_{min}、y_{max}、x_{max}、c] [yminxminymaxxmaxc],其中每个连续的角坐标被均匀地离散为 [ 1 , n b i n s ] [1,n_{bins}] [1nbins]之间的一个整数,而c是类索引。我们对所有令牌使用共享词汇表,因此词汇量大小等于 b i n s + c {bins}+c bins+c。这种针对边界框的量化方案允许我们在实现高精度的同时使用一个小的词汇表。例如,一个600×600的图像只需要600个 b i n s bins bins就可以实现零量化误差。这比词汇量为32K或更高的现代语言模型要小得多(Radford等人,2018年;Devlin等人,2018年)。不同的量化级别对边界箱放置的影响如图3所示。

将每个对象描述表示为一个短的离散序列,我们接下来需要序列化多个对象描述,以形成给定图像的单一序列。由于对象的顺序对检测任务本身并不重要,所以我们使用随机排序策略(每次显示图像时对顺序对象进行随机化)。我们也探索了其他的确定性排序策略,但我们假设随机排序将和任何确定性排序一样有效,给定一个有能力的神经网络和自回归建模(其中网络可以学习建模所观察到的剩余对象的分布)。

最后,由于不同的图像通常有不同数量的对象,生成的序列将有不同的长度。为了表示序列的结束,我们因此合并了一个EOS令牌。在不同的排序策略下的顺序构建过程如图4所示。

2.2 ARCHITECTURE, OBJECTIVE AND INFERENCE

我们将从对象描述中构建的序列视为一种“方言”,然后我们转向在语言建模中有效的通用架构和目标函数。

ARCHITECTURE 我们使用一个编码器-解码器架构。编码器可以是一个通用的图像编码器,感知像素并将其编码成隐藏的表示,如 ConvNet(LeCun等人,1989;克里热夫斯基等人,2012;他等人,2016年),Transformer(瓦斯瓦尼等人,2017年;多索维茨基等人,2020年),或它们的组合(Carion等人,2020年)。对于生成,我们使用了一个广泛用于现代语言建模的Transformer解码器(Radford等人,2018年;Raffel等人,2019年)。它一次生成一个标记,条件是前面的标记和编码的图像表示。这消除了现代对象检测器架构中的复杂性和定制性,例如,边界框建议和回归,因为标记是使用softmax从单个词汇表生成的。

Objective 与语言建模类似,Pix2Seq被训练来预测标记,给定一个图像和之前的标记,具有最大的似然损失,即
m a x i m i z e ∑ j = 1 L l o g P ( y j ~ ∣ x , y 1 : j − 1 ) maximize\sum^{L}_{j=1}logP(\tilde{y_j}|x,y_{1:j-1}) maximizej=1LlogP(yj~x,y1:j1)
其中 x x x为给定的图像, y y y y ~ \tilde{y} y~为输入与x关联的目标序列, L L L为目标序列长度。 y y y y ~ \tilde{y} y~在标准语言建模设置中是相同的,但它们也可能是不同的(就像在我们后面的增强序列构造中一样)。此外, w j w_j wj是序列中第j个标记的预先分配的权重。我们设置了 w j = 1 , ∀ j w_j = 1,∀j wj=1j,但是可以根据它们的类型(例如,坐标与类标记)或对应对象的大小来权重标记。

Inference 在推理时,我们从模型似然中采样令牌,即 P ( y j ∣ x , y 1 : j − 1 ) P(y_j|x,y_{1:j−1}) Pyjxy1j1。这可以通过使用具有最大可能性的标记(arg max sampling)或使用其他随机抽样技术来实现。我们发现,使用核抽样(Holtzman et al.,2019)比arg最大采样导致更高的召回率(附录C)。当生成EOS令牌时,该序列将结束。一旦序列生成了,就可以直接提取和去量化对象描述(即,获得预测的边界框和类标签)。

2.3 SEQUENCE AUGMENTATION TO INTEGRATE TASK PRIORS

EOS标记允许模型决定何时终止生成,但在实践中,我们发现模型倾向于完成,而不预测所有对象。这可能是由于:

  • 1)注释的噪声(例如,注释器没有识别所有的对象);
  • 2)在识别或定位某些对象时的不确定性。虽然这只对整体表现影响很小一部分(例如,平均精度为1-2%),但它对召回率的影响更大。为了鼓励更高的召回率,一个技巧是通过人为地降低EOS令牌的可能性来延迟其采样。然而,这往往会导致嘈杂和重复的预测。在某种程度上,精度和召回率之间的困难权衡是因为我们的模型是任务不可知的,没有意识到检测任务本身。

为了缓解这个问题,我们简单地引入了一种序列增强技术,从而结合了关于任务的先验知识。在传统的自回归语言建模(即没有序列扩充)中的目标序列 y ~ \tilde{y} y~与输入序列 y {y} y相同。并且一个序列中的所有标记都是真实的(例如,从人类注释转换而来的)。通过序列增强,我们在训练过程中增强输入序列,以包括真实和合成噪声令牌。我们还修改了目标序列,使模型能够学习识别噪声标记,而不是模拟它们。这提高了模型对有噪声和重复预测的鲁棒性(特别是当EOS令牌被延迟以增加召回率时)。通过序列增强所引入的修改如图5所示,详细信息如下。

Altered sequence construction 我们首先创建合成噪声对象来增加输入序列: 1)向现有的ground-truth对象添加噪声(例如,随机缩放或移动它们的边界框)2)生成完全随机的方框(具有随机关联的类标签)。值得注意的是,其中一些噪声物体可能与一些ground-truth物体相同或重叠,模拟有噪声和重复的预测,如图6所示,在噪声对象被合成和离散后,我们将它们附加到原始输入序列的末尾。对于目标序列,我们将噪声对象的目标标记设置为“噪声”类(不属于任何地面真类标签),将噪声对象的坐标标记设置为“n/a”,其损失权值设置为零,即在Eq 1中设置 w j = 1 y ~ ! = “ n / a ” w_j=1_{\tilde{y}!=“n/a”} wj=1y~!=n/a

通过序列增强,我们可以大幅延迟EOS令牌,在不增加有噪声和重复预测的频率的情况下提高召回率。因此,我们让模型预测到一个最大的长度,从而产生一个固定大小的对象列表。当我们从生成的序列中提取边界框和类标签的列表时,我们将“噪声”类标签替换为在所有真实类标签中可能性最高的真实类标签。我们使用所选的类令牌的可能性作为对象的(排名)分数。

3 EXPERIMENTS

3.1 EXPERIMENTAL SETUP

我们在MS-COCO 2017检测数据集(Lin et al.,2014)上评估了所提出的方法,该数据集包含118k个训练图像和5k验证图像。为了与DETR和Faster R-CNN进行比较,我们报告了在最后一个训练时期的验证集上的平均精度(AP),这是一个超过多个阈值的积分度量。我们采用两种训练策略: 1)从零开始训练COCO为了比较基线,也2)预训练+微调,即预训练Pix2Seq模型在一个更大的目标检测数据集,即对象365(Shaoetal.,2019),然后微调COCO模型。由于我们的方法包含了零归纳偏差/目标检测任务的先验知识,我们期望第二种训练策略更优越。

为了从头开始进行训练,我们使用ResNet骨干网(He等人,2016年)进行跟踪(Carion等人,2020年),然后是6层变压器编码器和6层(因果)变压器解码器(Vaswani等人,2017年)。我们调整图像的大小(与一个固定的高宽比),所以较长的边是1333像素。对于序列构建,我们使用2000个量化 bins,并在每次显示图像时随机化对象的顺序。我们将噪声对象附加到真实对象中,这样每幅图像总共包含100个对象,因此序列长度为500个。该模型被训练了300个时代,批大小为128。

对于对象365数据集的预训练,我们使用与上面类似的设置,但有一些差异。值得注意的是,我们没有使用较大的1333×1333图像大小,而是使用较小的640×640图像大小,并对模型进行400K步的预训练,批量大小为256。值得注意的是,由于使用了更小的图像大小,这个预训练过程甚至比从头开始的训练更快。在对COCO数据集的微调过程中,只需要少量的时期(如20到60个时期)就可以获得良好的结果。我们也可以在微调过程中使用更大的图像大小。由于使用了更大的预训练数据集,我们还使用视觉变压器对更大的模型进行了实验(多索维茨基等人,2020年)。

这两种训练策略的更多细节可以在附录b中找到。至于消融,我们使用了一个较小图像尺寸的ResNet-101主干(较长的边是640),我们从头训练模型200个epoch。

3.2 MAIN COMPARISONS

Training from scratch on COCO 我们主要与两种公认的基线进行比较: DETR和Faster R-CNN。DETR和我们的模型具有可比的架构,但是我们的Transformer译码器不需要学习的“对象查询”或分离的头来进行盒子回归和分类,因为我们的模型使用一个softmax生成不同类型的标记(例如,坐标和类标记)。Faster R-CNN是一种建立良好的方法,具有优化的体系结构,如特征金字塔网络(FPN)(Lin et al.,2017a)。与DETR或我们的模型相比,Faster R-CNN通常在更少的时代进行训练,可能是因为它明确地在架构本身中包含了任务的先验知识。因此,我们还包括了一个改进的Faster R-CNN基线,表示为Faster R-CNN+,来自(Carion等人,2020),其中Faster R-CNN模型通过GIoU损失(雷扎托菲吉等人,2019)、训练时间随机作物增加和较长的9倍训练计划进行训练。

结果如表1所示,每个部分比较了相同的ResNet“主干”的不同方法。总的来说,Pix2Seq对两个基线都有有竞争力的结果。我们的模型在中小物体上的表现比R-CNN更快,但在较大的物体上表现更好。与DETR相比,我们的模型在大型和中型物体上的性能相对或略差,但在小物体上明显更好(4-5 AP)。

3.3 ABLATION ON SEQUENCE CONSTRUCTION

图7a探讨了坐标量化对性能的影响。对于这种消融,我们考虑最长尺寸为640像素的图像。图中显示,量化到500个或以上的箱子就足够了;对于500个箱子,每个箱子大约有1.3个像素,这不会引入显著的近似误差。实际上,只要一个人有尽可能多的像素数(沿着图像最长的一侧),就不会有由于边界框坐标的量化而产生的显著误差。

在训练过程中,我们还考虑了序列构建中不同的对象排序策略。这些区域包括1)随机、2)区域(即降序对象大小)、3)dist2ori(即边界框左上角到原点的距离)、4)类(名称)、5)类+区域(即对象首先按它们的类排序,如果有多个同一类的对象,则按区域排序)和6)类+ dist2ori。图7b显示了平均精度(AP),图7c显示了前100个预测值处的平均查全率(AR)。在精度和召回率方面,随机排序都产生了最好的性能。我们推测,对于确定性排序,模型可能很难从早期丢失对象的错误中恢复过来,而对于随机排序,以后仍有可能检索到它们。

3.4 ABLATION ON SEQUENCE AUGMENTATION

在这里,我们研究了序列增强(即添加噪声对象)对两种模型训练策略的影响: 1)从头开始的COCO训练,以及2)对对象365的预训练和对COCO的微调。从头开始进行w/wo序列增强训练的结果如图8所示,我们发现在没有序列增强的情况下,如果在推理过程中延迟(通过似然抵消)EOS标记的采样,AP略差,但最优AP的召回率明显更差。表3显示了训练前+微调设置的类似结果(我们将结束令牌的损失权重设置为0.1,而不是调整它们的可能性偏移),我们发现AP没有受到显著影响,而在没有序列增强的情况下,召回率明显更差。同样值得注意的是,序列增强在微调过程中主要是有效的。

除了架构之外,现有检测器的损失函数也为匹配边界框高度定制。例如,损失函数通常基于边界盒回归(Szegedy等人,2013;Lin等人,2017b)、联合交集(雷扎托菲吉等人,2019)和基于集的匹配(Erhan等人,2014;刘等人,2016;Redmon等人,2016;斯图尔特等人,2016;Carion等人,2020年)。Pix2Seq避免了专门的损失,表明了一个简单的具有软最大交叉熵的最大似然目标可以很好地工作。

我们的工作还与目标检测中的循环模型有关(斯图尔特等人,2016;公园和伯格,2015;罗梅拉-帕雷德斯和托尔,2016;萨尔瓦多等人,2017;Ren & Zemel,2017),在该系统中,系统学习一次预测一个物体。如上所述,这些方法中的架构和损失功能通常都是针对检测任务而定制的。此外,这些方法不是基于Transformer,也没有在更大的数据集上对现代基线进行评估。


转载:https://blog.csdn.net/qq_42882457/article/details/127868250
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场