Future Transformer for Long-term Action Anticipation论文阅读
相关内容
论文名称: Future Transformer for Long-term Action Anticipation(CVPR'22)
论文作者: Dayoung Gong, Joonseok Lee, Manjin Kim, Seong Jong Ha, Minsu Cho
论文地址:https://arxiv.org/abs/2205.14022
代码地址:暂未公布
背景
长时行为识别
基于有限的过去观察,预测未来长时的序列.与当前短期行为预测不同,短期行为预测旨在间隔1秒(或者其他秒级范围内,1s作为大多数论文评测标准),预测1s后动作.短期行为预测更关注于特征级,长期行为预测之间没有间隔,同时时间跨度要比短期长的多,之前一些工作侧重于标签级输入,近些年一些论文也转为特征级输入.
论文动机
- 之前方法的编码器过度压缩了输入帧的特征导致一些细粒度特征的时序关系不再被保留
- 以RNN作为decoder的模型,首先受限于长时建模问题,较难获取输入序列的长时依赖关系以及全局角度的过去和未来动作关系.
- 以自回归形式做预测会出现错误累积问题,随着时间增长在某一处预测出错后续均会出错.
本文方法简介
- 错误累积问题->transformer,decoder直接输出预测序列
- 细粒度特征丢失问题->损失函数设计,学习具有区分度的特征表示,encoder通过动作分割学习动作独特性,decoder并行预测未来动作
- 长时建模问题->选用transformer架构,架构本身更能捕获全局关系
方法介绍
问题设定
输入: 待输入视频分为T帧,其中$\alpha T$作为可以观测部分,其中$\alpha \in [0,1]$,相应的$\beta \in [0,1-\alpha]$,$\beta T$作为待预测序列.输入序列$I^{past} = [I_1,...,I_{\alpha T}]^T \in \mathbb{R}^{\alpha T* H * W * 3}$
输出:未来序列标签$S^{\text {future }}=\left[s_{\alpha T+1}, \ldots, s_{\alpha T+\beta T}\right]^{\top} \in \mathbb{R}^{\beta T \times K}$,其中未来标签的形式为标签和持续时间,分别为$\boldsymbol{A}=\left[\boldsymbol{a}_{1}, \ldots, \boldsymbol{a}_{N}\right]^{\top} \in \mathbb{R}^{N \times K}$和$\boldsymbol{d}=\left[d_{1}, \ldots, d_{N}\right] \in \mathbb{R}^{N}$其中$d$为比例 $\sum_{j=0}^{N} d_{j}=1$,最终输出形式上如下:
$$ s_{\alpha T+t}=a_{i}, \quad \beta T \sum_{j=0}^{i-1} d_{j}<t \leq \beta T \sum_{j=0}^{i} d_{j} $$
整个网络部分详细设计图如下图:
Enocder部分
过去全部帧$F^{text} \in \mathbb{R}^{\alpha T*C}$,此时设置一个时间跨度$\tau$作为采样跨度,采样结果为$E \in \mathbb{R}^{T^o *c}$,其中$T^{\mathrm{O}}=\left\lfloor\frac{\alpha T}{\tau}\right\rfloor$ .取出的帧传入一个线性层$W^F \in \mathbb{R^{C*D}}$,随后传入激活函数Relu,最终输出维度为$X_0 \in \mathbb{R^{T^O * D}}$,如公式:
$$ \boldsymbol{X}_{0}=\operatorname{ReLU}\left(\boldsymbol{E} \boldsymbol{W}^{\mathrm{F}}\right) $$
随后在Enocder部分设计,约定符号$L^E$为第$E$层,约定注意力部分计算:
$$ \begin{aligned} \operatorname{MHA}(\boldsymbol{X}, \boldsymbol{Y}) &=\left[\boldsymbol{Z}_{1}, . ., \boldsymbol{Z}_{h}\right] \boldsymbol{W}^{\mathrm{O}} \\ \end{aligned} $$
$$ \begin{aligned} \boldsymbol{Z}_{i} &=\operatorname{ATTN}_{i}(\boldsymbol{X}, \boldsymbol{Y}) \end{aligned} $$
$$ \begin{aligned} \operatorname{ATTN}_{i}(\boldsymbol{X}, \boldsymbol{Y}) &=\sigma\left(\frac{\left(\boldsymbol{X} \boldsymbol{W}_{i}^{\mathrm{Q}}\right)\left(\boldsymbol{Y} \boldsymbol{W}_{i}^{\mathrm{K}}\right)^{\top}}{\sqrt{D / h}}\right) \boldsymbol{Y} \boldsymbol{W}_{i}^{\mathrm{V}} \end{aligned} $$
其中$\boldsymbol{W}_{i}^{\mathrm{Q}}, \boldsymbol{W}_{i}^{\mathrm{K}}$ 和$\boldsymbol{W}_{i}^{\mathrm{V}} \in \mathbb{R}^{D \times D / h}$分别代表query,key和value的投影,$W^O \in \mathbb{R^{D*D}}$输出投影层,其中相同元素做MHA有约定如下:
$$ \operatorname{MHSA}(\boldsymbol{X})=\operatorname{MHA}(\boldsymbol{X}, \boldsymbol{X}) $$
层与层之间传输有公式:
$$ \begin{aligned} \boldsymbol{X}_{l+1} &=\mathrm{LN}\left(\operatorname{FFN}\left(\boldsymbol{X}_{l}^{\prime}\right)+\boldsymbol{X}_{l}^{\prime}\right) \end{aligned} $$
$$ \begin{aligned} \boldsymbol{X}_{l}^{\prime} &=\operatorname{LN}\left(\operatorname{MHSA}\left(\boldsymbol{X}_{l}+\boldsymbol{P}\right)+\boldsymbol{X}_{l}\right) \end{aligned} $$
其中$P$为位置编码,$\boldsymbol{P} \in \mathbb{R}^{T^{O} \times D}$.
最后一层输出通过一个全连接层后做softmax,计算每个时刻对应动作类别logit,即$\hat{S}^{\text {past }} \in \mathbb{R}^{T^{O}} \times K$,全连接层参数$W^S \in \mathbb{R^{D*K}}$,即有:
$$ \hat{\boldsymbol{S}}^{\text {past }}=\sigma\left(\boldsymbol{X}_{L^{\mathrm{E}}} \boldsymbol{W}^{\mathrm{S}}\right) $$
Decoder部分
Decoder主要作用为了动作预测,未来动作序列编码为M个可学习的tokens,$Q \in \mathbb{R}^{M \times D}$,这里Q的顺序和最终预测的顺序相同,和上述Encoder类似,约定一共有$L^D$层,计算流程如下:
$$ \begin{aligned} \boldsymbol{Q}_{l+1} &=\mathrm{LN}\left(\mathrm{FFN}\left(\boldsymbol{Q}_{l}^{\prime \prime}\right)+\boldsymbol{Q}_{l}^{\prime \prime}\right) \\ \end{aligned} $$
$$ \begin{aligned} \boldsymbol{Q}_{l}^{\prime \prime} &=\operatorname{LN}\left(\operatorname{MHA}\left(\boldsymbol{Q}_{l}^{\prime}+\boldsymbol{Q}, \boldsymbol{X}_{L^{\mathrm{E}}}+\boldsymbol{P}\right)+\boldsymbol{Q}_{l}^{\prime}\right) \end{aligned} $$
$$ \begin{aligned} \boldsymbol{Q}_{l}^{\prime} &=\operatorname{LN}\left(\operatorname{MHSA}\left(\boldsymbol{Q}_{l}+\boldsymbol{Q}\right)+\boldsymbol{Q}_{l}\right) \end{aligned} $$
$$ \begin{aligned} \boldsymbol{Q}_{0} &=[0, \ldots, 0]^{\top} \in \mathbb{R}^{M \times D} \end{aligned} $$
最后一层输出$Q_{L^D}$通过线性层和softmax生成logit,注意这里的logit维度为$\mathbb{R}^{M \times(K+1)}$,K为类别总数,多出来为None类别,表示当前片段无类别,同时通过另外的线性层生成持续时间,公式有:
$$ \begin{aligned} \hat{\boldsymbol{A}} &=\sigma\left(\boldsymbol{Q}_{L^{\mathrm{D}}} \boldsymbol{W}^{\Lambda}\right) \end{aligned} $$
$$ \begin{aligned} \hat{\boldsymbol{d}} &=\boldsymbol{Q}_{L^{\mathrm{D}}} \boldsymbol{W}^{\mathrm{D}} \end{aligned} $$
训练策略部分
训练损失主要有3个部分,分别为动作分割损失,预测类别损失和预测持续损失.分别如下:
$$ \mathcal{L}^{\mathrm{seg}}=-\sum_{i=1}^{T^{\circ}} \sum_{j=1}^{K} \boldsymbol{S}_{i, j}^{\text {past }} \log \hat{\boldsymbol{S}}_{i, j}^{\text {past }} $$
$$ \mathcal{L}^{\text {action }}=-\sum_{i=1}^{M} \sum_{j=1}^{K+1} \mathbb{1}_{i \leq \delta} \boldsymbol{A}_{i, j} \log \left(\hat{\boldsymbol{A}}_{i, j}\right) $$
$$ \mathcal{L}^{\text {duration }}=\sum_{i=1}^{M} \mathbb{I}_{\operatorname{argmax}\left(\hat{\boldsymbol{A}}_{i}\right) \neq \mathrm{NONE}}\left(\boldsymbol{d}_{i}-\hat{\boldsymbol{d}}_{i}\right)^{2} $$
其中$\delta$表示首先预测出类别为None的片段.最终的损失函数为:
$$ \mathcal{L}^{\text {total }}=\mathcal{L}^{\mathrm{seg}}+\mathcal{L}^{\text {action }}+\mathcal{L}^{\text {duration }} $$
方法流程图
实验介绍
实验设置
- 数据集-breakfast, 50salads
- 2个encoder和1和decoder对breakfast,2个encoder和2个decoder对50salads.
- Q中对于数据集breakfast序列数量M设置为8, 50salads设置为20.
- 隐含层维度D,breakfast设置为128,50salads设置为512.
- 用I3D做特征预提取,breakfast的$\tau$设置为3,50salads设置为6.观测比例$\alpha \in {0.2,0.3,0.5}$,预测比例固定为0.5.
- 优化器选择:AdamW,学习率1e-3,训练60批次,batch size设置为16
- 推理阶段观测比例$\alpha \in \{0.2,0.3\}$,预测比例$\beta \in \{0.1,0.2,0.3,0.5\}$
- 评价标准Moc,mean over classes
对比实验
- 与最优方法对比, 输入存在差异(fish vectors vs I3D)
并行输出和自回归输出,可以看出本文模型不仅时间取得效果好同时准确率高.其中-A表示以自回归形式,-M表示选择以掩膜注意力形式.最后一个为本文提出的原生方法.
全局注意力和局部注意力,两种设定源于论文Stand-Alone Self-Attention in Vision Models,体现出全局编码的优点:
- 输出格式对比,序列格式有序和无序对比,持续时间按照时间比例和开始结束时间.格式随机组合进行对比.
损失函数不同组合效果对比:
- 动作序列M个数对比:
- 可视化对比:看注意力分布,可以初步看到注意力数值首先靠近未来的值均偏大,同时对于一些重要的片段下面的注意力值均会偏大:
- 可视化对比:图的形式展示不同模型预测结果,采用自回归形式会出现错误累积.
短期动作预测(Next Action Anticipation),直接将模型用于短期预测,效果较佳.
- 预测时间对比:
- 全局交叉注意力设定:
- 位置编码设定:
- decoder和encoder数量:
- 持续时间损失函数效果对比(是否平滑):
重要参考文献
行为预测
- Harshala Gammulle, Simon Denman, Sridha Sridharan, and Clinton Fookes. Predicting the future: A jointly learnt model for action anticipation. In Proc. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 5562– 5571, 2019.
- Antoine Miech, Ivan Laptev, Josef Sivic, Heng Wang, Lorenzo Torresani, and Du Tran. Leveraging the present to anticipate the future in videos. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), pages 0–0, 2019. 1, 2
- Debaditya Roy and Basura Fernando. Action anticipation using pairwise human-object interactions and transformers.In Proc. IEEE Transactions on Image Processing, 30:8116– 8129, 2021. 1, 2
- Fadime Sener and Angela Yao. Zero-shot anticipation for instructional activities. In Proc. IEEE International Conference on Computer Vision (ICCV), pages 862–871, 2019. 1, 2
总结和心得
本文以长时行为识别作为主任务,在附录部分介绍了自身模型在短期行为模型的效果.可以说本文模型在长视频行为预测和短期预测都取得目前优异的成果,模型具有很大参考价值.
Transformer解决错误累积问题,依靠其并行性直接生成未来结果效果确实直观上应该会比自回归好.文中以自注意力权重做可视化方法值的参考.
总的来说本文对了解目前行为预测领域最新发展,了解最佳方法,具有极佳的参考性.
2 条评论
东东稳!!! ::paopao:tieba_emotion_90::
::paopao:tieba_emotion_90::