当前位置:   article > 正文

【行为识别现状调研2】_基于图像识别的学生上课行为检测的国外研究现状图片

基于图像识别的学生上课行为检测的国外研究现状图片

一、背景

  视频理解是目前计算机视觉领域非常热,也是极具挑战力的一个方向。视频理解方向包含众多的子研究方向,以CVPR组织的ACTIVITYNET为例,2017年总共有5个Task被提出。
  Task1:未修剪视频分类(Untrimmed Video Classification)。这个有点类似于图像的分类,未修剪的视频中通常含有多个动作,而且视频很长。有许多动作或许都不是我们所关注的。所以这里提出的Task就是希望通过对输入的长视频进行全局分析,然后软分类到多个类别。
  Task2:修剪视频识别(Trimmed Action Recognition)。这个在计算机视觉领域已经研究多年,给出一段只包含一个动作的修剪视频,要求给视频分类。
  Task3:时序行为提名(Temporal Action Proposal)。这个同样类似于图像目标检测任务中的候选框提取。在一段长视频中通常含有很多动作,这个任务就是从视频中找出可能含有动作的视频段。
  Task4:时序行为定位(Temporal Action Localization)。相比于上面的时序行为提名而言,时序行为定位于我们常说的目标检测一致。要求从视频中找到可能存在行为的视频段,并且给视频段分类。
  Task5:密集行为描述(Dense-Captioning Events)。之所以称为密集行为描述,主要是因为该任务要求在时序行为定位(检测)的基础上进行视频行为描述。也就是说,该任务需要将一段未修剪的视频进行时序行为定位得到许多包含行为的视频段后,对该视频段进行行为描述。比如:man playing a piano。
  行为识别(Action Recognition, AR)属于修剪动作识别范畴。

二、国内外研究现状

目前为止ActivityNet已经举办两届,下面是2017年的State-of-art。
在这里插入图片描述

三、修剪动作识别

  行为分类(Trimmed Action Recognition)是视频理解方向很重要的一个问题,至今为止已经研究多年。深度学习出来后,该问题被逐步解决,现在在数据集上已经达到了比较满意的效果。如第二点所述 。行为分类问题简单的来说就是:对于给定的分割好的视频片段,按照其中的人类行为进行分类。比如女孩化妆、男生打球、跑步等等。该任务不需要确定视频中行为的开始时间和结束时间。
  在深度学习出现之前,表现最好的算法是iDT,之后的工作基本上都是在iDT方法上进行改进。IDT的思路是利用光流场来获得视频序列中的一些轨迹,再沿着轨迹提取HOF,HOG,MBH,trajectory4中特征,其中HOF基于灰度图计算,另外几个均基于dense optical flow(密集光流计算)。最后利用FV(Fisher Vector)方法对特征进行编码,再基于编码训练结果训练SVM分类器。深度学习出来后,陆续出来多种方式来尝试解决这个问题,包含:Two-Stream、C3D(Convolution 3 Dimension),还有RNN方向。

3.1研究难点

  行为识别虽然研究多年,但是至今还是处于实验室数据集测试阶段,没有真正的实用化和产业化。由此可见该任务目前还是没有非常鲁棒的解决方案。
  任务特点:行为识别和图像分类其实很相似,图像分类是按照图像中的目标进行软分类,行为识别也类似。最开始的时候类似于UCF数据集,都是采用的单标签,也就是一段视频只对应一个标签。现在CPVR举办的Activitynet(Kinetics 数据集)每段视频中包含多个标签。相比于图像分类,视频多了一个时序维度,而这个问题恰恰是目前计算机领域令人头疼的问题。
  任务难点:如上所说,行为识别处理的是视频,所以相对于图像分类来说多了一个需要处理的时序维度。行为识别还有一个痛点是视频段长度不一,而且开放环境下视频中存在多尺度、多目标、摄像机移动等众多的问题。这些问题都是导致行为识别还未能实用化的重要原因。

3.2数据集介绍

  目前还比较常用的数据库主要有3个,UCF101、HMDB51和Kinetics.
在这里插入图片描述

