2D/3D联合卷积模块MiCT:全面提升行为识别的性能和效率

编者按:行为识别是计算机视觉领域的一个重要研究方向,在监控、自动驾驶等日常场景中具有广泛的应用前景。为了提升3D CNN在行为识别分析中的性能,微软亚洲研究院网络多媒体组在CVPR 2018上提出了一个简单而高效的3D/2D混合卷积模块(MiCT)。MiCT模块使3D CNN能够以更少的3D时空融合、更小的模型、更快的速度来提取到更深的视频时空特征,进而大幅提升行为识别的表现。

行为识别

计算机帮助摄像师自动分析视频中的动作类型,给出相应的动作标签便于后续的视频检索及编辑;在机器人及自动驾驶领域,系统捕捉、理解、预判人类的动作行为,从而及时做出相应的判断及反应;监控系统通过摄像头自动检测某些特定或异常行为,例如打架、抢劫、老人/儿童摔倒、虐童等,并自动采取报警或警告措施。

这些已经或者即将出现在我们日常生活中的应用场景中,都应用到了计算机视觉领域中的一个基础研究方向——行为识别。行为识别的本质是视频理解,既对于给出的一段视频,机器对视频中主要行为类型的一个判断。它在视频监控、人机交互、自动驾驶等很多现实场景中具有重要的应用价值。

但是,基于视频的行为分析是一个很有挑战的问题。在现实环境中,由于姿态、角度、光照、以及遮挡等问题,一个相同的动作在不同的视频中可以呈现出巨大的差异性,同类行为间的类内距可能大于不同类行为之间类间距。目前,部分大多数人可以轻而易举分辨的动作,让机器准确判断还是很困难的。

2D CNN与3D CNN对比

行为分析中的一个关键问题是确定鲁棒的特征。基于提取的鲁棒特征,机器学习相应的分类器来给出视频中主体行为的一个判断。早期关于鲁棒特征提取的研究工作集中于人为定义或设计的一些特征,如灰度、梯度、光流等。随着深度学习的日益普及,基于深度学习的行为分析方法不断涌现。实验结果显示,目前基于深度网络自主学习的特征表达的性能已经超越了基于人为设计的特征方法。目前面向行为识别的深度学习方法大体可分为两类:基于二维(2D)卷积神经网络(CNN)特征和基于三维(3D)CNN特征的方法。

基于2D CNN特征的方法

一个6层的2D卷积神经网络

简言之,基于2D CNN特征的方法的共性在于涉及的特征都是通过2D CNN获得的。在视频中使用2D CNN的一个简单方法就是对视频中的每一帧使用2D卷积,但是视频是三维数据,这种方法忽略了视频中时间维度的信息,没有利用连续帧间的运动信息。于是,双流(two-stream)体系结构应运而生。它的基本思想就是分别训练两个2D卷积网络分别学习外观(RGB帧)和运动(光流)两路输入信息的特征,并基于这两类2D特征来做出行为的判断。此外,递归神经网络(RNN)也被用于动作识别,例如通过LSTM网络来探索帧级2D特征的时空关系。

基于3D CNN特征的方法

一个6层的3D卷积神经网络

基于3D CNN特征的方法在建立在3D卷积神经网络的基础上。如图1和图2显示,2D CNN和3D CNN在结构上其实是相似的,但是3D CNN在卷积过程中可以将视频中的连续帧堆叠为立方体,并在此立方体中运用3D卷积核,从而能够提取时空混合特征。此类方法的代表工作是C3D,它基于3D CNN来提取3D时空特征并用于行为识别。

但是,由于3D CNN比2D CNN结构复杂,参数量大,通常其网络深度有限,难于训练。于是,出现了一些近似的深度神经网络,如I3D或P3D。这些方法通过2D卷积网膨胀(inflation)或2D+1D卷积网络来逼近3D卷积网络。此外,同基于2D特征的方案类似,递归神经网络,如LSTM,也被引入基于3D特征的算法中来实现更复杂的时空融合策略。

3D/2D混合卷积模块(MiCT)

2D CNN在图像等二维信号处理和分析的相关任务中取得了令人瞩目的性能。然而其相对应的3D CNN在三维信号(比如视频信号)的处理和分析中并没有取得相应的高性能。就行为识别而言,目前实验室测试结果显示最佳的性能仍然是基于2D CNN特征的双流网络获得的。

为什么3D CNN在视频分析中没有获得它应有的性能呢?事实上,3D CNN理论上能够有效地提取时空特征。然而,将时空维度混合在一起的同时,也增加了3D CNN网络的优化难度。与相应的2D卷积相比,3D 卷积的参数量大,大量参数堆叠在一起形成3D CNN,这极大地增加了优化的难度、内存使用和计算成本,使得训练一个深度3D CNN变得非常困难。除此之外,我们也缺少一个可以用来训练深度3D CNN网络所需的大型(如ImageNet数量级的)视频数据。

