1 Introduction
大量研究都是检测静态图片中的human-object-interaction(HOI),在对视频推理时,跟时间相关的动态交互将无法判别,因为它们无法考虑到相邻帧之间的关系,只能对每一帧单独进行推理。然而,视频数据是有序且结构化的,动态交互(如push vs pull、open vs close)需要考虑多帧的特征才能准确推理。
以往基于静态图片的HOI方法,常常使用2D-CNN提取视觉特征,这些特征中无法分辨出静态图片中十分相似的交互行为(push、pull、lean on、chase)
导致视频HOI方向探索不足的主要原因是没有一个统一的benchmark,因此在VidOR数据集的基础上,创建了VidHOI benchmark,并提出了ST-HOI模型。
1.1 Contribution
- 通过简单的时空特征池化方法,首次解决了分辨特征不连续的问题。
- 提出了时空模型(利用了correctly-localized的视觉特征、每帧的bbox、时间感知的masking pose模块),能够高效检测视频的HOIs
- 创建了VidHOI benchmark,促进后续对时空感知交互的检测进行研究,激发视频HOI方法能利用到多模态数据(视频帧、文本[物体和关系标签的语义信息]、音频)
2 Related Work
2.1 Human-Object Interaction
大多数现有方法可以分成两类,第一类是先生成人-物对,再进行交互分类;第二类是先预测出最大概率的交互类别,然后将其与最可能的物体联系起来。ST-HOI属于前者,是一个基于轨迹的时间模型。
以往绝大多数静态图片HOI方法,只有少数会用于VideoHOI,它们基本都是基于CAD-120数据集做实验,该数据集的120个RGB-D视频中只有10个高级别的交互类别,这种设置放在我们真实生活中其实是不够细粒度的,因此应用价值较低。除此之外,以前方法还采用过预先计算的手工特征(如SIFT),但目前已被深度神经网络超越;以及采用的3D姿态和深度信息在日常生活场景下是无法捕获的。
与现有方法不同的是,我们在更大更多样化的VidHOI benchmark上进行训练和评估,包括了50种交互动作、78种物体。
2.2 Spatial-Temporal Action Detection(STAD)
STAD目的在于给视频中的人定位,并检测关联行为(没有考虑交互的物体)。STAD最流行的benchmark是AVA,其annotation以1Hz为采样频率,我们在创建VidHOI时使用了它的annotation和评估方式。
STAD的一个标准方法是使用3D-CNN提取时空特征图,再利用RoI池化裁剪出人的特征,由此在线性层中分类。
2.3 Spatial-Temporal Scene Graph Generation(STSGG)
STSGG目的在于生成视频帧中成对视觉关系的符号图谱,Action Genome是一个新的benchmark,他们发现3D-CNN能决定模型的性能。当观测VidHOI的类似结果时,进一步发现了跨帧的RoI特征被错误池化的根本原因,我们将其纠正,通过利用物体轨迹、对生成轨迹进行Tube-of-Interest Pooling,从而获得视频片段中的Correctly-localized的位置信息和特征图。
3 Methodology
3.1 Overview
我们遵循STAD方法的以关键帧为中心的策略 去检测VideoHOI,定义视频 V V V有 T T T个关键帧,以1Hz的采样频率进行采样,得到时间戳 { I t } , t = { 1 , . . . T } \{I_t\},t=\{1,...T\} {It},t={1,...T},预先定义的交互类别数量为 C C C,目标帧中给定 N N N个实例轨迹(包括 M M M个人的轨迹, M ≤ N M≤N M≤N),定义第 I t I_t It帧有 m ∈ { 1 , . . . . , M } m∈\{1,....,M\} m∈{1,....,M}个person, n ∈ { 1 , . . . , N } n∈\{1,...,N\} n∈{1,...,N}个object,我们目标是去检测出人-物交互对 r t = { 0 , 1 } C r_t=\{0,1\}^C rt={0,1}C,其中每个entry r t , c , c ∈ { 1 , . . . , C } r_{t,c},c∈\{1,...,C\} rt,c,c∈{1,...,C}表示是否存在c类交互。
由上图可知,我们的模型由关键帧 I t I_t It为中心,利用了3D-CNN backbone去提取整段的时空特征图,为了纠正temporal-RoI pooling造成的错误匹配,我们基于N个object(包括human)的轨迹 { j i } , i = { 1 , . . . , N } , j i ∈ R T × 4 \{j_i\},i=\{1,...,N\},j_i∈R^{T×4} {ji},i={1,...,N},ji∈RT×4,生成了temporal-aware features(包括了correctly-localized features和spatial-temporal masking pose features),这些features和轨迹一起拼接并在线性层中分类。
注:我们只是为了得到一个简单且有效的针对VideoHOI的temporal-aware baseline,所以并没有使用STAD的tricks,例如non-local block、long-term feature bank,或是图片HOI中的interactiveness等,即便它们可能可以用来提升性能。
3.2 Correctly-localized Visual Features
前面提到了不恰当的pooled RoI特征,我们提出转换temporal pooling和RoI-pooling的位置,这个方法最近被[17]提出,叫做tube-of-interest pooling(ToIPool),由Figure3所示,定义3D-CNN backbone的倒数第二层的输出结果为
v
∈
R
d
×
T
×
H
×
W
v∈R^{d×T×H×W}
v∈Rd×T×H×W,时间维度上第
t
t
t个特征图为
v
t
∈
R
d
×
H
×
W
v_t∈R^{d×H×W}
vt∈Rd×H×W。根据常规的方式,我们会利用人和物体的union bbox的特征来获取visual context,从而预测出交互类别,如:human和kite之间的sky能帮助预测交互类别fly。之前已定义第
i
i
i个object的轨迹为
j
i
j_i
ji,在此定义
j
i
,
t
j_{i,t}
ji,t为时间
t
t
t下第
i
i
i个object的2D bbox。Spatial-temporal instance features时空实例特征
{
v
‾
i
}
\{\overline{v}_i\}
{vi}由ToIPool的RoIAlign计算得到:
v
‾
i
=
1
T
∑
t
=
1
T
R
o
I
A
l
i
g
n
(
v
t
,
j
i
,
t
)
\overline{v}_i=\frac{1}{T}\sum_{t=1}^{T}RoIAlign(v_t,j_{i,t})
vi=T1t=1∑TRoIAlign(vt,ji,t)
其中,
v
‾
i
∈
R
d
×
h
×
w
\overline{v}_i∈R^{d×h×w}
vi∈Rd×h×w,h和w表示池化特征图的高和宽,在与其他特征拼接前
v
‾
i
\overline{v}_i
vi需要扁平化。
3.3 Spatial-Temporal Masking Pose Features
图片HOI方法中广泛使用了人体姿态去推断一些特别的交互行为,以及,空间信息也能用来辨别交互行为,例如human-ride-horse(人的腿会大大张开,人在马的上方)。然而,没有现有工作在时间域上考虑这种机制:当骑马时,人必须始终和马一起移动,因此,我们认为时间性是一个重要属性。
如上Figure3(b)的spatial-temporal masking pose module,给定M个人的轨迹,我们先用训练好的人体姿态预测模型,生成M个对应的时空姿态特征,在第 t t t帧中,预测出的人体姿态表示为 h i , t ∈ R 17 × 2 , i = { 1 , . . . , M } , t = { 1 , . . . , T } h_{i,t}∈R^{17×2},i=\{1,...,M\},t=\{1,...,T\} hi,t∈R17×2,i={1,...,M},t={1,...,T},其中包含了17个joint points的坐标,我们将 h i , t h_{i,t} hi,t转换成一个二值mask,即 f h : { h i , t } ∈ R 17 × 2 → { h ‾ i , t } ∈ R 1 × H × W f_h:\{h_{i,t}\}∈R^{17×2}→\{\overline{h}_{i,t}\}∈R^{1×H×W} fh:{hi,t}∈R17×2→{hi,t}∈R1×H×W,用线将这些joint points连接起来,这些线的取值范围为[0,1],由此帮助模型辨别不同的姿态。
对于第 t t t帧中的每个 M × ( N − 1 ) M×(N-1) M×(N−1)合法人物交互对,我们生成两个空间mask: s i , t ∈ R 2 × H × W , i = { 1 , . . . , M × ( N − 1 ) } s_{i,t}∈R^{2×H×W},i=\{1,...,M×(N-1)\} si,t∈R2×H×W,i={1,...,M×(N−1)},分别对应人和物体。每个bbox内部的值为1,外部的值为0,这些mask能为模型提供重要的空间信息作为参考 去预测HOI。
对于每个人物交互对,我们将人体姿态mask
h
‾
i
,
t
\overline{h}_{i,t}
hi,t和空间mask
s
i
,
t
s_{i,t}
si,t在第一个维度上拼接,获得初始的空间掩码姿态特征
p
i
,
t
∈
R
3
×
H
×
W
p_{i,t}∈R^{3×H×W}
pi,t∈R3×H×W
p
i
,
t
=
[
s
i
,
t
;
h
‾
i
,
t
]
p_{i,t}=[s_{i,t};\overline{h}_{i,t}]
pi,t=[si,t;hi,t]
我们对
{
p
i
,
t
}
\{p_{i,t}\}
{pi,t}进行下采样,输入进两个3D卷积层(空间和时间池化),再扁平化后得到最终的时空掩码姿态特征
{
p
‾
i
,
t
}
\{\overline{p}_{i,t}\}
{pi,t}
3.4 Prediction
我们融合上述特征,包括correctly-localized visual features
v
‾
\overline{v}
v、spatial-temporal masking pose features、instance trajectories
j
j
j,沿着最后一个axis拼接它们:
v
s
o
=
[
v
‾
s
;
v
‾
u
;
v
‾
o
;
j
s
;
j
o
;
p
‾
s
o
]
v_{so}=[\overline{v}_s;\overline{v}_u;\overline{v}_o;j_s;j_o;\overline{p}_{so}]
vso=[vs;vu;vo;js;jo;pso]
其中,
s
s
s表示subject,
o
o
o表示object,
u
u
u表示他们的union region。
v
s
o
v_{so}
vso将输入至两个线性层(最后的输出大小为[物体,交互]类别总数)。由于VideoHOI属于一个多标签学习任务,我们训练模型使用的是per-class binary cross entropy loss损失函数。
During inference, we follow the heuristics in image-based HOI[3] to sort all the possible pairs by their softmax scores and evaluate on only top 100 predictions
???这是指模型评估的时候?只评估最好的100类HOI?
4 Experiments
4.1 Dataset and Performance Metric
之前提到的CAD-120和Action Genome都不适合作为我们的数据集,而基于VidOR的VidHOI数据集十分合适,他十分密集的标定了人和物体,更具有挑战性。如下是VidHOI与现有的STAD和HOI数据集的对比:
VidOR数据集的评估是基于轨迹的,在考虑轨迹与ground truth之间的关系预测之前,两者的 “体积交互联合度”(vIOU)必须超过 0.5,然而,如何获取 具有正确起始和结束时间戳的准确轨迹 是十分具有挑战性的。
我们注意到 图片HOI数据集(HICO-DET、V-COCO)以及STAD数据集(AVA)使用了以关键帧为中心的评估策略,从而避免了上述问题。因此,我们采用与它们一样的方式,例如AVA以1FPS的频率采样出关键帧,其标注位于假设时间戳t的前后0.5s内,具体步骤如下:
- 过滤掉没有出现任何有效人-物对的关键帧。
- 基于视频片段的标签转换为基于关键帧的标签,与常见的mAP保持一致。
- 遵循VidOR的方式,将VidHOI划分为训练集(193,911个关键帧,共6366个视频)和验证集(22,808个关键帧,共756个视频)
如上图所示,共有50个交互类别,包括了动作(eg: push, pull, lift)和空间关系(eg: next to, behind),大约一半的交互是与时间有关的,不过这些只占了5%的数据。
遵循HICO-DET的评估指标,我们也采用mAP,true positive有三个标准:
- 预测出的人和物体的bbox必须与ground truth boxes的IOU超过0.5。
- 预测目标的类别必须匹配。
- 预测的交互类别必须正确。
我们模仿HICO-DET定义HOI类别为557种三元组,用于计算我们的mAP。由于相同的交互可能会表示出十分不同的含义,如person-fly-kite 和 person-fly-airplane,因此我们需要将mAP分为三类,分别是:
- Full:所有的557个类别均被评估。
- Rare:315个少于25个实例的HOI类别被评估。
- Non-rare:242个大于等于25个实例的HOI类别被评估。
评估模式分为两种:
- Oracle:模型训练和测试都使用的是ground truth trajectories
- Detection:模型测试的时候使用的是预测的trajectories
4.2 Implementation Details
- 2D model
- backbone: Resnet-50
- 3D model
- backbone: Resnet-50-based SlowFast
- SlowFast包含了Slow和Fast分支,分别对应了纹理细节和时间信息,通过对视频帧以不同频率进行采样获得。
- 利用FastPose预测人的姿态,并采用由一种级联的视频目标检测模型、时间NMS、追踪算法共同预测出的trajectories。
- 好比2D HOI Detection中的Object Detection,Trajectory generation是本工作的一个重要模块,但不是作重点研究。若bbox在相邻帧之间not available(例如trajectory比T更短,或者不连续分段),我们将用完整的图像作为box进行填补。
- backbone: Resnet-50-based SlowFast
- Training for all models
- 初始学习率为0.01,在第10轮降低为0.001,第15轮降低为0.0001
- 优化器使用的是SGD(momentum为0.9、weight decay为 1 0 − 7 10^{-7} 10−7)
- 在V100上训练,batch size为128
- 在训练过程中,根据SlowFast的策略,我们随机放缩视频的像素为256 * 320,然后是随机水平翻转和随机裁剪为224 * 224.
- 在推理过程中,我们只将更短的方向resize到224像素。
4.3 Quantitative Results
ST-HOI有效解决了三个问题:
- 2D HOI方法中的时间感知特征的缺失。
- 常见3D HOI方法中的特征不连续问题。
- 缺少一个较好的视频HOI benchmark。
统计2D model、3D model、T(Trajectory features)、V(Correctly-localized visual features)、P(Spatial-temporal masking pose features)在Oracle和Detection两个模式下的Full、Non-rare、Rare的mAP。
统计最高频率的动态交互的mAP。
分别统计动态交互和静态交互的mAP
统计一些特定的动态交互的mAP
4.4 Qualitative Results
我们对比Oracle模式下的2D model和ST-HOI推理的具体案例:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fmtC4j0-1691903422539)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\1691849302204.png)]
5 Conclusion
- 解决了传统HOI方法无法利用视频的相邻帧来识别动态行为的问题。
- 讨论了目前在视频HOI方面的设置和数据集是不足的。
- 辨析了action detection baseline中的特征不连续问题,提出了RoI feature pooling和temporal pooling的顺序是错误的。
- 创建了一个新的视频HOI的benchmark(VidHOI),并介绍了以关键帧为中心的检测策略。
- 提出了时空baseline的ST-HOI,挖掘了基于轨迹的时间特征(correctly-localized visual features、spatial-temporal masking pose features和轨迹特征)
- 通过实验进行VidHOI的定量和定性分析,对比了2D和3D baseline。
- 促进未来的视频HOI工作能提出更先进的模型,利用到多模态数据(视频帧、语义标签、音频等)