行为识别论文笔记之多纤维网络 | ECCV 2018

简介: 这篇文章提出的网络结构有点像不带 channel shuffle 模块的 ShuffleNet,其核心思想还是利用 Group Conv 来降低网络的计算开销。

雷锋网 AI 科技评论按:本文为上海交通大学林天威为雷锋网 AI 科技评论撰写的独家稿件,未经许可不得转载。

TB18nK6iyrpK1RjSZFhXXXSdXXa.jpg

行为识别/视频分类是视频理解领域的重要方向。之前该方向的深度学习方法大致可以分为两个大类:一类是双流网络,即以 RGB 图像和光流图像作为 2D 网络两个分支的输入,再在网络的某处进行融合,典型的如 TSN;另一类则是将多帧 RGB 图像看做是 3D 输入,然后使用 3D 卷积网络进行处理,典型的如 C3D,I3D,ARTNet 等(当然也可以将光流作为 3D 网络的输入从而进一步提高效果)。

双流类方法的问题主要在于要提取光流,耗时比较多,在实际的场景中很难应用起来。所以近两年的论文更多集中在 3D 网络的研究上,3D 类方法此前的问题主要有两方面,一是 3D 卷积核的计算开销比较大,二是在效果上还是距离双流类方法有一定的距离。

ECCV2018 上,新加坡国立大学,FAIR 和 360AI 实验室合作发表了「Multi-Fiber Networks for Video Recognition」[1],代码见 PyTorch-MFNet。这篇论文主要针对 3D 网络的第一个问题进行了研究,具体而言,这篇论文的目的是要在保持网络效果的同时(主要对标 I3D-RGBmodel),大幅度降低网络的 FLOPs,从而提高网络的效率,使 3D 网络能够获得更多的应用场景。这篇文章提出的网络结构有点像不带 channel shuffle 模块的 ShuffleNet,其核心思想还是利用 Group Conv 来降低网络的计算开销。之前似乎没怎么参考 mobile 类模型思路来做 video classification 的工作,而计算量对于 3D 类网络又是比较重要的核心的瓶颈,所以这篇工作还是很有参考价值的。

下面开始介绍文章内容,如有不足烦请指正。

Motivation

这篇文章的核心 motivation 就是认为目前的 sota 的 3D 网络(比如 I3D 以及 R(2+1)D-34 网络)的计算量 FLOPs 都太高了。常用的 2D 卷积网络如 resnet-152 或是 vgg-16 网络大概是 10+ 的 GFLOPs,而刚刚提到的两种 3D 卷积网络则达到了 100+ GFLOPs。作者认为,当计算量相近的时候,由于 3D 网络模型能额外的学习到时空信息,clip-based 的模型(即指 3D 网络)应该要能比 frame-based 的模型(即指 2D 网络)有更好的效果。所以,这篇文章的目标就是在保持现有 sota 的 3D 模型的效果的同时,大大提高其网络效率。

多纤维网络

在方法部分,作者首先介绍了多纤维模块(Multi-Fiber Unit)的原理,然后在 2D 网络上实验了多纤维结构的有效性,最后将其推广到了 3D 网络上去。

多纤维模块

TB1qpPpiyLaK1RjSZFxXXamPFXa.jpg

这张图介绍了从 resnet 到多纤维模块的变化过程。

(a)中的结构即是一个简单的残差模块;(b)中的则为 Multi-Path 类型的 bottleneck 模块,比如 ResNeXt 就采用了该结构。在该结构中,前后均为一个 1x1 的卷积进行降维和升维,中间则将通道进行分组,分别用几个 3x3 卷积核进行处理。这样的处理可以大大降低中间层的计算量,但是 1x1 卷积层依旧有很大的计算量。所以这篇文章提出进行更加彻底的分组,即将整个残差模块按照通道切片成多个平行且独立的分支(称为 fiber,纤维),如(c)所示。(c)中的结构在输入和输出通道数量一致的情况下,可以将理论计算量降低到 N 分之一,此处 N 为分支或者说是纤维的数量。这种更加彻底分组的加速思路和去年的 ShuffleNet 其实也有些像,区别在于 ShuffleNet 中还提出了 channel shuffle 的模块,且在中间层采用了 depth-wise conv。

