CVPR 2018 | UNC&Adobe提出模块化注意力模型MAttNet,解决指示表达的理解问题

选自arXiv

作者:虞立成 等

机器之心编译

参与:程耀彤、路雪

北卡教堂山分校 (UNC) 虞立成等人近日发表的 CVPR 2018 论文提出了模块化注意力模型 MAttNet,将 Referring Expression(指示表达)分解为三个模块:主语、位置和关系,并基于句子和图片的联合注意力解析,解决基于指示表达的目标定位问题。实验表明 MAttNet 在基于自然语句的目标检测和分割两种任务上都大幅优于前文的方法。该论文已被 CVPR 2018 录取,并提供了代码以及 demo。

  • 代码链接:https://github.com/lichengunc/MAttNet
  • Demo 链接:http://vision2.cs.unc.edu/refer/comprehension

任务

Referring Expression(指示表达)指描述图片中某一特定物体的一句自然语句。与 Image Captioning 任务不同的是 Referring Expression 具有唯一性和区域性,比如「穿红色毛衣的女人」或「右边的男孩」。在日常生活中,无论人与人之间的交流或是人机交互,都会涉及这种指示性的短语表达。所以理解它们并准确定位所描述的物体成为自然交互的必要条件。

指示表达理解的问题可以被定义成:从图片 I 里的各个物体〖O={o_i }〗_(i=1)^N 中选出那个「最」能被指示表达 r 贴切描述的物体 o^*。过往在此问题上的研究可以分为两类:基于 CNN-LSTM 的框架建模的 P(r|o),以及基于联合概率框架建模的 P(r, o)。本文使用后者。

模型与方法

文章对数据集进行统计后发现根据目标物体和其他物体的差异性,对它的指示表达可以涉及不同类型的信息。例如,如果目标物体为十个黑球中的一个红球,那么对它的指示表达可以很简单得说「红球」。如果相同的红球被放在其他三个红球中,那么基于位置的信息可能变得更加重要,例如「右边的红球」。或者,如果在场景中有 100 个红球,那么球与其他物体之间的关系可能是最明显的信息,例如「猫旁边的红球」。因此,将指示语句的理解模型进行模块化分析便显得非常自然直观。本文利用主语,位置和关系模块来解析输入的指示语句,然后触发不同的视觉模块进行处理。

本文提出的模块化注意力模型 (MAttNet) 如图 1 所示。模型首先将输入的指示表达分解成三个短语表征,作为三个视觉模块的输入,这些视觉模块用不同的注意力模型分别计算与其对应的短语的匹配分数。最后,三个模块的匹配分数的加权总和成为整体匹配得分。整个模型可以无缝链接 Mask R-CNN 框架,因而可以做目标定位和目标分割两个任务。

具体来分析模型的细节。首先是自然语言的分解模块,作者提出的 Language Attention Network(语言注意力模型)对输入的指示表达进行主语,位置和关系的三个模块的拆解。每个拆解后的成分会有两个输出,其一是该模块的词向量表征,其二是该模块占整句句子的权重。然后是三个视觉模块,给定某个备选物体 (candidate object),我们计算它与三个词向量表征的匹配分数。其中,主语的视觉模块抽取物体的 R-CNN 特征,并使用该模块内部的软注意力模型抽取与词向量相关的区域,计算匹配分数;位置的视觉模块抽取物体的位置特征,将其映射到高维空间后与位置词向量进行匹配;关系的视觉模块抽取其周边其他物体的特征,使用多示例学习 (Multiple Instance Learning) 选取与关系词向量最相关的周边物体,计算得分。最后,三个匹配得分会和上述的三个权重进行内积,得到最终匹配得分。

图 1:模块化注意网络 (MAttNet)

实验结果

实验中,首先为了和前文进行公平比较,使用了 VGG16 特征,在目标定位上超过前文~2%。配合上 Mask R-CNN 的特征后,优势扩展为~7%。在目标分割上,基本达到前文最佳精度的两倍。此外,模型具有很好的解释性,作者展示了三个模块各自注意到的相关单词和视觉区域。如图 2 所示。

结束语

指示表达的应用很广,人与人的对话系统和人机交互系统都经常会涉及对图片或场景里的某个目标物体进行自然语言的描述。从作者提供的 demo 来看,方向性的指示表达和对「人」这一类的指示表达,理解得都还比较准确;但对其他物体的指示理解还有进一步的提升空间。作者在提供的代码的最后写了一些 Notes,可以作为后续工作的思考方向。

图 2:MAttNet 在 RefCOCOg 上的结果:第一列为原图,第二列为输入的指示表达与其分解结果,第三列为主语模块的注意区域;第四列为主语模块的 attribute 输出;第五列为目标定位(蓝筐);第六列为目标分割。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-03-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏智能算法

亚像素边缘的直线及圆弧的基元分割

从20世纪70年代起就有不少专家提出了一些有效的亚像素边缘定位的方法,如插值法、灰度矩法和一些组合的算法等。本文在前辈的基础上描述一种图像亚像素边缘检测方法,...

3116
来自专栏大数据挖掘DT机器学习

情感分析的新方法,使用word2vec对微博文本进行情感分析和分类

情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中。通过这种方式,情感分析可以被视为利用一些情感得分指标来...

1.2K10
来自专栏AI科技大本营的专栏

干货 | 深度详解ResNet及其六大变体

编译 | 图普科技 本文由图普科技工程师编译自《An Overview of ResNet and its Variants》。 从AlexNet[1]在201...

5006
来自专栏人工智能

理解卷积

原文作者:Christopher Olah

1K14
来自专栏AI科技大本营的专栏

干货 | 转型人工智能,你需要掌握的八大神经网络

翻译 | AI科技大本营 参与 | 林椿眄 编辑 | Donna 为什么我们需要机器学习? 机器学习可以解决人类不能直接用编程来应对的复杂难题,因此,我们喂给机...

3657
来自专栏Bingo的深度学习杂货店

《机器学习实战》总结篇

前些天完成了《机器学习实战》这本书的学习,也利用 Python3 实现了各个章节的代码,对传统的机器学习方法有了更进一步的了解,这里做一个总结。 代码传送门: ...

3924
来自专栏机器学习之旅

理论:SVM理论解析及python实现

关于常见的分类算法在不同数据集上的分类效果,在《Do we Need Hundreds of Classifiers to Solve Real World C...

1263
来自专栏算法channel

TensorFlow 指标列,嵌入列

一般地,机器学习、深度学习 feed 进来的数据要求为数值型。如果某列取值为字符型,需要做数值转换,今天就来总结下 TensorFlow 中的指标列和嵌入列。

1873
来自专栏AI科技评论

学界 | 超越何恺明等组归一化 Group Normalization,港中文团队提出自适配归一化取得突破

AI 科技评论:港中文最新论文研究表明目前的深度神经网络即使在人工标注的标准数据库中训练(例如 ImageNet),性能也会出现剧烈波动。这种情况在使用少批量数...

1361
来自专栏媒矿工厂

基于双流编码-解码深度网络的视频对象分割算法简介

背景介绍 视频对象分割(Video Object Segmentation),目的是将视频段中的物体连续地“抠”出来以得到视频每一帧的前景、背景分割结果。分割得...

4763

扫码关注云+社区

领取腾讯云代金券