论文阅读CVPR2022 《Language As Queries for Referring Video Object Segmentation》

这篇博客介绍了港大博士生的研究,他们在论文中提出了一种新的方法——ReferFormer,用于视频对象分割任务。通过将语言表达式作为查询条件,模型能够更好地学习融合多模态特征,特别是在没有初始帧GT mask的情况下。文章讨论了Refer-DAVIS和Refer-YouTube-VOS数据集,以及模型如何通过transformer结构,特别是变形DETR,来处理语言和视觉信息。此外,还解释了如何通过共享权重的queries来实现目标的时间一致性,并探讨了训练策略和动态卷积的作用。博客以作者的阅读体验和个人成长总结收尾。
摘要由CSDN通过智能技术生成

前言:

自从读完DETR之后,一直对set prediction相关的工作比较感兴趣。所以又找了一篇关于transformer的query机制的工作,不过这次升级到video处理的更复杂的任务了(其实也没有多么复杂)

这篇工作是港大的几个博士生的工作。

(如有错欢迎指正)

Dataset:

Refer-DAVIS16/17 包含 ∼ 1.2k 引用表达式,用于 150 个视频(帧数为 ∼ 10k)上的 400 多个对象。我们相信,分割以及视觉和语言社区对收集的数据将感兴趣,从而提供了探索语言作为视频对象分割替代输入的机会。

Refer-YouTube-VOS: 在 30 fps 视频中,每个视频每 5 帧都有像素级实例分割注释,持续时间约为 3 6 秒。

Challenge:

我的理解:rvos任务可以属于svos里的一类,但是还是有些区别。面临的挑战不只是缺少第一帧GT mask(不像svos的以第一帧GT mask作为输入进行feature matching和propagate)而是以language expression作为一种GT(监督信号)去指定要被分割的object。所以还要学习融合多模态的特征。

题外话,今年的CVPR的VOS挑战赛,在RVOS赛道里,看第一名的队伍的技术报告发现他们所使用的baseline就是本工作提出的referformer模型,然后在此基础上进一步做的改进,加了其他的后处理方法。目前在Refer-youtubevos2021数据集上,referformer榜首,非常SOTA,它可以作为strong  baseline。

对于第二条motivation和contribution,我的理解是,以前的rvos方法大多是直接训练模型去学习language-vision特征融合,后面还是通过的box、mask来计算损失进行约束,但是对于输入的language expression作为一种监督信号的能力不够强,不够直接?(对比MTTR)这里就让language expression直接作为queries ,一种直接的监督信号,影响着模型直接且只学习它所指定的那个referred object的特征?

网络结构主要由四部分组成,模型将一个video clip(由随机采样T帧组成一个clip)及其相应的language expression作为输入,引入一组以语言为条件的object queries来查找被指定的物体,输出每帧的被指定的objectmask预测。

首先是language和video clip各自经过backbone编码得到相应的特征。这里的transformer用的是deformable DETR架构,所以visual feature是多尺度的。text encoder输出的是word-level的feature,然后经过池化得到sentence-level的feature vector,C维的。

在这里提出了本文的核心贡献,language as queries。

1、conditional queries:Both the object queries and repeated sentence features are fed into the decoder as input. In this manner, all the queries will use the language expression as guidance and try to find the referred objects only. 意思decoder的输入是text sentence feature+learnable queries parameters,因此所有的queries都可以被language expression限制。我的理解:前面motivation 2 提到的language 有randomness,现在在训练的时候有了这种language作为输入的直接约束,能更好的起到监督训练的作用了?

2、可视化了所有queries预测的box,发现他们都是在referred object附近,也就是设的N个object queries并不是像之前一些工作DETR、maskformer那样,代表不同的实例的信息(位置,特征),而是都关注的是同一个object,只不过关注的中心位置有偏差(可视化的结果可以看到,box有大有小,offset也不同)可以理解为类似于生成N个候选框?

我的理解:我觉得之所以能学成这样,是不是跟训练方式有关?因为是二分类的class-agnostic无类别的分类方式?)

3、N个object queries是权值共享的,即不同帧共同利用相同初始化的N个queries(复制T帧次),而在之前VIS里一些工作不是这样的,比如VisTR。

4、decoder输出的queries,相同颜色代表同一帧,相同形状是同一个query。注意:要保证在不同帧之间,相同形状的query保持相同的相对位置,这样就能自然而然的实现referred object的时间一致性,保持追踪。

在每个fusion里,先将一个clipfeature进行多头自注意力,但是因为高分辨率的feature map进行密集的相似度的计算量非常大,所以提出了先进行spatial reduction,进行完自注意力再recover回输入尺寸。进一步与languagefeature Fe进行多头cross attention,这里Fvquery

最后使用一个额外的卷积层得到最后的feature maps。

动态卷积这块在读论文的时候很懵逼,不明白怎么reshape成了1×1卷积核的参数,查了相关参考和看了论文后面的伪代码,明白了。(pytorch里可以自定义conv卷积核参数,在nn.function里)

可以把这些动态卷积核理解成能响应这些queries各自特征的滤波器。这些特征已经具有object-level 的信息了。所以自然而然解决了前面那个困惑有了Fseg feature maps以及这Nq个queries embeddings之后,怎么得到mask predictions输出?————让这个滤波器去过滤Fseg,也就是卷积

关于box 坐标的相对坐标图为什么concatenate到feature map上,可以参考CoordConv

最后就是训练和预测了

关于这个Ct,因为没看代码,一直很困惑数据集到底是什么样的,难道这些标签要手动改造吗?直到看到一个tensorflow的refer-youtubevos的数据集加载的代码,好像打消了顾虑。(还是得后期再调调代码)

结果很SOTA就不展示结果了,分析几个消融实验结果。

 

 

小结

为期两个月的暑假paper分享终于结束了!!!过程痛苦不易啊。。也感谢老师通过这样的方式逼着我成长了许多。

在这个过程里,感谢自己按照自己的节奏,按部就班的完成了自己的规划的路线,也曾有过动摇,有过彷徨,但好在都咬牙坚持下来了。

上图是在开始paper分享的时候做的规划,三个阶段想读的论文都实现了嘿嘿嘿(也可以作为以后想做video segmentation方向的同学的一个参考路线)

锻炼了paper阅读能力,接下来要回归调项目代码了。(开学了,但没完全开学。。🤣居家线上,也挺好的,又有了极大的时空自由度,不过面基网友们遥遥无期了)

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值