如何让电脑成为看图说话的高手?计算机视觉顶会ICCV论文解读

ICCV,被誉为计算机视觉领域三大顶级会议之一。作为计算机视觉领域最高级别的会议之一,其论文集代表了计算机视觉领域最新的发展方向和水平。阿里巴巴在今年的大会上有多篇论文入选,本篇所解读的论文是阿里iDST与多家机构合作的入选论文之一,目标是教会机器读懂图片并尽量完整表达出来。

精准描述商品:计算机视觉和自然语言处理的联合

近年来,随着深度学习技术的快速发展, 人们开始尝试将计算机视觉(Vision)和自然语言处理(Language)两个相对独立的领域联合起来进行研究,实现一些在过去看来非常困难的任务,例如“视觉-语义联合嵌入(Visual-SemanticEmbedding)”。该任务需要将图像及语句表示成一个固定长度的向量,进而嵌入到同一个矢量空间中。这样,通过该空间中的近邻搜索可以实现图像和语句的匹配、检索等。

视觉语义联合嵌入的一个典型应用就是图像标题生成(Image Captioning):对于任意输入的一张图像, 在空间中找到最匹配的一句话, 实现图像内容的描述。在电商场景下, 淘宝卖家在发布一件商品时, 该算法可以根据卖家上传得图片, 自动生成一段描述性文字, 供卖家编辑发布使用。再比如,视觉语义联合嵌入还可以应用于“跨模态检索(Cross-mediaRetrieval)”:当用户在电商搜索引擎中输入一段描述性文字(如“夏季宽松波希米亚大摆沙滩裙”、“文艺小清新娃娃领飞飞袖碎花A字裙”等), 通过文字-图像联合分析, 从商品图像数据库中找到最相关的商品图像返回给用户。

之前的不足:只能嵌入较短的语句简单描述图片

以往的视觉语义联合嵌入方法往往只能对比较短的句子进行嵌入,进而只能对图像做简单而粗略的描述,然而在实际应用中,人们更希望得到对图像(或图像显著区域)更为细致精确的描述。如图1所示,我们不仅想知道谁在干什么,还想知道人物的外表,周围的物体,背景,时间地点等。

图1 现有方法的问题

现有方法:“A girl is playing a guitar.

我们提出的方法:“a young girl sitting on a benchis playing a guitar with a black and white dog nearby.

为了实现这个目标,我们提出一个框架:第一步从图像中找出一些显著性区域,并用具有描述性的短语描述每个区域;第二步将这些短语组合成一个非常长的具有描述性的句子,如图2所示。

图2 我们的提出的框架

为此,我们在训练视觉语义联合嵌入模型时不仅需要将整个句子嵌入空间,更应该将句子中的各种描述性短语也嵌入空间。然而,以往的视觉语义联合嵌入方法通常采用循环神经网络模型(如LSTM(Long short-term memory)模型)来表示语句。标准的LSTM模型有一个链式结构(Chain structure):每一个单元对应一个单词,这些单词按出现顺序排成一列,信息从第一个单词沿该链从前传到最后,最后一个节点包含了所有的信息,往往用于表示整个句子。显然,标准的LSTM模型只适合表示整个句子,无法表示一句话中包含的短语,如图所示。

图3 链式结构的问题

论文创新方法:提出层次化的LSTM模型

本文提出一种多模态、层次化的LSTM模型(Hierarchical Multimodal LSTM)。该方法可以将整个句子、句子中的短语、整幅图像、及图像中的显著区域同时嵌入语义空间中,并且自动学习出“句子-图像”及“短语-图像区域”间的对应关系。这样一来,我们生成了一个更为稠密的语义空间,该空间包含了大量的描述性的短语,进而可以对图像或图像区域进行更详细和生动的描述,如图所示。

图4 本文提出的多模态层次结构

本文方法的创新性在于提出了一个层次化的LSTM模型,根节点对应整句话或整幅图像,叶子节点对应单词,中间节点对应短语或图象中的区域。该模型可以对图像、语句、图像区域、短语进行联合嵌入(Joint embedding),并且通过树型结构可以充分挖掘和利用短语间的关系(父子短语关系)。其具体网络结构如下图所示

图5 网络结构

其中为每一个短语和对应的图像区域都引入一个损失函数,用于最小化二者的距离,通过基于结构的反向传播算法进行网络参数学习。

在图像-语句数据集上的比较

图 6在Flickr30K数据集上的对比 

图 7在MS-COCO数据集上的对比

可见本文方法在几个公开数据集上都获得了很好的效果

在图像区域-短语数据集上的对比

我们提供了一个带有标注的图像区域-短语数据集MS-COCO-region,其中人工标定了一些显著性物体,并在这些物体和短语之间建立了联系。

图 8在MS-COCO-region数据集上的对比

下图是我们方法的可视化结果,可见我们的短语具有很强的描述性

此外,我们可以学习出图像区域和短语的对应关系,如下