面对这些挑战,通过3D CNN来有效地学习深度时空融合特征是否依然可行呢?

我们在CVPR 2018上发表的MiCT: Mixed 3D/2D Convolutional Tube for Human Action Recognition论文中,提出了一个简单而高效的模块——3D/2D混合卷积模块(MiCT),来处理视频数据,尝试解决这一挑战。

3D/2D串联混合模块 (Concatenate Connection)

视频图像中时空信息的分布并不是均衡的,同空域信息相比,视频中时域信息的冗余度较高,相邻两帧的内容通常很相似,如下图所示。因此,我们把特征学习中的研究重点更多地放在有关空域的分析上。

此外,我们也发现每个3D卷积都会产生一个混合了时空信息的2D特征图,如下图所示。所以,增强2D特征图的分析学习能力也能够进一步提升3D卷积的性能。

因此,我们首先提出3D/2D串联混合模块 (Concatenate Connection)。如下图所示,在3D/2D串联模块中,我们提出在每个3D卷积之后串联一个深度2D CNN。通过3D/2D串联模块的使用,我们可以有效地增加3D CNN的深度,加强2D空域的学习能力,从而生成更深更强的3D特征,并使得3D CNN可以充分利用在图像数据上预先训练的2D CNN模型。在相关的网络设计中,我们提出相应地减少3D卷积的数量,从而进一步减小模型的大小,提升模型的效率。

3D/2D跨域残差并联模块 (Cross-domain Residue Connection)

通过3D/2D串联模块的使用,我们得到一个更深的3D卷积神经网络。然而,更深的CNN通常意味着更难的训练过程。如果只是通过简单的层数堆叠来加深网络可能造成梯度消失并导致更大的训练错误。为了解决这个问题,我们提出利用3D和2D特征图之间的相关性,让3D和2D卷积共享空间信息,如下图所示。 由于2D空间特征相对容易学习,我们可以利用2D卷积并通过残差学习的方式来促进3D特征的学习。

因此,我们进一步提出了一个3D/2D跨域残差并联模块 (Cross-domain Residue Connection)。如下图所示,我们提出在3D卷积的输入和输出之间引入另一个2D CNN的残差连接,以进一步降低时空融合的复杂性,并有效地促进整个网络的优化。

与之前ResNet中的残差连接不同,我们方案中的2D CNN捷径(shortcut)是跨域的。并联的两路并不是相同的两路2D或3D卷积,其中一路是处理3D输入的3D卷积,另一路是处理2D输入的2D卷积。

由于视频流通常包含大量的相似连续帧,这导致沿着时间维度的特征图中包含大量的冗余信息。通过引入2D卷积块来提取信息丰富但静态的2D特征,MiCT中的3D卷积仅需要沿时间维度学习残差信息。同时,2D和3D卷积共享空域信息。因此,跨域残余连接在很大程度上降低了3D特征学习的复杂性。

最终,我们提出的MiCT模块结合了上面提出的两个子模块:3D/2D串联混合模块和3D/2D跨域残差并联模块,实现了性能和效率两方面的全面提升。

深度MiCT网络MiCT-Net

为了验证MiCT的有效性,我们通过将MiCT堆叠在一起,构建一个简单的3D CNN网络MiCT-Net。如下图所示,MiCT-Net由四个MiCT组成,这也意味着我们使用了4个3D卷积。MiCT-Net将RGB视频序列作为输入,可进行端到端训练。表1中提供了网络体系结构的更多信息。我们在网络的最后一层使用时间维度上的全局池,以使网络能够接受任意长度的视频作为输入。

MiCT-Net网络。绿色块表示3D卷积;橘色和蓝色块分别表示2D跨域残差并联和串联混合模块。马赛克块表示n-路特征图。

同基础网络C3D相比,MiCT-Net包含较少的用于时空融合的3D卷积,但是产生了更深的特征图,同时有效地控制了整个深度模型的复杂性。此外,与传统的3D CNN不同,我们的框架能够利用在大型图像数据集上预训练的2D模型。大图像数据集上预先训练的参数有可能为MiCT中的2D卷积模块提供更好的初始化。

鲁棒特征提取性能全面提升

为了验证MiCT-Net的性能,我们使用了三个行为识别的公共数据集(UCF101、Sport-1M和HMDB-51)来进行测试。和基础网络C3D相比,MiCT-Net取得了全方面的提升。如下表所示,MiCT-Net以更小的模型、更快的速度实现了更高的准确性。

......................................................................................................................................................................................................................................................................................................................................................................................................................

论文主要内容:

本文考虑到在识别人体动作的时候,3D CNN的水平不及2D CNN在识别静态图片时的水平,认为这是由于3D CNN消耗的计算资源和存储资源过大导致不能很好的训练,因此在本文中提出了一个2D和3D CNN结合的模型进行动作识别。

