CVPR 2022 | 刷新4个SOTA!港大字节开源ReferFormer: 语言作为查询的参考视频目标分割框架...

本文主要是介绍CVPR 2022 | 刷新4个SOTA!港大字节开源ReferFormer: 语言作为查询的参考视频目标分割框架...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

在本文中,来自香港大学和字节跳动的研究者们提出了一种基于Transformer的参考视频目标分割新框架ReferFormer。其将语言描述视为查询条件,直接在视频中查找目标对象,除此之外,通过实例序列的整体输出自然地完成目标物体的跟踪,无需进行任何后处理。ReferFormer在四个参考视频目标分割数据集上都取得了当前最优的性能。

17b9cb1dea82ce84067a09a965148ed0.png

paper:https://arxiv.org/abs/2201.00487

code: https://github.com/wjn922/ReferFormer

引言

参考视频目标分割(referring video object segmentation,RVOS)是一个新兴且具有挑战性的多模态任务,它需要在视频中将文本所指代的参考对象进行实例分割。

目前得到广泛研究的参考图像分割(referring image segmentation, RIS)任务中,文本描述通常是基于目标的外观特征或者空间关系,RVOS任务则可以对目标所进行的动作进行描述,这要求模型有着更强的时空建模能力,且保证分割目标在所有视频帧上的一致性;与传统的视频目标分割(video object segmentation, VOS)任务相比,RVOS任务在预测阶段没有给定分割目标的真值,从而增加了对目标进行正确精细分割的难度。

现有的RVOS方法往往都依赖于复杂的多阶段框架,以保证分割目标的一致性。为了解决以上问题,香港大学和字节跳动的研究者们提出了一种基于Transformer的端到端RVOS框架 —— ReferFormer,其将语言描述作为查询条件,在视频中仅仅关注于参考目标,且通过连接不同帧上相对应的查询即可完成目标的追踪,无需进行后处理。该模型在四个RVOS数据集上(Ref-Youtube-VOS, Ref-DAVIS17, A2D-Sentences, JHMDB-Sentences) 均取得了当前最优的性能。

方法亮点:

- 提出了一种简单统一,基于Transformer的端到端RVOS框架,无需进行后处理;

- 将语言描述作为查询的限制条件,从而用很少数量的查询即可完成任务;

- 在四个RVOS任务数据集上都取得了当前最优的性能。

方法

f0daac3e72fb4d5987d2a82aca3497a5.png

图1 网络整体结构

网络主要由四个部分组成:Backbone,Transformer,跨模态FPN以及实例分割生成部分。

Backbone. 网络首先使用视觉编码器从视频中抽取每一帧的特征,同时采用文本编码器获得文本描述的语言特征,该特征进行平均池化后获得的向量即为句特征。

Transformer. Transformer编码器用于进一步建模视频帧的多尺度特征;在解码器部分,定义了N个可学习特征作为query,且为所有帧共享。同时,对上述句特征复制N次,query和句特征共同作为解码器的输入。在这种方式下,所有query都会在语言的指引下仅仅关注于目标对象,因此本文将此查询称为“条件查询(conditional query)”。得益于该设计,模型采用很少数量(默认为5)的query即可获得很好的效果。最终,通过在解码器中进行query和视觉特征的交互,每一帧上均获得含有目标信息的N个表征,对于整个视频,则共有Nq个表征。

跨模态FPN. 在这一部分,视觉特征与文本特征以互注意力的形式进行多尺度、细粒度交互,可以获得更好的分割效果。这一过程中,FPN产生了语义丰富、高分辨率的特征图送入后续分割模块。

实例分割生成部分. 对于前述每一帧上获得的N个表征,首先分别通过class head,box head,mask head生成其对应的二分类概率,边界框以及动态卷积核参数。边界框作为relative coordinate特征添加至FPN的输出特征中,获得每个query对应的卷积特征图,目标mask的生成通过动态卷积得到:

e1cddeb26e6bdf3839578884fa310724.png

训练和预测. 每一帧上对应位置的query追踪的是同一实例(图中以相同形状表示),将相对应的query进行连接,即可获得属于同一实例的序列,从而自然地对目标进行各种而无需后处理。在训练和预测阶段,均以实例序列视为整体进行监督和输出。

在训练阶段,由于视频中仅含有一个目标物体,因此采用最小代价匹配进行正样本分配,损失函数包括二分类损失,边界框损失以及掩码损失:

65a6652aa2dd376849c9bd6f312a94f0.png

