这个方向的出的文章已经有很多了,但是似乎还没有一个统一一点的名字,叫 时域语言定位(Temporally Language Grounding),或者跨模态视频时刻检索/定位(Cross-modal Video Moment Retrieval/Localization)等等都有。
大概给一个定义就是:给定一句自然语言描述的查询语句query,在未剪裁的完整视频中确定该描述发生的时间片段(起始时间,终止时间),简单来讲如上图,就是用一段文字查询具体的视频片段。它与纯的动作定位任务不同之处在于多了跨模态(文本–视频)的信息。
从2017-目前的博主能找到的所有论文的目录在这里,并简要的给出了简评(持续更新):
- https://github.com/yawenzeng/Awesome-Cross-Modal-Video-Moment-Retrieval
主要方法分类
常用数据集
本文从中挑出一些比较重要的,几个角度归类了论文大致为:
- 这个子领域的开山工作:TALL,MCN
- 探索两种模态间,全局局部的各种交互与融合:ROLE,ACRN,ABLR,TGN,SLTA
- 基于强化学习定位边界:READ
- 在强化学习的思路上继续玩语义,局部等等的细化:SM-RL,STRONG
- 针对候选集的优化:MAN,2D-TAN,AVMR
- 内容理解:MMRG
- 弱监督方法
TALL
上图出自ICCV2017,TALL: Temporal Activity Localization via Language Query。是这个方向的开山之作之一,以后的一些工作都是在它的基础上做改进。首先针对这个任务,有两大挑战:
- 作为一个跨模态任务而不是普通的CV或者NLP任务。如何得到适当的文本和视频表示特征,以允许跨模态匹配操作和完成语言查询
- 理论上可以生成无限粒度的视频片段,然后逐一比较是否和查阅语句匹配,但时间消耗过大。那么如何能够从有限粒度的滑动窗口做到准确的具体帧定位
作者提出了跨模态时间回归定位器(CTRL)模型,模型图如上,操作思路为:
- 先对句子描述、候选视频片段及其时间上下文信息抽特征Encoder,分别用sentence2vec和C3D,变成了上面蓝色的视频特征(中心ctl,前一小视频段pre和后post的上下文视频信息)和下面的黄色文本特征。
- 多模态处理。相当于是对多模态进行模态融合,作者分别计算了模态间中不同维度元素的加法、乘法和全连接表示,最后拼接起来。 f s v = ( f s × f v ) ∣ ∣ ( f x + f v ) ∣ ∣ F C ( f s ∣ ∣ f v ) f_{sv}=(f_s \times f_v)||(f_x + f_v)||FC(f_s||f_v) fsv=(fs×fv)∣∣(fx+fv)∣∣FC(fs∣∣fv)
- 最后用FC完成两个任务,即对齐任务和回归任务。对齐任务 L a l n L_{aln} Laln是是句子和视频段的对齐分数,所以实际上会做一个负采样的操作。回归任务 L r e g L_{reg} Lreg是视频帧回归边界,用于对固定滑动窗口补充一个偏差offset提升定位的精度。 L a l n = 1 N ∑ i = 0 N [ α c l o g ( 1 + e x p ( − c s i , i ) ) + ∑ j = 0 , j ≠ i N α w l o g ( 1 + e x p ( c s i , j ) ) ] L_{aln}=\frac{1}{N} \sum^N_{i=0} [\alpha_c log(1+exp(-cs_{i,i}))+\sum^N_{j=0,j≠i} \alpha_w log(1+exp(cs_{i,j}))] Laln=