基于Deep Learning 的视频识别方法概览

深度学习在最近十来年特别火,几乎是带动AI浪潮的最大贡献者。互联网视频在最近几年也特别火,短视频、视频直播等各种新型UGC模式牢牢抓住了用户的消费心里,成为互联网吸金的又一利器。当这两个火碰在一起,会产生什么样的化学反应呢?

不说具体的技术,先上一张福利图,该图展示了机器对一个视频的认知效果。其总红色的字表示objects, 蓝色的字表示scenes,绿色的字表示activities。

图1

人工智能在视频上的应用主要一个课题是视频理解,努力解决“语义鸿沟”的问题,其中包括了:

    · 视频结构化分析:即是对视频进行帧、超帧、镜头、场景、故事等分割,从而在多个层次上进行处理和表达。

   · 目标检测和跟踪:如车辆跟踪,多是应用在安防领域。

   · 人物识别:识别出视频中出现的人物。

   · 动作识别:Activity Recognition, 识别出视频中人物的动作。

   · 情感语义分析:即观众在观赏某段视频时会产生什么样的心理体验。

短视频、直播视频中大部分承载的是人物+场景+动作+语音的内容信息,如图1所示,如何用有效的特征对其内容进行表达是进行该类视频理解的关键。传统的手工特征有一大堆,目前效果较好的是iDT(Improved
Dense Trajectories) ,在这里就不加讨论了。深度学习对图像内容的表达能力十分不错,在视频的内容表达上也有相应的方法。下面介绍最近几年主流的几种技术方法。

1、基于单帧的识别方法

一种最直接的方法就是将视频进行截帧,然后基于图像粒度(单帧)的进行deep learninig 表达, 如图2所示,视频的某一帧通过网络获得一个识别结果。图2为一个典型的CNN网络,红色矩形是卷积层,绿色是归一化层,蓝色是池化层 ,黄色是全连接层。然而一张图相对整个视频是很小的一部分,特别当这帧图没有那么的具有区分度,或是一些和视频主题无关的图像,则会让分类器摸不着头脑。因此,学习视频时间域上的表达是提高视频识别的主要因素。当然,这在运动性强的视频上才有区分度,在较静止的视频上只能靠图像的特征了。

图2

2、基于CNN扩展网络的识别方法

它的总体思路是在CNN框架中寻找时间域上的某个模式来表达局部运动信息,从而获得总体识别性能的提升。图3是网络结构,它总共有三层,在第一层对10帧 (大概三分之一秒)图像序列进行MxNx3xT的卷积(其中 MxN是图像的分辨率,3是图像的3个颜色通道,T取4,是参与计算的帧数,从而形成在时间轴上4个响应),在第2、3层上进行T=2的时间卷积,那么在第3层包含了这10帧图片的所有的时空信息。该网络在不同时间上的同一层网络参数是共享参数的。

它的总体精度在相对单帧提高了2%左右,特别在运动丰富的视频,如摔角、爬杆等强运动视频类型中有较大幅度的提升,这从而也证明了特征中运动信息对识别是有贡献的。在实现时,这个网络架构可以加入多分辨的处理方法,可以提高速度。

图3

3、双路CNN的识别方法

这个其实就是两个独立的神经网络了,最后再把两个模型的结果平均一下。上面一个就是普通的单帧的CNN,而且文章当中提到了,这个CNN是在ImageNet的数据上pre-train,然后在视频数据上对最后一层进行调参。下面的一个CNN网络,就是把连续几帧的光流叠起来作为CNN的输入。 另外,它利用multi-task learning来克服数据量不足的问题。其实就是CNN的最后一层连到多个softmax的层上,对应不同的数据集,这样就可以在多个数据集上进行multi-task
learning。网络结构如图4所示。

图4

4、基于LSTM的识别方法

它的基本思想是用LSTM对帧的CNN最后一层的激活在时间轴上进行整合。 这里,它没有用CNN全连接层后的最后特征进行融合,是因为全连接层后的高层特征进行池化已经丢失了空间特征在时间轴上的信息。相对于方法2,一方面,它可以对CNN特征进行更长时间的融合,不对处理的帧数加以上限,从而能对更长时长的视频进行表达;另一方面,方法2没有考虑同一次进网络的帧的前后顺序,而本网络通过LSTM引入的记忆单元,可以有效地表达帧的先后顺序。网络结构如图5所示。

图5