3.3传统方法

  在深度学习之前,iDT(improved Dense Trajectories)方法是最经典的一种方法。虽然目前基于深度学习的方法已经超过iDT,但是iDT的思路依然值得学习,而且与iDT的结果做ensemble后总能获得一些提升。iDT的思路主要是在《Dense Trajectories and Motion Boundary Descriptors for Action Recognition》和《Action Recognition with Improved Trajectories》两篇文章中体现。下面简单的介绍DT(Dense Trajectories)方法。

3.3.1密集采样特征点

  如下图3.1所示,iDT算法框架主要包含:密集采样特征点,特征轨迹跟踪和基于轨迹的特征提取三个部分。
在这里插入图片描述
  DT方法通过网格划分的方式在多尺度图像中分别密集采样特征点。

3.3.2轨迹与轨迹描述子

在这里插入图片描述

3.3.3运动描述子

  除了轨迹形状特征,还需要更有力的特征来描述光流,DT/iDT中使用了HOF,HOG和MBH三种特征。下面简单的阐述一下这几种特征。

  HOG特征:HOG特征计算的是灰度图像梯度的直方图。直方图的bin数目为8。所以HOG特征的长度为223*8=96.

  HOF特征:HOF计算的是光流的直方图。直方图的bin数目取为8+1,前8个bin与HOG都相同。额外的一个用于统计光流幅度小于某个阈值的像素。故HOF的特征长度为223*9=108.

  MBH特征:MBH计算的是光流图像梯度的直方图,也可以理解为在光流图像上计算的HOG特征。由于光流图像包括X方向和Y方向,故分别计算MBHx和MBHy。MBH总的特征长度为2*96=192. 最后进行特征的归一化,DT算法中对HOG,HOF和MBH均使用L2范数进行归一化。

3.4 TWO STREAM方法

  Two-Stream方法是深度学习在该方向的一大主流方向。最早是VGG团队在NIPS上提出来的。其实在这之前也有人尝试用深度学习来处理行为识别,例如李飞飞团队,通过叠加视频多帧输入到网络中进行学习,但是不幸的是这种方法比手动提取特征更加糟糕。当Two-Stream CNN出来后才意味着深度学习在行为识别中迈出了重大的一步。

3.4.1 TWO-STREAM CNN

  Two-Stream CNN网络顾名思义分为两个部分,一部分处理RGB图像,一部分处理光流图像。最终联合训练,并分类。这篇文章主要有以下三个贡献点。
  首先,论文提出了two-stream结构的CNN网络,由空间(RGB)和时间(光流)两个维度的网络组成
  其次,作者提出了利用网络训练多帧密度光流,以此作为输入能在有限训练数据的情况下取得不错的结果。
  最后,采用多任务训练的方法将两个行为分类的数据集联合起来,增加训练数据,最终在两个数据集上都取得了更好的效果(作者提到,联合训练也可以去除过拟合的可能)。
  网络结构:
  因为视频可以分为空间和时间两个部分。空间部分,每一帧代表的是空间信息,比如目标、场景等等。而时间部分是指帧间的运动,包括摄像机的运动或者目标物体的运动信息。所以网络相应的由两个部分组成,分别处理时间和空间两个维度。
  每个网络都是由CNN和最后的softmax组成,最后的softmax的fusion主要考虑了两种方法:平均,在堆叠的softmax上训练一个SVM。网络的结构图如下所示。
在这里插入图片描述
  光流栈(Optical flow Stacking):
  光流栈(Optical flow stacking),或者叫做光流的简单叠加。简单的来说就是计算每两帧之间的光流,然后简单的stacking。
  假设考虑做动作的分类(行为识别主要包含两个方向,一个是动作分类,给出一个视频截断,判断视频的动作类别,或者称为offline。 另一个就是动作识别,给出一个自然视频,没有进行任何的裁剪,这个时候需要先知道动作的开始时间和结束时间,然后还要知道动作的类别)。 考虑对一小段视频进行编码,假设起始帧为T,连续L帧(不包含T帧)。计算两帧之间的光流,最终可以得到L张光流场,每张光流场是2通道的(因为每个像素点有x和y方向的移动)。
  最后,我们将这些光流场输入,得到相应的特征图。
  实验结果:
  最终该方法在UCF-101和HMDB-51上取得了与iDT系列最好的一致效果。在UCF-101上准确度为88.0%,在HMDB上准确度为59.4%。
