预备知识

1.什么是深度学习

深度学习是人工智能(AI)的子集,即 从广义上讲,它是AI的应用。因此我们必须先了解什么是AI以及他的核心目标。所谓AI就是使用计算机模仿人类行为的技术,其目标是AI是开发可处理能够为将来的决策提供信息的高效算法。

而对于计算机而言,无法像人类一样阅读书籍,进行研究或询问问题以学习,因此需要借助于大量的数据。尤其是对于一些复杂的问题而言,计算机利用其计算能力以及大量的数据进行分析,而这些数据是源源不断的,就比如说你要写一个程序他能识别是否是pissza饼子,你必须先经过无数张pissza食物的图片,抽象出其特征,机器才能学到什么是pissza,否则你该如何定义一个pissza?因此我们说深度学习是一个功能强大的过程,它使计算机能够通过自动提取最有用的信息来为将来的决策提供信息,从而模仿人类的行为。

2.数据集 UCF101和 HMDB5

可以理解成存放大量动态图片或者说是视频的数据库。

3.IDT特征(稠密轨迹特征)

IDT指的是提升的密集轨迹算法(iDT算法),对于一张图片来说,它是由帧构成的,而一个图像帧的数量够多,我们必须抓住重要的特征点来分析,并且必须在时间序列上跟踪这些特征点,IDT便是一种处理此行为的算法。其采样的核心便是:通过网格划分的方式在图片的多个尺度上分别密集采样特征点,然后在时间序列上跟踪这些特征点,最后整理出轨迹特征。

4.深度学习模型

如卷积神经网络(CNN),递归神经网络(RNN).

5.视频预处理

在分析图像问题时,由于环境和拍摄自身因素影响,使得在需要处的图像存在一定的问题,同时由于操作的要求,需要对图像进行一定的转换,所以,在处理图像之前,要对图像做出预处理,方便后期操作。
具体操作如:图像灰度化、图像去噪声

6.光流特征

光流(optical flow)是空间运动物体在观察成像平面上的像素运动的瞬时速度。光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。通常将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。一言以概之:所谓光流就是瞬时速率,在时间间隔很小(比如视频的连续前后两帧之间)时,也等同于目标点的位移。

7.表征

表征,是信息在头脑中的呈现方式,是信息记载或表达的方式,能把某些实体或某类信息表达清楚的形式化系统以及说明该系统如何行使其职能的若干规则。因此,我们可以这样理解,表征是指可以指代某种东西的符号或信号,即某一事物缺席时,它代表该事物。

8.模型训练

模型是求解学习问题的一系列前提假设,根据已知数据寻找模型参数的过程就是训练,最终搜索到的映射被称为训练出来的模型。

你可以把机器想象成一个小孩子,你带小孩去公园。公园里有很多人在遛狗。

简单起见,咱们先考虑二元分类问题。你告诉小孩这个动物是狗,那个也是狗。但突然一只猫跑过来,你告诉他,这个不是狗。久而久之,小孩就会产生认知模式。这个学习过程,
就叫“训练”。所形成的认知模式,就是”模型“。

训练之后。这时,再跑过来一个动物时,你问小孩,这个是狗吧?他会回答,是/否。这个就叫,预测。

一个模型中,有很多参数。有些参数,可以通过训练获得,比如logistic模型中的权重。但有些参数,通过训练无法获得,被称为”超参数“,比如学习率等。这需要靠经验,过着grid search的方法去寻找。

上面这个例子,是有人告诉小孩,样本的正确分类,这叫有督管学习。

还有无督管学习,比如小孩自发性对动物的相似性进行辨识和分类。

9.预训练与微调

什么是预训练和微调?

预训练(pre-training/trained):你需要搭建一个网络来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会不断变化。当你觉得结果很满意的时候,就可以将训练模型的参数保存下来,以便训练好的模型可以在下次执行类似任务时获得较好的结果。这个过程就是pre-training。

之后,你又接收到一个类似的图像分类的任务。这个时候,你可以直接使用之前保存下来的模型的参数来作为这一任务的初始化参数,然后在训练的过程中,依据结果不断进行一些修改。这时候,你使用的就是一个pre-trained模型,而过程就是fine-tuning。

所以,预训练就是指预先训练的一个模型或者指预先训练模型的过程;微调 就是指将预训练过的模型作用于自己的数据集,并参数适应自己数据集的过程。

微调的作用

在CNN领域中。很少人自己从头训练一个CNN网络。主要原因上自己很小的概率会拥有足够大的数据集,从头训练,很容易造成过拟合。

所以,一般的操作都是在一个大型的数据集上训练一个模型,然后使用该模型作为类似任务的初始化或者特征提取器。比如VGG,Inception等模型都提供了自己的训练参数,以便人们可以拿来微调。这样既节省了时间和计算资源,又能很快的达到较好的效果。