图5中红色是卷积网络,灰色是LSTM单元,黄色是softmax分类器。LSTM把每个连续帧的CNN最后一层卷积特征作为输入,从左向右推进时间,从下到上通过5层LSTM,最上的softmax层会每个时间点给出分类结果。同样,该网络在不同时间上的同一层网络参数是共享参数的。在训练时,视频的分类结果在每帧都进行BP(back Propagation),而不是每个clip进行BP。在BP时,后来的帧的梯度的权重会增大,因为在越往后,LSTM的内部状态会含有更多的信息。

在实现时,这个网络架构可以加入光流特征,可以让处理过程容忍对帧进行采样,因为如每秒一帧的采样已经丢失了帧间所隐含的运动信息,光流可以作为补偿。

5、3维卷积核(3D CNN)法

3D CNN 应用于一个视频帧序列图像集合,并不是简单地把图像集合作为多通道来看待输出多个图像(这种方式在卷积和池化后就丢失了时间域的信息,如图6上), 而是让卷积核扩展到时域,卷积在空域和时域同时进行,输出仍然是有机的图像集合(如图6下)。

图6

实现时,将视频分成多个包含16帧的片段作为网络的输入(维数为3 × 16 × 128 × 171)。池化层的卷积核的尺寸是d x k x k, 第一个池化层d=1,是为了保证时间域的信息不要过早地被融合,接下来的池化层的d=2。有所卷积层的卷积核大小为3x3x3,相对其他尺寸的卷积核,达到了精度最优,计算性能最佳。 网络结构如图7所示。这个是学习长度为16帧(采样后)视频片段的基础网络结构。对于一个完整的视频,会被分割成互相覆盖8帧的多个16帧的片段,分别提取他们的fc6特征,然后进行一个简单平均获得一个4096维的向量作为整个视频的特征。

图7

通过可视化最后一个卷积层对一个连续帧序列的特征表达,可以发现,在特征开始着重表达了画面的信息,在特征的后面着重表达的是运动信息,即在运动处有相对显著的特征。如图8。

图8

和单帧图特征在视频测试集上进行对比,3D CNN有更强的区分度,如图9。

图9

6、阿里聚安全内容安全(阿里绿网)

阿里聚安全内容安全阿里绿网基于深度学习技术及阿里巴巴多年的海量数据支撑,
提供多样化的内容识别服务,能有效帮助用户降低违规风险。其产品包括:ECS站点检测服务、OSS图片鉴黄服务、内容检测API服务。针对多媒体内容中的违规视频内容,绿网致力于提供一整套内容安全的垂直视频解决方案。以下是一些诸如图像识别,视频识别(人物动作识别)公开的训练、评测数据集。

    · UCF-101

一共13320个视频, 共101个类别。

    · HMDB51

一共7000个视频片段,共51个类别。

    · activity-net

200类,10,024个训练视频,4,926个交叉验证视频,5,044 个测试视频。

    · 1M sport

1.2 million个体育视频,有487个已标记的类,每类有1000到3000个视频。

参考资料

[1] Large-scale Video Classification with Convolutional Neural Networks

[2] Two-stream convolutional networks for action recognition in videos

[3] Beyond Short Snippets: Deep Networks for Video Classification

[4] Learning Spatiotemporal Features with 3D Convolutional Networks

[5] https://clarifai.com/

作者:析策@阿里安全,更多技术文章,请访问阿里聚安全博客

时间: 2024-10-11 17:53:08

基于Deep Learning 的视频识别方法概览的相关文章

深度学习之(十一)Deep learning中的优化方法:随机梯度下降、受限的BFGS、共轭梯度法

Deep learning中的优化方法 三种常见优化算法:SGD(随机梯度下降),LBFGS(受限的BFGS),CG(共轭梯度法). 1.SGD(随机梯度下降) 随机梯度下降(Stochastic Gradient Descent, SGD)是随机和优化相结合的产物,是一种很神奇的优化方法,属于梯度下降的一种,适用于大规模问题. 要想扯清楚它,还得先谈谈梯度下降.众所周知,每个优化问题都会有一个目标函数F(w)F(w),梯度下降采用迭代的策略,从初始点w0w0开始,每次沿着目标函数在当前点的负梯

深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统