摘要:首先介绍背景,即目前有人探索使用3D CNN进行动作识别。接着就指出当前方法的不足,就是说3D CNN在处理视频的时候,达到的水准并不及CNN在处理2D静态图片时达到的水准。接着进行了简要的分析分析原因以便引出自己的模型。原因的分析是3D卷积所需要的spatio-temporal fusion带来的训练复杂度以及所需的存储消耗限制了3D CNN的表现。接着引出本文的模型,将2D和3D CNN混合得到的mixed convolutional tube(MiCT),这个模型将2D3D CNN结合起来,以便生成更深的且更加informative的feature map,并同时减少每一轮spatio-temporal fusion的训练复杂度。这种模块堆叠在一起还能形成新的端到端的深度网络MiCT-Net,用来探索人体动作中的spatio-temporal信息。最后作者介绍了一下实验结果,在一些数据集上取得了state-of-the-art的结果。

技术部分,本文提出了两种混合2D和3D卷积的方式,concatenating connections和cross-domain residual connections。首先,下图是使用了2D3D concatenated connection的模型的示意图:

用数学语言来描述的话,在t时刻的feature map表示为,那么将可以表述为

其中是从t时刻到时刻的切片张量,上式不是最终版本,M其实只是时-空域特征图的线性融合操作,最终版本是另外提出了一个函数,这个,而这里的H其实就是2D卷积,也就是说这个数学描述描述的就是上图所示的过程,先进行3D卷积,接着对feature map进行2D卷积。这个过程可以理解为:3D卷积聚合了时空两个维度的信息,之后如果像是3D CNN那样继续叠加3D卷积层的话,会极大增加计算复杂度,因此退而求其次,使用2D卷积继续提升feature map的abstract level,同时又不会增加太大的计算负担。

跨域 residual connection的模型示意图如下所示:

这里的cross-domain residual指的是添加的residual不是普通意义上的直接将输入加到卷积后的结果上,而是将输入先用2D卷积处理一下,再添加到3D卷积的输出上,称之为cross-domain residual,数学描述如下

这里o指的就是3D卷积的输出结果,而H和之前一样指的是2D卷积,是输入tensor在t0时刻的slice,并且,这个2D卷积不是在所有的帧上都进行,而是经过采样的某些帧上进行。作者指出,引入这种residual的原因是考虑到视频信息中,相邻的几帧经常是差不多的,造成了冗余信息,而模型中2D卷积只在采样的某几帧进行,抓取了稳定而且更加抽象的feature,3Dconvolution就只需要在这些经过2D卷积处理的,冗余大大减少的数据上进行卷积了。

最终作者还将这两种connection合起来形成一个MiCT模型,如下图所示

这个模型前面用了residual的,后面又加了一层2D卷积,像concatenate connection的。

进行实验的时候,作者用四个这种MiCT模块搭建了深度网络,网络用端到端的方式训练,整个网络就只有4层3D卷积,大大减少了训练的复杂度。具体来讲整个网络如下图所示

具体每一层的参数如下表

这里面2D网络用的是别人提出来的inception block,如下图所示

采取不同的卷积,然后将结果合并在一起。模型中的2D卷积层可以使用在大的image dataset上训练好的参数,作为一个很好的初始化,这也增加了模型的能力。

本文的实验部分做的并不是很复杂,但是也算丰富,首先是对比了MiCT网络和基础的3D CNN的表现,然后是和其他state-of-the-art的方法的对比,这个对比进行了两项,一个是直接的对比,另一个是和一些two-stream的模型对比(MiCT也设置成2stream的),最后,文章对模型进行了一下可视化,指出模型能够适应不同速度的action,具有不错的能力。

总结一下本文的模型,我认为本文的模型主要的贡献是cross-domain residual connection的这个操作,通过sample一些frames进行2D卷积,结合3D卷积,大大减少了模型的复杂度,并且使得很多冗余数据不需要再去学习。主要贡献就是改进了3D CNN的网络模型。

参考文献:

论文 http://openaccess.thecvf.com/content_cvpr_2018/papers/Zhou_MiCT_Mixed_3D2D_CVPR_2018_paper.pdf

博客 https://zhuanlan.zhihu.com/p/54844623

https://blog.csdn.net/b224618/article/details/82533177

我觉得论文描述的也挺清晰的,这篇博客转载了这两篇的内容。

