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

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

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

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

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

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

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

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

640?wx_fmt=jpeg&tp=webp&wxfrom=5&wx_lazy

图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所示。

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图2 我们的提出的框架

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


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图3 链式结构的问题

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

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

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

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

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

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

图5 网络结构

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

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

88fdb68362845a15be36da8743c2c4775dd9f4ab

图 6在Flickr30K数据集上的对比 

06c214819e6db31774a684dc6d4131b5dc46b1b9

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

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

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

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

840f4569057269fe56488e737c53b4cf1904b2ef

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

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

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

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

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=


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

本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”微信公众号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454730.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

canvas绘制线条1像素的问题

http://jo2.org/html5-canvas%E7%94%BB%E5%9B%BE3%EF%BC%9A1px%E7%BA%BF%E6%9D%A1%E6%A8%A1%E7%B3%8A%E9%97%AE%E9%A2%98/转载于:https://www.cnblogs.com/XIE7654/p/7493315.html

php汽车找车位,遭遇到车多车位少 教你如何快速找到停车位

[摘要]车主们大多时间会穿梭在市区,到了目的地后那就先找停车位,现在市区寸土寸金,一个停车位面积要占几平米呢,所以停车位基本是不够用的。下面和大家聊聊怎么找合适的停车位。车主们大多时间会穿梭在市区,去商场购物…

Python 框架 之 Scrapy 爬虫(二)

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。其最初是为了页面抓取 (更确切来说, 网络抓取)所设计的, 也可以应用在获取API所返回的数据(例如 Amazon Ass…

十六进制透明度参照表

00%FF(不透明) 5%F2 10%E5 15%D8 20%CC 25%BF 30%B2 35%A5 40%99 45%8c 50%7F 55%72 60%66 65%59 70%4c 75%3F 80%33 85%21 90%19 95%0c 100%00(全透明)转载于:http…

lamp和php,[LAMP]Apache和PHP的结合

在LAMP架构中,Apache通过PHP模块与Mysql建立连接,读写数据。那么配置Apache和PHP结合的步骤是怎么操作的呢?1、修改http.conf文件[rootjuispan ~]# cat /usr/local/apache2.4/conf/httpd.conf......#ServerName......AllowOverride noneRequi…

Day-5: Python高级特性

python的理念是:简单、优雅。所以,在Python中集成了许多经常要使用的高级特性,以此来简化代码。 切片:对于一个list或者tuple,取其中一段的元素,称为切片(Slice)。 L[start:end]表示…

前端之 XMLHttpRequest

XMLHttpRequest 和AJAX的爱恨情仇 AJAX 是 asynchronous javascript and XML 的简写,中文翻译是异步的 javascript 和 XML,这一技术能够向服务器请求额外的数据而无须卸载页面,会带来更好的用户体验。虽然名字中包含 XML ,但 AJAX…

makefile——小试牛刀

//a.h,包含头文件stdio.h,并且定义一个函数print #include<stdio.h> void print();//b.c&#xff0c;包含头文件a.h&#xff0c;然后就可以写print函数的内容了 #include"a.h" void print(){ printf("who are you\n"); }//c.c&#xff0c;包含头文件…

云电脑是什么_云电脑和我们现在平时用的电脑有什么区别?

&#x1f340;温馨提示&#x1f340;公众号推送改版&#xff0c;为了不让您错过【掌中IT发烧友圈】每天的精彩推送&#xff0c;切记将本号设置星标哦&#xff01;~01云电脑&#xff0c;是5G云服务时代的电脑新概念&#xff0c;是电脑的新的一种形态。从具体操作使用上来讲&…

PHP如何用while实现循环,PHP 循环 -

PHP 循环 - While 循环循环执行代码块指定的次数&#xff0c;或者当指定的条件为真时循环执行代码块。PHP 循环在您编写代码时&#xff0c;您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。在 PHP 中&#xff0c;提供了下列循环语…

比较全的C语言面试题

1. static有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1).限制变量的作用域 2).设置变量的存储域 2. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始化以后不能被改变&#xff0c;指针可以改变所指的对象…

PHP爬取历史天气

PHP爬取历史天气 PHP作为宇宙第一语言&#xff0c;爬虫也是非常方便&#xff0c;这里爬取的是从天气网获得中国城市历史天气统计结果。 程序架构 main.php <?phpinclude_once("./parser.php");include_once("./storer.php");#解析器和存储器见下文$par…

Python 第三方库之docx

日常上官网 https://python-docx.readthedocs.io/en/latest/ 一、安装 pip install python-docx 二、写入word word 中主要有两种用文本格式等级&#xff1a;块等级&#xff08;block-level&#xff09;和内联等级&#xff08;inline-level&#xff09;word 中大部分内容都…

Unity AI副总裁Danny Lange:如何用AI助推游戏行业?

本文讲的是Unity AI副总裁Danny Lange&#xff1a;如何用AI助推游戏行业&#xff1f; &#xff0c;10月26日&#xff0c;在加州山景城举办的ACMMM 2017大会进入正会第三天。在会上&#xff0c;Unity Technology负责AI与机器学习的副总裁Danny Longe进行了题为《Bringing Gaming…

SPI 读取不同长度 寄存器_SPI协议,MCP2515裸机驱动详解

SPI概述Serial Peripheral interface 通用串行外围设备接口是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM&#xff0c;FLASH&#xff0c;实时时钟&#xff0c;AD转换器&#xff0c;还有数字信号处理器和数字信号解码器之间。SPI&#xff0c;是一种高…

oracle并发执行max,跪求大量并发执行insert into select语句的方案

现在有数十万张表要从A库通过insert into tablename select * from tablenamedblink的方式导入到B库中。B机上80个cpu&#xff0c;160G内存。希望能够大量并发执行。怎么写脚本呢&#xff1f;谁有这方面的经验&#xff0c;麻烦指点一下。谢谢。下面是我的脚本&#xff1a;#!/us…

20162314 《Program Design Data Structures》Learning Summary Of The First Week

20162314 2017-2018-1 《Program Design & Data Structures》Learning Summary Of The First Week Summary of teaching materials Algorithm analysis is the basic project of the computer science.Increasing function prove that the utilization of the time and spa…

高并发解决方法

2019独角兽企业重金招聘Python工程师标准>>> 高并发来说&#xff0c;要从实际项目的每一个过程去考虑&#xff0c;页面&#xff0c;访问过程&#xff0c;服务器处理&#xff0c;数据库访问每个过程都可以处理。&#xff08;前端-宽带-后端-DB&#xff09; 集群&…

MySQL 之 存储过程

一、初识存储过程 1、什么是存储过程 存储过程是在大型数据库系统中一组为了完成特定功能的SQL语句集&#xff0c;存储在数据库中。存储过程经过第一次编译后&#xff0c;再次调用不需要编译&#xff0c;用户可以通过指定的存储过程名和给出一些存储过程定义的参数来使用它。…

C/C++面试感受和经验以及面试题收藏

http://topic.csdn.net/u/20080924/15/3b00a84e-970f-4dea-92f2-868c5d1ad825.html 前段时间刚参加了n多公司的C/C软件工程师的面试&#xff0c;有国企&#xff0c;外企&#xff0c;私企&#xff08;moto&#xff0c;飞思卡尔&#xff0c;港湾&#xff0c;中国卫星XXX&#xf…