原文发布时间为:2017-10-25

时间: 2025-01-20 11:21:33

如何让电脑成为看图说话的高手?计算机视觉顶会ICCV论文解读的相关文章

学习笔记TF060:图像语音结合,看图说话

斯坦福大学人工智能实验室李飞飞教授,实现人工智能3要素:语法(syntax).语义(semantics).推理(inference).语言.视觉.通过语法(语言语法解析.视觉三维结构解析)和语义(语言语义.视觉特体动作含义)作模型输入训练数据,实现推理能力,训练学习能力应用到工作,从新数据推断结论.<The Syntax,Semantics and Inference Mechanism in Natureal Language> http://www.aaai.org/Papers/Symp

架构设计分享之权限系统(看图说话)

架构设计分享之权限系统(看图说话) 前面一篇文章<最近架构随想>,我提到架构设计的一些构想,其实也是对之前项目经验的一些归纳及总结.今天我们就以权限系统作为切入点,谈一谈怎么设计权限系统以及怎么做到系统具有以下特性: Organized:如果系统组织比较好,可以起到事半功倍的效果. Encapsulated:对功能,结构,数据进行有效的封装,会使系统维护变得更加容易. Reusable:对常用功能以及组件进行有效的封装,可以使系统变得结构清晰且方便维护. Extensible:在设计系统的时候

看图说话 – Android UI 设计秘笈 :Part I

Android 的官方开发者博客发了一份幻灯片,介绍了一些 Android UI 设计的小贴士,Roger 在这里以http://www.aliyun.com/zixun/aggregation/12897.html">看图说话的形式发出来,有兴趣的读者就继续往下翻吧.整个 PPT 共分5个部分,Part I 翻译的是前两个部分. 作为开发者,为啥我们要关心UI,前面的一堆通通可以忽略掉,直接跳到最后一条.因为好的UI设计可以帮助我们卖出更多拷贝,赚到更多钱^_^ 这个 PPT 包含5个部

Kafka与Logstash的数据采集对接 —— 看图说话,从运行机制到部署

基于Logstash跑通Kafka还是需要注意很多东西,最重要的就是理解Kafka的原理. Logstash工作原理 由于Kafka采用解耦的设计思想,并非原始的发布订阅,生产者负责产生消息,直接推送给消费者.而是在中间加入持久化层--broker,生产者把数据存放在broker中,消费者从broker中取数据.这样就带来了几个好处: 1 生产者的负载与消费者的负载解耦 2 消费者按照自己的能力fetch数据 3 消费者可以自定义消费的数量 另外,由于broker采用了主题topic-->分区的

[看图说话] 基于Spark UI性能优化与调试——初级篇

Spark有几种部署的模式,单机版.集群版等等,平时单机版在数据量不大的时候可以跟传统的java程序一样进行断电调试.但是在集群上调试就比较麻烦了...远程断点不太方便,只能通过Log的形式进行数据分析,利用spark ui做性能调整和优化. 那么本篇就介绍下如何利用Ui做性能分析,因为本人的经验也不是很丰富,所以只能作为一个入门的介绍. 大体上会按照下面的思路进行讲解: 怎么访问Spark UI SparkUI能看到什么东西?job,stage,storage,environment,excu

看图说话论别挑网

http://www.aliyun.com/zixun/aggregation/12897.html">看图说话论别挑网

林志玲木村热吻言承旭称不会用电脑没有看(图)

言承旭忙着学日文,没空看林志玲演的<月之恋人> 新浪娱乐讯 北京时间5月20日消息,据台湾媒体报道,林志玲最近和木村拓哉在日剧<月之恋人>中热吻60秒,林志玲的前男友言承旭却坦言"没有看",主因是他不会用电脑. 不过为了进军日本市场,言承旭目前请了贴身家教上日文课,与林志玲在日本市场一较高下意图明显.言承旭请到男的日籍老师一对一上课,他自修听日文课程,还有英文贴身家教,估计光是家教费每月就需花10多万元台币. 忙着上课的言承旭,对林志玲和木村主演的日剧<月

跌跌撞撞,用MAVEN看图说话的编译了一个JAR出来

URL:   http://www.yiibai.com/maven/create-a-java-project-with-maven.html mvn archetype:generate -DgroupId=com.yiibai -DartifactId=NumberGenerat or -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false mvn eclipse:eclipse mvn packag

js原型链原理看图说明_javascript技巧

当初ECMAscript的发明者为了简化这门语言,同时又保持继承的属性,于是就设计了这个链表.. 在数据结构中学过链表不,链表中有一个位置相当于指针,指向下一个结构体. 于是乎__proto__也一样,每当你去定义一个prototype的时候,相当于把该实例的__proto__指向一个结构体,那么这个被指向结构体就称为该实例的原型. 文字说起来有点儿绕,看图说话 复制代码 代码如下: var foo = { x: 10, y: 20 }; 当我不指定__proto__的时候,foo也会预留一个这