MiCT: Mixed 3D/2D Convolutional Tube for Human Action Recognition论文笔记相关推荐

  1. 论文笔记 Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition - CVPR

    Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition 2020 CVPR | c ...

  2. PaddlePaddle飞桨论文复现营——3D Residual Networks for Action Recognition学习笔记

    PaddlePaddle飞桨论文复现营--3D Residual Networks for Action Recognition学习笔记 1 背景知识 1.1 C3D C3D是一种3D卷积提取视频特征 ...

  3. (论文笔记)SC4D: A Sparse 4D Convolutional Network for Skeleton-Based Action Recognition

    SC4D: A Sparse 4D Convolutional Network for Skeleton-Based Action Recognition 摘要 一.介绍 二.相关工作 1.骨架动作识 ...

  4. 3DCNN参数解析:2013-PAMI-3DCNN for Human Action Recognition

    3DCNN参数解析:2013-PAMI-3DCNN for Human Action Recognition 参数分析 Input:7 @ 60 ×\times× 40, 7帧,图片大小60 ×\ti ...

  5. SGN:CVPR20-Semantics-Guided Neural Networks for Efficient Skeleton-Based Human Action Recognition

    Abstract In this paper, we propose a simple yet effective semantics-guided neural network (SGN) for ...

  6. Deep Clustering via Joint Convolutional Autoencoder Embedding and RelativeEntropy Minimization论文笔记

    Deep Clustering via Joint Convolutional Autoencoder Embedding and RelativeEntropy Minimization 论文链接 ...

  7. spatial temporal graph convolutional network for skeleton-based action recognition

    PPSIG:Paddlesports ST-GCN动作识别 - 飞桨AI Studio数据集为fsd-10花样滑冰,项目为ST-GCN从PaddleVideo抽取代码,可直接运行,acc为0.48 - ...

  8. 译:3D Convolutional Neural Networks for Human Action Recognition

    用于人体行为识别的三维卷积神经网络 摘要:我们考虑在监控视频中自动识别人体行为.当前大多数方法是基于原始输入计算得到的复杂手工特征构建分类器.卷积神经网络(CNN)是一种可以直接作用于原始输入的深度模 ...

  9. DHP19: Dynamic Vision Sensor 3D Human Pose Dataset论文笔记

    一.概述 本片论文主要提出了一个事件相机的3D人体姿态的数据集,可用于做人体姿态估计 数据集地址:https://sites.google.com/view/dhp19/user-guide 该数据集 ...

  10. 论文阅读_Spatial Temporal Graph Convolutional Networks for Skeleton-Based Action Recognition

    Abstract 人体骨架动力学为人体动作识别提供了重要信息.传统的骨架建模方法通常依赖于手工制作的部件或遍历规则,从而导致表达能力有限和泛化困难.在这项工作中,我们提出了一种新的动态骨架模型,称为时 ...

最新文章

  1. 程序员新手第一个python web开发框架
  2. 涂鸦智能冲刺IPO,不卖硬件的AIoT公司,团队阿里云出身,腾讯是大股东
  3. 提示语_交通安全提示语
  4. C++trie树的多重搜索算法的实现(附完整源码)
  5. .NET Core 小程序开发零基础系列(2)——小程序服务通知(模板消息)
  6. java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?
  7. 2054无法登陆mysql_张虹亮'blog » ubuntu20.04安装mysql8之后,php5程序和phpmyadmin出现#2054 无法登录MySQL服务器的解决方案...
  8. 机器学习与计算机视觉(开篇)
  9. 简析边缘数据中心技术
  10. 微型计算机控制第三版,清华大学出版社-图书详情-《微型计算机控制技术(第3版)》...
  11. Android GPS模块总结
  12. 透声投影幕布透声与画面效果可以媲美吗?
  13. 超级详细-NMOS、PMOS的工作原理及相关内容整理(上)
  14. python import文件后 core dumped_python numpy包调用core dumped、Linux VDSO机制
  15. 拼多多无货源店群模式现在还能赚钱吗?(小珏)
  16. 新IT引领新经济 新华三惠州云博会展现“云”魅力
  17. java 1st 2nd 3rd 4th_1st(3rd)
  18. TensorFlow学习笔记(一)---graph,op,tensor,Session,Variables,Tensorboard
  19. kubernetes (k8s) 与 Docker 关系
  20. Power BI——EARLIER 函数(对行操作)

热门文章

  1. 给设计团队管理者的6个建议
  2. python数据分布统计_Python 数据可视化:数据分布统计图和热图
  3. css中 =是什么意思,CSS中link什么意思
  4. After Effects CS4 \CS5\CS6\CC2015\CC2017\CC2018\CC2019安装包及教程
  5. 6款反垃圾邮件产品横向比较测试
  6. 2022年「医疗行业」市场研报合集(共228份)
  7. java商城加入购物车接口实现_商城系统购物车功能分析实现
  8. Vue - 实现复制内容到剪贴板(一键复制)
  9. 360随身wifi无线网卡linux,360随身wifi2代驱动,当usb无线网卡使用
  10. 详解浏览器中的粘贴事件 paste onpaste 事件