如(c)所示的结构虽然效率提高了很多,但通道间缺乏信息交换,可能会损害效果。所以该文进一步提出了一个 Multiplexer 模块用来以残差连接的形式结合纤维之间的信息。该模块实际上是一个两层的 1x1 卷积,第一个卷积会将通道数量降低到 k 分之一,第二个卷积再升维,因此该模块的计算量是一层 1x1 卷积的 k/2 分之一。不过,在文章中没看到作者具体设置的 k 值。

多纤维结构有效性的验证

接下来,作者通过在 ImageNet-1k 数据集上的图片分类实验来验证所提出的多纤维结构的有效性。这里主要有两种形式,一是基于 ResNet-18 和 MobileNet-v2 的 baseline,将其中的模块替换为多纤维模块(这里具体的实现细节不是很确定);二是重新设计了一个 2D MF-Net,具体网络结构可以见论文。实验结果如下所示。

TB1Tfi5ipzqK1RjSZFoXXbfcXXa.jpg

通过这个表格里面的实验结果可以看出。多纤维结构在 MobileNet-v2 和 ResNet-18 上可以在少量降低计算量和参数量的情况下,提高一定的效果,表明了多纤维模块的有效性。而 MF-Net 也在参数和计算量较低的情况下达到了不错的效果。最后一栏实验则表明了 Multiplexer 模块大概会占据 30% 的计算量,但对效果的提升也是比较明显的。

3D-多纤维网络

在确认了提出的多纤维模块的有效性后,本文就将多纤维结构推广到了 3D 网络上,并提出了 3D MF-Net。3D MF-Net 的模块结构和网络结构如下图所示:

TB1PBO7irvpK1RjSZFqXXcXUVXa.jpg

可以看出,3D 和 2D 的多纤维模块结构基本一致,只是将卷积的维度升到了三维。为了降低计算量,两层卷积只有一层进行了时序上的卷积。

实验内容

在实验部分,本文主要做了 trained from scratch 以及 fine tuned 两类实验,分别对应 Kinetics 以及 UCF101,HMDB51 数据集。

视频分类-Trained from Scratch

TB1evm3ipzqK1RjSZFvXXcB7VXa.jpg

在 Kinetics 数据集上,MF-Net 以比之前 3D 模型低非常多的 FLOPs 达到了更好的效果。

视频分类-Fine-tuned Models

TB1SXaZiCzqK1RjSZPcXXbTepXa.jpg

在这部分实验中,先将模型在大数据集(Kinetics)上训练,再在小数据集(UCF-101, HMDB51)上进行 finetune。从实验结果可以看出,MF-Net 以较小的计算量达到或超过了目前 sota 的效果。本文首图可视化地展现了计算量和效果的关系,可以看出 MF-Net 较好地占据了左上角的位置,即以较小的计算量达到 sota 的效果。

论文小结

这篇文章主要是进一步优化了 Multi-Path 模块的结构,并将其用于了 3D 卷积网络,从而大大提高 3D 卷积网络的效率。在效率大大提高后,其实也更有利于我们继续将网络做的更复杂更有效,像之前的 I3D 的效率实在太差了,很难进一步增加复杂度(当然另外一方面也给大家提供了很多优化空间和写论文空间...)。一方面通过引入网络加速技巧对模型速度进行优化,一方面通过增加网络对时序建模的能力来对模型效果进行提高,应该是未来 3D 网络研究更平衡的一种发展道路吧。

参考文献

[1]Chen Y, Kalantidis Y, Li J, et al. Multi-Fiber Networks for Video Recognition[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 352-367.

[2] Xie S, Girshick R, Dollár P, et al. Aggregated residual transformations for deep neural networks[C]//Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on. IEEE, 2017: 5987-5995.

[3] Carreira J, Zisserman A. Quo vadis, action recognition? a new model and the kinetics dataset[C]//Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on. IEEE, 2017: 4724-4733.

雷锋网(公众号:雷锋网)

目录
相关文章
|
2月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
146 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
2月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
67 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
66 3
|
28天前
|
数据可视化 算法 安全
员工上网行为管理软件:S - PLUS 在网络统计分析中的应用
在数字化办公环境中,S-PLUS 员工上网行为管理软件通过精准的数据收集、深入的流量分析和直观的可视化呈现,有效帮助企业管理员工上网行为,保障网络安全和提高运营效率。
27 1
|
2月前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
68 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
62 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
53 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
7天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
8天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
31 10
|
10天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
37 10