在预测阶段,输入为一整段视频。首先计算每个实例序列在所有帧上的平均得分,选择分数最高的实例序列,其索引为σ,输出其对应的mask序列即可。

26751416ed88723a31f2b7a61292bcc0.png

Demo

以下展示了模型在多个具有挑战性场景的分割效果:

- Ref-DAVIS17

2b9cb8068c5067f193b5d37358cffb51.gif

遮挡

54c1d4c29c9214cdc281204e7452521a.gif

姿态变化

- Ref-Youtube-VOS

7959deba8e20ce3bf60b8d7318f855e7.gif

精细分割

7b80702c6d8476d58b9d6b9f5d0ae6cb.gif

快速运动

图2 可视化效果展示

性能

本文采用不同的视觉编码器进行了广泛实验,在当前四个RVOS上均取得了当前最好的性能。其中,Ref-DAVIS17和JHMDB-Sentences的评估采用的分别是在Ref-Youtube-VOS和A2D-Sentences上训练好的模型,证明了方法的泛化性能。

- Ref-Youtube-VOS & Ref-DAVIS17

f37f7cd55e482871fe266f37642297cd.png

图3 Ref-Youtue-VOS和Ref-DAVIS17数据集性能比较

- A2D-Sentences & JHMDB-Sentences

25758019416463441578298e8faff403.png

图4 A2D-Sentences数据集性能比较

235f04a37b31fc999fe77b685e93b995.png

图5 JHMDB-Sentences数据集性能比较

结论

本文提出了一个简单统一的参考视频目标分割框架,不同于以往复杂、多阶段的pipeline,本文提出了将语言描述作为查询的概念,使得模型能够精准地关注于目标对象,同时通过实例序列匹配自然地完成目标的跟踪,实现了端到端的输出。

ICCV和CVPR 2021论文和代码下载后台回复:CVPR2021,即可下载CVPR 2021论文和代码开源的论文合集后台回复:ICCV2021,即可下载ICCV 2021论文和代码开源的论文合集后台回复:Transformer综述,即可下载最新的3篇Transformer综述PDF
CVer-Transformer交流群成立
扫描下方二维码,或者添加微信:CVer6666,即可添加CVer小助手微信,便可申请加入CVer-Transformer 微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要备注:研究方向+地点+学校/公司+昵称(如Transformer+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群▲扫码或加微信: CVer6666,进交流群
CVer学术交流群(知识星球)来了!想要了解最新最快最好的CV/DL/ML论文速递、优质开源项目、学习教程和实战训练等资料,欢迎扫描下方二维码,加入CVer学术交流群,已汇集数千人!▲扫码进群
▲点击上方卡片,关注CVer公众号整理不易,请点赞和在看

这篇关于CVPR 2022 | 刷新4个SOTA!港大字节开源ReferFormer: 语言作为查询的参考视频目标分割框架...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/644491

相关文章

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Go语言实现将中文转化为拼音功能

《Go语言实现将中文转化为拼音功能》这篇文章主要为大家详细介绍了Go语言中如何实现将中文转化为拼音功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 有这么一个需求:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英

Go语言使用Buffer实现高性能处理字节和字符

《Go语言使用Buffer实现高性能处理字节和字符》在Go中,bytes.Buffer是一个非常高效的类型,用于处理字节数据的读写操作,本文将详细介绍一下如何使用Buffer实现高性能处理字节和... 目录1. bytes.Buffer 的基本用法1.1. 创建和初始化 Buffer1.2. 使用 Writ

深入理解C语言的void*

《深入理解C语言的void*》本文主要介绍了C语言的void*,包括它的任意性、编译器对void*的类型检查以及需要显式类型转换的规则,具有一定的参考价值,感兴趣的可以了解一下... 目录一、void* 的类型任意性二、编译器对 void* 的类型检查三、需要显式类型转换占用的字节四、总结一、void* 的

使用Python将长图片分割为若干张小图片

《使用Python将长图片分割为若干张小图片》这篇文章主要为大家详细介绍了如何使用Python将长图片分割为若干张小图片,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果1. Python需求

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

C#中字符串分割的多种方式

《C#中字符串分割的多种方式》在C#编程语言中,字符串处理是日常开发中不可或缺的一部分,字符串分割是处理文本数据时常用的操作,它允许我们将一个长字符串分解成多个子字符串,本文给大家介绍了C#中字符串分... 目录1. 使用 string.Split2. 使用正则表达式 (Regex.Split)3. 使用