在这里插入图片描述

3.4.2 TSN

  TSN(Temporal Segments Networks)[5]是在上述基础的two-Stream CNN上改进的网络。目前基于two-stream的方法基本上是由TSN作为骨干网络,所以这里进行简单的阐述。
  3.4.1小节所述的two-stream的方法很大的一个弊端就是不能对长时间的视频进行建模,只能对连续的几帧视频提取temporal context。为了解决这个问题TSN网络提出了一个很有用的方法,先将视频分成K个部分,然后从每个部分中随机的选出一个短的片段,然后对这个片段应用上述的two-stream方法,最后对于多个片段上提取到的特征做一个融合。下图是网络的结构图。
在这里插入图片描述

3.5 C3D方法

  C3D(3-Dimensional Convolution)是除了Two-Stream后的另外一大主流方法,但是目前来看C3D的方法得到的效果普遍比Two-Stream方法低好几个百分点。但是C3D任然是目前研究的热点,主要原因是该方法比Two-Stream方法快很多,而且基本上都是端到端的训练,网络结构更加简洁。该方法思想非常简单,图像是二维,所以使用二维的卷积核。视频是三维信息,那么可以使用三维的卷积核。所以C3D的意思是:用三维的卷积核处理视频。
  网络结构
  C3D共有8次卷积操作,5次池化操作。其中卷积核的大小均为333,步长为111。池化核为222,但是为了不过早的缩减在时序上的长度,第一层的池化大小和步长为122。最后网络在经过两次全连接层和softmax层后得到的最终的输出结果。网络的输入为316112112,其中3为RGB三通道,16为输入图像的帧数,112112是图像的输入尺寸。
在这里插入图片描述
在这里插入图片描述

3.6 RNN方法

  因为视频除了空间维度外,最大的痛点是时间序列问题。如果能很好的处理这个维度,那么效果是不是会显著提升呢?而众所周知,RNN网络在NLP方向取得了傲人的成绩,非常适合处理序列。所以除了上述两大类方法以外,另外还有一大批的研究学者希望使用RNN网络思想来解决这个问题。目前最新的进展是中科院深圳先进院乔宇老师的工作:《RPAN:An End-to-End Recurrent Pose-Attention Network for Action Recognition in Videos》。这篇文章是ICCV2017年的oral文章。但是与传统的Video-level category训练RNN不同,这篇文章还提出了Pose-attention的机制。
这篇文章主要有以下几个贡献点。
  不同于之前的pose-related action recognition,这篇文章是端到端的RNN,而且是spatial-temporal evolutionos of human pose
  不同于独立的学习关节点特征(human-joint features),这篇文章引入的pose-attention机制通过不同语义相关的关节点(semantically-related human joints)分享attention参数,然后将这些通过human-part pooling层联合起来
  视频姿态估计,通过文章的方法可以给视频进行粗糙的姿态标记。

3.6.1 网络结构

  RPAN网络框架可以分为三个大的部分。
  特征生成部分:用Two-Stream的方法生成
  姿态注意机制
  LSTM时序处理网络
  下图是RPAN网络的结构图。
在这里插入图片描述

3.6.2 特征生成

RPAN网络中采用TSN(Temporal Segments Network)的网络框架生成Convolution Cubes。包含空间和时间上两个维度。

3.6.3 姿态注意机制

  经过上述Two-Stream网络后生成了K1K2dc的特征图。之后作者经过一系列的操作将姿态和上述的特征图结合起来得到姿态特征图,最后输入LSTM中。具体的,文章进行了如下几步操作。
在这里插入图片描述
在这里插入图片描述

3.6.2 LOSS FUNCTION

  文章中定义了一个联合训练的Loss Function,将行为损失和姿态损失联合起来。
在这里插入图片描述

3.7总结

  行为识别目前还是视频理解方向的热点,而且至今为止也没有得到很好的解决。由于视频中目标复杂,场景复杂,所以单纯的Two-Stream和C3D方法表现得都不太如意。RPAN中引入了姿态监督的机制,或许能提高视频分类的效果。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/627772
推荐阅读
相关标签
  

闽ICP备14008679号