Object Transformer:Towards Long-Form Video Understanding
该篇属于基于关系建模的时空行为检测方法。
看这篇的起因,是因为在AVA数据集排行榜上看到Object Transformer模型排名第一,达到31%mAP,以下如果解读有误,恳请指正。
Object Transformer模型是主要做的是长期视频理解,旨在理解长期视频中作者的意图,人物之间的关系,故事情节,风格等等。当然,这个模型也可以用作时空行为检测。
核心思路是自我监督预训练,通过预训练让模型去理解视频的意思(找到合适的权重),在这基础上,通过微调手段来对下流任务产生帮助,例如时空行为检测。本文采用Object为中心,并使用Transformer进行建模。
在实验部分,也验证了这一点,例如能够理解:(a)关系,(b)说话方式,©场景,(d)'like’概率,等。
贡献点
作者认为,传统的短期视频理解任务只能获取局部信息(目标,地点,形状),无法有效利用长期视频中的目标间的交互关系,对长期视频进行推理。因此,作者设计以目标为中心(Object-centric),并对目标间的交互关系进行建模(目标指的是人、物体、动物这些实例)。
大致流程
- 利用图像检测模型去检测(Faster R-Cnn+SlowFast),且跟踪所有目标(Objects),对目标及其视觉特征构建基本语义 (作者使用的视频的局部属性)。
- 利用Object Transformer(后简称ObT),对目标之间的复杂交互关系进行建模 (用上一步的属性构建Transformer的输入)。
- 建模后进行自我监督预训练 。
- 下游任务训练,即对有标注数据的任务,只微调增加的线性层。
文章思路
Object-Centric设计
视频的局部属性:
- 动作和目标检测(Action and Object Detection):本文使用动作识别模型(SlowFast)来识别人类的原子动作,并使用目标检测模型(Faster R-CNN)来查找具有动作类别的目标。
- 目标检测:判断目标在空间中的坐标以及目标类别,不需要时域信息。
- 动作识别:判断一段短视频(可视为2D帧序列)中的目标动作类别,为多分类任务,时域信息和空间信息对于动作识别模型至关重要。
- s t , i ∈ R 4 s_{t,i}∈R^4 st,i∈R4 :表示在第t 帧检测到目标 i i i的边界框(bounding box); z t , i z_{t,i} zt,i :表示相关特征。
- 追踪(Tracing):一个目标经常出现在多个帧中。
跟踪算法随着时间的推移跟踪这些外观并将它们与目标ID相关联。- τ t , i τ_{t,i} τt,i :表示在时间 t t t检测到目标 i i i。
- 镜头过渡检测(Shot Transition Detection):作者认为,将video进行过渡或分割成一段段shots(镜头)。 它们能形成自然过度边界。 使用基于规则的阈值策略可以进行shot转换检测。
- C u C_u Cu 表示实例 u u u所在的镜头。
作者于是将局部属性连接起来,构建完整的视频联系。
-
给定一组目标实例 U U U(例如人,桌子,车等等),使用短期(shorter-term)目标检测和跟踪算法进行检测和跟踪。每个实例 u ∈ U u∈U u∈U,在时域上与特征相关联, { ( t , s t , i , z t , i ) ∣ τ t , i = u , ∀ V , i } \{(t,s_{t,i},z_{t,i})|τ_{t,i}=u,∀V,i\} {(t,st,i,zt,i)∣τt,i=u,∀V,i},也就是检测到目标 i i i是实例 u u u时,可以用时间,空间坐标,短期的时空特征( z z z)来表示其交互信息。如下图。
- t t t是时间步长,
- s t , i s_{t,i} st,i是空间坐标,
- z t , i z_{t,i} zt,i是短期特征,
-
τ
t
,
i
τ_{t,i}
τt,i是追踪ID。
-
使用Transformer建模每个实例变化的信息,实例和实例之间交互的信息。Transformer使用表征向量作为输入,在该任务中,每个向量对应一个box位置,连接link信息,镜头shot信息。对于每个与实例 u u u关联的 ( t ′ , s ′ , z ′ ) (t',s',z') (t′,s′,z′),构造以下输入:
y ′ : = W ( f e a t ) z ′ + W ( s p a t i a l ) s ′ + E t ′ ( t e m p o r a l ) + E u ( i n s t a n c e ) + E c u ( s h o t ) + b y':=W^{(feat)}z'+W^{(spatial)}s'+E^{(temporal)}_{t'}+E^{(instance)}_{u}+E^{(shot)}_{c_u}+b y′:=W(feat)z′+W(spatial)s′+Et′(temporal)+Eu(instance)+Ecu(shot)+b- 使用矩阵 W ( f e a t ) W^{(feat)} W(feat)和 W ( s p a t i a l ) W^{(spatial)} W(spatial)将 z ′ z' z′和 s ′ s' s′映射到共享的768维矢量空间。
- E ( t e m p o r a l ) E^{(temporal)} E(temporal)和 E ( s h o t ) E^{(shot)} E(shot)分别由时间戳(time stamp)和镜头索引进行位置嵌入(position embedding)。
-
E
(
i
n
s
t
a
n
c
e
)
E^{(instance)}
E(instance)是实例嵌入向量,让模型学习哪些输入属于同一实例。
- 为了增加模型泛化能力,担心模型只学习到见过的实例的表征特征,因此在前向传播过程中,随机挑选实例ID。
-
没看懂下面…
- 使用 E [ C L S ] E^{[CLS]} E[CLS]表示每个样本的第一个标识(token),类似BERT。
- 使用对应该位置的输出向量 v [ C L S ] v^{[CLS]} v[CLS] 作为视频的表征(as the video-level representation)。
- 使用线性输出头 h ( t a s k ) h^{(task)} h(task)( v [ C L S ] v^{[CLS]} v[CLS])来执行每个视频的结束任务(videl-level end-task)。
- 在自监督预训练中会引入额外的输出头部 h ( m a s k ) h^{(mask)} h(mask), h ( c o m p a c t ) h^{(compact)} h(compact)以及对应的损失函数 l ( m a s k ) l^{(mask)} l(mask), l ( c o m p a c t ) l^{(compact)} l(compact)。
-
与传统方法建模思路的对比(Object-Centric vs. Frame-Centric vs. Pixel-Volume):
-
现有的方法要么以2D图,或者以 T × W × H T×W×H T×W×H的输入方式去让模型理解视频,以不符合常理的方式作为输入让模型去理解这些信号,这么做会导致模型学习困难,表现不好。
-
行为的发生有着其自然的规律,人物与环境的关系、人物之间的交互、行为与行为之间的关联等都是可以帮助模型更好地判断当前行为类别与发生位置的有用信息。这也是Object-Centric设计的主旨。
-
自我监督预处理
自我监督预处理介绍:利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行预先训练,从而可以学习到对下游任务有价值的表征。其中,自监督学习的监督信息不是人工标注的,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练。
- 先利用没有标签的数据进行预训练,找到合适的模型权重,此时的模型权重能够让模型深度理解视频信息。例如NLP模型中的预处理方式有MASK,中心词预测,句子顺序预测等等,不需要额外的标注就能够训练,目的在于能够让模型全面理解上下文信息,类似我们做阅读理解,只有全面理解了文章的意思,才可以做出题目。
- 再利用有监督的数据对模型进行微调。
在本文中,作者使用了两种预训练方法:
- 掩码实例预训练(Masked-Instance Pre-Training),在这里,作者随机遮住某些实例的特征,让模型利用其他没被遮挡的信息对遮挡的部分进行预测,也就是训练ObJ来预测屏蔽实例的语义(目标类别,人物动作)。例如,我们做完型填空的题目,加深阅读理解,在这里是加深视频理解。
- 连贯性预训练(Compatibility Pre-Training),判断两个shots(video剪裁后的小段视频)之间是否有违和感,是二分类任务,例如"礼服,烟火"更适合出现在"婚礼"现场而不是"露营"现场,也是加深视频理解的一个方法。
做这些预处理的目的,用作者的话说,就是让模型预先学习长期语义,常识,人类社会行为,总而言之,就是让模型深度理解视频信息。
掩码实例预训练
-
只屏蔽了特征向量 z z z,保留了时间戳 t t t,空间位置 s s s,实例嵌入向量 E ( i n s t a n c e ) E^{(instance)} E(instance),镜头嵌入向量 E ( s h o t ) E^{(shot)} E(shot)。
-
跟BERT任务一致,有80%概率被mask,10%概率被随机替代,10%概率保持不变。
-
对于屏蔽的每个输出,使用输出头 h ( m a s k ) h^{(mask)} h(mask)来预测概率向量 p ^ ∈ △ d − 1 \widehat{p}∈△^{d-1} p ∈△d−1,由distillation损失(temperature T=1)回归伪标签(pseudo-label) p ∈ △ d − 1 p∈△^{d-1} p∈△d−1。
l ( m a s k ) ( p , p ^ ) : = ∑ k = 0 d − 1 − p k l o g ( p ^ k ) l^{(mask)}(p,\widehat{p}):=\displaystyle \sum^{d-1}_{k=0}-p_klog(\widehat{p}_k) l(mask)(p,p ):=k=0∑d−1−pklog(p k) -
如图(b)所示,这个任务会问‘它可能是什么物体?’或者“一个人可能在做什么?”。给定上下文,在掩蔽区域中,使得ObJ去学习社会知识和常识。
-
掩蔽实例预测vs空间特征学习方法:
- 先前关于视频自我监督方法的工作目标通常涉及随着时间跟踪对象或兴趣点,以在一个实例上学习(例如,视点、比例、遮挡、照明)不变性,也就是为了学习鲁棒的空间特征表示。
- 在本文中,我们旨在学习视频中的长期模式。
跨度兼容性预训练
-
对两个视频跨度是否“兼容”进行分类。作者定义两个跨度(span),当它们来自同一个场景或相继发生时,它们是兼容的。
-
鼓励模型学习高级语义概念,例如,“婚礼”应该比“露营”或“摔跤”更符合“聚会”和“晚餐”。
-
用一个输出头 h ( c o m p a t ) h^{(compat)} h(compat)来获得 v = h ( c o m p a t ) v = h^{(compat)} v=h(compat)( v [ C L S ] v^{[CLS]} v[CLS]),并使用InfoNCE损失进行兼容性训练
l ( c o m p a t ) ( v , v + , v − ) = − l o g e ( v ⋅ v + ) e ( v ⋅ v + ) + ∑ n = 0 N − 1 e ( v ⋅ v n − ) l^{(compat)}(v,v^+,v^-)=-log\frac{e(v·v^+)}{e(v·v^+)+\sum^{N-1}_{n=0}e(v·v^-_n)} l(compat)(v,v+,v−)=−loge(v⋅v+)+∑n=0N−1e(v⋅vn−)e(v⋅v+)
- v + v^+ v+和 v n − v^-_n vn−分别对应于与v兼容和不兼容的跨度(spans)。
-
与"下一句预测"任务的对比
- 兼容性预测是NLP中常用的“下一句预测”任务的修改版本。
- 区别是,虽然语言通常有严格的语法和丰富的结构,但视频在结构上更灵活。例如,“晚餐”事件可以与任意数量的人一起发生任意长的时间,并且可能在视频的多个镜头中呈现。
- 因此,作者放宽了预测直接邻接的要求,并实施了更宽松的“兼容性”目标。
实施细节
实例的表征特征(Instance Representations):使用带有ResNet-101主干的Faster R-CNN和在COCO上预先训练的FPN来寻找人类以外的Object。我们使用RoIAlign集合特征向量和Faster R-CNN的输出作为特征 z z z。
- 人物动作检测,采用带有Faster R-CNN框架的检测模型来提供定位box,骨干网络替换为Non-Local的 ResNet-101 SlowFast,来计算RoIAlign集合特征作为每个人物box的特征
z
z
z。(这一部分参照SlowFast论文)
- 在AVA上预训练,达到29.4%mAP。
- 使用AVA论文中Gu的方法进行目标跟踪。
- 使用PySceneDect算法进行镜头过渡检测
兼容性预测(Compatibility Prediction):视频数据集为1到3分钟的电影片段,如果来自于一个segment,则是相容的。大小为n的bacth包含n/2对正例 ( v , v + ) (v,v^+) (v,v+),bacth中剩余样本为负例 v − v^- v−。
输出头(Output Heads): h ( m a s k ) h^{(mask)} h(mask)是双层MLP。 h ( c o m p a t ) h^{(compat)} h(compat)和所有end-task任务使用0.1的dropout,再是线性层。
实验
-
任务1-长视频理解
- 内容理解
- “关系relationship”、“说话风格way of speaking”、“场景/地点scene/place”
- 对于内容理解任务,我们解析与每个视频相关联的描述,并使用最常见的类别(例如,“朋友”、“妻子和丈夫”等)来形成任务(例如‘关系’预测)。
- 用于参与度预测
- “YouTube like ratio”、“YouTube人气”
- 我们使用YouTube统计数据进行用户参与度预测任务。
- 电影元数据预测
- “导演director”、“流派genre”、“编剧writer”、“电影上映年份year”
- 对于元数据预测任务,我们从相应的IMDb条目中获取元数据。
- 评估指标
- 内容理解和元数据预测任务是单标签分类任务,通过top-1分类精度进行评估。
- 用户参与度预测任务是单值回归任务,通过均方误差进行评估。
- 实验结论
- ObJ优于短期模型SlowFast和VideoBERT,即使SlowFast有大骨干网络(’ R101-SlowFast+NL ')和进行强预训练(在dynamics-600和AVA数据集上),但理解效果远不如ObJ,证明了长期交互信息建模的重要性。
- 与以帧为中心的建模相比,以目标为中心的建模(ObJ)更有优势。
- 短期模型足以很好地用于年份预测。因为诸如图像质量或色彩风格之类的特征能够捕获关于视频“年份”的信息。
- VideoBERT很适合编剧writer预测,这表明这项任务可能不需要太多详细的交互建模。
- 内容理解
-
任务2-AVA时空动作检测
-
评价指标:map,数据集:AVA。
-
做法:晚融合短期预测(short-term prediction),只微调线性层。
-
实验结论:
- 在使用视频+光流(V+F)、视频+音频(V+A),这类需要额外处理的工程的方法,ObT仅用视频作为输入就能优于其他方法。
- 比SlowFast提升了1.6%mAP(29.4%->31.0%),只比多了0.7%的额外浮点运算代价。
- 即使没有进行后期融合(微调),仅使用mask的ObJ也能达到29.3%精度,证明了能够利用上下文,预测视频的掩蔽部分的语义。
-