Convolutional Two-Stream Network Fusion for Video Action Recognition论文笔记
第二篇论文读书笔记
该篇论文发现了双流网络的两个缺点:(i)是不能在空间和时间特征之间学习像素级的对应关系(因为融合只是分类的分数上);(ii)有限时间规模,因为空间卷积操作只在单帧上,时序卷积操作只在堆叠的L个时序相邻的光流帧上(例如L=10)。在视频中,双流的实现通过在规则的空间采样上使用时间池在一定程度上解决了后一个问题,但这并不允许对行为的时间演变进行建模。
该文章通篇谈的是融合(Fusion),关键阐释的是如何去融合空域卷积网络与时域卷积网络、在哪里融合这两个网络、如何在时域上融合网络三个问题。
1、空间融合
首先是空间融合。将两个网络融合的目的是在相同像素位置上的空域时域同时给予激励并获取其响应。因此需要空域卷积对时域卷积的网络通过通道传递信息,当两个网络在融合层上有相同的空间分辨率时,通过堆叠,就很容易实现这种空间对应。
文章介绍了五种网络间feature map的融合方法(假设两个网络宽、高、通道数一致):
(1)Sun fusion(求和融合):计算两个feature map之和。由于通道的编号是任意的,sum fusion只定义了网络之间的任意对应。但随后的学习可以利用这种任意的通信达到最佳效果,优化滤波器,使通信变得有用;
(2)Max fusion(最大化融合),采用两个feature map的最大值。所有变量与(1)类似,网络通道对应任意;
(3)Concatenation fusion(级联融合),扩展输出的值域范围,直接堆叠两个feature map。没有定义通信,但将其留给后续的层定义(通过学习适当的滤波器对层进行加权);
(4)Conv fusion(卷积融合),先堆叠,再乘以一个卷积核,加上一个偏置。 其中输出通道的数量是D,而过滤器的尺寸是1x1x2D。在这里,过滤器f用于将维度减少2倍,并且能够在相同的空间(像素)位置上对两个特征图x_a、x_b进行加权组合。当在网络中作为可训练的过滤器内核时,f能够学习两个特征映射的对应关系,从而最小化一个关联的损失函数。例如,如果f被学习为两个permuted identity矩阵1' ∈ R^1×1×D×D的连接,那么一个网络的第i个通道只与另一个通道的第i通道(通过求和)结合在一起。请注意,如果在级联后没有维度减少卷积层,那么即将到来的层的输入通道的数量是2D的。
(5)Bilinear fusion(双线性融合),计算两个feature map在每个像素位置的矩阵外积,然后求和。由此产生的特征y bil ∈ R^D2捕获了相应空间位置的乘法交互。这个特性的主要缺点是它的高维度。为了使双线性特性在实践中可用,它通常应用于ReLU5,全连接的层被移除,而power- and L2正则化应用于线性SVMs的有效分类。双线性融合的优点是一个网络的每个通道都与其他网络的每个通道相结合。然而,缺点是所有的空间信息在这一点被边缘化了。
两个可以放置融合层的例子。左边的例子显示了第四个卷积层之后的融合。从融合点只使用单个网络塔。右图显示了两层(在conv5之后和fc8之后)的融合,其中两个网络塔都被保留,一个作为混合时空网络,一个作为纯空间网络。
接下来要处理在哪里融合的问题,约束条件是两个输入在t时刻的feature map需要有相同的空间维度,如果没有可以通过使用“向上卷积”层来实现,或者如果维度是相似的,可以通过在较小的映射上填充0来实现向上采样。
2、时域融合
(1)2D Pooling:忽略时间,只在空间领域上池化(时间维度上不缩减);
(2)3D Pooling:时间维度也缩减;
(3)3D Conv+3D Pooling:C3D的方法,先用若干个3D卷积核卷积再进行池化。
3、新的融合架构
该文章的架构是在最后一个卷基层的ReLU之后将两个网络融合至空域流,并通过3D Conv+3D Pooling转化成时空流,同时不截断时域流,在时域网络上执行3D Pooling。最终两个Loss都用于训练并进行预测。整个网络输入是上下文较长的时间尺度(t + Tτ),但每次处理的只是上下文较短的时间尺度(t±L/2),要注意类似于奈奎斯特准则一样,τ < L导致时域的输入重叠,τ ≥ L时域输入不会重叠。
4、参数配置
(1)使用了VGG-M-2048模型(5卷积+3全连接)与VGG-16模型(very deep,13卷积+3全连接),都进行了ImageNet预训练;
(2) L=10的叠加光流,预计算光流,存储为JPEG且不使用批量归一化;
(3) batch size=96, learning rate 10的-3次幂,精度饱和后再降低10倍;
(4)3D Conv fusion f的维度是3×3×3×1024×512 T=5,时空filter的维度是3×3×3,ReLU5连接和D' = 512匹配FC6层输入通道的数量D = 1024。
5、训练集预处理
(1)空间抽取上,在幅面上随机地将其宽度和高度抖动±25%,并将其重新调整为224x224,虽然随机选择了crop的位置、大小、比例、水平翻转,但以后将相同的空间crop应用于堆栈中的所有帧作为时域输入;
(2)时间抽取上,从96个视频中的每一个中抽取T=5帧,随机选择起始帧,然后随机抽取时间跨度 (τ)∈ [1,10](τT=15~50)。
6、 算法优势及原因
(1)作者找到表象(appearance)和运动(motion)位置能对应上的融合,如ReLU5,所以在这儿的表现比在FC融合要好的多,FC层已经完全瓦解了这种对应关系;
(2) 使用了VGG-M-2048(提升3%)与VGG-16(提升4.5%-6%)这种very deep的网络,要比之前的AlexNet好很多;
(3) 使用了类似于C3D的算法,3D Conv与3D Pooling相对于2D更有效果。
7、 运行结果
(1)关于在空域上的融合,最好的方法还是卷积的方法,对kernel的随机初始化(Gauss噪声)和单位矩阵初始化差不多,次好的反而是运算最简单的求和法。
图3 不同空域Fusion算法的准确率对照
(2)作者尝试各种位置进行融合,测试结果比较好的是ReLU5融合,虽比ReLU5+FC8的融合低了0.08%,但是参数少了仅一倍。
图4 不同位置Fusion算法的准确率对照
(3)3D Conv + 3D Pooling显然是最好的
图5 不同Pooling算法的准确率对照
(4)和主流方法的第一代算法进行对比,以及和iDT互补后照样优势明显。
图6 和主流算法的准确率对照