SlowFast介绍

SlowFast是何凯明大神于Facebook发表于ICCV2019的关于人体行为识别的双流模型框架。

上图是SlowFast模型的主要结构,上面的部分为空间分支,它是一个低帧率(Low frame rate)的分支,我们希望它主要捕捉一些RGB的图像特征。它具有较少的帧数,较大的通道数。下面的部分为时间分支,它是一个高帧率(High frame rate)的分支,我们希望它捕捉一些动作的特征,因为动作变化比较快,所以它有较多的帧数,较小的通道数。

在空间分支的右边的C表示通道数,T表示时间维度。我们可以看到它的通道数都比较大,时间维度比较小;在时间分支的右边的βC表示通道数,αT表示时间维度。我们可以看到它的通道数都比较小,时间维度比较大。这里的α=8、β=1/8、τ=16(采样步长)

这两个分支的输入维度大小都是3*64*224*224(3是通道数,64为帧数,224代表宽高),区别在于时间步长不同。

在上表中,我们可以看到它的原始切片为64*224^2。对于slow分支,它的步长为16,所以采样帧数为64/16=4;而fast分支的步长为2,所以采样帧数为64/2=32。经过了帧采样进入了卷积层,对于slow分支来说,从conv1到res3,我们看到它的时间卷积核大小都是1,说明都没有在时间维度进行卷积。作者发现在浅层去提取时间特征会有害。直到res4和res5的时间卷积核大小为3,才对时间特征进行提取。而在fast分支,从conv1开始就有时间卷积核的大小,为5。后面的res2到res5都一直在提取时间特征。到最后,slow分支的维度为4*7*7,fast分支的维度为32*7*7。我们发现它们的帧数都没有发生变化,所以在时间维度上是没有进行下采样的。

  • 3种信息融合策略

在网络结构图中,我们可以看到会有时间分支的箭头指向空间分支中,它的融合方式有3种

  1. 从时间到通道融合,具体是将时间分支的特征图(αT时间维度,S^2空间维度,βC通道数)进行转置为(T,S^2,αβC),这样就跟空间分支的特征图一样了,然后进行拼接。
  2. 基于时间采样的融合,因为时间分支的特征图的时间维度为αT,表示每α帧进行一次采样,这样我们将时间步长采样到跟空间分支一样,这样(αT,S^2,βC)就变成了(T,S^2,βC),这样就可以进行拼接。
  3. 基于时间的3D卷积,可以基于时间步长的采样,同样可以基于时间步长的卷积,使用5*1*1的3D卷积核可以得到一个2βC的输出通道,步长为α。

总体思想就是要将时间分支的特征图变成跟空间分支的特征图的时间维度和空间维度大小一样就可以了,这样就可以在通道维度上进行拼接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章