(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification


论文链接: 论文
代码链接: 代码
(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第1张图片

文章目录

    • 一、传统的方法存在的问题
      • 1、普通的3×1×1卷积对上下文的处理情况
      • 2、缺乏综合理解能力且参数量大
      • 3、缺乏长范围时序特征的学习能力
    • 二、本文的改进
      • 1、更好的处理、结合上下文信息
      • 2、网络结构:SmallBig-ResNet
    • 三、与同期方法的对比
      • 1、SmallBig VS Nonlocal
      • 2、SmallBig VS SlowFast
    • 四、实验
    • 五、总结
    • 除相关原始论文外的参考文章

一、传统的方法存在的问题

1、普通的3×1×1卷积对上下文的处理情况

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第2张图片

由上图可知,普通的3×3×1卷积对上下文的信息处理情况,这张图要识别的是人的跳高行为,t时刻蓝框的位置为我们要得到的目标,但是在t-1和t+1时刻当前位置的黄框分别为人的上半身和其他人的上半身,框内并没有人的跳高行为信息这样就会存在信息的缺失和噪声,从而减弱模型在训练过程中的表征能力。

2、缺乏综合理解能力且参数量大

传统的包括TSN在内的网络,尽管计算量没有3D网络大,但是由于将时序特征和空间特征分开训练,时空的综合理解能力比较差,在最后的融合上不能够很好的结合时空特征。
(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第3张图片

3、缺乏长范围时序特征的学习能力

从最基本的双流法说起,由于原始双流采用的是提取很少且固定的帧来进行光流训练,如果视频较长或者视频行为的时间较分散,很容易丢掉视频的时序特征,之后TSN等网络也作出了一些这方面的改进,比如上图中先将视频分为3块,然后又从每一块随机抽取一些帧分别进行特征学习,这样可以提升一定的长范围时序特征能力。而目前最流行之一的nonlocal方法,着重强调了考虑全局信息,但同时对局部的信息处理的不够好。还有一个值得一提的是slowfast,使用两种速率的时序输入流来代替3D的双流融合方法。

二、本文的改进

1、更好的处理、结合上下文信息

作者的方法是构建了一个SmallBig Unit模块,big view分支可以利用更大的感受野,small view分支可以利用更具有区别性的上下文信息,然后对二者进行聚合,考虑到各自的特性,采用参数共享的方式将big和small进行结合。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第4张图片

这个SmallBig模块就是将输入分成两个分支,左分支small,右分支big,左分支用1×1×1的卷积提取一张帧的信息,不再用3×1×1的卷积来聚合三张帧的信息,这样能够更加有针对性,提高鲁棒性。右分支直接用3×3×3的max pooling,这样感受野不仅变大,还能够提取最明显的特征。提取的特征通过和左分支一样的卷积进行处理,二者再共享参数即可。公式如下:h,w为框的坐标。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第5张图片

顺便提一下传统的时序卷积融合方式的公式:

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第6张图片

这个公式就是将t-1,t,t+1时刻的特征用三个theta来融合,相比还是smallbig处理的比较好。

2、网络结构:SmallBig-ResNet

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第7张图片

先解释这张图的意思:

(a)普通的2D block

(b)加入了3D block,把时序特征作为第三个维度。

(c)只针对第一个卷积加入了3×1×1的SmallBig block

(d)将Big中的3×1×1换成了3×3×3。扩大了感受野

(e)对每一个卷积都加入了SmallBig block,并且最后换成了T×3×3.原文的原因如下图,意思是中间经过了时序的max pooling之后,1×3×3卷积又扩大了空间的感受野,为了平衡时空维度信息,在最后一层扩大了时序感受野,所以就换成了T。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第8张图片

(f)full版本,又增加了两个block,原文阐述如下图,这里的池化大小改成了T×H×W,这样可以得到了一个从局部到全局的特征向量,特征与之前的图上的位置就没有关系了。后面还有一句的意思就是结合sigmoid将前面的特征向量作为了一个attention,进行channel-wise乘积。在这个地方又采用了类似bottleneck和共享参数的方法。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第9张图片

SmallBig的结构块可以直接替换到下图的ResNet网络中。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第10张图片

三、与同期方法的对比

1、SmallBig VS Nonlocal

N更注重全局的长时信息,容易丢掉一些局部的细节问题,S不仅注重局部细节信息,并且结构中不断渐进式叠加感受野,全局信息也可以很好的学到。下面的公式就是更直接的原理对比,N是从全局找相似的上下文信息,S是用两种方式结合直接的找关键信息。

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第11张图片

2、SmallBig VS SlowFast

Slow是利用两个不同时间速率的时序流来构建3D,并融合二者的信息。Small通过两个分支来分别关注上下文信息和细节信息。

四、实验

(论文总结)SmallBigNet Integrating Core and Contextual Views for Video Classification_第12张图片

实验的结果很多,这里只放一个Something-Something V1数据集上的对比。

五、总结

最厉害的地方就是Big中max pooling来获取更加精准的时序信息,并且采用渐进式的方法模块能够不断扩大,加长时序的感受野。共享参数的方式也让模型更加精简,但问题是带来了更大的计算量

那么现在其实待研究的问题还是几点:过拟合问题、参数量问题、时空特征的抽取方法。

除相关原始论文外的参考文章

1、CVPR2020 中科院+商汤 SmallBigNet - 知乎 (zhihu.com)

你可能感兴趣的:(深度学习,深度学习,人工智能,计算机视觉)