c++ 舞伴配对问题_挑战新物体描述问题,视觉词表解决方案超越人类表现

fe97a878a0d91476baefc83be5424194.gif

编者按:最近,研究者们发布了 nocaps 挑战,用以测量在没有对应的训练数据的情况下,模型能否准确描述测试图像中新出现的各种类别的物体。针对挑战中的问题,微软 Azure 认知服务团队和微软研究院的研究员提出了全新解决方案视觉词表预训练 (Visual Vocabulary Pre-training)。该方法在 nocaps 挑战中取得了新的 SOTA,并首次超越人类表现。

4ec17a5b0c1b9da11f7a7b99992c297d.png

看图说话“新”问题

图像描述或看图说话(Image Captioning)是计算机根据图片自动生成一句话来描述其中的内容,由于其潜在的应用价值(例如人机交互和图像语言理解)而受到了广泛的关注。这项工作既需要视觉系统对图片中的物体进行识别,也需要语言系统对识别的物体进行描述,因此存在很多复杂且极具挑战的问题。其中,最具挑战的一个问题就是新物体描述(Novel object captioning),即描述没有出现在训练数据中的新物体。

最近,研究者们发布了 nocaps 挑战(https://nocaps.org/),以测量在即使没有对应的训练数据的情况下,模型能否准确描述测试图像中新出现的各种类别的物体。在这个挑战中,虽然没有配对的图像和文本描述(caption)进行模型训练,但是可以借助计算机视觉的技术来识别各类物体。例如在一些之前的工作中,模型可以先生成一个句式模板,然后用识别的物体进行填空。然而,这类方法的表现并不尽如人意。由于只能利用单一模态的图像或文本数据,所以模型无法充分利用图像和文字之间的联系。另一类方法则使用基于 Transformer 的模型进行图像和文本交互的预训练(Vision and Language Pre-training)。这类模型在多模态(cross-modal)的特征学习中取得了有效的进展,从而使得后续在图像描述任务上的微调(fine-tuning)获益于预训练中学到的特征向量。但是,这类方法依赖于海量的训练数据,在这个比赛中无法发挥作用。

针对这些问题,微软 Azure 认知服务团队和微软研究院的研究员们提出了全新的解决方案  Visual Vocabulary Pre-training(视觉词表预训练,简称VIVO),该方法在没有文本标注的情况下也能进行图像和文本的多模态预训练。这使得训练不再依赖于配对的图像和文本标注,而是可以利用大量的计算机视觉数据集

4ec17a5b0c1b9da11f7a7b99992c297d.png

视觉词表成为解决问题的关键

VIVO 方法取得成功的关键在于视觉词表(visual vocabulary)的建立。如图1所示,研究人员把视觉词表定义为一个图像和文字的联合特征空间(joint embedding space),其中语义相近的词汇,例如男人和人、手风琴和乐器,会被映射到距离更近的特征向量上。在预训练学习建立了视觉词表以后,模型还会在有对应的文本描述的小数据集上进行微调。微调时,训练数据只需要涵盖少量的共同物体,例如人、狗、沙发,模型就能学习如何根据图片和识别到的物体来生成一个通用的句式模板,并且把物体填入模板中相应的位置,例如,“人抱着狗”。在测试阶段,即使图片中出现了微调时没有见过的物体,例如手风琴,模型依然可以使用微调时学到的句式,加上预训练建立的视觉词表进行造句,从而得到了“人抱着手风琴”这句描述。

bddb8cc3e4c6f6c0a05f1fb6934436ef.png

图1:VIVO 预训练使用大量的图片标签标注来建立视觉词表,其中语义相近的词汇与对应的图像区域特征会被映射到距离相近的向量上。微调使用只涵盖一部分物体(蓝色背景)的少量文本描述标注进行训练。在测试推理时,模型能够推广生成新物体(黄色背景)的语言描述,得益于预训练时见过的丰富物体类型。

通过这样的方法,研究员们结合了预训练中识别图片物体的能力,以及微调中用自然语言造句的能力,从而做到了在推理测试时举一反三,使用更丰富的词汇量来描述图片中新出现的各种物体。

4ec17a5b0c1b9da11f7a7b99992c297d.png

VIVO 训练流程aa553fa0ed0d72ee9019e422ff2ed6f3.png

图2:训练和推理流程总览(a)在VIVO 预训练中,Transformer 模型在图片标签的训练数据上做标签预测,从而针对丰富的视觉概念进行多模态特征学习。(b)在微调中,模型在有文本描述标注的训练数据上学习如何基于图片和识别出来的物体生成一句话。(c)在推理时,对于给定的图片和识别的物体,模型以自回归的方式生成一系列字符,从而构成描述新物体的句子。

如图2所示,VIVO 训练流程采用了两阶段的训练。第一阶段为预训练,使用多层的 Transformer 模型进行图像分类的预测。具体来说,先给定图片和对应的一些标签(tag),然后随机地抹去其中一部分标签,让模型来预测这些被抹去的标签原本是什么。由于这些标签之间的顺序是可以互换的,因此需要使用匈牙利算法(Hungarian matching)来找到预测结果和目标标签之间的一一对应,然后计算交叉熵损失(cross entropy loss)函数。

预训练之后,第二阶段为微调。Transformer 模型会在有文本描述标注的小数据集上训练,例如 COCO。微调时使用的物体标签可以来自数据集本身的标注,也可以由其他已经训练好的图像分类或物体识别模型自动生成。

在测试阶段,对于给定图片和识别出来的物体标签,模型采用了自回归(auto-regressive)的方式生成字符序列,从而获得描述图片的一句话。

4ec17a5b0c1b9da11f7a7b99992c297d.png

SOTA 首次超越人类

研究员们将 VIVO 与 nocaps 挑战中一些领先的方法,如 UpDown 、 OSCAR 等做了对比(这些方法使用的训练数据也是 COCO)。另外,遵循之前的方法,添加了使用 SCST 和 Constrained Beam Search (CBS)之后的结果。在 nocaps 的校验集(validation)和测试集(test)上的结果显示在表1中。可以看到,相比于之前的方法,VIVO 的结果表现有了显著的提高。仅仅使用 VIVO 预训练就取得了远超过 UpDown+ELMo+CBS 和 OSCAR 的结果。最终,VIVO 方法的结果达到了新的 SOTA,并且首次在 nocaps 挑战中超过了人类表现的 CIDEr 得分。

20a052744fd5a36273bb0da0b9f6fdeb.png

表1:各种方法在 nocaps 的校验和测试数据集上的结果

为了进一步理解 VIVO 预训练中学习视觉词表所产生的作用,即在图像和文字的共同特征空间中对准图像与相应的语义标签,研究员们展示了如何根据这些新物体的标签找到它们在图片中的位置(grounding to image regions)。对于每个图片区域和每个物体标签的两两配对,VIVO 都计算了它们对应特征向量之间的相似度(cosine similarity)。图3高亮了其中得分高的配对。可以看出,VIVO 的模型能够准确地在众多区域中确定这些物体所在的位置。

97f4a0d838bb87d975d95b26350b801f.png

图3:模型对 nocaps 图片的描述结果。B:没有做 VIVO 预训练的模型。V:有 VIVO 预训练的模型。红色文字显示了描述中出现的新物体。图中还显示了各个图片区域和描述中出现的新物体对应特征向量之间的相似度,相似度越高的组合颜色亮度越高。

VIVO 展示了视觉词表对描述图片中新出现的物体的重要作用。作为第一个不依赖于图片文本标注(paired image-sentence data)的图像与文本交互的预训练(Vision-Language Pre-training)方法,VIVO 成功运用了计算机视觉研究中已经标注的大规模图片标签数据(image tagging data)来进行全新模式的图像与文本交互预训练。值得注意的是,如果可以利用模型自动给图片生成标签,而不需要人工标注文本描述,那么可以在训练时加入可能无限多的无标注图片,从而进一步提高模型的表现,微软的研究人员也将在未来的后续工作中对此进行更多探索。

你也许还想看

e4cbcb250bdf07103ff1822e2fcbeb46.png9d45de794bc8dd1807a5bff47ba81e65.pngf541f2c0a402218cfaf2d8c60e0d00a1.png37ca1286d844e6f1d2f7b40b67aa4e74.gifdd47d17553502dc173e464cc246a00c5.gif

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

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

相关文章

深度学习之双线性插值(Bilinear interpolation)

1. 什么是插值 Interpolation is a method of constructing new data points within the range of a discrete set of known data points. Image interpolation refers to the“guess”of intensity values at missing locations. 图片放大是图像处理中的一个特别基础的操作。…

深度学习之 OHEM (Online Hard Example Mining)

论文 《Training Region-based Object Detectors with Online Hard Example Mining》链接 https://arxiv.org/pdf/1604.03540.pdf Astract 摘要主要讲了四点: (1) 训练过程需要进行参数的空间搜索(2) 简单样本与难分辨样本之间的类别不平衡是亟需解决的问题(3) 自…

音视频 详解

avi文件格式详解 AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先用于Microsoft Video for Windows (简称VFW)环境,现在已被Windows 95/98、OS/2等多数操…

c6011取消对null指针的引用_C++| 函数的指针参数如何传递内存?

函数的参数是一个一级指针,可以传递内存吗?如果函数的参数是一个一级指针,不要指望用该指针去申请动态内存。看下面的实例:#include using namespace std;void GetMemory(char *p, int num){p (char *)malloc(sizeof(char) * num…

深度学习目标检测之 YOLO v2

论文名:《YOLO9000: Better, Faster, Stronger》原文:https://arxiv.org/pdf/1612.08242v1.pdf代码:http://pjreddie.com/darknet/yolo/ YOLO v2 斩获了CVPR 2017 Best Paper Honorable Mention。在这篇文章中,作者首先在YOLOv1的…

深度学习目标检测之 YOLO v3

论文名:《YOLOv3: An Incremental Improvement》论文地址 https://pjreddie.com/media/files/papers/YOLOv3.pdfhttps://arxiv.org/abs/1804.02767v1 论文代码 https://github.com/yjh0410/yolov2-yolov3_PyTorchkeras:https://github.com/qqwweee/keras…

30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全

史上最牛的Linux内核学习方法论 点击下载我的arm_linux移植笔记 点击下载S3C2440完全开发流程 点击下载Linux系统命令及其使用详解完整版 点击下载Linux主要shell命令详解 点击下载深入理解Linux内核(第三版 pdf英文版) 点击下载深入分析Linux内核源代码教程pdf完整版 点击下…

Fedex Ship Manager Software安装

本文出自Simmy的个人blog:西米在线 http://simmyonline.com/archives/552.html 这个软件的安装颇费了我一番周章,特地Log之。下载:http://www.fedex.com/apac_english/fsmsoftware/ 安装完后,接着输入用户信息,然后连…

【转】博客美化(3)为博客添加一个漂亮的分享按钮

阅读目录 1.社会化分享2.选择一个分享按钮3.添加到博客园博客博客园美化相关文章目录:博客园博客美化相关文章目录 在前2篇博客“博客美化(1)基本后台设置与样式设置”与"博客美化(2)自定义博客样式细节"中详细介绍了博客样式设置的相关问题,当…

深度学习目标检测之 YOLO v4

论文原文:https://arxiv.org/abs/2004.10934代码 原版c: https://github.com/AlexeyAB/darknetkeras:https://github.com/Ma-Dan/keras-yolo4pytorch:https://github.com/Tianxiaomo/pytorch-YOLOv4 前言 2020年YOLO系列的作者…

[Android] 年年有鱼手机主题

自制的年年有鱼手机主题,希望大家喜欢!~ 下载地址:https://yunpan.cn/cqauQbiM97idd (提取码:d272) 本文转自haiyang45751CTO博客,原文链接: http://blog.51cto.com/haiyang457/1…

mysql 小数做索引_10 分钟掌握 MySQL 的索引查询优化技巧

本文的内容是总结一些MySQL的常见使用技巧,以供没有DBA的团队参考。如无特殊说明,存储引擎以InnoDB为准。MySQL的特点了解MySQL的特点有助于更好的使用MySQL,MySQL和其它常见数据库最大的不同在于存在存储引擎这个概念,存储引擎负…

模块与包

一 模块介绍 1、什么是模块? #常见的场景:一个模块就是一个包含了一组功能的python文件,比如spam.py,模块名为spam,可以通过import spam使用。#在python中,模块的使用方式都是一样的,但其实细说的话&#x…

解决eclipse + pydev 编译过程中有中文的问题

最近在学习python编程,开发环境设置好了,是用eclipse pydev 来做开发的环境,配置好了之后,需要解决的一个关键问题就是老问题了:如何解决代码中的中文问题。。。 其实但我们在配置编程环境的时候,就需要设…

程序员的思考--终于确定了自己的技术发展方向

经过了将近5年的工作沉淀以后,终于确定了自己的职业发展方向。从现在开始终于可以有的放矢了,不再迷茫了。回想以往,找到这个方向,确实不是一件容易的事情,一路也是迷茫的走过来,随着知识和工作经验的积累&…

【原】iOS:手把手教你发布代码到CocoaPods(Trunk方式)

概述 关于CocoaPods的介绍不在本文的主题范围内,如果你是iOS开发者却不知道CocoaPods,那可能要面壁30秒了。直奔主题,这篇文章主要介绍如果把你的代码发布到CocoaPods代码库中,让别人可以使用“pod search yourOpenProject”命令查…

kafka tool 查看指定group下topic的堆积数量_ELK架构下利用Kafka Group实现Logstash的高可用...

系统运维的过程中,每一个细节都值得我们关注下图为我们的基本日志处理架构所有日志由Rsyslog或者Filebeat收集,然后传输给Kafka,Logstash作为Consumer消费Kafka里边的数据,分别写入Elasticsearch和Hadoop,最后使用Kiba…

jquery flot pie画饼图

具体效果如下&#xff1a; 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv"Content-Type" content"text/html; charsetUTF-8"> 5 <title>Insert title here</title> 6 <script language"javas…

mysql fetch rows_差异mysql_fetch_array()和mysql_fetch_rows()函数_mysql

区别mysql_fetch_array()和mysql_fetch_rows()函数form:http://www.uphtm.com/php/254.html如果我们不仔细看会发现象mysql_fetch_array()和mysql_fetch_rows()函数没有什么区别&#xff0c;但是细细的看你会发现它们区别还是蛮大了&#xff0c;如果各位对于此函数的区别不了解…

解读设计模式----简单工厂模式(SimpleFactory Pattern),你要什么我就给你什么

本文首发于博客园,地址:http://www.cnblogs.com/beniao/archive/2008/08/09/1263318.html 一、模式概述 从设计模式的类型上来说&#xff0c;简单工厂模式是属于创建型模式&#xff0c;又叫做静态工厂方法&#xff08;Static Factory Method&#xff09;模式&#xff0c;但不属…