优点::第一,预训练可以弥补目标数据集没有
足够多的训练样本,并且它是一个有效初始化卷积神
经网络的方法.第二,预训练一定程度上可以加速网络
收敛的速度,减少卷积神经网络的训练时间

10.手工特征提取

从原始输入图像帧中检测运动信息并提取底层特征,
然后对动作进行建模,建立底层特征和动作行为类别
的对应关系,即利用这些特征学习出一个分类器.传统
的手动特征提取方法主要有整体特征提取和局部特征
提取这两大类。

11.鲁棒性

鲁棒性是指系统在不确定性的扰动下,具有保持某种性能不变的能力。

12.描述符

特征是从图像中提取的人类难以理解和关联的数值信息。假设我们将图像视为数据,从数据中提取的信息称为特征。通常,从图像中提取的特征比原始图像的维度要低得多。维数的降低减少了处理图像簇的开销。

基本上,根据应用程序从图像中提取两种类型的特征。它们是局部和全局特征。功能有时被称为描述符。全局描述符通常用于图像检索、对象检测和分类,而局部描述符用于对象识别/识别。检测和识别之间有很大的区别。检测是找出某物/物体的存在(找出一个物体是否存在于图像/视频中),而识别是找出物体的身份(识别一个人/物体)。

全局特征描述图像作为一个整体来概括整个对象,其中局部特征描述对象的图像块(图像中的关键点)。全局特征包括轮廓表示、形状描述符和纹理特征,局部特征表示图像块中的纹理。形状矩阵、不变矩(Hu,Zerinke)、面向直方图的梯度(HOG)和Co-HOG是全局描述符的一些示例。SIFT、SURF、LBP、BRISK、MSER和FREAK是局部描述符的一些示例。

通常,对于诸如对象检测和分类之类的低级应用,使用全局特征,而对于诸如对象识别之类的较高层应用,使用局部特征。全局特征和局部特征的结合提高了识别的准确性,同时也带来了计算开销的副作用。

支持向量机

支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane) 。
SVM使用铰链损失函数(hinge loss)计算经验风险(empirical risk)并在求解系统中加入了正则化项以优化结构风险(structural risk),是一个具有稀疏性和稳健性的分类器 [2] 。SVM可以通过核方法(kernel method)进行非线性分类,是常见的核学习(kernel learning)方法之一 。

单帧图像

单帧图像就是指一幅静止的画面。帧——就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。
单帧就是一幅静止的画面,连续的帧就形成动画,如电视图象等。
一帧里面有很多像素点。
光流一般需要十帧。
在这里插入图片描述

2D卷积与3D卷积

2D卷积输入的是三维数据,对于图片一般是[ width, height, in_channels]
于3D卷积,类推的话需要4维数据[in_depth, in_height, in_width, in_channels]],就是宽和长前面还有一个维度,计算过程如图:这样一看一个卷积核就需要4个维度了,[filter_depth, filter_height, filter_width, in_channels],相当于在depth上也滑动从而得到新的depth。
https://www.cnblogs.com/szxspark/p/8445406.html
所谓一维卷积就是压缩一维数据、二维卷积就是压缩二维数据,三维卷积就是压缩三维数据。

双流网络架构

视频被分解为空间和时间成分。空间成分为单帧,即RGB图像。时间成分为光流,描述了观察者和对象的运动情况。两个独立的识别流在softmax层通过以Multi-SVM L2范式方式进行分数融合(实验评估性能优于平均融合方法),组成了双流网络,显著提高了两个单独流网络的性能。

论文解释说明了什么

论文解释说明了基于深度学习的动作识别的意义与难点,并从模型输入信号的类型和数量、是否结合了传统特征提取方法、模型预训练三个维度详细综述了基于深度学习的动作识别方法。

论文得出的结论是什么

  1. 对于信号类型而言,基于 RGB+OpticalFlow信号流输入的
    双流动作识别模型模。对输入信号数量的不同而言多流和双流动作识别模型的精准度是大于单流模型的动作精准度。

  2. 对于结合传统特征提取方法而言,通过与手动 IDT特征(一种传统特征提取方法)结合大部分的模型的精准度是上升的。

  3. 预训练对深度模型的准确率也是有很大程度提升的。

有什么用

以后我们在做基于深度学习的动作识别时,就可以通过此三个方面来提升模型的准确度。

还可以从哪几个方面调整

  1. 对动作预处理后,可以得到不同的输入类型,而时间流输入类型为光流对计算成本太高,可以想办法进行优化时间流的输入。
  2. 预训练所使用的图像集没有考虑到长时间的运动信息或视频帧之
    间的信息
  3. 需要探索出网络的“新维度”以及不同网络模型之间的融合训练学习方法
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