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. 图片放大是图像处理中的一个特别基础的操作。…

div table 超出了_div包裹的table,table的宽度超出了的宽度,出现的滚动条的在windows下无法拖动...

1.父级div是否设置了宽度,只有设置了宽度且滚动条在div内才是你想要控制的滚动2.仅凭你说的这些属性不知道滚动条怎么不能动,可以贴一下代码?3.横向需要滚动条的话必须设置table的确定宽度做了一个demo:.table{table-layout:fixed; width:…

第二阶段站立会议7

昨天:美化页面 今天:进行项目上传 问题:阿里云服务器上的mysql出现连接问题转载于:https://www.cnblogs.com/sdysyhj/p/8301489.html

深度学习之 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…

Servlet执行时要实现的方法

Servlet执行时要实现的方法 public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServletInfo() public void service(ServletRequest request,ServletResponse response) public void destroy() 本文转自sucre03 5…

axios 设置拦截器 全局设置带默认参数(发送 token 等)

应用场景:1,每个请求都带上的参数,比如token,时间戳等。2,对返回的状态进行判断,比如token是否过期代码如下:[javascript] view plain copyaxios.interceptors.request.use( config &g…

深度学习目标检测之 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的…

tcpmp 编译 源代码分析

TCPMP源代码分析 TCPMP源代码分析 播放器主要由核心框架模块(common工程)和解码器、分离器插件组成。TCPMP的插件非常多,其中主要的插件有:interface插件实现了TCPMP的界面,ffmpeg是系统主要的音视频解码模块&#xff…

使用zerorpc踩的第一个坑:

Server端代码:注意s.run() 和 s.run的区别,一个括号搞死我了.如果不加括号,服务端服务是不会启动的,客户端就会报连接超时的错误 Server端在本机所有IP上监听4242端口的tcp协议 import zerorpcclass HelloRPC(object):   def __…

django存入mysql数据库_django如何存数据到一个mysql数据表里面

让我们聊聊这个话题, django如何存数据至mysql数据表里面,你会用什么方法?正常情况下,我们form逻辑处理后,直接form.save(),是,这个方法没毛病;但有没有其他的方法呢?假如…

【Luogu】P3343地震后的幻想乡(对积分概率进行DP)

题目链接 神难qwq。配合rqy的博客食用。 首先我们学到有一个概率函数$p(x)$表示某事件发生概率取值小于x的函数。这个函数有什么特点呢? 那就是$\int_{-∞}^{∞}p(x)dx1$ 这个是显然的 然后我们令p(x)为首次联通的时间的概率分布函数 这其实等价于生成树的最大权边等…

深度学习目标检测之 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/ 安装完后,接着输入用户信息,然后连…

mysql5.7.11解压版安装_Mysql5.7.11在windows10上的安装与配置(解压版)

第一步my-default.ini 添加配置:#绑定IPv4和3306端bind-address 127.0.0.1port 3306# 设置mysql的安装目basedir E:\mysql# 设置mysql数据库的数据的存放目datadirE:\mysql\data# 允许最大连接数max_connections200#设置默认字符集为utf8default-character-setutf…

【转】博客美化(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…