飞桨论文复现之ECO: Efficient Convolutional Network for Online Video Understanding(论文阅读)

一、复现使用框架和平台

  1. 本文的论文复现使用百度的飞桨框架,开发平台是AI Studio。参加了百度的论文复现营:https://aistudio.baidu.com/aistudio/education/group/info/1340
  2. 论文复现营的介绍:为了帮助大家更好的进行论文发表等科研工作,深入实践深度学习,百度特别推出了全球顶会深度学习论文复现营。由百度资深算法工程师与中科院高级研究员联合授课,28天手把手带你亲自复现1篇论文,掌握论文复现全流程。

二、百度飞桨框架介绍

PaddlePaddle (PArallel Distributed Deep LEarning)是一个易用、高效、灵活、可扩展的深度学习框架。PaddlePaddle有提供各种类型的工具和开发套件等:

  1. PaddleSlim用于模型压缩、剪枝、蒸馏等等。
  2. PaddleHub用于前期的验证。PaddleHub是个预训练的模型库,如果想实现什么应用,可以直接拿PaddleHub里的模型跑下看看是否能满足要求。
  3. PaddleDetection专门用于物体检测。这是一个非常实用的开发套件。
  4. Paddle Lite的模型主要部署到手机,嵌入式GPU等边缘设备。推理时间短,模型文件小,对硬件算力要求低。
  5. EasyDL和AI Studio。这两种是服务平台,AI Studio是本次论文复现的平台,有丰富的GPU资源。AI Studio里面还有很多项目可以参考和运行。EasyDL是工业部署应用服务平台,能加快应用速度,降低深度学习工程化门槛。

三、ECO的前身TSN的介绍

飞桨论文复现之ECO: Efficient Convolutional Network for Online Video Understanding(论文阅读)

Temporal Segment Network (TSN) 是视频分类领域经典的基于2D-CNN的解决方案。该方法主要解决视频的长时间行为判断问题,通过稀疏采样视频帧的方式代替稠密采样,既能捕获视频全局信息,也能去除冗余,降低计算量。最终将每帧特征平均融合后得到视频的整体特征,并用于分类。TSN解决了Two-stream不能检测长视频的问题。
TSN把视频分成很多小段,然后抽取小段内的一帧或者多帧进行特征提取,把RGB流和光流检测融合提升整体性能。
TSN的问题:

  1. TSN的问题是共识函数比较简单。融合还可以做的更好。
  2. TSN把双流扩展成了4流,网络更加复杂,过多的检测相邻帧意义不大,影响了速度。Spatial ConvNet 的输入可以是 RGB图 或者 RGB差异图;Temporal ConvNet 的输入可以是 光流图 或者 wrapped光流:

四、ECO相对TSN的改进

飞桨论文复现之ECO: Efficient Convolutional Network for Online Video Understanding(论文阅读)

  1. ECO每小段的视频只抽取一张图像。如果是一个片段内多个帧会增加运算量,但效果提升不明显。因为每小段内的相邻帧重复的太多。没有更多的有用信息。每小段视频只抽取一张图像使得ECO执行速度比较快。
  2. ECO中是进行了feature map层面的融合(文中除了3D卷积,也采用了2D卷积)。对每个segment提取feature map。
  3. 3D或者2D卷积融合的方式本身比全连接的分类方式准确率高。
  4. ECO对feature map进行融合的时候,打乱了segment的顺序,可以提前当前帧和较远帧的特征。因为视频的行为未必是按照某个固定的顺序。这样提升了分类的能力。
  5. ECO的网络设计相对简单,执行速度快,在速度和性能间做了较好的平衡。有利于应用落地。

五、其他的可以改进点的思考

  1. 把光流用卷积实现,并且在训练过程中和RGB流进行融合。用3D或者2D网络对融合的特征进行分类。
  2. 有些行为只保持很短时间的几个相邻帧。所以对视频分段,每段抽取一帧很难解决短时间行为的识别。看到其他论文有对视频进行不同稀疏度的提取方法检测。
  3. 类似于打乱视频帧先后顺序进行特征提取的方法,把光流和RGB流融合,并且打乱前后发生次序,进行特征提取和分类。
  4. 为了节约算力,提升检测速度和精度。采用动态调整提取稀疏度的方法。或者采用2级的提取稀疏度方法,这2级的稀疏度可以在一定范围动态调整。动态调整方法可以融合进光流信息。