nocaps: novel object captioning at scale (ICCV 2019) ---- baseline
paper: nocaps: novel object captioning at scale
code: nocaps-org/updown-baseline: Baseline model for nocaps benchmark, ICCV 2019 paper “nocaps: novel object captioning at scale”. (github.com)
摘要
关键问题: 应用于实际场景的话,必须利用较少监督学习大量视觉概念
为了图像描述模型能学习来自不同数据源的视觉概念,提出第一个针对此任务的数据集 ---- “nocaps”:从开放的图像校验和测试集由166100人类生成的字幕描述15100张图片。训练数据由COCO图像-描述对+Open Images 图像级标签和物体框组成。测试集中400种物体类别在训练集描述中没有或者几乎很少注释的(nocaps)。针对此任务建立强基线并提供指导未来工作的分析
1 Introduction
现有模型存在的问题: 对于实际应用场景泛化性能弱尽管其数据集性能高,由于他们在真实世界中训练数据集包含视觉概念的长尾分布的一小部分
应用场景: 盲人视觉,基于自然语言查询的图像检索
为了实现应用,描述模型能识别出 在训练中未出现于描述语料库中的物体。这种物体有检测标注但在描述语料库中未出现—novel object, 描述模型称为novel object captioning
nocaps: 4500和10600校验集和测试集图像组成,源于开放的目标检测数据集,并每张图伴随11个人类生成的标注(自动的评估10个参考描述+一个人的baseline),训练数据来自COCO Captions2017(118K图像包含80个物体类别)+Open Images V4目标检测训练集(1.7M图像 对于600个物体类别的框和20K类别图像标签)
本文的科学目标:解决来自”如何描述它“去”如何识别一个物体“ 模型内化了大量描述中的实例,无法被引导学习新的物体。而人类学习新的物体名称后,可以立即谈论它的属性和关系。
Contributions:
- nocaps ---- 对于新颖物体描述的大规模数据集,包括400新颖的物体
- 针对在此任务上现有的两种SOTA方法进行性能的细节调查和缺点分析,并比较两种方法和人类性能
- 改进和启发式方法改进了本数据集上受限制的beam search方法的性能
2 Related Work
Novel Object Captioning 包括迁移学习和领域适用
- 测试图片包括之前未见过的,或者”novel“物体取自于一个目标分布Open Images,它与源/训练分布 COCO不同。为了获得在目标域性能好的描述模型,Deep Compositional Captioner和它的改进,Novel Object Captioner,都尝试通过利用目标检测数据集和外部的文本语料库去迁移知识。通过分解描述模型为视觉和文本的部分,能利用独立的损失函数去训练的部分以及联合使用可用的图像-描述数据。
- 几个方法选择显式使用目标检测器的输出。Neural Baby Talk and Decoupled Novel Object Captioner 提出神经方法生成填槽的描述模板,通过SOTA目标检测器识别出的视觉概念用于填充入模板。对于Neural Baby Talk中的LSTM-C将标准的递归神经网络句子解码器增加了一个复制性的机制,能选择与目标检测器相对应出现于输出句中的词。
- 与这些工作相反,几个方法是结构不相关的。不受限制的beam search是一个解码算法,其被用于增强在推理阶段描述中的选择的单词的包含性,比如由一个目标检测器预测的新颖目标类别。partially-specified sequence supervision(PS3)使用不受限的beam search作为一个子线程针对图像包含了新颖物体的数据集去评估完整的描述。这些完整的描述用于训练目标(受到expectation maximization EM启发的迭代算法)。
- Neural Baby Talk (NBT) [25] and Constrained Beam Search (CBS) [2] SOTA on novel object captioning dataset.
Image Caption Datasets
Direct-annotated datasets, such as Flickr 8K [14], Flickr 30K [48] and COCO Captions [5]
filtered datasets, such as Im2Text [27], Pinterest40M [26] and Conceptual Captions [36]
3 nocaps
3.1 Caption Collection
- nocaps中的图像来自Open Images V4 [20]的验证和测试集。Open Images是目前最大的人类标注的目标检测数据集,包含190万张复杂场景的图像,并为600个类标注了物体边界框(训练集中每张图像平均有8.4个物体实例)。此外,在这500个不过于宽泛(如 “服装”)或不常出现(如 “裁纸机”)的类中,有近400个类别在COCO Captions[6]中从未或很少被提及(我们选择其作为图像标题的训练数据),使得这些图像成为我们基准数据集的理想基础。
- Image Subset Selection 由于Open Images主要是一个目标检测数据集,所以很大一部分图像包含了单个物体的好帧的标志性角度。此外,物体类别的分布是非常不平衡的,有一个相对不经常出现的长尾物体类别。然而,对于图像描述来说,包含多个物体和罕见的物体共同出现的图像更有趣,也更具挑战性。因此,我们通过应用以下抽样程序,从Open Images的验证和测试分片中选择图像子集。
- 首先,我们排除所有正确图像旋转非零或未知的图像。接下来,根据真实的物体检测注释,我们排除了所有只包含单一物体类别实例的图像。然后,为了尽可能多地捕捉视觉上复杂的图像,我们包括所有包含6个以上独特物体类别的图像。最后,我们使用抽样程序从剩余的图像中迭代选择,鼓励在物体类别和图像复杂性(基于每个图像的独特类的数量)方面的均匀表现。具体来说,我们将剩余的图像分为5个池子,池子划分是基于出现于图像中的特定类别的数量(从2-6个开始)。然后,对每个池子依次随机抽取n个图像,我们在这些图像中选择当在对象类别上的熵最高的图像添加到我们的基准中。这样可以防止nocaps被经常出现的物体类别(如人、汽车或植物)所过度支配。总的来说,我们总共选择了4,500张验证图像(来自Open Images验证集的总共41,620张图像)和10,600张测试图像 (来自Open Images测试集的125,436张图片)。平均而言,所选图像包含4个对象类别和8个对象实例。
(PS:熵 entropy ---- 体系的混乱程度, 图像熵 ---- 图为纯色(黑白)时,只有一个灰度值,熵最小,信息量为0,说明图像不包含任何目标。 图含有N个灰度值,即图像每个像素点灰度值都不同,此时熵最大,H=logN,图像信息量最大,可认为每个单一像素都是一个独立目标物体,说明图像充满了物体。) - Collecting Image Captions from Humans 为了评估模型生成的图像描述,我们在Amazon Mechanical Turk(AMT)上大量人为地每张图片收集了11个English描述。超过11个描述,我们为每张图随机采样一个描述,以确定人类在nocaps上的表现,并使用剩余的10个描述作为自动评估的参考描述。先前的文章认为当更多的参考描述被提供的时候,自动描述评价指标与人类判断有更好的相关性,这推动我们去收集更多的参考描述比起COCO(每张图仅仅5个描述)。
- 我们的图像描述收集界面与用于收集COCO描述数据集的界面非常相似,但有一个重要区别。因为nocaps数据集比起COCO包含更少和细粒度的类别,在最初的实验研究中,我们发现人类标注器无法总是正确识别图像中的物体。例如,将红色熊猫错误描述为棕色啮齿动物。因此我们通过展现出图像中的真实物体类别列表,进行人工诱导实验。为了最小化人工可能减少结果描述语言的多样性,物体类别被展示为”keywords“,人工显式被指导为去注意所有展现的词是不必要的。为了减少杂乱,我们没有展示物体类别,这些物体类别由Open Images中被分类为部分,如human hand,tire,door handle。试点研究比较了使用和不使用引诱收集的描述,结果表明,使用引诱的工人产生了更多定性的、准确的和描述性的标题(见图)。因此,所有的nocaps描述,包括我们的人类基线,都是使用这个经过引诱修改的COCO收集界面收集的。
- 为了帮助维持收集的描述的质量,我们只使用美国工人,他们在AMT上至少完成了5K的任务,而且通过率超95%。我们也抽查了每个工人写的字幕并组织了提供低质量描述的工人。这些工人所写的描述随后被丢弃并由高质量工人所写的描述所取代。总的来说,有727名工人参与,平均每人写了228个描述。平均共写了166100个nocaps描述。
3.2 Dataset Analysis
- 在本节中,我们针对图像内容和描述多样性对nocaps基准和COCO Captions进行了比较。基于真实的目标检测标注,nocaps包含跨越600个物体类别,而COCO包含仅仅80个。对于更多的视觉多样性,nocaps每张图包含更多的物体类别(4.0 vs 2.9),稍微更多的物体实例(8.0 vs 7.4)。此外,nocaps包含非标志性图像包括仅仅一个物体类别,然而COCO数据集20%由这类图像组成。类似地,COCO图像包含超过6个物体类别的图像少于10%,而这种图像在nocaps中超过22%。
- 尽管诱导人工描述物体类别为keywords,但在数据收集期间也有可能减少语言多样性,而nocaps描述比COCO的多样性更丰富。因为nocaps在视觉上比COCO更丰富,平均收集的描述这些图像往往比COCO更长(11 words vs 10 words)并且更加多样化。如表所示,在每个数据集中相同数量的图像和描述上均匀随机抽样,我们表明不仅nocaps的描述比COCO的描述使用更大的词汇量,反映了存在的视觉概念的数量增加。2,3,4-grams的数量明显高于COCO,这表明独特的语言构成的种类也更多。
- 此外,我们对比COCO上视觉和语言之间的相似性在in-domain 和 out-of-domain。如图,我们发现in-domain类别与COCO同等的类展现高的视觉相似度(如cat, book),而许多out-of-domain类别视觉和语言上不同于in-domain类别(如jellyfish,beetle,cello)。out-of-domain也包含许多视觉上和语言上相似的概念比起COCO,但很少被描述在COCO上(如tiger, lemon)。
3.2 Evaluation
- nocaps的目标是去推动模型能对视觉上新颖概念进行描述并应用于实际场景中,通过利用其他的数据源。为了方便评估且避免暴露新颖的对象描述,我们为nocaps提出一个评估服务在EvalAI[45]上 - 我们提出几点指导去使用nocaps:
- 不要使用额外的来自人类收集的图像-描述对数据。通过利用额外的人类生成的配对图像描述数据来提高评估分数是与本基准背道而驰的 ---- 唯一应该使用的图像描述数据集应该是COCO Captions 2017训练分片。然而,在训练或推理过程中,可以使用外部文本库、知识库和目标检测数据集。
- 不要利用真实的目标标注。我们认为真实的目标检测标注对于Open Images validation and test splits是有效的(for nocaps)。然而真实标注可能被用于提升校验集的性能,但他们绝不应该被提交给评估服务器除非明确说明这一点。
- 我们估计研究人员可能希望在没有任何训练数据集的限制情况下去研究在nocaps上的性能极限。因此我们为此单独设立了一个排行榜 “nocaps (XD)” 排行榜。
- Metrics 作为现有描述的基准数据集,我们依赖于自动指标去评估模型生成描述的质量。我们主要聚焦于CIDEr和SPICE,这与人类判断都具有最强的相关性,并被用于之前的新颖物体描述工作中,然而我们也报道了Bleu,Meteor and ROUGE。这些指标测试了模型是否准确地提到了新的物体,以及是否流畅地描述了它们。值得注意的是,由于参考描述的数量和整个语料库的统计数字不同,这些指标的绝对规模在不同的数据集之间不具有可比性。
Evaluation Subsets 我们进一步细分了在验证和测试部分的三个子集上的nocaps性能,对应于不同的 "接近 "COCO的程度。
- 为了确定这些子集,我们手动映射80个 COCO类到Open Images类。然后我们选择额外的39个Open Images类,它们不是COCO 类,但在COCO描述训练集中被描述超过1,000次(如 “表”、"板 "和 “树”)。 我们将这119个类别归类为相对于COCO的in-domain类别。有87个Open Images的类别不存在于nocaps中 。 剩下的394个类是out-of-domain。然后,图像子集被确定如下:
in-domain: 图像包含仅仅属于in-domain类别的物体。由于这些物体被描述在成对的图像-描述训练数据中,我们期望仅仅训练在COCO上的描述模型在这个子集上有合理的表现,尽管由于图像域的转移会产生一些负面影响。这个子集包括1311个测试图片(13K captions)。
near-domain: 图像包含in-domain和out-of-doamin物体类别。这些图像对于COCO训练好的模型来说是更加具有挑战性的,尤其当图像中存在最静止的物体时。这是包含7406个测试图像的最大的子集(74K captions)。
out-of-domain: 图像不仅包括任何in-domain类别,且是视觉上与COCO图像完全不同的。我们期望这个子集是最具有挑战性的并且模型仅仅训练于COCO数据上更有可能发生‘embarrassing errors’在这个子集上,反应了COCO训练好的模型的当前的性能。这个子集包括1883个测试图像(19K captions)。
4 Expersiments
- 为了在nocaps上提供一个SOTA的初始度量,我们展示了两个对于novel object captioning的两个当代方法 - Neural Baby Talk (NBT)[25] and Constrained Beam Search (CBS) [2] 推理方法,也运用了NBT和UpDown captioner。为了完整起见,我们简要地回顾了这些方法,但鼓励读者去寻找原作以了解更多原文中的细节。
- Bottom-Up Top-Down Captioner(UpDown)[4] 在大量的对象和属性类别上,我们使用了公开的Faster R-CNN [34]检测器,在COCO上产生了接近最先进的单一模型描述性能。对于视觉特征,我们使用公开的Faster R-CNN[34]检测器在Visual Genome[4]上进行训练,以建立一个专门针对配对图像-字幕数据的强大基线。
- CNN方法输入整张图像,用于大样本分类的网络往往很复杂,且很多特征无用同时计算量更大。而R-CNN只针对图像获取兴趣区域,对每个兴趣区域应用目标检测器,可准确获得图像类别。
Bottom-Up Attention Model:
把提取出的region的mean-pooled convolutional feature定义为vi;
因为只有小部分的bounding box会被选择出来, Faster R-CNN可以看作是一种hard attention机制;
bottom up attetion model在完成imageNet的预训练后,又到visual genome数据上进行了训练,原因如下:
[为了学习到更好的特征表示,除了预测object class以外,他们额外加了一个训练输出,来预测region i 的attribute class(比如物体的颜色、材质等,具体见上图,这些属性在visual genome上可以找到)。这里是通过把 vi 和一个可训练的ground-truth object class的embedding这两者进行concatenate,并把它送达到一个额外的输出层,输出层是每个attribute class的softmax分布。]
- 本文保留了Faster R-CNN的损失函数( 分别定义了RPN和对象分类和边界框回归输出),并在此基础上加了一个multi-class loss来训练attribute predictor。 (四个损失函数)
Image Caption:
共有2个LSTM模块,一个是Language LSTM,另一个是Top-Down Attention LSTM。
1. top-down attention LSTM 使用LSTM确定image feature vi的权重,soft attention mechanism
对于k个image feature vi的attention权重 αi,j,是由top-down attention LSTM在每一个时刻利用自身的hidden state产生的:
2. language LSTM
3. Training objective:
- top-down attention LSTM 使用LSTM确定image feature vi的权重,soft attention mechanism
对于k个image feature vi的attention权重 αi,j,是由top-down attention LSTM在每一个时刻利用自身的hidden state产生的:
2. language LSTM
3. Training objective:
Neural Baby Talk (NBT) [25] 首先生成一个混合文本模板,其槽位明确地与特定的图像区域相联系,然后用与物体检测器识别的视觉概念相关的词来填充这些槽位。这使得NBT在与适当的预训练过的物体检测器相结合时,有能力为新的物体加上描述。为了使NBT适应nocaps环境,我们加入了Open Images检测器,并使用Visual Genome图像特征训练语言模型。我们在物体区域的视觉特征表示中使用固定的GloVe嵌入[31],以更好地确定对应于新颖物体的词汇的上下文。
减少对语言模型的依赖,更多结合图像内容生成描述
采用目标检测器检测图像中的物体,然后在每个word生成时刻,自主决定选取text word (数据集中词汇)还是 visual word(检测到的词汇)
Open Images Object Detection. CBS和NBT都使用了的目标检测;我们对两者都使用了在Open Images上训练的相同的预训练的Faster R-CNN模型。具体来说,我们使用Tensorflow model zoo的一个模型[15]。该模型在0.5秒内实现了检测的平均精IoU(mAP@0.5)的54%。
Constrained Beam Search (CBS ) [2] CBS是一个推理时间步骤,它可以迫使语言模型包括被称为约束条件的特定词汇–通过将解码问题铸造为一个有限状态机,其过渡对应于约束条件的满足。我们将CBS应用于基线UpDown模型和基于检测对象的NBT。继[2]之后,我们使用一个有24个状态的有限状态机(FSM),将最多三个选定的对象作为约束条件,包括两和三个词组短语。解码后,我们选择满足至少两个约束条件的最高对数概率的描述。
Constraint Filtering 尽管初始工作 [2] 是从检测中随机选择约束条件,在nocaps设置上的基础实验中我们发现一个简单的启发式方法极大提升了CBS的性能。为了从目标检测中生成描述约束,我们通过移除39个Open Images类别(是‘parts’如human eyes或者几乎没有被提及的如mammal)完善目标检测标签。具体来说,我们通过删除两个物体更高阶的来解决重叠检测(IoU >-= 0.85)的对象(例如,"狗 "会压制 “哺乳动物” ,如果两者相等的话都保留)。最后,我们以基于检测置信度的前3个对象为约束条件。
Language Embeddings 为了处理新的词汇,CBS需要单词嵌入或语言模型来估计单词转换的可能性。我们改进原始模型 - 包括了GloVe和依赖性嵌入 - 包括最近提出的ELMo[32]模型,这在我们的初步实验中提高了性能。由于字幕是从左到右解码的,我们只能使用ELMo的前向表示作为 输入编码,而不是像[11, 42]那样使用完整的双向模型。我们还用ELMo的解码器初始化了我们的字幕解码器的softmax层,并在训练过程中对其进行了固定,以提高模型的泛化能力。以提高模型对未见过的或罕见的词的泛化能力。
ELMo使得词汇的向量表示可以同时考虑语境和语法,解决了一词多义的情况。
Training and Implementation Details. 我们训练所有方法在COCO训练集上并调整在nocaps校验集上的参数。所有模型利用交叉熵损失训练,如我们没有使用RL微调去优化评估指标。
5 Results and Analysis
- 我们在表2中报告了nocaps测试集的结果。虽然我们最好的方法(UpDown + ELMo + CBS,这将在下面进一步解释)明显优于COCO训练的UpDown baseline captioner(“19 CIDEr”),但它仍然比人类的表现差很多(“12 CIDEr”)。但它仍然比人类的表现差很多(“12 CIDEr”)。正如预期的那样,最明显的差距出现在域外的实例("25 CIDEr)。这表明,虽然现有新的物体说明技术确实比标准模型有所提高,但在实际应用中说明仍然是一个相当大的挑战。
- 在本节的其余部分,我们讨论了nocaps和COCO验证集的详细结果(表3),以帮助指导未来的工作。总的来说,这些证据表明 可以通过更强的对象检测器和更强的语言模型取得进一步的进展,但是开放性的问题仍然存在–例如结合这些要素的最佳方式,以及该解决方案应在多大程度上涉及学习而不是像CBS这样的推理技术。我们在下面一系列具体问题的背景下调整这些讨论。
Do models optimized for nocaps maintain their performance on COCO? 我们发现在nocaps上性能重要提升在COCO的large loss上(2-3行比起第1行,下降了20 CIDEr和3 SPICE)。给定收集方法论的相似性,我们不期望在COCO和nocaps之间看到语言结构上的巨大差异。然而。最近的工作观察到,即使新的目标数据集是旧数据集的精确重现,在跨数据集转移模型时也会出现明显的性能下降[33]。在描述设置中限制这种退化是未来工作的一个潜在重点。
How important is constraint filtering? 应用CBS会极大提升UpDown和NBT的性能(尤其在out-of-domain描述上),但成功主要取决于限制的质量。在没有我们的39类黑名单和重叠过滤情况下,我们发现整体的nocaps验证性能下降了 “8”。我们的UpDown + ELMo + CBS的CIDEr和 "3 SPICE 模型–大部分损失来自于被列入黑名单的类。看来,考虑到图像背景的更复杂的约束条件选择技术可以进一步提高性能。
Do better language models help in CBS? 为了处理新单词表,CBS要为新颖词汇进行表征。我们比较了使用ELMo编码 (第3行)与第4节中描述的设置进行比较,其词嵌入只在COCO训练中学习 (第2行)。请注意,在这种情况下在COCO中没有找到的词都是随机初始化的。令人惊讶的是,训练后的嵌入与ELMo的嵌入表现相当。在in-dmoain和near-domain的ELMo嵌入中表现相当。子集的表现不相上下,尽管使用ELMo的模型在out-of-domain的表现要好得多。看来,即使COCO中相对罕见的nocaps对象名称的共现也足以学习有用的语言学模型,而不是视觉基础如仅有的COCO 模型的得分很低(第1行)。
Do better object detectors help? 为了评估对目标检测的依赖性,我们将按面积递减排序的真实检测结果提供给我们的完整模型(第4行和第7行)。这些真实检测经历了与预测值相同的约束过滤。与预测依赖的模型相比(第3行和第6行),我们看到在所有指标上(第4行vs第3行 有 9 CIDEr 和 0.6 SPICE 收益 for UpDown)。 随着检测器的改进,我们希望在nocaps基准上看到相应的收益。
为了定性地分析不同方法的差异,如图我们使用各种模型配置展示了一些描述生成的例子。如所期望的那样,所有我们的baseline模型能生成in-domain图像正确的描述。对于near-domain and out-of-domain,我们的UpDown模型仅仅训练于COCO上无法识别如rifle and dolphin这样的新颖物体,将他们与知道的物体如baseball bat or bird给弄混淆了。剩余的模型利用Open Images训练数据,使得他们潜在地能描述这些新物体。然而他们生成了更加合理的描述,然而这也有许多改进空间在真实描述和语法上。
6 Conclusion
- 在本文中,我们推动一个更加强和刚需的benchmark都需求去加速novel object captioning的前进。我们引入nocaps,一个大规模benchmark由166100人类生成的描述,描述15100张包括超过500个独特物体类别和许多视觉概念的图片组成。比起现有的novel object captioning概念验证数据集相比,我们的benchmark包含50倍增长的novel object类别,这些类别是罕见或者在训练描述中不存在的(394 vs 8)。此外,我们收集了两倍于每张图片的评估描述,以提高自动评估指标的保真度。
- 我们扩展了最近都两个novel object captioning方法,为nocaps提供强有力的baseline。虽然我们的最终模型比直接从coco转移过来的模型有明显的改善,但它们的表现远远低于人类的baseline – 在这项任务上还有很大的改进空间。我们提供了进一步的分析,以帮助指导未来的工作,表明通过欲训练的词嵌入和语言模型来利用大型语言语料库,更好的物体检测器是有帮助的(并且可以成为进一步改进的来源),以及确定在标题中提到哪些物体检测的简单启发式方法有很大的影响。
复现baseline 跑出的一组测试集结果:
updown.pth test dataset:
[
{“in-domain”: {“B1”: 77.68, “B2”: 60.34, “B3”: 41.5, “B4”: 24.57, “METEOR”: 26.04, “ROUGE-L”: 54.42, “CIDEr”: 74.27, “SPICE”: 11.47}},
{“near-domain”: {“B1”: 75.25, “B2”: 56.93, “B3”: 36.91, “B4”: 20.49, “METEOR”: 23.6, “ROUGE-L”: 51.84, “CIDEr”: 56.85, “SPICE”: 10.33}},
{“out-domain”: {“B1”: 66.54, “B2”: 44.28, “B3”: 24.23, “B4”: 10.17, “METEOR”: 18.29, “ROUGE-L”: 44.84, “CIDEr”: 30.09, “SPICE”: 8.08}},
{“entire”: {“B1”: 74.0, “B2”: 55.11, “B3”: 35.23, “B4”: 19.16, “METEOR”: 22.96, “ROUGE-L”: 50.92, “CIDEr”: 54.25, “SPICE”: 10.14}}
]