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

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

Java 缓存框架 Caffeine 应用场景解析

《Java缓存框架Caffeine应用场景解析》文章介绍Caffeine作为高性能Java本地缓存框架,基于W-TinyLFU算法,支持异步加载、灵活过期策略、内存安全机制及统计监控,重点解析其... 目录一、Caffeine 简介1. 框架概述1.1 Caffeine的核心优势二、Caffeine 基础2

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

MySQL之复合查询使用及说明

《MySQL之复合查询使用及说明》文章讲解了SQL复合查询中emp、dept、salgrade三张表的使用,涵盖多表连接、自连接、子查询(单行/多行/多列)及合并查询(UNION/UNIONALL)等... 目录复合查询基本查询回顾多表查询笛卡尔积自连接子查询单行子查询多行子查询多列子查询在from子句中使

Vue3 如何通过json配置生成查询表单

《Vue3如何通过json配置生成查询表单》本文给大家介绍Vue3如何通过json配置生成查询表单,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录功能实现背景项目代码案例功能实现背景通过vue3实现后台管理项目一定含有表格功能,通常离不开表单

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分