作者: 寒小阳 && 龙心尘 时间:2016年3月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/50856583 http://blog.csdn.net/longxinchen_ml/article/details/50903658 声明:版权所有,转载请联系作者并注明出处 1.重点内容引言 本系统是基于CVPR2015的论文<Deep Learning of Binary Hash Codes for Fast Im

基于统计的中文实体识别方法简述

命名实体识别(NER)是自然语言处理的一个基础任务,其目的是识别出语料中的人名.地名.组织机构名等命名实体,一般包括三大类(实体类.时间类和数字类)和七小类(人名.地名.机构名.时间.日期.货币和百分比).NER是信息抽取.机器翻译.知识图谱等多种自然语言处理任务必不可少的组成部分. NER方法大致可分为两类:基于规则的方法和基于统计的方法.基于规则的方法多采用语言学家手工构造规则模板,这类系统大多依赖于知识库和词典,需要人工建立实体识别规则,成本高且可移植性差.基于统计的方法一般需要语料库来进

一种基于词性序列的人名识别方法

在人名识别:[我, 爱, 杨, 尚, 川] 中,爱.杨.尚都是姓,会有多个识别结果,那么我们如何消歧并选择一个最合理的结果呢? 下面看看人名识别:[我, 爱, 杨, 尚, 川] 的计算机分析过程,此过程的分析程序出自Java分布式中文分词组件 - word分词: 人名识别:[我, 爱, 杨, 尚, 川] 识别到人名:爱杨尚 识别到人名:杨尚川 识别到人名:尚川 开始从多个识别结果中选择一个最佳的结果:[[我, 爱杨尚/nr, 川], [我, 爱, 杨尚川/nr], [我, 爱, 杨, 尚川/nr

Deep Learning入门视频(下)之关于《感受神经网络》两节中的代码解释

代码1如下: #深度学习入门课程之感受神经网络(上)代码解释: import numpy as np import matplotlib.pyplot as plt #matplotlib是一个库,pyplot是其中一个模块 #%matplotlib inline 适用于在ipython notebook中进行绘图内嵌说明,由于我在Pycharm上写的,应此不需要这条以及下面的几个命令 plt.rcParams['figure.figsize'] = (10.0,8.0) #创建一个10*8大小

Deep learning:四十三(用Hessian Free方法训练Deep Network)

Deep learning:四十三(用Hessian Free方法训练Deep Network) 2016-03-13 15:14:01 mydear_11000 阅读数 912更多 分类专栏: 机器学习 深度学习 tornadomeet 目前,深度网络(Deep Nets)权值训练的主流方法还是梯度下降法(结合BP算法),当然在此之前可以用无监督的方法(比如说RBM,Autoencoder)来预训练参数的权值,而梯度下降法应用在深度网络中的一个缺点是权值的迭代变化值会很小,很容易收敛到的局部最

实验报告: 人脸识别方法回顾与实验分析 【OpenCV测试方法源码】

趁着还未工作,先把过去做的东西整理下出来~   Github源码:https://github.com/Blz-Galaxy/OpenCV-Face-Recognition (涉及个人隐私,源码不包含测试样本,请谅解~) 对实验结果更感兴趣的朋友请直接看 第5章 [摘要]这是一篇关于人脸识别方法的实验报告.报告首先回顾了人脸识别研究的发展历程及基本分类:随后对人脸识别技术方法发展过程中一些经典的流行的方法进行了详细的阐述:最后作者通过设计实验对比了三种方法的识别效果并总结了人脸识别所面临的困难与

【论文笔记】A Review on Deep Learning Techniques Applied to Semantic Segmentation

A Review on Deep Learning Techniques Applied to Semantic Segmentation 2018-02-22  10:38:12   1. Introduction: 语义分割是计算机视觉当中非常重要的一个课题,其广泛的应用于各种类型的数据,如:2D image,video,and even 3D or volumetric data. 最近基于 deep learning 的方法,取得了非常巨大的进展,在语义分割上也是遥遥领先于传统算法. 本

二维物体形状识别方法比较

摘  要  针对模式识别中二维物体的形状识别问题,以二值图像中的物体形状为主要研究对象,依次从特征提取.分类器设计两个主要层面对形状识别方法进行了全面综述,并分析了国内外研究现状,特别是近年来所取得的最新研究成果.最后,指出了目前存在的问题以及今后的研究方向. 关键词  物体形状识别:特征提取:分类器设计 中图法分类号  TP391.41 Comparison on methods of 2D object shape recognition Abstract: In view of two-d