精华内容
下载资源
问答
  • 算法的描述
    千次阅读
    2020-04-13 21:34:45

    <center>算法的描述</center>

    注:本文为学习《C语言从入门到精通》时,对部分章节的总结

    1、自然语言

    人们日常使用的语言,通俗易懂,但用来描述较为复杂的算法时,不是很方便。

    2、流程图

    流程图是一种传统的算法表示法,用不同的图框代表不同性质的操作,用流程线来知识执行方向。直观形象,易于理解。

    (1)、流程图符号

    正确性食指所写的算法应能安祖具体问题的要求,即对任何合法的输入,都会得到正确的结果。

    流程图使用一些图框来表示各种操作。

    a.起止框:标识算法的开始和结束;

    b.输入/输出框:标识数据任何种类的输入或输出;

    c.流程线:表示控制流的流线;

    d.判断框:用于对一个给定的条件进行判断,根据条件成立与否决定如何执行后续操作;

    e.处理框:表示在过程的一个单独的步骤;

    f.注释框:用于说明一些事项;

    g.连接点:用于将画在不同地方的流程线连接起来。

     

    :从键盘输入3个数并分别赋值给a、b、c,要求从大到小的顺序将它们打印出来。

     

    (2)、3种基本结构

    a.顺序结构:简单的线性结构;

    b.选择结构:也称为分支结构,必须至少包含一个判断框;

    c.循环结构:反复的执行一系列操作,直到条件不成立时才终止循环。按照判断条件出现的位置,可分为当型循环和直到型循环。

    3、N-S流程图

    在普通流程图的基础上去掉了流程线。

    (1)、顺序结构

     

    (2)、选择结构

     

    (3)、循环结构

    a.当型循环:

     

    b.直到型循环:

     

    更多相关内容
  • 形象总监职务描述岗位说明书模板.doc
  • 在本次调查中,我们根据他们如何将这个问题概念化的现有方法进行分类,即将描述作为生成问题或作为视觉或多模态表征空间上的检索问题的模型。 我们提供了对现有模型的详细回顾,突出其优点和缺点。 此外,我们概述...

    摘要

    从自然图像生成自动描述是一个具有挑战性的问题,近来受到计算机视觉和自然语言处理社区的大量关注。 在本次调查中,我们根据他们如何将这个问题概念化的现有方法进行分类,即将描述作为生成问题或作为视觉或多模态表征空间上的检索问题的模型。 我们提供了对现有模型的详细回顾,突出其优点和缺点。 此外,我们概述了评估机器生成图像描述质量的基准图像数据集和评估措施。 最后,我们推断自动图像描述生成领域的未来方向。

    介绍

    在过去二十年中,自然语言处理(NLP)和计算机视觉(CV)领域在分析和生成文本以及理解图像和视频方面取得了巨大的进步。虽然这两个领域都有一套类似于人工智能和机器学习的方法,但它们在历史上是分开发展的,而且它们的科学界通常只有很少的交互作用。

    然而,近年来,对需要结合语言和视觉信息的问题兴趣激增。许多日常工作都属于这种性质,例如,在报纸文章的背景下解读照片,按照说明书结合图表或地图,在听讲座的同时理解幻灯片。除此之外,网络还提供了大量的语言和视觉信息相结合的数据:标签照片,报纸插图,带有字幕的视频以及社交媒体上的多模式信息。为了解决语言和视觉的综合任务,并利用大量的多模式数据,简历和NLP社区已经靠得更近了,例如,通过组织在CV和NLP会议上定期举办的语言和视觉研讨会几年。

    在这个新的语言视觉社区中,自动图像描述已经成为关键任务。这项任务涉及拍摄图像,分析其视觉内容,并生成文字描述(通常是一个句子),用语言表达图像最显着的方面。从CV的观点来看,这是具有挑战性的,因为描述原则上可以谈论图像的任何视觉方面:它可以提及对象及其属性,可以谈论场景的特征(例如,室内/室外),或者表达场景中的人物和物体如何相互作用。更具挑战性的是,描述甚至可以涉及没有描述的对象(例如,即使在列车因为尚未到达而不可见的情况下,它也可以谈论等待列车的人)并提供不能被派生的背景知识直接从图像(例如,描绘的人是蒙娜丽莎)。简而言之,好的图像描述需要全面的图像理解,因此描述任务对于计算机视觉系统来说是一个很好的测试平台,比普通的CV评估更全面,通常测试例如物体检测器的精度或场景分类器在一组有限的类上。

    形象的理解是必要的,但不足以产生一个好的描述。想象一下,我们应用一系列最先进的探测器对图像进行本地化(例如,Felzenszwalb,Girshick,McAllester,&Ramanan,2010; Girshick,Donahue,Darrell,&Malik,2014),确定属性,Lampert,Nickisch和Harmeling,2009; Berg,Berg,&Shih,2010; Parikh&Grauman,2011),计算场景属性(例如Oliva&Torralba,2001; Lazebnik,Schmid,&Ponce,2006)人与物体的相互作用(例如,Perst,Schmid和Ferrari,2012;姚飞飞,2010)。结果将是一个很长的,非结构化的标签列表(检测器输出),这些列表将不能用作图像描述。相比之下,好的图像描述必须是全面的,简明的(谈论所有图像中的重要事物),并且必须是形式上正确的,即由语法形式合理的句子组成。

    从NLP的角度来看,生成这样的描述是一个自然语言生成(NLG)问题。 NLG的任务是将非语言表达转化为人类可读的文本。通常,非语言表示是逻辑形式,数据库查询或一组数字。在图像描述中,输入是一个图像表示(例如,在前一段中列出的检测器输出),NLG模型必须变成句子。生成文本涉及一系列的步骤,传统上被称为NLP管道(Reiter&Dale,2006):我们需要决定哪些方面的输入要谈论(内容选择),然后我们需要组织内容(文本规划)和表述它(表面实现)。反过来,表面实现需要选择合适的词语(词汇化),如果合适的话使用代词(参考表达式生成),并将相关信息聚合在一起(聚合)。

    由于自动图像描述是一个有趣的任务,它是由成熟的CV和NLP方法的存在以及相关数据集的可用性所驱动的,过去五年来出现了大量的图像描述文献。本调查文章的目的是全面概述这些文献,包括模型,数据集和评估指标。

    我们根据所使用的图像描述模型将现有文献分为三类。第一组模型遵循上面所述的经典流水线:它们首先根据一组视觉特征根据对象,属性,场景类型和动作来检测或预测图像内容。然后,这些模型使用该内容信息来驱动输出图像描述的自然语言生成系统。我们将这些方法称为直接生成模型。

    第二组模型把这个问题作为一个检索问题。也就是说,为了创建新图像的描述,这些模型在数据库中搜索与新图像类似的图像。然后根据检索到的一组相似图像的描述,为新图像建立一个描述。通过简单地重新使用最相似的检索图像(转移)的描述来描述新的图像,或者通过基于对一组相似图像的描述来合成新的描述来描述新的图像。基于检索的模型可以根据他们用来表示图像和计算相似度的方法进一步细分。第一组模型使用可视空间来检索图像,而第二组使用共同表示图像和文本的多模式空间。有关本调查中将要审查的模型的概述,以及所涉及的类别,请参见表1。

    从视频中生成自然语言描述在基于图像的描述之上提出了独特的挑战,因为它还需要在时间维度上分析对象及其属性和操作。文献中已经提出了旨在解决视频描述生成的模型(例如Khan,Zhang和Gotoh,2011; Guadarrama,Krishnamoorthy,Malkarnenkar,Venugopalan,Mooney,Darrell和Saenko,2013; Krishnamoorthy,Malkarnenkar, Mooney,Saenko和Guadarrama,2013; Rohrbach,Qiu,Titov,Thater,Pinkal,&Schiele,2013; Thomason,Venugopalan,Guadar-rama,Saenko和Mooney,2014; Rohrbach,Rohrback,Tandon,&Schiele, Yao,Torabi,Cho,Ballas,Pal,Larochelle,&Courville,2015; Zhu,Kiros,Zemel,Salakhutdinov,Urtasun,Torralba,&Fidler,2015)。

    然而,大多数现有的描述生成工作都使用了静态图像,这就是我们在这次调查中将要关注的内容。在这篇调查文章中,我们首先将自动图像描述模型分为上述三类,并在第二部分对每个类别中的模型进行了全面的综述。然后,我们研究了可用于训练和测试描述生成模型的多模态图像数据集最后,在第4节中,我们讨论了未来的研究方向,包括与图像描述相关的可能的新任务,如视觉问题解答。

    2.图像描述模型
    从图像生成自动描述需要了解人类如何描述图像。图像描述可以在几个不同的维度进行分析(Shatford,1986; Jaimes&Chang,2000)。我们遵循Hodosh,Young和Hockenmaier(2013)的假设,并且假设这篇调查文章感兴趣的描述是描述图像中描述的视觉和概念信息的描述,即描述涉及所描述的实体及其属性关系以及它们所涉及的行为。在自动图像描述的范围之外的是非视觉描述,它们给出背景信息或引用图像中未描述的对象(例如,拍摄图像的位置或者谁拍了照片)。此外,与图像描述的标准方法不相关的是感知描述,其捕捉图像的全局低级视觉特征(例如,图像中的主色或者诸如照​​片,绘画,动画等媒体的类型)。 )。
    在下面的小节中,我们将对描述生成的最新方法进行全面的综述。表1提供了该领域的高层次总结,使用了介绍中概述的三类模型:直接生成模型,从视觉空间中检索模型,以及从多模态空间中检索模型。

    2.1从视觉输入生成描述
    这组研究的一般方法是首先通过分析其视觉内容来预测给定图像的最可能的意义,然后生成反映该意思的句子。此类别中的所有模型都使用以下通用管线架构来实现此目的:

    1.使用计算机视觉技术对场景类型进行分类,检测图像中存在的对象,预测它们之间的属性及其关系,并识别发生的行为。
    2.接下来是生成阶段,将检测器输出转换为单词或短语。然后使用自然语言生成技术(例如,模板,n元语法,语法规则)将这些结合在一起以产生图像的自然语言描述。

    本节回顾的方法执行从图像到描述的明确映射,这与第2.2和2.3节中描述的研究区分开来,这些研究包含隐式视觉和语言模型。图1显示了一个示例模型的示例。显式流水线架构针对当前的问题而定制,因为它依赖于预定义的场景,对象,属性和操作的语义类集合,因此会限制生成的描述。此外,这样的架构关键地假定每个语义类别的检测器的准确性,这在实践中并不总是被满足。

    这里写图片描述

    这里写图片描述

    描述生成的方法在两个主要方面有所不同:(a)它们从哪个图像表示中获得描述;(b)它们如何处理句子生成问题。在所使用的表示方面,现有的模型依靠空间关系(Farhadi et al。,2010),基于语料库的关系(Yang et al。,2011)或空间和视觉属性(Kulkarni等,2011)。另一组论文利用抽象的图像表示形式来表示图像的不同方面:检测到的对象,检测到的属性,它们之间的空间关系以及场景类型(Farhadi et al。,2010 ; Yang等,2011; Kulkarni等,2011; Li等,2011; Mitchell等,2012)。最近,Yatskar et al。 (2014)提出从密集标记的图像生成描述,其中包含对象,属性,动作和场景注释。 Fang et al。 (2015),它不依赖于事先标记的对象,属性等。相反,作者直接从图像及其相关描述使用多实例学习(弱监督方法培训物体检测器)。然后将这些检测器返回的单词输入语言模型以生成句子,然后重新排序。

    第一个明确表示图像结构如何与其描述结构相关的框架是Elliott和Keller(2013)提出的Visual Dependency Representations(VDR)方法。 VDR以依赖图的形式捕获图像中的对象之间的空间关系。然后,该图可以与图像描述的语法依赖树相关.3虽然使用VDR的初始工作依赖于用于训练的手动注释的VDR的语料库,但是更近期的方法基于物体检测器的输出自动地引起VDR (Elliott&de Vries,2015)或抽象场景中的标签(Ortiz等,2015).4 Lin等人提出了明确表示图像结构并将其用于描述生成的思想。 (2015)将图像解析成与VDR类似的场景图,表示场景中物体之间的关系。然后他们使用语义语法从场景图生成现有的方法也在第二个维度上变化,也就是他们如何处理句子生成问题。在规模的一端,有一些使用基于n-gram的语言模型的方法。例子包括Kulkarni等人的作品。 (2011)和Li等人(2011),它们都使用在 Wikipedia 子集上训练的n-gram语言模型生成描述。这些方法首先确定图像中的区域之间的属性和关系作为区域 - 介词 - 区域三元组。在语言模型给定的情况下,n-gram语言模型被用来组成一个流畅的图像描述。 Fang等人的方法(2015)是相似的,但是使用最大熵语言模型而不是n-gram模型来生成描述。这为作者提供了更大的灵活性来处理作为其模型核心的单词检测器的输出。

    最近使用递归神经网络(RNN)的图像描述也可以被认为是依赖于语言建模。经典的RNN是一种语言模型:它给出了到目前为止生成的单词在字符串中产生给定单词的概率。在图像描述设置中,RNN被训练以生成下一个字,不仅给出字符串,而且给出一组图像特征。在这种情况下,RNN不是纯粹的语言模型(例如n-gram模型的情况),但它是一个混合模型,它依赖于包含视觉和语言特征的表示。我们将在2.3节更详细地回到这个问题。

    第二组方法使用句子模板来生成描述。这些是(通常是手动的)预先定义的句子框架,其中开放时隙需要用对象,关系或属性的标签填充。例如,杨等人。
    (2011)通过基于隐马尔可夫模型选择可能的对象,动词,介词和场景类型来填充句子模板。通过在Gigaword外部语料库中找到最可能的对象标签配对来生成动词。 Elliott和Keller(2013)的生成模型将图像解析为VDR,然后遍历VDR以填充句子模板的槽。这种方法还通过在训练时间学习VDR和句法依赖树之间的关联来进行有限的内容选择;这些关联允许在测试时为描述选择最合适的动词。

    其他方法已经使用更多语言复杂的方法来生成。米切尔等。 (2012)过度生成句法结构完整的句子片段,然后使用树替换语法重新组合这些句子片段。库兹涅佐娃(Kuznetsova)等人采取了相关的方法。 (2014),从现有描述的训练集中学习树片段,然后将这些片段在测试时间组合以形成新的描述。最近Ortiz等人提出了另一种语言表达模型。 (2015年)。作者将图像描述建模为VDR句对上的机器翻译,并在语言约束下使用整数线性规划执行显式内容选择和表面实现。

    目前提出的系统旨在直接产生新颖的描述。然而,正如Hodosh等人所主张的那样。 (2013),将图像描述框架化为自然语言生成(NLG)任务使得难以客观地评价新颖描述的质量,因为它“引入了一些语言学上的困难,从而影响了基本的图像理解问题” (Hodosh等,2013)。同时,发电系统的评估是困难的(Reiter&Belz,2009)。霍多什等人。因此提出了一种方法,可以独立于生成方面评估图像和句子之间的映射关系。遵循这种方法的模型将图像描述概念化为检索问题:它们通过检索和排列具有候选描述的一组相似图像来将图像与描述相关联。然后可以直接使用这些候选描述(描述传送)或者可以从候选(描述生成)合成新的描述。

    图像的检索和其描述的排序可以通过两种方式来进行:从视觉空间或从文本和视觉信息空间相结合的多模式空间。在下面的小节中,我们将调查跟随这两种方法的工作。

    这里写图片描述

    2.2描述在视觉空间中的检索
    该组中的研究提出了通过检索与查询图像相似的图像(即,待描述的新图像)来自动生成图像的描述的问题。这在图2中示出。换句话说,这些系统利用视觉空间中的相似性来将描述转移到查询图像。与直接生成描述的模型(2.1节)相比,检索模型通常需要大量的训练数据才能提供相关描述。
    就其算法组件而言,视觉检索方法通常遵循三个主要步骤的流水线:

    1.通过特定的视觉特征来表示给定的查询图像。
    2.基于所使用的特征空间中的相似性度量从训练集中检索候选图像集合。
    3.通过进一步利用检索集中包含的视觉和/或文本信息重新排列候选图像的描述,或者根据特定的规则或方案组合候选描述的片段。

    遵循这种方法的第一个模型之一是Ordonez等人的Im2Text模型。 (2011年)。采用GIST(Oliva&Torralba,2001)和Tiny Image(Torralba,Fergus和Freeman,2008)描述符来表示查询图像,并在第一个检索步骤中确定视觉上相似的图像。大多数基于检索的模型都将此步骤的结果作为基准。对于重排步骤,首先将候选描述中提及的实体特定的一系列检测器(例如,对象,物体,行人,动作检测器)和场景分类器应用于图像以更好地捕捉其视觉内容,并且图像通过这些检测器和分类器响应来表示。最后,通过对这些语义特征进行训练的分类器进行重新排序。
    Kuznetsova等人提出的模型(2012)首先在查询图像上运行Im2Text模型的重排步骤中使用的检测器和分类器,以提取和表示其语义内容。

    然后,不像Im2Text模型那样通过组合这些检测器和分类器的响应来执行单个检索,而是对查询图像中存在的每个视觉实体执行单独的图像检索步骤,以从检索的描述中收集相关短语。例如,如果在给定图像中检测到狗,则检索过程返回引用训练集中视觉上相似的狗的短语。更具体地说,这个步骤是用来收集三种不同的短语。基于在训练图像中和在查询图像中检测到的对象区域之间的视觉相似性,从训练集合中的描述中提取名词和动词短语。类似地,通过基于查询的外观和几何布置来测量查询中的检测与训练图像之间的视觉相似度,来针对查询图像中的每个东西检测收集介词短语。通过测量查询和训练图像之间计算的全局场景相似度,为每个场景上下文检测额外收集介词短语。最后,通过整数线性规划(ILP)从这些收集的短语中为每个检测到的对象生成描述,其中考虑了诸如词序,冗余度等因素。

    Gupta等人的方法(2012)是另一种基于短语的方法。为了检索视觉上相似的图像,作者使用简单的RGB和HSV颜色直方图,Gabor和Haar描述符,GIST和SIFT(Lowe,2004)描述符作为图像特征。然后,不是使用视觉对象检测器或场景分类器,而仅仅依赖于视觉上相似图像的描述中的文本信息来提取输入图像的视觉内容。具体而言,将候选描述划分为(主语,动词),(主语,准备语,宾语),(动词,prep,宾语),(宾语,宾语)等某种类型的短语。描述输入图像是根据基于图像相似度和Google搜索计数的联合概率模型确定的,并且图像由形式为{((attribute1,object1),verb),(verb,prep) ,(attribute2,Object2的)),(object1,准备,Object2的)}。最后,使用基于固定模板的三个顶级三元组来生成描述。为了提高描述的质量,作者还在生成步骤之前应用句法聚合和一些主语谓词分组规则。

    Patterson等人(2014)是第一个在计算机视觉领域提出大型场景属性数据集。该数据集包括来自707个场景类别的14,340个图像,其被从与材料,表面属性,照明,可供件和空间布局相关的102个判别性属性列表中的某些属性注释。这允许他们从这个数据集中训练属性分类器。在他们的论文中,作者还表明,这些属性分类器的响应可以被用作全局图像描述符,它比标准全局图像描述符(如GIST)更好地捕获语义内容。作为一个应用,他们通过用自动提取的场景属性替换全局特征来扩展Im2Text的基线模型,给出更好的图像检索和描述结果。

    Mason和Charniak(2014)的描述生成方法与上面讨论的模型不同,它将描述生成描述为一个抽取摘要问题,它在最后的重新排序步骤中仅考虑文本信息来选择输出描述。具体而言,作者通过使用Patterson等人的场景属性描述符来表示图像。 (2014)。一旦从训练集中识别出视觉上相似的图像,在下一步中,通过使用检索图像的描述的非参数密度估计来估计在查询图像的描述中观察词的条件概率。然后使用两种不同的抽取摘要技术来确定最终的输出描述,一种取决于SumBasic模型(Nenkova&Vanderwende,2005),另一种基于查询的词分布与候选描述之间的Kullback-Leibler分歧。

    Yagcioglu等。 (2015)提出了基于组合分布式语义的平均查询扩展方法。为了表示图像,他们使用从最近提出的Visual Geometry Group卷积神经网络(VGG-CNN; Chatfield,Simonyan,Vedaldi和Zisserman,2014)提取的特征。这些特征是在ImageNet上训练的深层神经网络的最后一层的激活,已经被证明在许多计算机视觉问题中是有效的。然后,将原始查询扩展为检索到的描述的分布式表示的平均值,并通过与输入图像的相似性进行加权。

    Devlin等人的方法(2015)也将CNN激活用作全局图像描述符,并且执行k-最近邻居检索以确定来自训练集合的视觉上与查询图像相似的图像。然后,它就像Mason和Charniak(2014)和Yagcioglu等人的方法一样,从与检索图像相关的候选描述中选择最能描述与查询图像相似的图像的描述。 (2015年)。他们的方法在描述描述和他们如何选择整个集合中的最佳候选者之间的相似性方面是不同的。具体而言,他们提出基于描述之间的n-gram重叠F-score来计算描述相似度。他们建议通过找到与描述相对应的描述来选择输出描述,其中与通过n-gram相似性度量估计的其他候选描述(k-最近邻居质心描述)具有最高的平均n-gram重叠。

    2.3作为多模态空间检索的描述
    第三组研究再次将图像描述生成作为一个检索问题,但是从多模态空间(Hodosh et al。,2013; Socher et al。,2014; Karpathy et al。,2014)。图3说明了这些模型背后的直觉,总体方法可以表征如下:
    1.使用训练集的图像描述对,为视觉和文本数据学习一个共同的多模态空间。
    2.给定查询,使用联合表示空间执行跨模态(图像 - 句子)检索。

    与在视觉空间上工作的检索模型(第2.2节)相反,在单模式图像检索之后是检索描述的排序,这里图像和句子特征被投影到共同的多模式空间中。然后,多模态空间用于检索给定图像的描述。这种方法的优点是它允许双向模型,即公共空间也可以用于另一个方向,为查询语句检索最合适的图像。

    在本节中,我们首先讨论Hodosh等人的开创性论文。 (2013)进行描述检索,然后提出将检索方法与某种形式的自然语言生成相结合的更新方法。霍多什等人。 (2013)将图像和句子映射到共同的空间。联合空间可以用于图像搜索(找到给出一个句子的最合理的图像)和图像注释(找到描述图像的句子),见图3.在早期的研究中,作者提出要学习一个共同的含义(Farhadi et al。,2010),其形式为“对象,行动,场景”的三重表征。该表示因此限于一组预定义的离散插槽填充符,其作为训练信息给出。相反,霍多什等人。 (2013)使用CCA的核化版KCCA,典型相关分析(Hotelling,1936)来学习共同空间。 CCA将图像 - 句子对的训练数据集,即Dtrain = {⟨i,s⟩}从两个不同的特征空间输入,并将线性投影映射到新引入的公共空间。在KCCA中,核函数将原始项目映射到高阶空间,以便捕获将图像和文本关联所需的模式。 KCCA之前曾被证明可以成功地将图像(Hardoon,Szedmak,&Shawe- Taylor,2004)或图像区域(Socher&Fei-Fei,2010)与单个词或一组标签联系起来。

    霍多什等人。 (2013)将他们的KCCA方法与使用单峰文本和图像空间的最近邻(NN)基线进行比较,而不构建关节空间。 KCCA的缺点是它只适用于较小的数据集,因为它需要在训练期间将两个内核矩阵保存在内存中。对于非常大的数据集来说,这变得非常有限。

    已经做出一些尝试来规避KCCA的计算负担,例如通过采用线性模型(Hodosh&Hockenmaier,2013)。然而,最近在描述检索方面的工作改为使用神经网络来构建图像描述生成的联合空间。

    Socher等人(2014)使用神经网络来构建句子和图像矢量表示,然后将这些表示映射到一个共同的嵌入空间。他们的工作的一个新颖之处在于他们使用组合语句向量表示。首先,图像和文字的表现形式是以单一形式学习的,最终映射到一个共同的多模式空间。特别是,他们使用一个DT-RNN(依赖树递归神经网络)来组成语言向量来抽象语义上不相关的词序和句法差异。这导致了50维词嵌入。对于图像空间,作者使用一个在ImageNet数据上训练的九层神经网络,使用无监督的预训练。图像嵌入是通过取最后一层(4,096维)的输出而得出的。然后通过最大边缘目标函数将这两个空间投影到多模态空间中,直观地训练一对正确的图像和句子向量以获得高的内积。作者表明,他们的模型比以前使用的KCCA方法(如Hodosh和Hockenmaier(2013))要好。

    Karpathy等人(2014)扩展了以前的多模式嵌入模型。它们的模型不是直接将整个图像和句子映射到一个共同的嵌入空间,而是将更多的细粒度单元,即图像(对象)和句子(依存树片段)的片段嵌入共同的空间。他们的最终模型整合了全球(句子和图像层面)以及细粒度的信息,并且优于以前的方法,如DT-RNN(Socher et al。,2014)。 Pinheiro等人采用了类似的方法。 (2015),他们提出了一个双线性基于短语的模型,学习图像表示和句子之间的映射。然后使用受约束的语言模型从这个表示生成。 Ushiku等人提出了一个概念相关的方法。 (2015):作者使用一个公共的子空间模型,将与同一个短语相关的所有特征向量映射到空间的附近区域。为了生成,使用基于波束搜索的解码器或模板。

    描述生成系统难以评估,因此上述研究将该问题视为检索和排序任务(Hodosh et al。,2013; Socher et al。,2014)。虽然这种方法是有价值的,因为它可以进行比较评估,但检索和排名受到现有数据集和描述的可用性的限制。为了缓解这个问题,最近开发了多模态空间的扩展模型; (Chen&Zitnick,2015; Donahue等,2015; Karpathy&Fei-Fei,2015; Kiros等,2015; Lebret等,2015; Mao等人,2015a; Vinyals等人,2015; Xu等人,2015)。

    这里写图片描述

    Kiros等人(2015)引入了图像描述排序和生成的通用编码器 - 解码器框架,如图4所示。直观地,该方法工作如下。编码器首先构建联合多模态空间。这个空间可以用来排列图像和描述。第二阶段(解码器)然后使用共享的多模式表示来产生新颖的描述。他们的模型直接受到近期机器翻译的启发,使用长期短期记忆(LSTM)递归神经网络编码句子,使用深度卷积网络(CNN)编码图像特征。 LSTM是循环神经网络(RNN)的扩展,它集成了内置的内存来存储信息和利用远程上下文。在Kiros等人的(2015)编码器 - 解码器模型中,视觉空间被投影到LSTM隐藏状态的嵌入空间中;为了学习图像的排序及其描述,最小化成对排序损失。解码器,一个基于神经网络的语言模型,能够从这个多模态空间中产生新的描述。

    在Donahue等人的论文中描述了同时进行的与后者相似的工作。 (2015年)。作者提出了一个基于LSTM神经架构的模型。然而,模型不是将视觉空间投影到隐藏状态的嵌入空间中,而是将静态图像和前一个字的副本直接作为输入,然后馈送到四个LSTM的堆栈。 Jia等人提出了另一种基于LSTM的模型。 (2015),他们将语义图像信息作为附加输入添加到LSTM中。 Kiros等人的模型(2015)优于先前的DT-RNN模型(Socher et al。,2014);反过来,Donahue等。 (2015年)报告,他们跑赢Kiros等人。 (2015)对图像描述检索的任务。随后的工作包括Mao等人的RNN架构。 (2015a)和Vinyals等人(2015),他们与Kiros等人提出的非常相似。 (2015年),并在标准数据集上取得可比较的结果。 Mao,Wei,Yang,Wang,Huang和Yuille(2015b)提出了毛等人(2015a)学习新颖视觉概念的有趣扩展。
    Karpathy和Fei-Fei(2015)通过提出一个更简单的架构和目标函数的深度视觉 - 语义对齐模型来改进以前的模型。他们的关键洞察力是假定句子的部分是指图像中特定但未知的区域。他们的模型试图推断图像句子和区域之间的对齐,并且基于图像区域上的卷积神经网络,用在句子上的双向RNN 和使两种模式对齐的结构化目标。单词和图像区域被映射到通用的多模式嵌入。多模式递归神经网络结构使用推断的对准来学习并产生新的描述。这里,图像被用作递归神经网络中的第一状态的条件,然后产生图像描述。

    Chen和Zitnick(2015)提出了另一个可以产生新句子的模型。与之前的工作相比,他们的模型在生成描述时动态地构建场景的视觉表示。也就是说,一个词被读取或生成,并且视觉表示被更新以反映新的信息。他们用一个简单的RNN来完成这个任务。除了最近提出的深度视觉语义对比模型(Karpathy&Fei-Fei,2015)之外,该模型比大多数先前的研究取得了可比的或更好的结果。 Xu等人的模型。 (2015)是密切相关的,因为它也使用基于RNN的架构,其中视觉表示是动态更新的。 Xu等(2015)的模型结合了一个注意部分,该部分给出了确定图像中哪些区域显着的方法,并且可以将其描述集中在这些区域上。在提高描述准确性的同时,还可以通过可视化模型生成的每个单词期间所关注的区域来分析模型行为。

    Lebret等人也采用了一般的基于RNN的排序和生成方法。 (2015年)。在这里,主要的创新是在语言方面:他们使用双线性模型来学习图像特征和句法短语(名词短语,动词短语和介词短语)的共同空间。然后利用马尔可夫模型从这些短语嵌入生成句子。在视觉方面,使用基于CNN的标准功能。这产生了一个优雅的建模框架,其性能与现有技术水平大致相当。

    最后,两个较少探索的重要方向是:可移植性和弱监督学习。 Verma和Jawahar(2014)基于主题模型评估了双向模型的可移植性,表明性能显着下降。 他们强调了跨数据集图像描述检索评估的重要性。 另一个令人感兴趣的观察是,所有上述模型都需要训练集合的全注释图像 - 句子对。 但是,大量获取这些数据是非常昂贵的。 Gong et al。 (2014)提出了一种基于弱监督的方法,该方法从数百万个弱注释图像传输知识,以提高描述检索的准确性。

    2.4现有方法的比较
    前面小节中的讨论清楚地表明,每一种形象描述的方法都有其特殊的长处和短处。例如,将任务作为生成问题(第2.1节)的方法比其他类型的方法具有优势,因为它们可以生成新的句子来描述给定的图像。然而,他们的成功在很大程度上依赖于他们估计视觉内容的准确程度,以及他们能够表达这些内容的能力。特别是,他们明确地使用计算机视觉技术来预测给定图像的最可能的含义;这些方法在实践中的准确性有限,因此如果不能识别最重要的对象及其属性,则不能生成有效的描述。另一个困难在于最终描述生成步骤;复杂的自然语言生成对于保证生成句子的流畅性和语法正确性至关重要。这可能会导致相当大的算法复杂性。

    相反,将图像描述方法作为从视觉空间问题中提取的问题,并将检索到的描述转换为新颖的图像(2.2节),总是会产生语法正确的描述。这是由设计保证的,因为这些系统从视觉上相似的图像中获取人类生成的句子。这种方法的主要问题是它需要大量的图像和人工描述。也就是说,随着训练集的大小减小,描述的准确性(但不是语法性)降低。为了使基于视觉检索的方法产生适合于新颖测试图像的图像描述(Devlin等,2015),训练集也需要多样化(除了大)外。虽然这个问题可以通过重新合成一个新的描述(见第2.2节)来减轻。

    将图像描述投射为多模式空间问题(2.3节)的方法也具有生成类人描述的优势,因为它们能够从预定义的大型描述池中检索最合适的描述。然而,对这些描述进行排名需要一个跨模式的相似性度量来比较图像和句子。与在视觉空间上工作的检索模型所使用的单峰图像 - 图像相似性度量相比,这种度量难以定义。另外,为图像和句子训练一个共同的空间需要用人工生成的描述注释的大量训练集。另一方面,这种多模式嵌入空间也可以用于相反的问题,即用于为查询语句检索最合适的图像。这是基于生成的或基于视觉检索的方法所不具备的。

    3.数据集和评估

    有大量的数据集用于自动图像描述研究。这些数据集中的图像与文本描述相关联,并且在某些方面彼此不同,例如大小,描述的格式和描述如何收集。在这里,我们回顾了收集数据集的常用方法,数据集本身,以及将生成的描述与地面实况文本进行比较的评估措施。数据集总结在表2中,图像和描述的例子在图5中给出。读者还可以参考Ferraro,Mostafazadeh,Huang,Vanderwende,Devlin,Galley和Mitchell(2015)对数据集进行分析类似于我们的。它提供了一些现有的语言和视觉数据集的基本比较。它不仅限于自动图像描述,它还报告了一些简单的统计和质量指标,例如困惑度,句法复杂度,以及抽象的具体词比率等。

    这里写图片描述

    3.1图像描述数据集
    Pascal1K句子数据集(Rashtchian等,2010)是一个数据集,通常被用作评估描述生成系统质量的基准。这个中等规模的数据集包括从帕斯卡2008年物体识别数据集(Everingham,Van Gool,Williams,Winn和Zisserman,2010)中选择的1,000幅图像,并包括来自不同视觉类别的对象,如人类,动物,汽车。每张图片都与Amazon Mechanical Turk(AMT)服务上的人类生成的五个描述相关联。

    视觉和语言树库(VLT2K; Elliott&Keller,2013)使用来自Pascal 2010动作识别数据集的图像。它用三个,每个图像两个句子的描述来增强这些图像。这些描述是在AMT上收集的,具体的说明是描述图像中描绘的主要行为和所涉及的行动者(第一句),同时也提到最重要的背景对象(第二句)。对于视觉和语言树库的341个图像的子集,对象注释是可用的(以描述中提及的所有对象周围的多边形的形式)。对于这个子集,还包括了手动创建的可视相关性表示(参见2.1节)(每个图像三个VDR,即总共1023个)。

    Flickr8K数据集(Hodosh等,2013)及其扩展版本Flickr30K数据集(Young等,2014)包含来自Flickr的图像,分别包含约8,000和30,000幅图像。这两个数据集中的图像是通过针对特定对象和动作的用户查询来选择的。这些数据集包含五个描述,每个图像是从AMT工作人员采用类似于Pascal1K数据集的策略收集的。

    抽象场景数据集(Zitnick&Parikh,2013; Zitnick,Parikh,&Vanderwende,2013)由10,000个剪贴画图像及其描述组成。图像是通过AMT创建的,工作人员被要求将80个剪贴画对象的固定词汇放入他们选择的场景中。这些描述来源于这些工人创造的场景。作者以两种不同的形式提供了这些描述。虽然第一组包含每个图像的单个句子描述,但第二组包括每个图像的两个替代描述。这两个描述中的每一个由三​​个简单的句子组成,每个句子描述场景的不同方面。这个数据集的主要优点是它提供了探索图像描述生成而不需要自动对象识别的机会,从而避免了相关的噪声。 VQA数据集(Antol,Agrawal,Lu,Mitchell,Batra,Zitnick,&Parikh,2015)已​​经创建了这个数据集的更新版本作为视觉问答(VQA)数据集的一部分。它包含5万个不同的场景图像,更逼真的人体模型和5个单句描述。

    这里写图片描述

    Grubinger等人介绍的IAPR-TC12数据集(2006)是最早的多模态数据集之一,包含了20000个描述的图像。这些图像最初是通过Google,Bing和Yahoo等搜索引擎检索的,描述是以多种语言(主要是英文和德文)制作的。每个图像与一到五个描述相关联,其中每个描述在适用的情况下涉及图像的不同方面。数据集还包含完整的对象的像素级分割。

    MS COCO数据集(Lin et al。,2014)目前由123,287个图像组成,每个图像有五个不同的描述。此数据集中的图像被标注为80个对象类别,这意味着所有图像都可以使用这些类别中的所有实例的边界框。 MS COCO数据集已被广泛用于图像描述,这是最近可用的标准评估服务器所促成的。目前正在开发MS COCO的扩展,包括增加问题和答案(Antol等,2015)。

    一篇论文(Lin等人,2015)使用NYU数据集(Silberman,Kohli,Hoiem和Fergus,2012),该数据集包含具有3D对象分割的1,449个室内场景。 Lin等人对这个数据集进行了五个描述。

    3.2图像标题数据集
    图像描述描述图像中可以看到的内容,即它们指的是所描绘的对象,动作和属性,提及场景类型等。另一方面,标题通常是与图像相关联的文本,所述图像对不能在图像中看到。标题提供了形象的个人,文化或历史背景(Panofsky,1939)。通过社交网络或照片分享网站分享的图片可以附有说明或标题,或两种文字的混合物。报纸或博物馆中的图像通常会包含文化或历史文本,即标题而不是描述。

    英国广播公司新闻数据集(Feng&Lapata,2008)是最早收集的图像和共生文本之一。 Feng和Lapata(2008)从英国广播公司新闻网站收集了3361篇新闻文章,其中包含一个图像和一个标题。
    由Ordonez等人介绍的SBU1M标题数据集(2011)不同于以前的数据集,因为它是一个包含大约一百万个字幕图像的网络规模数据集。它是根据用户提供的图像描述在Flickr上提供的数据进行编译的。图像被下载并从Flickr中过滤,限制条件是图像在预定义的控制列表上包含至少一个名词和一个动词。生成的数据集作为URL的CSV文件提供。

    D ej图像标题数据集(Chen et al。,2015)包含4,000,000个图像,从Flickr收集到180,000个几乎相同的标题。在2013历年期间,使用一组693个名词作为查询从Flickr下载了7.6亿张图片。图像标题通过词法化和停用词去除来标准化,以创建近乎相同的文本的语料库。举例来说,蓝天飞翔的鸟语和一只飞入蓝天的鸟类被规范化为蓝天飞翔的鸟类(Chen et al。,2015)。如果标题由标准化形式的多个用户重复,则图像 - 标题对被保留。

    3.3收集数据集
    收集新的图像文本数据集通常通过众包或从网络收集数据来执行。这些数据集的图像来源于计算机视觉社区现有的任务–Pascal挑战(Everingham et al。,2010)被用于Pascal1K和VLT2K数据集 - 直接来自Flickr,Flickr8K / 30K ,MS COCO,SBU1M标题和D ej`图像标题数据集,或在Abstract Scenes数据集的情况下为众包。图像描述数据集中的文本通常来自Amazon Mechanical Turk或Crowdflower;而图像标题数据集中的文本是从照片共享网站(如Flickr)或新闻提供商那里收集的。字幕通常是在没有经济刺激的情况下收集的,因为它们是由分享自己形象的人写的,或者是由记者写的。

    群众采购图片的描述涉及到定义一个简单的任务,可以由未经培训的工作人员执行。 Hodosh等人使用的任务指南的例子(2013年)和Elliott和Keller(2013年)在图6中给出。在这两种情况下,谨慎地通知潜在的工作人员对任务的期望。特别是对如何撰写说明给出了明确的指示,并提供了良好案文的例子。另外,Hodosh等人提供了更广泛的例子来解释什么会构成不满意的文本。进一步的选择是可用来控制收集的文本的质量:工人的最低绩效率是一个普遍的选择;并且可以使用任务前选拔测验来确定工人是否对英语有足够的把握(Hodosh等,2013)。
    众包工人的薪酬问题是有争议的,高薪酬并不总是导致人群来源的质量更好(Mason&Watts,2009)。 Rashtchian等人(2010)支付$ 0.01 /描述,Elliott和Keller(2013)支付了0.04美元,平均67秒的工作产生一个两句话的描述。就我们所知,这些信息不适用于其他数据集。

    这里写图片描述

    3.4评估措施
    评估自然语言生成(NLG)系统的输出是一项根本性的难题(Dale&White,2007; Reiter&Belz,2009)。评估自动生成文本质量的最常见方法是由专家进行主观评估。 NLG生成的文本通常以语法和内容的方式进行判断,分别指示句法上的正确性和文本的相关性。生成的文本的流畅性有时也被测试,特别是在生成过程中涉及表面实现技术的时候。自动生成的图像描述可以使用相同的NLG技术进行评估。通常,在评估任务期间向评判员提供图像以及描述。机器生成的图像描述的主观人类评价经常在Mechanical Turk上借助于问题进行。到目前为止,已经使用了以下的Likert规模问题来测试各种规模的数据集和用户组。

    (Kulkarni等,2011; Li等,2011; Mitchell等,2012; Kuznetsova等,2012; Elliott&Keller,2013; Hodosh等,2013)。
    •描述在语法上是正确的(Yang et al。,2011; Mitchell et al。,2012; Kuznetsova et al。,2012; Elliott&Keller,2013等)。
    •描述没有不正确的信息(Mitchell et al。,2012)。
    •描述与此图像相关(Li等,2011; Yang等,2011)。
    •描述是创造性地构建的(Li et al。,2011)。
    •描述与人类相似(Mitchell et al。,2012)。

    自动测量的方法是使用自动测量,如BLEU(Papineni,Roukos,Ward,&Zhu,2002),ROUGE(Lin&Hovy, &Lavie,2014),翻译错误率(Feng&Lapata,2013),Meteor(Denkowski,2013)或CIDEr(Vedan tam,Lawrence Zitnick,&Parikh,2015)。这些措施最初是为了评估机器翻译引擎或文本摘要系统的输出而设计的,除了专门为图像描述评估开发的CIDEr之外。所有这些措施计算指示系统输出与一个或多个人类编写的参考文本(例如,地面实况翻译或摘要)之间的相似度的分数。这种评估方法受到了很多讨论和批评(Kulkarni等,2011; Hodosh等,2013; Elliott&Keller,2014)。 Kulkarni等人发现人类判断与Pascal 1K数据集上的单字BLEU(Pearson’sρ= -0.17和0.05)之间呈弱负相关或不相关。霍多什等人研究了Flickr8K数据库中专家人类判断和二值化单元BLEU的Cohen’sκ相关性和检索描述的单元ROUGE。当系统检索到与图像原始相关的句子时,他们发现人类与BLEU(κ= 0.72)或ROUGE(κ= 0.54)当只有一个引用句子可用时,或者当引用句子与提议句子不相交时,协议就会被删除。他们的结论是,这两种方法都不适合于图像描述评估,并且随后提出的图像 - 句子排名实验,在下面更详细地讨论。 Elliott和Keller分析了Flickr8K和VLT2K数据集中用于检索和系统生成的图像描述的人类判断和自动评估测量之间的相关性。他们表明,当时的句子级单位BLEU是图像描述评估事实上的标准尺度,与人的判断只有微弱的相关性。Meteor(Banerjee&Lavie,2005)是一种较少使用的翻译评估指标,与人类判断的相关性最高。然而,库兹涅佐娃等(2014)发现,BLEU与Meteor在图像标题生成方面与人类判断的相关性更强。

    第一次大规模的图像描述评估发生在MS COCO字幕挑战赛2015期间,15个队伍拥有123,716个训练图像和41,000个图像的数据集在一个隐藏的测试数据集中。每个测试图像的参考文本的数量是5或40,基于一些措施可能从更大的参考集中受益的见解(Vedantam等,2015)。当使用自动评估措施时,一些图像描述系统胜过了人类的上限,16是否提供了5或40个参考描述。然而,当使用判断启发任务时,没有任何系统胜过人类评估。Meteor 被认为是最强有力的测量方法,系统在一个和两个提交文件(这取决于参考文献的数量)上打败了人类文本。用CIDEr测量的系统超过人类七到五次;根据ROUGE和BLEU,该系统几乎总是胜过人类,进一步证实了这些评估措施的不适用性。

    这里写图片描述

    从跨模态检索角度来看待描述生成问题的模型(Hodosh和Hockenmaier,2013; Hodosh等,2013; Socher等,2014; Gong等,2014; Karpathy等, 2014; Verma&Jawahar,2014)也能够使用信息检索的方法,比如中位数(mRank),k(S @ k)的精确度或者k(R @ k)的回忆来评估描述除了上面报告的文本相似性度量外,他们还会返回。 Hodosh等人首先提出了这种评估范式,他们报告了基于图像句子的排序评估与人类判断的高度相关性。
    在表3中,我们总结了本次调查中讨论的所有图像描述方法,并列出了每种方法采用的数据集和评估方法。可以看出,最近的系统(从2014年开始)已经融合了大量描述数据集(Flickr8K / 30K,MS COCO)的使用,并采用与人类判断(Meteor,CIDEr)相关性较好的评估措施。然而,BLEU的使用尽管有其局限性,但仍然普遍存在。文献中也没有普遍使用人的评价。

    4.未来的方向
    正如本次调查所显示的那样,CV和NLP社区对自动图像描述系统的兴趣在不断上升。随着图像和文字深度学习模式的最新进展,自动生成的描述的质量得到了实质性的改善。尽管如此,图像描述研究仍面临一系列挑战。下面我们将讨论这一系列研究可能从中受益的未来方向。

    4.1数据集
    最早的图像描述工作使用的是相对较小的数据集(Farhadi et al。,2010; Kulkarni et al。,2011; Elliott&Keller,2013)。最近,Flickr30K,MS COCO和其他大型数据集的引入使得对神经网络等更复杂模型的训练成为可能。尽管如此,该地区可能会从拥有共同的,统一的,全面的词汇和更大的多样化的数据集中受益。 Vinyals等人(2015)认为数据集中的描述集合过程和质量对性能影响显着,数据集之间的传递学习效果不如预期。他们表明,从MS COCO学习模型并将其应用于不同设置(如SBU1M Captions或Pascal1K)中收集的数据集,会导致BLEU性能下降。这是令人惊讶的,因为MS COCO提供了比Pascal1K更多的训练数据。正如Vinyals等人把它,这很大程度上是由于词汇的差异和描述的质量。大多数学习方法都可能遭受这种情况。收集更大,更全面的数据集,并开发能够跨域自然描述的更通用的方法,因此是一个公开的挑战。
    虽然有监督的算法可能利用仔细收集的大型数据集,但是降低监督数量以交换获取更大的无监督数据也是未来研究的一个有趣的途径。利用无监督数据构建更丰富的表示和描述模型是另一个开放的研究挑战。

    4.2措施
    在图像描述领域,设计能够模仿人类判断来评估图像描述的自动化措施,可能是最迫切的需求(Elliott&Keller 2014)。在MS COCO挑战赛的最新评估结果中,这一需求可以被显着地观察到。根据现有的措施,包括最新的CIDEr措施(Vedantam等,2015),几种自动方法的性能优于人类上限(这个上限表明人类描述彼此相似)。这个结果的违反直觉的特征被这样的事实所证实:当人的判断用于评价时,即使是最好的系统的输出也被认为比大多数时候的人类描述更差(Fang et al 2015 )。然而,由于进行人的判断实验是昂贵的,所以主要需要改进与人类判断更高度相关的自动测量。图7绘制了Flickr8K数据集中每个主观判断的BLEU,Meteor,ROUGE和CIDEr得分的Epanechnikov概率密度估计(非参数最优估计)。人类的判断是从人类专家那里得到的(Hodosh et al 2013)。 BLEU再次被证实无法充分区分最低的三个人类判断,而Meteor和CIDEr则显示有迹象表明正在进行有用的分离。

    4.3多样性和创意
    当前的算法通常依赖于他们在训练时看到的描述的直接表示,使测试时生成的描述非常相似。这导致了许多重复,并限制了生成的描述的多样性,使得难以达到人的绩效水平。

    Devlin等人已经证明了这种情况。 (2015年),他们表明,他们最好的模式只能产生47.0%的独特描述。那些产生各种原始描述的系统,不仅仅是重复已经看到的东西,而且还会推断出潜在的语义,因此仍然是一个公开的挑战。 Chen和Zitnick(2015)及相关方法通过耦合描述和可视化表示生成来解决这些限制。

    这里写图片描述

    Jas和Parikh(2015)介绍了图像特异性的概念,认为图像描述的形式不统一,某些图像比其他图像更具体。由于人们倾向于从不同的角度描述非特定的场景,非特定图像的描述往往会有很大的差异。这个概念及其对描述系统和措施的影响应进一步详细研究。

    4.4进一步的任务
    另一个公开的挑战是视觉问答(VQA)。而基于文本的自然语言问题回答长期以来一直是NLP研究的重要目标(例如,Liang,Jordan和Klein,2012; Fader,Zettlemoyer和Etzioni,2013; Richard-son,Burges&Renshaw ,2013; Fader,Zettlemoyer,&Etzioni,2014),回答关于图像的问题是最近出现的一个任务。为了实现这一目标,Malinowski和Fritz(2014a)提出了一个贝叶斯框架,将自然语言问题解答与从图像部分提取的视觉信息相结合。最近,已经开发了基于神经网络的图像问题回答方法(Gao,Mao,Zhou,Huang,and Yuille,2015; Ren,Kiros和Zemel,2015; Malinowski,Rohrbach,&Fritz,2015; Ma,Lu, &Li,2016)。在这个工作之后,几个关于这个任务的数据集正在被发布:DAQUAR(Malinowski&Fritz,2014a)是从场景深度图像中编译的,主要集中在关于物体的类型,数量和颜色的问题; COCO-QA(Ren等人,2015)是通过将图像描述转换为来自MS COCO数据集的图像子集上的VQA格式来构建的; (Gao et al。,2015),Visual Madlibs数据集(Yu,Park,Berg,&Berg,2015)和VQA数据集(Antol等,2015) ,再次为MS COCO的图像而构建,但是这次问题 - 答案对是通过人类注释者以自由式范式收集的。这个新兴领域的研究很可能在近期蓬勃发展。 VQA的最终目标是构建能够通过(最近开发的)视觉图灵测试的系统,能够以与人类观察者相同的精度回答有关图像的任意问题(Malinowski&Fritz,2014b; Geman,Geman,Hallonquist, &Younes,2015)。
    拥有用于图像描述的多语言存储库是一个有趣的探索方向。目前,在可用的基准数据集中,只有IAPR-TC12数据集(Grubinger et al。,2006)具有多语言描述(英文和德文)。今后的工作应该研究在单一描述模型之间传递多模态特征是否导致与单语基线相比更好的描述。在多语种多模式环境中研究不同的模型和新任务将是有趣的,使用更大,更多的语法多样化的多语言描述语料库。
    总的来说,图像理解是计算机视觉的终极目标,而自然语言的生成是NLP最终目标之一。图像描述是这两个目标相互关联的地方,因此这个主题可能受益于这两个领域各自的进步。

    5。结论
    在这次调查中,我们讨论了自动图像描述的最新进展和密切相关的问题。我们通过强调现有研究的共同特点和差异来回顾和分析现有的大量工作。具体而言,我们将相关工作分为三类:(i)从图像生成直接描述,(i)从视觉空间中检索图像,以及(iii)从多模态(联合视觉和语言)空间中检索图像。此外,我们简要回顾了现有的语料库和自动评估措施,并讨论了未来的远景和语言研究方向。

    与传统的基于关键词的图像标注(使用对象识别,属性检测,场景标注等)相比,自动图像描述系统对视觉内容产生了更多的人性化的解释,提供了更加完整的场景图像。在这个领域的进步可能会导致更智能的人工视觉系统,它可以通过生成的基础图像描述来推断场景,从而以更自然的方式与其环境进行交互。它们也可以直接影响视觉障碍人士通过更易于访问的界面从中受益的技术应用。

    尽管近年来图像描述系统的数量显着增加,但实验结果表明系统性能仍然低于人类的性能。类似的挑战在于使用参考描述来自动评估系统。目前使用的措施和工具与人的判断并不完全相关,表明需要采取措施来充分处理图像描述问题的复杂性。

    展开全文
  • 下面上个霸气的图来描述下整个算法的处理过程。      快速排序之所比较快,因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于...

    快速排序 过程图解

    注意:此文为转载文章,原文地址为:http://www.cnblogs.com/ahalei/p/3568434.html

               原作者:啊哈磊

                   这是我见过的解释快速排序最好的文章,分享如下:
            假如我们的计算机每秒钟可以运行10亿次,那么对1亿个数进行排序,桶排序则只需要0.1秒,而冒泡排序则需要1千万秒,达到115天之久,是不是很吓人。那有没有既不浪费空间又可以快一点的排序算法呢?那就是“快速排序”啦!光听这个名字是不是就觉得很高端呢。
     
            假设我们现在对“6  1  2 7  9  3  4  5 10  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。
           3  1  2 5  4  6  9 7  10  8
     
            在初始状态下,数字6在序列的第1位。我们的目标是将6挪到序列中间的某个位置,假设这个位置是k。现在就需要寻找这个k,并且以第k位为分界点,左边的数都小于等于6,右边的数都大于等于6。想一想,你有办法可以做到这点吗?
     
            给你一个提示吧。请回忆一下冒泡排序,是如何通过“交换”,一步步让每个数归位的。此时你也可以通过“交换”的方法来达到目的。具体是如何一步步交换呢?怎样交换才既方便又节省时间呢?先别急着往下看,拿出笔来,在纸上画画看。我高中时第一次学习冒泡排序算法的时候,就觉得冒泡排序很浪费时间,每次都只能对相邻的两个数进行比较,这显然太不合理了。于是我就想了一个办法,后来才知道原来这就是“快速排序”,请允许我小小的自恋一下(^o^)。
     

            方法其实很简单:分别从初始序列“6  1  2 7  9  3  4  5 10  8”两端开始“探测”。先从右往左找一个小于6的数,再从左往右找一个大于6的数,然后交换他们。这里可以用两个变量i和j,分别指向序列最左边和最右边。我们为这两个变量起个好听的名字“哨兵i”和“哨兵j”。刚开始的时候让哨兵i指向序列的最左边(即i=1),指向数字6。让哨兵j指向序列的最右边(即j=10),指向数字8。

     
           首先哨兵j开始出动。因为此处设置的基准数是最左边的数,所以需要让哨兵j先出动,这一点非常重要(请自己想一想为什么)。哨兵j一步一步地向左挪动(即j–),直到找到一个小于6的数停下来。接下来哨兵i再一步一步向右挪动(即i++),直到找到一个数大于6的数停下来。最后哨兵j停在了数字5面前,哨兵i停在了数字7面前。


     
     
     

           现在交换哨兵i和哨兵j所指向的元素的值。交换之后的序列如下。

            6  1  2  5  9 3  4  7  10  8
     
     
     
            到此,第一次交换结束。接下来开始哨兵j继续向左挪动(再友情提醒,每次必须是哨兵j先出发)。他发现了4(比基准数6要小,满足要求)之后停了下来。哨兵i也继续向右挪动的,他发现了9(比基准数6要大,满足要求)之后停了下来。此时再次进行交换,交换之后的序列如下。
            6  1  2 5  4  3  9  7 10  8
     
            第二次交换结束,“探测”继续。哨兵j继续向左挪动,他发现了3(比基准数6要小,满足要求)之后又停了下来。哨兵i继续向右移动,糟啦!此时哨兵i和哨兵j相遇了,哨兵i和哨兵j都走到3面前。说明此时“探测”结束。我们将基准数6和3进行交换。交换之后的序列如下。
            3  1 2  5  4  6  9 7  10  8
     
     
            到此第一轮“探测”真正结束。此时以基准数6为分界点,6左边的数都小于等于6,6右边的数都大于等于6。回顾一下刚才的过程,其实哨兵j的使命就是要找小于基准数的数,而哨兵i的使命就是要找大于基准数的数,直到i和j碰头为止。
     
            OK,解释完毕。现在基准数6已经归位,它正好处在序列的第6位。此时我们已经将原来的序列,以6为分界点拆分成了两个序列,左边的序列是“3  1 2  5  4”,右边的序列是“9  7  10  8”。接下来还需要分别处理这两个序列。因为6左边和右边的序列目前都还是很混乱的。不过不要紧,我们已经掌握了方法,接下来只要模拟刚才的方法分别处理6左边和右边的序列即可。现在先来处理6左边的序列现吧。
     
            左边的序列是“3  1  2 5  4”。请将这个序列以3为基准数进行调整,使得3左边的数都小于等于3,3右边的数都大于等于3。好了开始动笔吧。
     
            如果你模拟的没有错,调整完毕之后的序列的顺序应该是。
            2  1  3  5  4
     
            OK,现在3已经归位。接下来需要处理3左边的序列“2 1”和右边的序列“5 4”。对序列“2 1”以2为基准数进行调整,处理完毕之后的序列为“1 2”,到此2已经归位。序列“1”只有一个数,也不需要进行任何处理。至此我们对序列“2 1”已全部处理完毕,得到序列是“1 2”。序列“5 4”的处理也仿照此方法,最后得到的序列如下。
            1  2  3 4  5  6 9  7  10  8
     
            对于序列“9  7  10  8”也模拟刚才的过程,直到不可拆分出新的子序列为止。最终将会得到这样的序列,如下。
            1  2  3 4  5  6  7  8 9  10
     
            到此,排序完全结束。细心的同学可能已经发现,快速排序的每一轮处理其实就是将这一轮的基准数归位,直到所有的数都归位为止,排序就结束了。下面上个霸气的图来描述下整个算法的处理过程。
     
     
            快速排序之所比较快,因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和冒泡排序是一样的都是O(N2),它的平均时间复杂度为O(NlogN)。



    展开全文
  • 五种IO模型(详解+形象例子说明

    万次阅读 多人点赞 2018-06-06 10:39:48
    IO多路转接是多了一个select函数,select函数有一个参数是文件描述符集合,对这些文件描述符进行循环监听,当某个文件描述符就绪时,就对这个文件描述符进行处理。 其中,select只负责等,recvfrom只负责拷贝。 ...

    在网络环境下,通俗的讲,将IO分为两步
    1.等;
    2.数据搬迁。
    如果要想提高IO效率,需要将等的时间降低。

    五种IO模型包括:阻塞IO、非阻塞IO、信号驱动IO、IO多路转接、异步IO。其中,前四个被称为同步IO。

    在介绍五种IO模型时,我会举生活中钓鱼的例子,加深理解。

    1.阻塞IO(blocking I/O)

    A拿着一支鱼竿在河边钓鱼,并且一直在鱼竿前等,在等的时候不做其他的事情,十分专心。只有鱼上钩的时,才结束掉等的动作,把鱼钓上来。

    在内核将数据准备好之前,系统调用会一直等待所有的套接字,默认的是阻塞方式。
    这里写图片描述
    其实,我们例子中所说的鱼竿就是这一个文件描述符。这个模型是我们最常见的,程序调用和我们编写的基本程序是一致的。

    fd=connect();
    write(fd);
    read(fd);
    close(fd);

    程序的read必须在write之后执行,当write阻塞住了,read就不能执行下去,一直处于等待状态。

    2.非阻塞IO(noblocking I/O)

    B也在河边钓鱼,但是B不想将自己的所有时间都花费在钓鱼上,在等鱼上钩这个时间段中,B也在做其他的事情(一会看看书,一会读读报纸,一会又去看其他人的钓鱼等),但B在做这些事情的时候,每隔一个固定的时间检查鱼是否上钩。一旦检查到有鱼上钩,就停下手中的事情,把鱼钓上来。
    这里写图片描述
    其实,B在检查鱼竿是否有鱼,是一个轮询的过程。

    每次客户询问内核是否有数据准备好,即文件描述符缓冲区是否就绪。当有数据报准备好时,就进行拷贝数据报的操作。当没有数据报准备好时,也不阻塞程序,内核直接返回未准备就绪的信号,等待用户程序的下一个轮寻。

    但是,轮寻对于CPU来说是较大的浪费,一般只有在特定的场景下才使用。

    3.信号驱动IO(signal blocking I/O)

    C也在河边钓鱼,但与A、B不同的是,C比较聪明,他给鱼竿上挂一个铃铛,当有鱼上钩的时候,这个铃铛就会被碰响,C就会将鱼钓上来。
    这里写图片描述
    信号驱动IO模型,应用进程告诉内核:当数据报准备好的时候,给我发送一个信号,对SIGIO信号进行捕捉,并且调用我的信号处理函数来获取数据报。

    4.IO多路转接(I/O multiplexing)

    D同样也在河边钓鱼,但是D生活水平比较好,D拿了很多的鱼竿,一次性有很多鱼竿在等,D不断的查看每个鱼竿是否有鱼上钩。增加了效率,减少了等待的时间。
    这里写图片描述
    IO多路转接是多了一个select函数,select函数有一个参数是文件描述符集合,对这些文件描述符进行循环监听,当某个文件描述符就绪时,就对这个文件描述符进行处理。

    其中,select只负责等,recvfrom只负责拷贝。
    IO多路转接是属于阻塞IO,但可以对多个文件描述符进行阻塞监听,所以效率较阻塞IO的高。

    5.异步IO(asynchronous I/O)

    E也想钓鱼,但E有事情,于是他雇来了F,让F帮他等待鱼上钩,一旦有鱼上钩,F就打电话给E,E就会将鱼钓上去。
    这里写图片描述
    当应用程序调用aio_read时,内核一方面去取数据报内容返回,另一方面将程序控制权还给应用进程,应用进程继续处理其他事情,是一种非阻塞的状态。

    当内核中有数据报就绪时,由内核将数据报拷贝到应用程序中,返回aio_read中定义好的函数处理程序。

    很少有Linux系统支持,Windows的IOCP就是该模型。
    这里写图片描述
    可以看出,阻塞程度:阻塞IO>非阻塞IO>多路转接IO>信号驱动IO>异步IO,效率是由低到高的

    展开全文
  • 线程池的 为了减少线程频繁的创建和销毁过程,引入池的概念。 将一些线程先创建好放在线程池中,每次来任务就用池中的线程执行,空闲时池中线程就等待,但不销毁。 原始线程池的创建: ThreadPoolExecutor executor1...
  • 1算法及其描述(2-3) 一、 选择题1 下面关于算法的描述,正确...一个完整的算法, 不管用什么方法来表示, 都至少有一个输出结果答案: D2. 下列程序框图中表示处理计算的是( )A.①B.②C.③D.④答案: B3.算法描述可...
  • 网络七层协议的形象说明

    千次阅读 2017-07-27 10:05:12
    网络七层协议的形象说明 (若协议描述不好理解,可以先看文章后面的“ 物理介质 ”内容) 第一层,物理层   OSI 模型最低层的 “ 劳苦大众 ” 。它透明地传输比特流,就是传输的信号。该层上的...
  • Linux文件描述符到底是什么?

    千次阅读 多人点赞 2019-04-21 15:19:19
    一个 Linux 进程可以打开成百上千个文件,为了表示和区分已经打开的文件,Linux 会给每个文件分配一个编号(一个 ID),这个编号就是一个整数,被称为文件描述符(File Descriptor)。这只是一个形象的比喻,为了让...
  • 陈述、叙述、表述、描述的区别

    千次阅读 2021-11-04 17:19:08
    1.陈述意为陈说,叙述,指有条有理地表达事物、事实或者说话人的观念、观点。 2.叙述就是将事情的前后经过记载下来或说出来。...4.描述就是描写叙述,运用各种修辞手法对事物进行形象化的阐述 ...
  • 机器人学——位置与姿态描述

    千次阅读 2021-10-24 10:12:21
    一、位置与姿态描述 1.位姿(Pose) 物体(刚体)自身坐标系的位置和方向,图形上表示为一组坐标轴,如坐标系{B}及其坐标轴xBx_BxB​和yBy_ByB​ 2.相对位姿(relative pose) 相对于一个参考坐标系A的某个坐标系B的相对...
  • Java方法 - 方法重载 - 递归

    千次阅读 多人点赞 2021-11-01 22:24:16
    Java方法前言一,方法的基本用法方法的定义规则方法的执行过程 前言 哈喽大家好,我是Aaron,本文带来在Java中方法的使用以及方法涉及知识点的分享,觉得对各位有帮助的可以给出三连支持哦~ ????点赞???? + ????...
  • 2015年参与了公司十三五的IT战略规划编制,当时并没有了解太多战略规划方法论,主要还是咨询公司主导。近期又参与到IT战略规划的修编,希望能做得更好一些,有所提升,所以仔细研究了下四大咨询公司IT战略规划项目的...
  • 软件需求说明

    千次阅读 2019-10-21 22:24:41
    4.艺术风格:界面、版面形象清新悦目、布局合理,字号大小适宜、字体选择合理,前后一致,美观大方;色彩和谐自然与内容相协调。 4.4.2 响应时间需求 当用户登录,进行任何操作的时候,系统应该及时的进行反应,...
  • 数学四大思想方法

    千次阅读 2021-01-17 13:46:43
    数学思想方法数学思想是指人们对数学理论和内容的本质的认识,数学方法是数学思想的具体化形式,实际上两者的本质是相同的,差别只是站在不同的角度看问题。通常混称为“数学思想方法”。数学四大思想:函数与方程、...
  • 怎么用相应的图来描述系统

    万次阅读 2020-03-27 19:35:20
    除了文字描述外,配合图的方式来说明,增加了问题的具象化能力,方便沟通和对方理解。我刚开始一直想用一种图来表述所有内容,但是实际上没有一种图可以做到,即使可以做到,那么会使得这种图变得复杂,也不符合人类...
  • 【多选题】下列运算符的使用正确的有哪些( )【多选题】以下选项中,... print(len(s))【多选题】以下的布尔代数运算正确的是( )【单选题】关于 Python 语句 P = –P,以下选项中描述正确的是________【单选题】下列不...
  • 为了可以更加容易的理解卡尔曼滤波器,这里会应用形象描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单...
  • 黑盒测试方法之功能图法

    千次阅读 2020-10-26 14:51:17
    1. 概述 程序的功能说明通常由动态说明和静态说明组成, 动态说明描述的是输入数据的次序和转移的...功能图方法是用功能图形象描述程序的功能说明,并机械的生成功能图的测试用例。功能图由状态迁移图和逻辑功能模型
  • 米扑导航在收集网站、验证网站时,需要采集网页标题(title)、描述(description)、关键字(keywords)等meta信息本文将其整理出来,总结的经验分享给大家,欢迎交流、斧正、改进。本文原文转自米扑博客:PHP 获取网页...
  • 最优化方法:L1和L2正则化regularization

    万次阅读 多人点赞 2016-08-18 17:06:31
    http://blog.csdn.net/pipisorry/article/details/52108040机器学习和深度学习常用的规则化方法之一:L范数正则化(规格化)。一般来说,监督学习可以看做最小化下面的目标函数):θ∗=arg⁡min&...
  • 常用黑盒测试方法

    千次阅读 2021-08-23 01:46:06
    黑盒测试就是把测试对象看成一个不能打开的黑盒子,在完全不考虑程序的内部结构和处理过程的情况下,只依据程序的需求规格说明书,检查程序的功能是否符合他的功能说明。 黑盒测试主要发现的缺陷类型: 1、功能...
  • android studio 软件使用 详细说明

    万次阅读 多人点赞 2018-10-23 08:33:11
    android studio 软件使用 详细说明   开发第一应用 可以开发属于自己的应用,是否有点小激动?好吧!让我们开始,首先点击Start a new Android Studio Project创建工程: 接下来需要输入应用名称(第一个字母...
  • 形象易懂讲解算法I——小波变换

    千次阅读 2017-11-17 21:36:52
    从傅里叶变换到小波变换,并不是一个完全抽象的东西,可以讲得很形象。小波变换有着明确的物理意义,如果我们从它的提出时所面对的问题看起,可以整理出非常清晰的思路。 下面我就按照傅里叶-->短时傅里叶变换-->...
  • 它可以形象得用下图表示: 二、白盒测试方法应该遵循的原则 保证一个模块中的所有独立路径至少被测试一次。 所有逻辑值均需测试真 (true) 和假 (false) 两种情况。 检查程序的内部数据结构,保证其结构的有效性。 ...
  • 产品定位的方法有很多种,每家企业都有自己的产品定位方法。总的来说,产品定位的方法可以归纳为以下三种:一是 属性定位 ,具体就是产品品种角色定位;二是 根本定位 ,具体就是目标消费者定位;三是 基本定位...
  • APP建摸——一套描述app的方法

    万次阅读 2014-01-28 13:43:56
    尽管这两个引子切入角度不同,但是大家可以发现它们在描述同一个事实:我们需要一套方法论去为app建模,从而帮助我们去更好的理解、设计app产品。 这种描述一方面在设计的时候为需求与原型之间做缓冲,另一方面...
  • 常见的软件测试方法

    千次阅读 2020-10-25 00:00:34
    软件测试作为一个技术岗位,也是有自己的技术划分的,按照市场上常见的分类,可以分为白盒测试技术、黑盒测试技术以及介于二者之间的灰盒测试技术,每种测试技术更有自己独特的分析方法。 1.白盒测试技术 1)代码...
  • 牛逼!Java 从入门到精通,超全汇总版

    万次阅读 多人点赞 2021-05-06 19:40:33
    同时,本书列举了大量生动形象的例子,在遇到相关业务场景时可以把代码写得非常漂亮。原则既是规范,也是日常开发过程中要遵守的约定;设计模式是在业务场景下能够使用的工具。遵守原则并在合适的场景下用合适的工具...
  • 软件工程(三)—— 结构化方法

    千次阅读 2019-03-09 14:37:18
    一、结构化需求分析 在软件系统的需求工作中,通常面临三大挑战,即问题空间理解、人与人之间的通信、需求的变化...③提供定义系统边界的方法; ④提供支持抽象的基本机制; ⑤为需求分析人员提供多种可供选择的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,526
精华内容 19,410
关键字:

形象描述的说明方法