作者 | FesianXu

百度工程师漫谈视频理解

导读

AI算法现已渗入到了咱们日子的方方面面,不管是购物引荐,广告推送,搜索引擎仍是多媒体影音文娱,都有AI算法的影子。作为多媒体中重要的信息载体,视频的地位能够说是数一数二的,可是现在关于AI算法在视频上的运用还不够成熟,了解视频内容依然是一个重要的问题亟待解决霸占。本文对视频了解进行一些评论,尽管仅仅笔者对互联网的一些定见的汇总和漫谈,有些内容是笔者自己的学习所得,期望仍是能对诸位读者有所协助。

全文37074字,预计阅览时刻93分钟。

为什么是视频

以视频为代表的动态多媒体,结合了音频,视频,是其时的,更是未来的互联网流量之王。 依据来自于国家互联网信息办公室的我国互联网络开展状况核算报告[1]

到 2018 年 12 月,网络视频、网络音乐和网络游戏的用户规划别离为 6.12 亿、5.76 亿和 4.84 亿,运用率别离为 73.9%、69.5%和 58.4%。短视频用户规划达 6.48 亿,网民运用比例为 78.2%。到 2018 年 12 月,网络视频用户规划达 6.12 亿,较 2017 年底添加 3309 万,占网民 全体的 73.9%;手机网络视频用户规划达 5.90 亿,较 2017 年底添加 4101 万,占手机 网民的 72.2%。

其间各类运用运用时长占比方图Fig 1.1所示:

百度工程师漫谈视频理解

Fig 1.1 2018年各类运用运用时长占比。

咱们很简略发现,包含短视频在内的视频用户时长占有了约20%的用户时长,占有了绝大多数的流量,一起网络视频用户的规划也在逐年添加。

互联网早已不是咱们20年前滴滴答答拨号上网时期的互联网了,互联网的接入速率日积月累,如Fig 1.2所示。视频作为与人类日常感知最为挨近的办法,比起独自的图片和音频,文本,能在单位时刻内传递更多的信息,然后有着更宽广的用户黏性。在单位流量日渐廉价,而且速度逐步进步的年代,视频,将会撑起未来媒体的大旗。

百度工程师漫谈视频理解

Fig 1.2 固定带宽/4G均匀下载速率改变曲线

确实,咱们现在是不缺视频的年代,咱们有的是数据,大型公司有着宽广的用户根底,每天发生着海量的数据,这些海量的数据,可是是能够发生十分巨大的价值的。以色列历史学家尤瓦尔赫拉利在其畅销书《未来简史》和《今日简史》中,描绘过一种未来的社会,在那个社会中,数据是虚拟的黄金,独占着数据的公司成为未来的umbrella公司,控制着人们的一言一行,人们终究成为了数据和算法的奴隶。尽管这个描绘过于骇人和科幻,可是这些都并不是空穴来风,咱们能知道的是,从数据中,咱们确实能够做到许多作业,咱们能够通过数据进行用户画像描绘,知道某个用户的各个特色信息,知道他或她喜爱什么,憎恶什么,去过何处,欲往何方。咱们依据用户画像进行精确的广告推送,让依据大数据的算法在无形中控制你的购物习气也不是不或许的作业。数据确实十分重要,可是惋惜的是,现在AI算法在视频——这个未来媒体之王上的体现尚不是十分理想(其时在sports-1M上的R(2+1)D模型[7]的体现缺乏80%,不到能够有用的精度。),仍有许多问题亟待解决,可是未来可期,咱们能够预想到,在视频上,咱们终能成果一番作业。

了解视频——嗯,很复杂

运用视频数据的终究方针是让算法了解视频。了解视频(understanding the video) 是一件十分笼统的作业,在神经科学尚没有彻底明晰的现在,假如依照人类感知去了解这个词,咱们终将陷入泥淖。咱们得详细点,在了解视频这个使命中,咱们到底在做什么?首要,咱们要知道比照于文本,图片和音频,视频有什么特色。视频它是动态的依照时刻排序的图片序列,可是图片帧间有着亲近的联络,存在上下文联络;视频它有音频信息。因而进行视频了解,咱们势必需求进行时刻序列上的建模,一起还需求空间上的联系安排。

就现在来说,了解视频有着许多详细的子使命:

  1. 视频动作分类:对视频中的动作进行分类

  2. 视频动作定位:辨认原始视频中某个动作的开端帧和完毕帧

  3. 视频场景辨认:对视频中的场景进行分类

  4. 原子动作提取

  5. 视频文字阐明(Video Caption):给给定视频配上文字阐明,常用于视频简介主动生成和跨媒体检索

  6. 集群动作了解:对某个团体活动进行动作分类,常见的包含排球,篮球场景等,可用于团体动作中要害动作,高亮动作的捕获。

  7. 视频修改。

  8. 视频问答系统(Video QA):给定一个问题,系统依据给定的视频片段主动答复

  9. 视频盯梢:盯梢视频中的某个物体运动轨道

  10. 视频事件了解:不同于动作,动作是一个更为短时刻的活动,而事件或许会触及到更长的时刻依靠

当然了解视频不仅仅是以上列出的几种,这些使命在咱们日子中都能方方面面有所体现,就现在而言,了解视频能够看成是解决以上说到的种种问题。

一般来说,现在的了解视频首要集中在以人为中心的视点进行的,又由于视频自身是动态的,因而描绘视频中的物体随着时刻改变,在进行什么动作是一个很重要的使命,能够以为动作辨认在视频了解中占有了一个很重要的地位。因而本文的了解视频将会和视频动作了解大致地等价起来,这样或许未免过于粗略,不过仍是能供给一些评论的当地的。

视频剖析的首要难点集中在:

  1. 需求许多的算力,视频的巨细远大于图片数据,需求更大的算力进行核算。
  2. 低质量,许多实在视频拍摄时有着较大的运动模糊,遮挡,分辨率低下,或许光照不良等问题,简略对模型构成较大的干扰。
  3. 需求许多的数据标签!特别是在深度学习中,对视频的时序信息建模需求海量的练习数据才干进行。时刻轴不仅仅是添加了一个维度那么简略,其比照图片数据带来了时序剖析,因果剖析等问题。

视频动作了解——新手村

视频数据模态

可是视频动作了解也是一个十分宽广的研讨范畴,咱们输入的视频办法也纷歧定是咱们常见的RGB视频,还或许是depth深度图序列,Skeleton关节点信息,IR红外光谱等。

百度工程师漫谈视频理解

Fig 3.1 多种模态的视频办法

就现在而言,RGB视频是最为易得的模态,可是随着许多深度摄像头的流行,深度图序列和骨骼点序列的获得也变得简略起来[2]。深度图和骨骼点序列比照RGB视频来说,其对光照的敏感性较低,数据冗余较低,有着许多长处。

关于骨骼点序列的搜集能够参阅以前的博文[2]。咱们在本文评论的比较多的仍是依据RGB视频模态的算法。


视频动作分类数据集

现在公开的视频动作分类数据集有许多,比较流行的in-wild数据集首要是在YouTube上搜集到的,包含以下的几个。

  • HMDB-51,该数据集在YouTube和Google视频上搜集,共有6849个视频片段,共有51个动作类别。

  • UCF101,有着101个动作类别,13320个视频片段,大规范的摄像头姿势改变,光照改变,视角改变和布景改变。

百度工程师漫谈视频理解

  • sport-1M,也是在YouTube上搜集的,有着1,133,157 个视频,487个运动标签。

百度工程师漫谈视频理解

  • YouTube-8M, 有着6.1M个视频,3862个机器主动生成的视频标签,均匀一个视频有着三个标签。

  • YouTube-8M Segments[3],是YouTube-8M的扩展,其使命能够用在视频动作定位,分段(Segment,寻找某个动作的发生点和停止点),其间有237K个人工确认过的分段标签,共有1000个动作类别,均匀每个视频有5个分段。该数据集鼓励研讨者运用许多的带噪音的视频等级的标签的练习集数据去练习模型,以进行动作时刻段定位。

百度工程师漫谈视频理解

  • Kinectics 700,这个系列的数据集相同是个巨无霸,有着挨近650,000个样本,掩盖着700个动作类别。每个动作类别至少有着600个视频片段样本。

以上的数据集模态都是RGB视频,还有些数据集是多模态的:

  • NTU RGB+D 60: 包含有60个动作,多个视角,共有约50k个样本片段,视频模态有RGB视频,深度图序列,骨骼点信息,红外图序列等。
  • NTU RGB+D 120:是NTU RGB+D 60的扩展,共有120个动作,包含有多个人-人交互,人-物交互动作,共有约110k个样本,相同是多模态的数据集。

在深度学习之前

视频长度不定,一般咱们不直接对整段视频进行剖析或许处理,咱们一般对视频进行采样,比方把整段视频分红若干个片段(clip),这些片段或许是定长的,比方每个片段都是10帧,也或许不是,咱们一般会对每个片段进行处理,然后想办法把不同片段的处理成果交融起来,构成终究对整个视频的处理成果。不论怎样样,咱们在接下来说的片段时,咱们就应该知道这个片段是对某个视频的采样。

在深度学习之前,CV算法工程师是特征工程师,咱们手动规划特征,而这是一个十分困难的作业。手动规划特征而且运用在视频分类的首要套路有:

特征规划:挑选适宜的特征描绘视频

  1. 部分特征(Local features):比方HOG(梯度直方图 )+ HOF(光流直方图)
  2. 依据轨道的(Trajectory-based):Motion Boundary Histograms(MBH)[4],improved Dense Trajectories (iDT) ——有着杰出的体现,不过核算复杂度过高。

集成挑选好的部分特征: 光是部分特征或许依据轨道的特征缺乏以描绘视频的大局信息,一般需求用某种办法集成这些特征。

  1. 视觉词袋(Bag of Visual Words,BoVW),BoVW供给了一种通用的通过部分特征来结构大局特征的结构,其遭到了文本处理中的词袋(Bag of Word,BoW)的启示,首要在于结构词袋(也便是字典,码表)等。

百度工程师漫谈视频理解

  1. Fisher Vector,FV相同是通过集成部分特征结构大局特征表征。详细详细内容见[5]

百度工程师漫谈视频理解

要表征视频的时序信息,咱们首要需求表征的是动作的运动(motion)信息,这个信息通过帧间在时刻轴上的改变体现出来,一般咱们能够用光流(optical flow)进行描绘,如TVL1和DeepFlow。

百度工程师漫谈视频理解

在深度学习来临之前,这些传统的CV算法在视频动作了解中占了首要地位,即便是如今在深度学习大行其道的年代,这些传统的算子也没有彻底退出舞台,许多算法比方Two Stream Network等仍是会显式地去运用其间的一些算子,比方光流,比方C3D也会运用iDT作为辅佐的特征。了解,学习研讨这些算子关于视频剖析来说,仍是必要的。


深度学习年代

在深度学习年代,视频动作了解的首要作业量在于怎样规划适宜的深度网络,而不是手动规划特征。咱们在规划这样的深度网络的进程中,需求考虑两个方面内容:

  1. 模型方面:什么模型能够最好的从现有的数据中捕获时序和空间信息。
  2. 核算量方面:怎样在不献身过多的精度的状况下,减少模型的核算量。

安排时序信息是构建视频了解模型的一个要害点,Fig 3.2展示了若干或许的对多帧信息的安排办法。[6]

  1. Single Frame,仅仅考虑了其时帧的特征,只在终究阶段交融一切的帧的信息。
  2. Late Fusion,晚交融运用了两个同享参数的特征提取网络(一般是CNN)进行相隔15帧的两个视频帧的特征提取,相同也是在终究阶段才结合这两帧的猜测成果。
  3. Early Fusion,早交融在第一层就对接连的10帧进行特征交融。
  4. Slow Fusion,慢交融的时序感知野更大,一起在多个阶段都包含了帧间的信息交融,伴有层次(hierarchy)般的信息。这是对早交融和晚交融的一种平衡。

在终究的猜测阶段,咱们从整个视频中采样若各个片段,咱们对这采样的片段进行动作类别猜测,其均匀或许投票将作为终究的视频猜测成果。

百度工程师漫谈视频理解

Fig 3.2 交融多帧信息的不同办法。

终究若干个帧间信息交融的办法在sport-1M测验集上的成果如Fig 3.3所示:

百度工程师漫谈视频理解

Fig 3.3 不同帧间交融办法在sport-1M数据集上的体现。

其他说句,[6]的作者从试验成果中发现即便是时序信息建模很弱的Single-Frame办法其精确率也很高,即便是在很需求motion信息的sports体育动作类别上,这个阐明不仅仅是motion信息,单帧的appearance信息也是十分重要的。

这种在单帧层面用CNN进行特征提取,在时序方面用交融池化不同片段的猜测的办法,在理论上,是分不清楚“开门”和“关门”两种动作的,由于其本质上没有对时序因果信息进行建模,仅仅交融了不同片段的猜测成果而已。疏忽了时刻结构信息,这是交融办法的一种潜在缺陷。

考虑到交融办法并不能考虑到时序因果信息,时刻结构信息被疏忽了[13],咱们需求从头思考新的时序信息提取办法。咱们知道,这些交融办法,都是手动规划的交融帧间特征的办法,而深度学习网络底子上只在提取单帧特征上发挥了作用。这样或许不够合理,咱们期望规划一个深度网络能够进行端到端的学习,不管是时序信息仍是空间信息。所以咱们想到,既然视频序列和文本序列,语音序列相同,都是序列,为什么咱们不测验用RNN去处理呢?

确实是能够的,咱们能够结合CNN和RNN,直接把视频序列作为端到端的办法进行模型学习。规划这类模型,咱们有几种挑选能够挑选:

  1. 考虑输入的数据模态:a> RGB; b> 光流; c> 光流+RGB
  2. 特征: a> 人工规划; b> 通过CNN进行特征提取
  3. 时序特征集成:a> 时序池化; b> 用RNN系列网络进行安排

时序池化如Fig 3.4所示,类似于咱们之前评论的时序交融,不过在细节上不太相同,这儿不展开评论了,详细见文章[8]。

百度工程师漫谈视频理解

Fig 3.4 不同办法的时序池化。

可是,[8]的作者得出的定论是时序池化比LSTM进行时序信息安排的作用好,这个定论可是并不是精确的,由于[8]的作者并不是端到端去练习整个网络。

假如单纯考虑CNN+RNN的端到端练习的办法,那么咱们就有了LRCN网络[9],如Fig 3.5所示,咱们能够发现其和[8]的不同在于其是彻底的端到端网络,不管是时序和空间信息都是能够端到端练习的。相同的,[9]的作者的输入相同进行了若干种结合,有单纯输入RGB视频,单纯输入光流,结合输入光流和RGB的,定论发现结合输入光流和RGB的作用最为优胜。这点其实值得细品,咱们知道光流信息是传统CV中对运动motion信息的手艺规划的特征,需求额外弥补光流信息,阐明光靠这种朴素的LSTM的结构去学习视频的时序信息,motion信息是不满足的,这点也在侧面反映了视频的时序安排的困难性。

百度工程师漫谈视频理解

Fig 3.5 LRCN网络运用在动作辨认问题。

比照之后咱们将会谈到的C3D网络,CNN+RNN的这种网络结构意味着咱们能够运用ImageNet的海量标示图画数据去预练习CNN网络,这样使得咱们模型功能更佳优胜而且收敛愈加安稳,事实上,假如彻底从头练习LRCN网络(from scratch),那么依照笔者的经历是练习进程很不安稳,很简略发散,一般实践中咱们都会选用现现已过预练习了的CNN作为特征提取器,然后固定住CNN后练习LSTM直至收敛后,再用较小的学习率端到端练习整个网络。

LRCN当然不可避免存在缺陷,选用了光流信息作为输入意味着需求许多的预先核算用于核算视频的光流;而视频序列的长时刻依靠,motion信息或许很难被LSTM捕获;一起,由于需求把整个视频分红若干个片段,对片段进行猜测,在终究均匀输出得到终究的视频等级的猜测成果,因而假如标示的动作只占视频的很小一段,那么模型很难捕获到需求的信息。

结合光流信息并不是LRCN系列网络的专利,Two Stream Network双流网络[10]也是结合视频的光流信息的能手。在双流网络中,咱们相同需求对整个视频序列进行采样,得到若干个片段,然后咱们从每个片段中核算得到光流信息作为motion信息描绘这个动作的运动,然后从这个片段中采样得到一帧图画作为代表(一般是最中心的帧,片段长度一般是10),表征整个片段的appearance信息。终究别离在motion流和appearance流都得到各自的分类成果,在终究层里进行各自分类成果的交融得到整个片段的猜测成果。这种显式地运用光流来安排时序信息,把motion流和appearance流显式地切割开进行模型安排的,也是一大思路。

百度工程师漫谈视频理解

Fig 3.6 双流网络的网络暗示图,需求输入视频的光流信息作为motion信息,和其间某个采样得到的单帧信息作为appearance信息。

百度工程师漫谈视频理解

这儿需求注意一些其间的技术细节,否则后边评论咱们或许会发生疑惑。咱们的光流别离需求对x和y方向进行核算,因而关于同一张图而言,会发生x方向的光流和y方向的光流,如上图的(d)和(e)所示。因而,在实践中,假如咱们取片段长度L=10L=10,那么关于一个片段咱们便会有20个光流通道,因而咱们的motion流的输入张量规范为(batch_size,224,224,20)(batch\_size, 224,224,20),而appearance流的输入张量规范为(batch_size,224,224,3)(batch\_size, 224,224,3)。咱们发现motion流的通道数为20,不能直接用在通过ImageNet预练习过后的模型进行初始化,由于一般ImageNet上预练习的模型的输入通道都是3。为了解决这个问题,咱们能够用通过ImageNet预练习的模型,比方VGG的第一层卷积层,比方为kernel=(3,3,3,64)kernel = (3,3,3,64),在输入通道那个阶求均匀,也便是kernel.mean(dim=2)kernel.mean(dim=2),然后得到一个规范如(3,3,1,64)(3,3,1,64)的张量,用这个张量去初始化咱们的motion流的输入的第一层卷积,这样尽管咱们的motion流有20个输入通道,可是这个20个输入通道的参数是初始化为相同的。除掉第一层卷积层,其他后续的层持续沿袭通过预练习的VGG的层。因而,motion流和appearance流终究的输出特征图张量规范都是共同的,举个例子比方是(batch_size,64,64,256)(batch\_size, 64,64,256)。那么咱们别离对每个流都猜测一个成果,然后对这个成果进行交融,比方求均匀,得到对这个片段的终究辨认成果。

当然,LRCN具有的问题,双流网络相同也有,包含核算光流的核算复杂度麻烦,采样片段中或许存在的错误标签问题(也便是采样的片段或许并不是和视频等级有着相同的标签,或许和视频等级的标示相符合的动作只占整个视频的很小一段。)对长时刻依靠的动作信息安排也是一个大问题。可是,由于双流网络两个流首要都是用2D卷积网络进行特征提取,意味着咱们相同能够运用在ImageNet上通过预练习的模型作为杰出的参数初始化,这是双流网络的一大长处。

到现在为止,咱们都是测验对视频的单帧运用2D卷积操作进行特征提取,然后在时刻轴上进行堆叠得到终究的含有时刻序列信息的特征。

百度工程师漫谈视频理解

咱们天然就会想到,假如有一种卷积,能在提取空间信息的一起又能够提取时序信息,那岂不是不需求手艺去堆叠时序特征了?一步到位就行了。确实的,咱们把这种卷积称之为3D卷积,3D卷积正如其名,其每个卷积核有三个维度,两个在空间域上平移,而另一个在时刻轴上滑动卷积。

百度工程师漫谈视频理解

这样的作业能够追溯到2012年的文章[11],那该文章中,作者提出的网络不是端到端可练习的,相同规划了手艺的特征,称之为input-hardwired,作者把原视频的灰度图,沿着x方向的梯度图,沿着y方向的梯度图,沿着x方向的光流图,沿着y方向的光流图堆叠层H1层,然后进行3D卷积得到终究的分类成果。假如咱们细心观察Fig 3.7中的3D卷积核的规范,咱们发现其不是咱们现在常见的3333\times3\times3的规范。这个网络创始了3D卷积在视频上运用的先河,可是其也有不少缺陷,第一便是其不是端到端可练习的,仍是触及到了手艺规划的特征,其二便是其规划的3D卷积核规范并不是最为适宜的,启示自VGG的网络规划准则,咱们期望把单层的卷积核尽或许的小,尽量把网络规划得深一些。

百度工程师漫谈视频理解

Fig 3.7 3D卷积网络的最初测验。

这些缺陷带来了C3D[12]网络,与[11]最大的不同便是,C3D其运用的卷积核都是相同的规范巨细,为3333\times3\times3,而且其不触及到任何手艺规划特征输入,因而是彻底的端到端可练习的,作者测验把网络规划得更深一些,终究到达了其时的SOTA(state-of-the-art)成果。作者发现结合了iDT特征,其成果能有5%的大幅度进步(在ufc101-split1数据上从85.2%到90.4%)。

百度工程师漫谈视频理解

Fig 3.8 C3D网络框图暗示。

百度工程师漫谈视频理解

Fig 3.9 3D卷积动图暗示。

尽管在其时C3D到达了SOTA成果,其仍是有许多能够改善的当地的,比方其对长时刻的依靠依然不能很好地建模,可是最大的问题是,C3D的参数量很大,导致整个模型的容量很大,需求许多的标签数据用于练习,而且,咱们发现3D卷积很难在现有的大规划图片数据集比方ImageNet上进行预练习,这样导致咱们常常需求从头练习C3D,假如业务数据集很小,那么常常C3D会发生严重的过拟合。随着大规划视频动作了解数据集的陆续推出,比方Kinectics[13]的推出,供给了很好的3D卷积网络pre-train的场景,因而这个问题得到了一些缓解。咱们知道许多医疗影像都能够看成是类似于视频相同的媒体,比方MRI核磁共振,断层扫描等,咱们相同能够用3D卷积网络对医学图画进行特征提取,不过笔者查阅了资料之后,依然不清楚是否在大规划动作辨认数据集上进行预练习对医学图画的练习有所协助,究竟医学图画的时序语义和一般视频的时序语义不同很大,个人感觉或许在大规划动作辨认数据集上的预练习关于医学图画协助不大。

C3D系列的网络是彻底的3D卷积网络,缺陷在于其参数量巨大,呈现的是3次方等级的增加,即便是在预练习场景中,也需求巨大的数据才干hold住。为了缓解这个问题,有一系列作业测验把3D卷积分化为2D卷积和1D卷积,其间的2D卷积对空间信息进行提取,1D卷积对时序信息进行提取。典型的3D分化网络有FSTCNF_{ST}CN [14], 其网络暗示图如Fig 3.10所示。

百度工程师漫谈视频理解

Fig 3.10 FstCN 网络的结构框图。

Pseudo-3D ResNet(P3D ResNet)网络[15]则在学习ResNet的残差规划的路上越走越远,其底子的结构块如Fig 3.11所示。这个战略使得网络能够规划得更深,参数量却更少,可是功能体现却能到达SOTA成果,如Fig 3.12和Fig 3.13所示。

百度工程师漫谈视频理解

Fig 3.11 组成P3D的3种底子单元,别离是P3D-A,P3D-B,P3D-C。

百度工程师漫谈视频理解

Fig 3.12 P3D ResNet比C3D的模型更小,深度更深,体现功能却更高。

百度工程师漫谈视频理解

Fig 3.13 在UCF101上,许多模型的体现,P3D ResNet有着超卓的体现。

不仅如此,将3D分化成2D+1D的操作使得其在图画数据集上预练习成为了或许。(尽管这种预练习或许并没有LRCN和双流网络这种直观)

百度工程师漫谈视频理解

在文章[7]中,作者提出了R(2+1)D网络,作者比照了一系列不同的2D+1D的分化操作,包含一系列2D+3D的操作,如Fig 3.14所示。与P3D ResNet[15]不同的是,R(2+1)D选用了结构相同的单元,如Fig 3.15所示,而不像P3D中有3种不同的残差块规划。这种规划简化了规划,一起到达了SOTA作用。

百度工程师漫谈视频理解

Fig 3.14 许多结合2D卷积和3D卷积的办法,其间试验发现R(2+1)D作用最佳。

百度工程师漫谈视频理解

Fig 3.15 (2+1)D conv单元暗示图,把3D卷积进行分化成了空间域卷积和时刻域卷积。

至此,咱们评论了视频动作辨认中的若干根底思路:1.通过CNN+RNN;2.通过双流,显式地切割motion信息流和appearance信息流;3.通过3D卷积进行直接空间时刻信息提取。

咱们的旅途就到此为止了吗?不,咱们刚出新手村呐,咱们的冒险才刚刚开端,咱们后续评论的网络,或多或少遭到了以上几种模型的启示,或许将以上几种模型交融起来进行改造,或添加了新的亮点,比方加入了attention注意力机制,self-attention自注意力机制等。

不过咱们不妨暂且在本站结束做个小总结:视频剖析难,难在其特征不仅仅是2D图画中的二维特征了,二维特征图画现在有着多种大规划的图画数据集能够供给预练习,而且对图画进行人工标示,在许多使命中都比对视频标示作业量要小。正由于超大规划的图画标示数据集的推出,使得许多图画问题在深度学习办法加持下得到了快速的开展,在某些范畴乃至现已超过了人类。

可是视频剖析不同,视频是有一系列语义上有联络的单帧二维图画在时刻轴上叠加而成的,而提取时序语义信息是一件不简略的作业,种种试验证明,现存的深度网络在提取时序语义特征上并没有体现得那么好,否则就不需求人工规划的光流特征进行加持了。深度网络在时序特征提取上的缺失,笔者以为大致有几种原因:

  1. 标示了的视频数据量缺乏。
  2. 时序信息的散布改变比二维图画散布更为多样,关于图画,咱们能够进行插值,采样进行图画的缩放,只需不是缩放的十分过分,人类一般仍是能正常辨认图画的内容。而视频帧间插帧却是一件更为困难的作业。因而不同长度之间的视频之间要进行适配自身便是比较困难的作业。当然你能够进行视频时序下采样,可是假如要害帧没有被采样出来,那么就会构成有用信息的丢掉,相反,图画的缩放比较少会呈现这种问题。说回到时序信息的散布的多样性就体现在这儿,同一个动作,发生的长度或许天壤之别,所构成的时序是十分复杂的,需求安排不同长度的时序之间的对齐,使得安排动作的motion变得很不简略,更别说不同人的同一个动作的motion或许千差万别,触及到了原子动作的分化。

标示的视频数据量缺乏并纷歧定体现在视频等级的标示少,带有动作标签的视频等级的数据或许并不少,可是这些视频或许并没有进行过裁剪,中心有着太多非标示动作类别相关的内容。对视频进行动作发生时段的精确认位需求十分多的人工,因而标示视频变得比较困难。一起,一个视频中或许呈现多个人物,而假如咱们只重视某个人物的动作,对其进行动作标示,假如在样本缺乏的状况下,便很难让模型学习到实在的动作执行人,因而对视频的标示,单纯是视频等级的动作标示是十分弱的一种标示(weak-supervision)。咱们或许还需求对一个视频进行多种标示,比方定位,动作类别,执行人bounding-box等等。

一起,给视频标示的信息也纷歧定精确,标签自身或许是带有噪声的。有许多标签或许来自于视频分类的tag,这些tag分类信息大多数来自于视频自身的上传者,是上传者自己指定的,或许存在有较大的噪声,可是这类型的数据量十分巨大,不运用却又过于惋惜。类似于这种tag标签,现在弹幕网站的弹幕也是一种潜在的能够运用的带噪声的标签。

随着海量的无标签或许弱标签,带噪声标签在互联网上的日积月累,在视频数据上,弱监督学习,带噪声的标签的监督学习,自监督学习,半监督学习将有宽广的空间。

视频动作了解——更进一步

咱们在上一站现已对底子的视频动作了解的结构有了底子了解,考虑到模型需求对时空信息进行建模,归结起来无非有三种大思路,如Fig 4.1所示:

  1. CNN+RNN: 这种类型的网络以LRCN[9]为代表,运用CNN提取单帧图片的空间特征,然后运用RNN系列的网络对提取好的单帧图片特征进行时序建模,终究得到视频片段的猜测成果。

    • 长处:能够直接天然地运用在大规划图画数据集比方ImageNet上的预练习成果。
    • 缺陷:后端的RNN网络是对高层次的语义特征进行建模,关于低层次的运动motion特征则爱莫能助,由于低层次的motion信息许多时候都取决于了前端的CNN的才干,而前端的CNN在此刻并没有motion建模的才干。

    总结: 因而,LRCN系列的网络关于单帧appearance不同显着的数据集,体现或许会更为理想。模型参数量在三种底子模型中最小。

  2. 3D-ConvNet : 3D卷积网络以C3D[12]为典型代表,将2D卷积核在时刻方向延伸了一个维度,天然地构成了3D卷积核,以期望用3D卷积核的层叠学习到视频的时空语义特征。

    • 长处:是2D卷积的天然延伸,一站式地学习motion和appearance信息,能理论上实在做到时空语义的提取。
    • 缺陷:参数量是3次方等级的,参数量过大,简略导致过拟合。不能直接地运用在图画数据集上的预练习模型进行初始化模型参数。

    总结 : 3D卷积网络在高维医学图画和视频剖析中都有宽广的运用,其存在许多测验分化3D卷积成2D+1D卷积的操作,而且都有不错的作用。模型参数量在三种底子模型中最大。

  3. Two-Stream: 双流网络[]显式地切割了motion流和appearance流两种信息,(大部分)运用人工规划的光流特征进行视频的motion信息建模,用RGB片段的单帧信息作为appearance信息,运用预练习的CNN进行特征提取后,交融不同流的猜测成果得到终究视频片段的猜测。

    • 长处:能够直接天然地运用预练习的大多数CNN网络,如VGG,ResNet等。作用杰出,现在许多作业都是依据双流网络进行改造而成。直接用光流信息去建模motion信息,使得在较小样本的数据集中也能有不错作用。
    • 缺陷:大部分作业的光流信息都是需求预练习的,这样无法供给一个端到端的预练习场景,一起,光流核算消耗较多的核算资源。

    总结: 双流网络是现在动作辨认范畴较为常用的底子模型,其作用杰出,模型参数量在三种底子模型之间。

百度工程师漫谈视频理解

Fig 4.1 三种底子的对视频动作进行剖析的模型结构。

以上的总结其实也阐明晰在视频动作了解中的几个底子难题:

  1. 怎样高效运用现已在大规划图画数据集ImageNet上现已预练习好了的网络,对视频了解模型进行初始化?
  2. 视频长度一般是变长的,常常需求做片段采样,那么咱们怎样对样本采样比较适宜?
  3. 光流预核算需求花费许多核算资源,而且不能进行端到端练习。
  4. 怎样更好地安排motion和appearance信息的联系?
  5. 关于双流网络的流信息交融来说,以什么办法交融?在哪个层交融能获得最好作用?

那么咱们接下来的内容,底子上都是在答复这些问题。Follow my lead and go on~

双流网络的信息交融——怎样交融,何处交融

时空域信息交融

百度工程师漫谈视频理解

咱们之前谈到过,咱们一般的双流网络的输出不管是motion流仍是appearance流,其终究一层的输出张量规范都是共同的,咱们能够用式子(4.1)表明:

xta∈RHWDxtb∈RH′W′D′(4.1)\mathbf{x}_{t}^a \in \mathbb{R}^{H \times W \times D} \\ \mathbf{x}_{t}^b \in \mathbb{R}^{H^{\prime} \times W^{\prime} \times D^{\prime}} \tag{4.1}

其间xta\mathbf{x}_t^a表明motion流特征输出,xtb\mathbf{x}_{t}^b表明appearance流特征输出, HH表明height,WW是width, DD表明终究输出通道数depth。咱们对两个流的信息交融能够表明为(4.2)

f:xta,xtb→ytyt∈RH′′W′′D′′(4.2)f: \mathbf{x}_t^a, \mathbf{x}_t^b \rightarrow \mathbf{y}_t \\ \mathbf{y}_t \in \mathbb{R}^{H^{\prime\prime} \times W^{\prime\prime} \times D^{\prime\prime}} \tag{4.2}

其间的映射ff便是咱们需求指定的信息交融函数,一般为了便利,咱们假定H=H′,W=W′,D=D′H = H^{\prime}, W = W^{\prime}, D=D^{\prime},而且把下标tt省掉。咱们期待的信息交融,如Fig 4.2所示,应该能够找到motion流和appearance流之间的对应联系,而不该该是割裂开的。在传统的双流网络[10]中,由于双流信息交融只在终究进行各自流的猜测合并(比方说均匀操作)的时候才体现出来,因而motion流信息其实并没有在各个层次(hierarchy)上和appearance流信息很好地对应。咱们期望的双流信息交融应该如Fig 4.2所示。

百度工程师漫谈视频理解

Fig 4.2 理想的motion流和appearance流特征交融应该能找到两个流之间的对应特征部分。

在文章[16]中,作者对若干种双流信息交融办法进行了介绍和试验比照,一起对何处进行信息交融进行了试验。通过结合最佳的信息交融办法和信息交融层的方位,作者提出了所谓的双流交融网络(Two Stream Fused Network)。

一般,有以下几种办法交融信息:

  1. sum fusion,加和交融,表明为ysum=fsum(xa,xb)y^{sum} = f^{sum}(\mathbf{x}^a, \mathbf{x}^b)。假如i,ji,j别离表明第dd个通道的i,ji,j空间方位,那么咱们有 yi,j,dsum=xi,j,da+xi,j,dby_{i,j,d}^{sum} = x^{a}_{i,j,d}+x^{b}_{i,j,d}。由于通道数的排序是恣意的,因而并不意味着xi,j,1a\mathbf{x}_{i,j,1}^axi,j,1b\mathbf{x}_{i,j,1}^b有着对应的语义含义,当然这种恣意的对应联系咱们能够通过后续规划网络进行学习,以求到达最好的优化作用。

  2. max fusion,最大交融,表明为ymax=fmax(xa,xb)y^{max} = f^{max}(\mathbf{x}^a, \mathbf{x}^b)。相同有着:yi,j,dmax=max⁡(xi,j,da,xi,j,db)y_{i,j,d}^{max} = \max(x^a_{i,j,d}, x^b_{i,j,d})。和sum fusion类似的,其对应联系也是恣意的。

  3. Concatenation fusion,拼接交融,表明为yconcat=fconcat(xa,xb)y^{concat} = f^{concat}(\mathbf{x}^{a},\mathbf{x}^{b}),其叠在通道叠加了两个流的特征图。相同咱们有:

    yi,j,2dcat=xi,j,dayi,j,2d−1cat=xi,j,db(4.3)\begin{aligned} y^{cat}_{i,j,2d} &= x^{a}_{i,j,d} \\ y^{cat}_{i,j,2d-1} &= x^{b}_{i,j,d} \end{aligned} \tag{4.3}

    拼接交融没有指定显式的对应联系,因而有必要通过后续的网络规划进行学习这种对应联系。

  4. Conv fusion,卷积交融,表明为yconv=fconv(xa,xb)y^{conv} = f^{conv}(\mathbf{x}^a, \mathbf{x}^b)。首要,咱们需求对两个特征图进行在通道上的叠加,然后用一系列的卷积核f∈R112DD\mathbf{f} \in \mathbb{R}^{1 \times 1 \times 2D \times D}和偏置b∈RD\mathbf{b} \in \mathbb{R}^{D}进行卷积操作,有:

    yconv=yconcat∗f+b(4.4)\mathbf{y}^{conv} = \mathbf{y}^{concat} * \mathbf{f}+\mathbf{b} \tag{4.4}

    咱们发现这儿的卷积操作是1×1卷积,一起进行了通道数的缩小,保持了输入输出规范的共同。

  5. Bilinear fusion,双线性交融,表明为ybil=fbil(xa,xb)y^{bil} = f^{bil}(\mathbf{x}^a, \mathbf{x}^b),其在每个像素方位,核算了两个特征图的矩阵外积,界说为:

    ybil=∑i=1H∑j=1W(xi,ja)Txi,jb(4.5)\mathbf{y}^{bil} = \sum^{H}_{i=1}\sum_{j=1}^{W}(\mathbf{x}^{a}_{i,j})^{\mathrm{T}}\mathbf{x}^{b}_{i,j} \tag{4.5}

    这个发生的交融特征输出为ybil∈RD2\mathbf{y}^{bil} \in \mathbb{R}^{D^2},具有过高的维度,简略导致过拟合,因而在实践中比较少运用。

作者对这几种交融办法进行了试验,得出了其模型精确度和模型参数量的试验成果。如Fig 4.3所示。

百度工程师漫谈视频理解

Fig 4.3 各种不同的双流信息交融办法的试验成果和模型参数量。

咱们发现,Conv fusion能在较少的模型参数量下,到达最好的试验功能。

百度工程师漫谈视频理解

一起,如上图所示,作者探究了在双流网络的哪个层进行交融作用会最好,终究得出试验成果如Fig 4.4所示。咱们发现ReLU5+FC8的这个装备能到达最好的功能。

百度工程师漫谈视频理解

Fig 4.4 在双流网络的各个层进行交融获得的作用和模型巨细试验成果。

时序信息交融

咱们之前谈到的是时空信息交融,指的是将motion流和appearance流交融起来的办法探究。而这个一般是在单个的片段中进行的操作,考虑到怎样交融视频中不同片段之间的信息,构成终究的对整个视频的分类成果,咱们就需求考虑时序特征建模了。考虑到怎样将纷歧起刻tt的特征图xt\mathbf{x}_t交融起来,一般也能够称之为时序信息建模或许时序特征集成,咱们接下来持续探究时序信息交融。

当然一种最为简略的办法,正如在原始的双流网络[10]中说到的,直接对纷歧起刻的网络猜测成果进行均匀,这种均匀操作疏忽了详细的时序结构,理论上,网络无法分清楚“开门”和“关门”的区别。在这种均匀的状况下,这种模型结构仅仅对空间上的像素或许特征进行了2D池化,如Fig 4.5 (a)所示。

现在,让咱们将TT个空间特征图x′∈RHWDx^{\prime} \in \mathbb{R}^{H \times W \times D}进行堆叠,那么咱们就有了时序池化层的输入特征张量x∈RHWTD\mathbf{x} \in \mathbb{R}^{H \times W \times T \times D}。咱们接下来界说两种不同的时序池化层,它们能够对时序信息进行集成。

  1. 3D pooling,在堆叠的特征图x\mathbf{x}上作用以池化核规范为W′H′T′W^{\prime} \times H^{\prime} \times T^{\prime}的max-pooling池化核,如Fig 4.5 (b)所示。注意到,在不同通道DD上没有进行任何的池化。

  2. 3D Conv+3D Pooling,用一系列卷积核巨细为f∈RW′′H′′T′′DD′\mathbf{f} \in \mathbb{R}^{W^{\prime\prime} \times H^{\prime\prime} \times T^{\prime\prime} \times D \times D^{\prime}}的卷积核和规范为b∈RD′\mathbf{b} \in \mathbb{R}^{D^{\prime}}的偏置对堆叠的特征图 x\mathbf{x} 进行卷积后,进行3D池化,如Fig4.5 (c)所示,有:

    y=xt∗f+b(4.6)\mathbf{y} = \mathbf{x}_t *\mathbf{f} + \mathbf{b} \tag{4.6}

百度工程师漫谈视频理解

Fig 4.5 三种不同的时序池化办法,留心图中的坐标轴的标签。

如Fig 4.6所示,作者接下来对以上说到的若干种时序特征建模进行了试验,发现3D conv+3D pooling作用最好。

百度工程师漫谈视频理解

Fig 4.6 作者测验了若干种时序特征建模的办法,发现3D conv+3D pooling的办法作用最好。

双流交融网络

依据之前的评论,作者依据Fig 4.7所示的底子结构提出了双流交融网络(Two-Stream Fusion Network),这个网络在双流信息交融上花了一番心思规划。作者在conv5层后进行双流信息的3D conv fusion交融,一起,作者并没有截断时刻流信息(这儿的时刻流信息是多张RGB帧层叠而成,见Fig 4.7的右半部分),而是用刚才说到的时序信息交融,用3D Conv+3D Pooling的办法交融了时序信息流,所以咱们有两个分支:一个是时刻-空间双流交融信息,一个是时序特征流。如Fig 4.8的spatia-temporal loss和temporal loss所示。

百度工程师漫谈视频理解

Fig 4.7 双流交融网络的主干结构。

百度工程师漫谈视频理解

Fig 4.8 双流交融网络的网络框图,首要有时空丢失和时序丢失组成,其前端和传统的双流网络没有太大区别,首要是在时序交融上选用了3D conv+3D pooling的办法。

整个网络的试验成果如下图所示:

百度工程师漫谈视频理解

双流交融网络在用少于C3D的参数量的一起,进步了模型功能,是双流信息交融网络系列的开山鼻祖。咱们之后的许多网络,包含I3D等,都是由它启示而来。

将2D卷积网络预练习模型扩展到3D卷积网络上

还记得咱们之前谈到3D卷积网络有个很大的缺陷是啥吗?3D卷积网络很难直接运用在图画数据上预练习的成果,导致常常需求大规划的标示视频数据集进行预练习,可是这种数据远比图片数据难搜集。文献[13]的作者发现了这个问题,提出了两个解决方案:

  1. 搜集大规划标示视频数据集Kinetics ——这点很直接粗暴,可是很有用。
  2. 选用将现已预练习好了的2D卷积网络的2D卷积核“胀大”(inflate)到对应的3D卷积核的操作,运用了预练习的CNN模型。这个模型作者称之为I3D(Inflated 3D ConvNets)。

假如把之前现已介绍过了的几种模型都列成一个简图,那么咱们有Fig 4.9。其间(a)-(d)咱们在之前的内容中介绍过了,而(e) Two-Stream 3D-ConvNet也便是本节所说的I3D网络。咱们能够发现,这种网络的底子结构仍是运用了双流网络的结构,不过改变了以下几个要害:

  1. 彻底选用3D ConvNet作为特征提取器,提取时空信息。
  2. RGB输入不再是单帧了,而是把整个视频输入3D卷积网络进行特征提取,相同的,光流motion流的输入也不再是片段的长度了,而是整个视频的长度。

百度工程师漫谈视频理解

Fig 4.9 五种动作辨认的网络简图,前四种咱们现已介绍过了。其间的K代表的是整个视频的长度,N表明的是某个帧周围的邻居的长度,比方某个时刻帧t,假如N=10,那么就会在[t-5,t+5]的范围内对视频采样。

咱们先不关怀作者是怎样搜集大规划数据集的,咱们关怀作者是怎样对2D卷积核进行“胀大”的。咱们考虑到一个2D卷积核,其规范为(NN)(N \times N),那么咱们为它添加一个时刻维度,得到规范为(NN1)(N \times N \times 1)的卷积核,将这个卷积核在第三个维度仿制N次,咱们就有了(NNN)(N \times N \times N)的3D卷积核。这个定论其实能够推导:

假定咱们想要找ImageNet上练习3D卷积网络,咱们能够考虑一种最简略的办法,[13]的作者称之为boring-video fixed point。咱们把一张图片,仿制M次,层叠构成一个视频,只不过这个视频并没有时序上的信息,一切帧都是重复的,然后用这个视频去练习3D卷积网络。由于线性性,咱们能够将整个进程简化为将2D卷积核进行时刻维度的仿制。这种办法使得I3D网络能够在ImageNet上进行预练习,如Fig 4.10所示,这种战略确实发生了不错的作用。

百度工程师漫谈视频理解

Fig 4.10 在ImageNet上预练习关于I3D网络的功能进步。

现在而言,I3D网络在各个benchmark数据集上的体现都不错,是一个不错的baseline基线网络。

此外,在作业[20]中,作者说到了一种风趣的办法,其能够将2D pretrain的卷积网络的参数扩展到3D卷积网络上。如Fig 4.11所示,这种办法选用了类似于Teacher-Student Learning的办法,首要有两个分支,第一个分支是蓝色显示的预练习好了的2D卷积网络,第二个分支是绿色显示的需求进行搬迁参数的3D卷积网络,咱们的蓝色分支对输入的RGB单帧进行处理,绿色分支对视频片段进行处理,咱们的绿色和蓝色分支的输入或许来自于同一个视频,称之为正样本对,也或许来自于不同视频,称之为负样本对,咱们的网络方针便是判别这两个输入是否是正样本仍是负样本,用0/1表明。通过这种手法,咱们能够让3D卷积网络学习到2D卷积预练习网络的常识。

百度工程师漫谈视频理解

Fig 4.11 T3D中说到的运用2D卷积网络的预练习模型去初始化3D卷积网络参数的办法。

内嵌光流核算的深度网络

咱们之前谈到的网络运用了光流信息,而这儿的光流信息无一例外是需求通过人工规划的办法进行预核算的,能不能考虑一种办法能够运用深度网络提取光流信息呢?[17]的作者提出了MotionNet,如Fig 4.12所示,在依据双流网络的主干上,选用深度网络提取光流信息。作者将光流提取问题视为图形重建(image reconstruction)问题,运用bottleneck的网络结构,对给定的RGB输入IRGBI_{RGB},给定其光流作为输出标签(能够通过传统算法核算得到)记为IflowI_{flow},通过监督学习能够独自练习MotionNet,待其独立练习完后,能够联合起整个网络端到端练习。

百度工程师漫谈视频理解

Fig 4.12 MotionNet的网络框图。

其他模态的视频序列动作剖析

之前介绍的都是RGB视频或许结合了依据RGB视频核算得到的光流信息作为输入模态,进行视频动作了解的一些办法。笔者自身的研讨方向是多视角动作辨认,数据输入模态多是骨骼点skeleton数据,如Fig 5.1所示。详细关于骨骼点数据的特色介绍,见笔者之前的文章[2]。在本站,咱们测验评论骨骼点序列的动作辨认和多视角动作辨认。

百度工程师漫谈视频理解

Fig 5.1 运用Kinect v2.0[21]得到的骨骼点排序

总得来说,骨骼点数据能够看成是极点的将motion信息给提取了出来,而丢掉了一切的appearance信息。如Fig 5.2所示,咱们能很清楚地判别人物的动作,可是触及到人物的衣着打扮,交互的物体是什么等信息,却是彻底没办法判别了。因而,用skeleton骨骼点数据去安排motion信息是一种十分好的手法,可是触及到与appearance有关的数据,就有必要引进RGB视频信息,这类型的多模态问题,已有关于此的不少作业[23]。

百度工程师漫谈视频理解

Fig 5.2 运用Openpose[22]对RGB视频估量出来的骨骼点数据

骨骼点数据一般有两种类型,2D骨骼点数据或许3D骨骼点数据,2D骨骼点数据多是从RGB视频中进行姿势估量得到,而3D骨骼点数据一般需求深度信息,在某些文献中[24],存在将依据RGB视频姿势估量得到的2D骨骼点姿势,通过深度网络揣度出3D骨骼点姿势的作业,如Fig 5.3所示。

百度工程师漫谈视频理解

Fig 5.3 运用RGB模态信息进行3D关节点的姿势估量。

关于骨骼点数据而言,一般能够表明为张量:

S∈Rnframesnjointsndimension(5.1)\mathbf{S} \in \mathbb{R}^{\mathrm{nframes} \times \mathrm{njoints} \times \mathrm{ndimension}} \tag{5.1}

其间nframes表明帧数,njoints表明关节点的数量,比方25个关节点一个人一帧,ndimension是维度,比方3D骨骼点是3,而2D骨骼点是2。而这儿的数据,一般都是骨骼点的空间坐标数据,比方Fig 5.4所示:

百度工程师漫谈视频理解

Fig 5.4 3D骨骼点数据,一般用物理规范作为单位,比方米。

骨骼点数据的建模,特征提取和RGB,光流等这类数据不同,骨骼点数据是属于graph图数据,属于典型的非欧几里德结构数据[25],而RGB,光流图属于欧几里德结构数据。非欧几里德数据意味着在骨骼点上不能直接运用传统的CNN,由于很直观的,每个节点周围的节点数都纷歧致,结构化的CNN底子无从下手。

依据笔者的研讨经历,对骨骼点数据进行深度网络建模,能够有以下三种首要思路:

  1. 运用LSTM时序网络对骨骼点进行建模,由于单帧的骨骼点数据能够拉平(flatten)成一个向量,通过最简略的全衔接层能够作为单帧提取器,然后用LSTM进行时序建模。
  2. 对骨骼点序列进行处理,将其拼成一个二维图画类似的数据结构后直接运用传统的CNN模型进行建模。在这类办法中,CNN模型一般需求一起对时刻-空间信息进行建模。
  3. 把骨骼点序列看成时空图(spatia-temporal graph)数据,运用图神经网络,比方GCN图卷积网络进行建模[25,26,27]。

接下来笔者在各个末节将对这几点进行展开,歇息一下,咱们要开端了哦~

LSTM时序安排模型

在本结构中,咱们需求对骨骼点序列进行两种最为首要的操作:

  1. 怎样对单帧的骨骼点信息进行安排
  2. 怎样安排时序信息

对单帧的骨骼点信息进行安排并不简略,由于单帧的骨骼点数据是一种Graph数据,或许也能够看成是一种Tree数据,需求指定特定的遍历战略将这种数据“拉平”成一维向量。单纯地依照关节点的次序从1到25的遍历一遍骨骼点明显不能有用安排空间信息。举个例子,某些动作如跑步,双腿的规律性运动一般也会伴随着双臂的规律性摆动,这种身体部件与身体部件有关的相关,用这种简略的办法不能很好地进行建模。

在P-LSTM[28]中,作者选用LSTM作为底子的结构安排时序信息,一起,作者对LSTM的输入门,遗忘门,和门控门进行了魔改。作者把身体划分为五大部件,如Fig 5.5所示。通过这种办法,对不同身体部件之间的空间语义联系进行了开始的建模。

百度工程师漫谈视频理解

Fig 5.5 在P-LSTM中,作者把人体部件分为五大部分,而且别离输入P-LSTM单元中。

在[29]中,作者提出ST-LSTM,运用LSTM进行3D骨骼点时刻序列的时刻-空间信息交融,而且创始性地选用了人体骨骼点的树形索引进行骨骼点的检索,如Fig 5.6所示。3D骨骼点数据难免存在一些因估量导致的噪声,因而并不是一切骨骼点都是可信的。在[29]中,不仅用LSTM对骨骼点数据进行时空上的信息安排,而且在传统的LSTM细胞中引进了相信门(Trust Gate)剖析每一个时空步中每个节点的牢靠程度。

百度工程师漫谈视频理解

Fig 5.6 对骨骼点数据的树形索引办法。

百度工程师漫谈视频理解

Fig 5.7 在ST-LSTM中,在Spatial空间域和Temporal时刻域都有LSTM单元,对骨骼点序列的时空信息,包含带噪声的骨骼点进行了建模。

总结来说,在这类型办法中关于骨骼点信息的空间信息安排是一件不简略的作业,单纯的分部件或许树形索引,在某些程度上也不能很好地遍历身体不同部件之间的联系,也没有显式地供给让后续网络学习到这种联系的通道。

二维图画化CNN建模

咱们之前剖析过骨骼点序列不能运用于2D ConvNets的原因。可是咱们能够考虑把骨骼点序列转化为二维图画类似的数据结构,然后直接运用2D卷积网络。考虑到骨骼点序列的一般输入张量规范为s∈R300,25,3\mathbf{s} \in \mathbb{R}^{300,25,3},其间300是帧数,25是节点数,3是维度。咱们发现,假如把300看成是图画的height,25看成是图画的width,3看成是图画的通道数,如Fig 5.8所示,那么骨骼点序列就天然地变成了一种二维图画。

这种办法在[30]中得到了描绘和试验,创始了一种运用二维图画化CNN建模的办法。在这类型的办法中,2D CNN网络一起对空间-时刻信息进行了建模。不过和LSTM时序安排模型类似,其有一个很大的难点,便是咱们需求对单帧数据进行遍历,才干排列成二维图画的一列(也能够是一行),这种遍历规矩一般需求指定,这儿就触及到了人工规划排序的进程,不能很好地安排起身体部件之间的空间相关性。

百度工程师漫谈视频理解

Fig 5.8 Skel-CNN对骨骼点序列进行二维图画化处理,将骨骼点序列转变为二维图画,然后后续能够选用2D CNN模型进行特征提取。

除此之外,还有和此有关的研讨办法。在[31]中,作者不是运用原始的空间坐标,而是找出人体某些相对安稳的关节点(称之为根关节点),用其他关节点对其做欧式间隔后,相同依照时刻轴方向拼接,构成多个以不同根关节点为基的二维特征图,此后用多使命卷积网络进行特征提取和分类,如Fig 5.9所示。这种办法运用不同骨骼点与根关节点(比方图中的5,8,11,14关节点)进行欧式间隔核算,得到了全身各个部件之间的互相相对间隔二维图,这种图明显是带有全身各个部件之间的联系信息的,在安排帧内的空间联系上做得更好,因而愈加鲁棒。一起,作者还在模型中引进了多使命,使得模型的功能愈加拔尖。

百度工程师漫谈视频理解

Fig 5.9 运用单帧内的骨骼点部件之间的相对间隔作为信息源,构成了一系列的二维欧式间隔图画后进行卷积。

这些谈到的办法都是对帧内骨骼点信息进行安排,还有一种办法考虑安排帧间之间的motion流联系,这种安排办法关于拍摄视点和运动视点更为鲁棒。在作业[32]中,作者把骨骼点序列的关节点与关节点之间,在时序上的轨道衔接可视化为二维图画,如Fig 5.10所示,由于这种可视化成果常常不够明晰,或许伴有较为严重的缺损,因而作者一起对其进行了图画增强后,用2D卷积网络进行特征提取。

百度工程师漫谈视频理解

Fig 5.10 对骨骼点序列的帧间信息进行motion流安排,而且将其可视化成二维图画后,对该二维图画进行增强,此后选用2D卷积网络进行特征提取。

百度工程师漫谈视频理解

Fig 5.11 对motion流的轨道进行可视化,而且对可视化后的二维图画进行了增强处理

总的来说,这类型的办法中,选用CNN一起对时空信息进来安排,作用有时候会比用LSTM进行安排更安稳,可是相同面对着怎样规划单帧遍历节点规矩的问题。

图神经网络建模

如Fig 5.12所示,骨骼点序列天然地是个时空graph图数据,能够考虑用图神经网络(Graph Neural Network, GNN)进行处理。正如笔者在之前的博客上谈到的[25,26,27],已有多种关于图神经网络的研讨,其间以图卷积网络(Graph Convolutional Network,GCN)为代表,详细的关于GCN和信息传导的推导见笔者之前博客,在此不再赘述。

在作业[33]中,作者提出了Spatial-Temporal GCN,STGCN,也便是时空图卷积网络。在这个作业中,作者对传统的卷积操作进行了延伸扩展,如式子(5.2)所示,

fout(x)=∑h=1K∑w=1Kfin(p(x,h,w)⋅w(h,w))(5.3)f_{out}(\mathbf{x}) = \sum_{h=1}^{K} \sum_{w=1}^{K} f_{in}(\mathbf{p}(\mathbf{x}, h,w) \cdot \mathbf{w}(h,w)) \tag{5.3}

其间的KK为卷积核的巨细。作者从头界说了范畴采样函数p(x,h,w)\mathbf{p}(\mathbf{x}, h, w),即是关于一个其时的像素或许图节点,怎样去对周围的节点或许像素进行采样,关于二维图画来说,只需求简略的找邻居就行了,而graph数据则不能这样进行了。 作者依据从头界说的范畴采样函数,界说了对应的权值函数w(h,w)\mathbf{w}(h,w)。当然,这儿仅仅关于空间的图卷积,作者在时刻域也界说了类似的范畴采样和权值,因而能够延伸到时空图卷积,STGCN。终究对每个STGCN单元进行堆叠,如Fig 5.13所示,而且遭到ResNet的启示,引进short-cut和block规划,到达了SOTA的作用。

百度工程师漫谈视频理解

Fig 5.12 骨骼点序列天然地是个时空graph图数据。

百度工程师漫谈视频理解

Fig 5.13 ST-GCN的处理pipeline,其间ST-GCN便是首要的特征提取网络,输入的骨骼点序列能够是3D骨骼点序列,也能够是通过姿势估量得到的2D骨骼点序列。

Fig 5.14列出了以上评论的许多模型在NTU RGBD 60数据集上的体现,咱们发现STGCN的功能确实到达了SOTA。

百度工程师漫谈视频理解

Fig 5.14 许多依据骨骼点序列进行动作辨认的模型在NTU RGBD 60数据集上的体现。

ST-GCN是一个十分经典的网络,笔者十分喜爱这个网络,这个网络规划十分的直观,功能高效,占用内存少。直接选用图卷积的办法对空间和时刻的语义信息进行安排,避免了人工去规划遍历规矩,在数据量大的状况下功能一般都会更好。现在相当多关于骨骼点动作辨认的作业都是依据STGCN上进行的[34,35,36,37]。

多视角动作了解

所谓多视角动作了解,便是动作或许在多种不同的摄像头姿势下发生,咱们规划的模型有必要能在多种不同不同的摄像头姿势下对动作进行辨认。这种需求面对着许多实在场景,比方监控场景,摄像头姿势一般都千差万别,比方实在场景的动作辨认(包含在移动机器人上部署的摄像头),摄像头姿势一般都是不定的,乃至是运动的,假如算法对多视角或许移动视角的摄像头拍摄的视频不够鲁棒,明显是不能够满足咱们的日常生产需求的。

多视角动作辨认的一个很要害的问题在于多视角数据集很短少,带有标示的,比方标示了相机姿势的数据集更是稀少。如此少多视角标示视频数据很难让模型具有跨视角的才干,这儿指的跨视角指的是在某个或许某些视角的样本上进行模型练习,在未见过的视角样本上进行模型测验。

多视角动作辨认还有一个要害问题在于提取多视角之间的共有特征,这种在多视角样本上同享的特征一般是和动作类别严密相关的特征,具有较好的视角不变性(view-invariant)。

因而,在多视角动作了解问题上,依据笔者的研讨经历,大致能够归为三种办法:

  1. 选用一些手法扩大多视角样本数据。
  2. 提取多视角样本的公共特征。
  3. 提取视角不变特征——手艺规划或许模型深度学习。

依据这个总结,接下来咱们评论在RGB视频上进行多视角动作了解的一些办法。

在RGB视频上进行多视角动作辨认

文章[38]是考虑在深度图序列上进行多视角样本扩大,由于深度图和RGB视频较为相像,咱们归到这儿评论。[38]的作者提出了一种很天然的生成多视角样本的办法是:对人体模型进行三维建模,然后设置多个虚拟相机机位,纪录下这些样本,随后再进行后处理,如Fig 6.1所示能够设置恣意多个虚拟机位,一般挑选180个掩盖全身即可。

百度工程师漫谈视频理解

Fig 6.1 虚拟机位生成虚拟多视角样本。

有许多3D建模软件能够对人体模型进行很好地建模,问题在于让这个模型依照需求的动作“活动”起来,以到达模仿实在人体活动的需求。咱们能够通过MoCap[46]得到的骨骼点成果(是比较精确的,通过多轴传感器成果得到的骨骼点序列,对遮挡鲁棒),让模型动起来,如Fig 6.2所示。一起,咱们在其外表“附上”一层膜,因而人体模型不同深度的点就有了深度信息,终究进行深度图生成即可。

百度工程师漫谈视频理解

Fig 6.2 通过MoCap的骨骼点信息,进行3D人体模型的虚拟运动后进行多机位虚拟多视角样本提取。

在作业[39]中,作者相同类似的思路,选用了MoCap的骨骼点序列对3D建模好的人体模型进行动作生成,不同的是,这次作者是把不同视角的序列信息提取时序间的轨道,详细来说,便是关于一个多视角样本,对其相同部件(比方手部,胳膊)进行时序上的盯梢,得到秘籍的轨道图。如Fig6.3所示,终究用字典学习去学习不同视角样本的码表(用K-means进行学习)。

百度工程师漫谈视频理解

Fig 6.3 运用生成的多视角密布轨道,进行字典学习,学习出多视角下的码表。

在测验阶段,咱们需求运用这儿学习到的码表,对输入的密布轨道进行构建动作轨道描绘子,随后进行辨认,如Fig 6.4所示。

百度工程师漫谈视频理解

Fig 6.4 运用学习到的码表,在猜测阶段进行动作类别猜测。

当然,刚才的解释并不彻底,[39]的作者以为,不同视角之间存在一种所谓的典范视角(canonical view)的联系,也便是说,一切视角样本,通过某种办法,都应该能转化成典范样本,更进一步,不同视角样本之间都应该能通过典范样本作为中继,进行相互转化。之前的作业[47,48]大多假定这种联系是线性的,如Fig 6.5 (a)(b)所示,可是这个并不能精确描绘视角样本之间的搬迁联系,因而在本作业中,作者以为这种联系应该是非线性的,如Fig 6.5 (c)所示,不相同本之间同享着高层的语义空间。可是通过咱们之前评论的码表的办法可不能描绘这种非线性,由于码表的码元的安排是线性的操作,因而咱们需求引进一个网络进行这种非线性联系的学习,比方[39]中提出的Robust Non-linear Knowledge Transfer Model , R-NKTM模型,正如Fig 6.3和Fig 6.4所示。

百度工程师漫谈视频理解

Fig 6.5 作者假定不同视角样本之间的搬迁并不是线性的,假如假定存在一种所谓的典范样本,那么通过高维的非线性映射才是合理的办法。

有些办法测验去提取视角不变(view-invariant)的特征,自类似性矩阵(Self-Similar Matrix,SSM)[40]是一种经典的理论上的视点不变性的特征,其做法很简略,便是在时刻上求帧ii与帧jj的欧式间隔di,jd_{i,j}并把它组成矩阵,如Fig 6.6所示。这类型的办法还有一些后续作业,比方[41-42],如Fig 6.7所示。一起,咱们能够发现,在一些作业对人体的各个身体部件之间进行相对间隔的核算,然后拼接成特征矩阵的办法,比方[31]中,都体现了视角不变性的思维。

百度工程师漫谈视频理解

Fig 6.6 SSM模型测验结构视角不变性特征。

百度工程师漫谈视频理解

Fig 6.7 其他测验结构视角不变性特征的办法,遭到了SSM的启示。

确实,从理论上说,进行时刻帧的相对间隔核算(或许身体部件之间的相对间隔),这个相对间隔核算应该是和视角无关的,由于你不论视角怎样改变,这个相对间隔也不会改变,因而是视角不变的。可是咱们注意到,正如文章[2]中所说到的,骨骼点信息多多少少会由于遮挡导致变形扭曲,如Fig 6.8所示,在大面积的遮挡状况下这种现象更为显着。在存在有这种噪声的骨骼点序列中,运用咱们刚才说到的依据相对间隔核算得到的视角不变性特征,却简略引进更多的噪声,所谓的理论上的视角不变性便在这儿被打破了。

百度工程师漫谈视频理解

Fig 6.8 用Kinect对遮挡动作进行姿势估量,左手部分被遮挡,可是Kinect仍是对时序上的上下文进行了估量,可是这种估量常常作用不佳,简略引进估量噪声。

在[45]中,作者指出咱们能够把多视角样本特征分化为多视角之间同享的同享特征(share features)和各个视角独有的私有特征(private features),通过这两种类型的特征的线性组合,对样本特征进行重建,公式如(6.1)。其他详细内容由于过于多数学的描绘,限于篇幅,主张读者有需求的直接翻阅[45]原文。

f=∑i=1Nvifi+fprivate(6.1)f = \sum_{i=1}^{N_v} \alpha_i f_i + f_{private} \tag{6.1}

百度工程师漫谈视频理解

Fig 6.9 提取同享特征和私有特征,通过线性组合得到样本特征。

在骨骼点序列上进行多视角动作辨认

之前说到的都是在RGB上或许Depth数据上进行处理的办法,而在骨骼点序列上,也有许多关于多视角相关的算法。依据笔者的经历来说,骨骼点数据天然具有较好的视点不变性,假如模型规划妥当,在没有显式地规划视角不变性特征的前提下,其跨视角辨认才干一般都不会很差(乃至会比较理想)。可是骨骼点序列的问题在于噪声,骨骼点序列由于遮挡,会引进许多噪声,这点笔者一直在着重。笔者的一篇作业[37]也正是在测验挨近这个噪声带来的问题。

不论怎样样说,还有不少办法在测验对不同视角的骨骼点序列进行对齐(alignment)的,这儿的对齐指的是使得不同视角的同一种动作类其他样本看起来视角差异性尽量小一些。最简略的办法如P-LSTM[28]所示,直接将身体的节点的连线(比方髋部连线)进行二维平面的旋转对齐。这种办法蛮粗暴的,还有些办法在三维空间进行旋转,如[32]和Fig 6.10所示。

百度工程师漫谈视频理解

Fig 6.10 测验在三维空间对骨骼点序列进行旋转对齐。

不过笔者在这儿想要介绍的是所谓的View Adaptation网络,这种网络遭到了Spatial Transformer Network, STN的启示,引进了一种主动学习对齐骨骼点序列的子网络。如Fig 6.10所示,这个View Adaptation Subnetwork能够主动学习不同视角之间样本间的旋转矩阵Rt\mathbf{R}_t和偏移向量dt\mathbf{d}_t,使得同一种动作类别,不同视角的样本看起来愈加地挨近,注意到三维空间的旋转能够分化成x,y,zx,y,z轴的旋转的组合,那咱们有:

Rt=RX()RY()RZ()(6.2)\mathbf{R}_t = \mathbf{R}_{X}(\alpha) \mathbf{R}_{Y}(\beta) \mathbf{R}_{Z}(\gamma) \tag{6.2}

其间的,,\alpha,\beta,\gamma是别离围绕坐标轴X,Y,ZX,Y,Z的旋转视点。

那么详细到其间的各个旋转轴矩阵,咱们有:

RX()=[1000cos⁡()−sin⁡()0sin⁡()cos⁡()](6.3)\mathbf{R}_{X}(\alpha) = \left[\begin{matrix}1 & 0 & 0 \\0 & \cos(\alpha) & -\sin(\alpha) \\0 & \sin(\alpha) & \cos(\alpha)\end{matrix}\right]\tag{6.3}
RY()=[cos⁡()0sin⁡()010−sin⁡()0cos⁡()](6.4)\mathbf{R}_{Y}(\beta) = \left[\begin{matrix}\cos(\beta) & 0 & \sin(\beta) \\0 & 1 & 0 \\-\sin(\beta) & 0 & \cos(\beta)\end{matrix}\right]\tag{6.4}
RZ()=[cos⁡()−sin⁡()0sin⁡()cos⁡()0001](6.5)\mathbf{R}_{Z}(\gamma) = \left[\begin{matrix}\cos(\gamma) & -\sin(\gamma) & 0 \\\sin(\gamma) & \cos(\gamma) & 0 \\0 & 0 & 1\end{matrix}\right]\tag{6.5}

那么咱们通过对齐后的,新的骨骼点坐标是:

vt,j′=[xt,j′,yt,j′,zt,j′]T=Rt(vt−d)(6.6)\mathbf{v}^{\prime}_{t,j} = [x_{t,j}^{\prime}, y_{t,j}^{\prime}, z_{t,j}^{\prime}]^{\mathrm{T}} = \mathbf{R}_{t} (\mathbf{v}_{t}-\mathbf{d})\tag{6.6}

其间的参数dt=[d1,d2,d3]T\mathbf{d}_t = [d_1,d_2,d_3]^{\mathrm{T}},,\alpha,\beta,\gamma等彻底由网络学习得到,其旋转和平移如Fig 6.11所示。

百度工程师漫谈视频理解

Fig 6.10 测验在三维空间对骨骼点序列进行旋转对齐。

百度工程师漫谈视频理解

Fig 6.11 骨骼点在三维空间的旋转和平移。

View Adaptation网络是能够到处安插的,有点像BN层和Dropout层,你能够在模型中随意安插这个子网络。终究成果证明晰这个对齐网络的有用性,如Fig 6.12所示。

百度工程师漫谈视频理解

Fig 6.12 在NTU RGBD 60数据集上的成果证明晰View Adaptation网络的有用性。

在视频动作了解中运用自监督学习

众所周知,深度学习是数据驱动的(data-driven),十分需求有标示的杰出数据去喂养模型。可是实际中咱们并没有那么多有标示的数据,标示数据是十分耗时耗力耗财的。而咱们在一开端就现已说过,每天互联网上发生着那么多的无标签的视频数据,不加以运用过于惋惜,咱们需求考虑怎样让模型在无标签的视频上“罗致”常识和养分,在不进行人工标示的状况下,进步模型的功能。

自监督学习布景

自监督学习(self-supervised Learning)是无监督学习中的一个风趣的分支,在介绍自监督学习之前,笔者打算举个例子。假如咱们现在有一个8位灰度图画,其规范为10*10,也便是灰度级为256。那么明显的,假如对一切或许的像素值的状况进行遍历,咱们的图片像素空间十分大,为256100256^{100}。这还仅仅在如此小的规范下的一个灰度图的像素空间。

可是,大多数状况下,许多像素组合是没有任何语义的,也便是说,你在实际中底子见不到这种像素组合,咱们把一切或许在实际中见到的像素组合在高维空间中表明为一个点,那么一切的点的组合构成了流形(manifold)。也便是说,咱们的一切或许的样本采样都来自于这个流形。

对这个流形的形状进行建模很重要,可是明显不或许彻底精确地描绘这个流形,由于你需求几乎许多的样本才足以描绘。在强监督学习中,咱们现在有的仅仅这个流形上的一些有过标示的样本(流形上的某些点或许代表一个类别,某些点或许是另一个类别),可是咱们能够用无标签的样本去添补这个流形的缺口,测验去尽或许地描绘这个流形,这是无监督学习全体来说在做的作业。

可是咱们这个假定有个前提,每个像素之间的独立无关的,可是实际是像素与像素之间很或许存在有语义联系,咱们一般能够用一个像素去估量其周围的像素,一般改变都不会特别大,就阐明晰这一点。因而咱们能够进一步缩小无监督中需求的样本数,咱们因而有了自监督学习。

在自监督学习中,咱们让无标签的样本自己发生自己的标签,因而咱们就能够在无标签样本上进行强监督练习了。咱们需求界说出一个pretext使命,咱们在无标签的数据集上练习这个pretext使命,一般咱们并不很介意这个pretext模型的功能体现。在得到了模型参数之后,咱们以这个模型的参数作为初始化,再在有标签的数据集上进行练习得到终究的模型。就本质上而言,自监督学习对模型进行了正则,减少了对标签样本的需求。

让无标签的样本自己发生自己的标签显得很神奇,但其实并不难,比方一张图片,咱们能够把其间某一块扣掉,然后让模型依据没有扣掉的部分去填充扣掉部分的图形,这种叫inpainting,如Fig 7.1所示。

百度工程师漫谈视频理解

Fig 7.1 运用inpainting进行图片的自监督学习。

关于文本序列样本来说,更为直接的self-supervision办法便是Word2Vec语义嵌入了,咱们能够用之前的词语去猜测后续的词语,也能够用后续的词语回测之前的词语,也能够给词语挖个空,依据周围的词语去猜测中心词语等等,如Fig 7.2所示。

百度工程师漫谈视频理解

Fig 7.2 关于序列的自监督学习能够参阅的办法,文本序列类似。

当然依据图画的pretext使命还有许多,比方对输入图画进行指定视点的旋转[54],练习模型去判别这个图画旋转视点是多少,由于旋转视点是自己指定的有限集中的一个,因而是有标签的,如Fig 7.3所示。也有一种是十分知名的办法,通过拼拼图(jigsaw puzzle)[55]的办法进行pretext使命的界说。如Fig 7.4所示,咱们在图画上指定了九个拼图块,每一个块都有其固定的编号从1-9。咱们随意进行打乱后,期望网络能够对其从头排序,康复正常的次序。

百度工程师漫谈视频理解

Fig 7.3 在这种自监督战略中,模型需求判别图画的旋转视点是多少。

百度工程师漫谈视频理解

Fig 7.4 对图片块进行拼拼图(jigsaw puzzle)的办法进行自监督学习。

这些pretext使命,都是让无标签的数据自己发生了标签,让模型学习到了样本自身的语义特征,尽管这个pretext使命和咱们的方针使命(比方动作辨认,物体检测,定位)等大相径庭,可是它们的数据流形是相同的,同享着语义特征空间,因而通过自监督学习的办法,能够运用海量的无标签的数据学习出更为理想的表征(representation)。

在文章[51]中,研讨者针对多种不同的视觉使命,对自监督的作用进行了广泛的基线测验。研讨者首要重视两个问题:自监督使命的辅佐数据集的巨细规范和pretext使命的使命难度关于整个预练习进程的影响。作者发现自监督的无标签数据集数据量越大,模型的作用越好,如Fig 7.5所示。一起作者发现,关于设定pretext使命的复杂度,关于全体模型的功能也是有很大影响的,如Fig 7.6所示。

百度工程师漫谈视频理解

Fig 7.5 自监督的数据集越大,作用越好。

百度工程师漫谈视频理解

Fig 7.6 控制自监督pretext使命的问题复杂度关于功能有很大影响。

该文章还进行了许多其他试验,在多种视觉使命中供给了自监督学习的坚实的(solid)基线规范,值得各位读者细心研读。

依据视频的自监督学习

咱们之前谈到的是在图画数据上进行的自监督使命的例子。自监督学习的要害常常就体现在怎样依据详细的下流使命和数据模态去规划适宜的自监督pretext使命,在视频数据上,其pretext使命和图画数据有所不同。视频包含着一系列在时刻轴上具有语义联系的图画帧,时刻上附近的帧比其他更远的帧或许具有着更强的语义相关联系。这种特定的视频序列排序描绘了物理国际逻辑的因果逻辑和揣度:比方物体的运动应该是滑润的,重力方向总是朝下的(体现在物体下落)。关于视频数据来说,一种通用的形式是:在海量的无标签数据上进行一种或许多种pretext使命的练习,然后提取出其特征提取层,用有标签的数据进行fine-tune下流使命,例如动作分类,切割,定位或许物体盯梢等。

关于规划依据视频的自监督pretext使命,有着以下几种逻辑。

依据帧序列次序

视频帧天然地是依照时刻次序排列的。咱们的模型理应能学习到视频帧的正确次序,因而研讨者们提出了若干依据帧序列次序的办法。其间一类办法被称之为验证帧次序(validate frame order)[53],这儿的pretext使命在于判别给定的一小段视频帧是否是依照正确的时刻次序排列的(所谓的有用时刻次序,valid temporal order)。模型需求具有能够从视频帧中的细微运动线索中盯梢和推理的才干,然后才干完结这个使命。

首要,练习帧序列从所谓的高运动窗区域(high-motion windows)提取,每次采样5帧,记为(fa,fb,fc,fd,fe)(f_a, f_b, f_c, f_d, f_e),而且其时刻戳次序为a<b<c<d<ea < b < c < d < e。在这5帧中,咱们从中构建一个正样本三元组(也便是时刻次序是正常的),记为(fb,fc,fd)(f_b, f_c, f_d),构建两个负样本三元组(时刻次序乱序),记为(fb,fa,fd)(f_b, f_a,f_d)(fb,fe,fd)(f_b, f_e,f_d)。超参数max⁡=∣b−d∣\tau_{\max} = |b-d|决议了正样本练习实例的难度(也便是越大,难度越强),超参数min⁡=min⁡(∣a−b∣,∣d−e∣)\tau_{\min} = \min(|a-b|, |d-e|)控制了负样本的难度(也便是越小,难度越强)。研讨者现已证实了在动作辨认类型的下流使命中,依据验证帧序列次序的办法能够进步功能。全体框图如Fig 7.7所示。

百度工程师漫谈视频理解

Fig 7.7 验证帧次序自监督办法的框图。

在O3N(Odd-One-Out Network)[56]中,作者相同界说了一种新的依据验证帧序列次序的pretext使命。这个使命测验从一堆小视频片段中挑选出乱序的一个视频片段,而其他是正常次序的。假定给定N+1N+1个输入视频片段,其间的一个被人为地乱序了,其他的NN个片段是正常次序的,咱们的模型需求从中确认乱序的片段的方位。

依据盯梢

视频序列中物体的移动能够被视频的时序联系所追寻。在时刻轴上相邻的帧中呈现的物体,一般不同不会特别大,一般只会有由于细微运动或许摄像头颤动构成的干扰。因而,任何关于相同物体在相邻的视频帧上学习到的表征,在特征空间上应该是类似的。依据这个启示,[57]提出了通过盯梢视频中运动物体,到达自监督意图的办法。

在具有运动信息的小时刻视频窗口(比方30帧),咱们从中依照时刻次序截取patch块,其间第一个块x\mathbf{x}和终究一个块x+\mathbf{x}^+被挑选作为练习样本点。咱们能够预想到,由于是在小时刻窗发生的动作,因而这两个时刻窗的特征应该是挨近的。可是假如咱们简略最小化这两个patch之间的特征向量,模型终究会陷入普通解——也便是一切的特征向量都会趋同,没有任何区别,这样并没有带来任何信息量。为了挨近这个问题,咱们引进第三个patch,咱们相同通过乱序的办法结构了负样本x−\mathbf{x}^-。因而,咱们终究期望有:

D(x,x+)>D(x,x−)(7.1)D(\mathbf{x}, \mathbf{x}^+) > D(\mathbf{x}, \mathbf{x}^-)\tag{7.1}

其间的D(⋅)D(\cdot)是余弦间隔,为

D(x1,x2)=1−f(x1)f(x2)∣∣f(x1)∣∣⋅∣∣f(x2)∣∣(7.2)D(\mathbf{x}_1, \mathbf{x}_2) = 1 – \dfrac{f(\mathbf{x}_1)f(\mathbf{x}_2) }{||f(\mathbf{x}_1)|| \cdot ||f(\mathbf{x}_2)||}\tag{7.2}

丢失函数为:

L(x,x+,x−)=max⁡(0,D(x,x+)−D(x,x−)+M)+R(7.3)\mathcal{L}(\mathbf{x}, \mathbf{x}^+, \mathbf{x}^-) = \max(0, D(\mathbf{x}, \mathbf{x}^+)-D(\mathbf{x}, \mathbf{x}^-)+M) + R\tag{7.3}

其实便是triplet loss,其间的RR是正则项,详细见笔者之前博文[58]。整个网络框图见Fig 7.8。

百度工程师漫谈视频理解

Fig 7.8 对短时刻窗口的物体进行盯梢自监督办法。

依据视频上色

在[59]中,研讨者提出将视频上色(video-colorization)作为自监督办法手法,这样发生的丰厚表征能够在不通过额外fine-tune的状况下,在视频切割中运用。和在图画中进行上色不同,在这儿的上色是,将五颜六色的方针视频的像素拷贝到对应的灰度化的视频上(灰度化能够由RGB视频转化而来),而并不是直接生成的。为了能够做到这种拷贝,模型理应能够对不同帧的相相关的像素进行盯梢。

百度工程师漫谈视频理解

Fig 7.9 依据视频上色的自监督办法。

这个想法简略而有用,咱们用cic_i表明在参阅的五颜六色视频的第ii个像素,用cjc_j表明灰度化的方针视频的第jj个像素。那么对方针视频的第jj个像素的猜测cj\hat{c}_j是一个对参阅视频的一切像素的加权和:

xj=∑iAijCiAij=exp⁡(fifj)∑i′exp⁡(fi′fj)(7.4)\hat{x}_j = \sum_{i} A_{ij}C_i \\A_{ij} = \dfrac{\exp(f_i f_j)}{\sum_{i^{\prime}}\exp(f_{i^{\prime}}f_j)}\tag{7.4}

其间的ff是学习到的对应像素的嵌入特征。i′i^{\prime}表明晰在参阅视频中的像素。这种加权完成了注意力机制,类似于matching network[60]和pointer network[61]。

总结

依据视频的自监督办法还有许多,有触及到视频拼图康复的,光流使命嵌入的等等,不论怎样,这些pretext使命都是测验在无标签数据中学习到视频的motion和appearance信息,作为杰出的正则引进模型,减少模型对有标签样本的需求,进步了功能。

视频动作剖析为什么能够视为视频了解的中心

咱们在上文中说到了十分多的视频动作辨认的办法,触及到了各种视频模态,为什么咱们着重于评论视频动作了解呢?分明视频了解使命有着那么多类型。不管详细的视频了解使命是什么,笔者以为视频了解的中心仍是在于怎样安排视频的motion流和appearance流语义信息,而动作辨认使命是很好地评价一个模型是否对motion和appearance信息进行了有用安排的规范(而且对视频进行动作标签标示也比较简略),假如一个模型能够对视频动作辨认使命体现杰出,那么其特征提取网络能够作为不错的视频表征提取工具,给其他下流的使命供给杰出的根底。

说在终究

这一路过来道阻且长,咱们说了许多算法,对整个视频动作了解的开展做了一个简略的整理,可是限于篇幅,意犹未尽,还有许多最新的论文内容在这儿没有得到总结,咱们在今后的拾遗篇将持续咱们的视频剖析的旅途。路漫漫其修远兮,吾将上下而求索。

Reference

[1]. www.cac.gov.cn/wxb_pdf/022…

[2]. blog.csdn.net/LoseInVain/…

[3]. research.google.com/youtube8m/

[4]. Wang H, Klser A, Schmid C, et al. Dense trajectories and motion boundary descriptors for action recognition[J]. International journal of computer vision, 2013, 103(1): 60-79.

[5]. hal.inria.fr/hal-0083049…

[6]. Karpathy A, Toderici G, Shetty S, et al. Large-scale video classification with convolutional neural networks[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2014: 1725-1732.

[7]. Tran D, Wang H, Torresani L, et al. A closer look at spatiotemporal convolutions for action recognition[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2018: 6450-6459.

[8]. Yue-Hei Ng J, Hausknecht M, Vijayanarasimhan S, et al. Beyond short snippets: Deep networks for video classification[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 4694-4702.

[9]. Donahue J, Anne Hendricks L, Guadarrama S, et al. Long-term recurrent convolutional networks for visual recognition and description[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 2625-2634.

[10]. Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]//Advances in neural information processing systems. 2014: 568-576.

[11]. Ji S, Xu W, Yang M, et al. 3D convolutional neural networks for human action recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2012, 35(1): 221-231.

[12]. Tran D, Bourdev L, Fergus R, et al. Learning spatiotemporal features with 3d convolutional networks[C]//Proceedings of the IEEE international conference on computer vision. 2015: 4489-4497.

[13]. Carreira J, Zisserman A. Quo vadis, action recognition? a new model and the kinetics dataset[C]//proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 6299-6308. (I3D)

[14]. Sun L, Jia K, Yeung D Y, et al. Human action recognition using factorized spatio-temporal convolutional networks[C]//Proceedings of the IEEE international conference on computer vision. 2015: 4597-4605.

[15]. Qiu Z, Yao T, Mei T. Learning spatio-temporal representation with pseudo-3d residual networks[C]//proceedings of the IEEE International Conference on Computer Vision. 2017: 5533-5541.

[16]. Feichtenhofer C, Pinz A, Zisserman A. Convolutional two-stream network fusion for video action recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 1933-1941. (TwoStreamFused)

[17]. Zhu Y, Lan Z, Newsam S, et al. Hidden two-stream convolutional networks for action recognition[C]//Asian Conference on Computer Vision. Springer, Cham, 2018: 363-378. (HiddenTwoStream)

[18]. Wang L, Xiong Y, Wang Z, et al. Temporal segment networks: Towards good practices for deep action recognition[C]//European conference on computer vision. Springer, Cham, 2016: 20-36. (TSN)

[19]. Girdhar R, Ramanan D, Gupta A, et al. Actionvlad: Learning spatio-temporal aggregation for action classification[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 971-980. (ActionVLAD)

[20]. Diba A, Fayyaz M, Sharma V, et al. Temporal 3d convnets: New architecture and transfer learning for video classification[J]. arXiv preprint arXiv:1711.08200, 2017. (T3D)

[21]. medium.com/@lisajamhou…

[22]. github.com/CMU-Percept…

[23]. Baradel F, Wolf C, Mille J. Human action recognition: Pose-based attention draws focus to hands[C]//Proceedings of the IEEE International Conference on Computer Vision Workshops. 2017: 604-613.

[24]. Pavllo D, Feichtenhofer C, Grangier D, et al. 3D human pose estimation in video with temporal convolutions and semi-supervised training[J]. arXiv preprint arXiv:1811.11742, 2018.

[25]. blog.csdn.net/LoseInVain/…

[26]. blog.csdn.net/LoseInVain/…

[27]. blog.csdn.net/LoseInVain/…

[28]. A. Shahroudy, J. Liu, T. T. Ng, et al. Ntu rgb+d: A large scale dataset for 3d human activity analysis[C]. IEEE Conference on Computer Vision and Pattern Recognition, 2016, 1010-1019 (P-LSTM)

[29]. Liu J, Shahroudy A, Xu D, et al. Spatio-temporal lstm with trust gates for 3d human action recognition[C]//European Conference on Computer Vision. Springer, Cham, 2016: 816-833. (ST-LSTM)

[30]. Y. Du, Y. Fu, L. Wang. Skeleton based action recognition with convolutional neural network[C]. Pattern Recognition, 2016, 579-583 (Skel-CNN)

[31]. Ke Q, Bennamoun M, An S, et al. A new representation of skeleton sequences for 3d action recognition[C]//Computer Vision and Pattern Recognition (CVPR), 2017 IEEE Conference on. IEEE, 2017: 4570-4579.

[32]. Liu M, Liu H, Chen C. Enhanced skeleton visualization for view invariant human action recognition[J]. Pattern Recognition, 2017, 68: 346-362.

[33]. S. Yan, Y. Xiong, D. Lin. Spatial temporal graph convolutional networks for skeleton-based action recognition[C]. The Association for the Advance of Artificial Intelligence, AAAI, 2018, 5344-5352 (ST-GCN)

[34]. Yang D, Li M M, Fu H, et al. Centrality Graph Convolutional Networks for Skeleton-based Action Recognition[J]. arXiv preprint arXiv:2003.03007, 2020.

[35]. Gao J, He T, Zhou X, et al. Focusing and Diffusion: Bidirectional Attentive Graph Convolutional Networks for Skeleton-based Action Recognition[J]. arXiv preprint arXiv:1912.11521, 2019.

[36]. Li M, Chen S, Chen X, et al. Symbiotic Graph Neural Networks for 3D Skeleton-based Human Action Recognition and Motion Prediction[J]. arXiv preprint arXiv:1910.02212, 2019.

[37]. Ji Y, Xu F, Yang Y, et al. Attention Transfer (ANT) Network for View-invariant Action Recognition[C]//Proceedings of the 27th ACM International Conference on Multimedia. 2019: 574-582.

[38]. Rahmani H, Mian A. 3D action recognition from novel viewpoints[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 1506-1515.

[39]. Rahmani H, Mian A, Shah M. Learning a deep model for human action recognition from novel viewpoints[J]. IEEE transactions on pattern analysis and machine intelligence, 2018, 40(3): 667-681.

[40]. Junejo I N, Dexter E, Laptev I, et al. Cross-view action recognition from temporal self-similarities[C]//European Conference on Computer Vision. Springer, Berlin, Heidelberg, 2008: 293-306.

[41]. Kacem A, Daoudi M, Amor B B, et al. A Novel Geometric Framework on Gram Matrix Trajectories for Human Behavior Understanding[J]. IEEE transactions on pattern analysis and machine intelligence, 2018.

[42]. Hernandez Ruiz A, Porzi L, Rota Bul S, et al. 3D CNNs on distance matrices for human action recognition[C]//Proceedings of the 2017 ACM on Multimedia Conference. ACM, 2017: 1087-1095

[43]. Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in neural information processing systems. 2015: 2017-2025.

[44]. Zhang P, Lan C, Xing J, et al. View adaptive recurrent neural networks for high performance human action recognition from skeleton data[J]. ICCV, no. Mar, 2017.

[45]. Kong Y, Ding Z, Li J, et al. Deeply learned view-invariant features for cross-view action recognition[J]. IEEE Transactions on Image Processing, 2017, 26(6): 3028-3037.

[46]. Rogez G, Schmid C. Mocap-guided data augmentation for 3d pose estimation in the wild[C]//Advances in Neural Information Processing Systems. 2016: 3108-3116.

[47]. A. Gupta, J. Martinez, J. J. Little, and R. J. Woodham, “3D pose from motion for cross-view action recognition via non-linear circulant temporal encoding,” in Proc. IEEE Conf. Comput. Vis. Pattern Recognit., 2014, pp. 2601–2608.

[48]. A. Gupta, A. Shafaei, J. J. Little, and R. J. Woodham, “Unlabelled 3D motion examples improve cross-view action recognition,” in Proc. British Mach. Vis. Conf., 2014

[49]. Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in neural information processing systems. 2015: 2017-2025.

[50]. lilianweng.github.io/lil-log/201…

[51]. Goyal P, Mahajan D, Gupta A, et al. Scaling and benchmarking self-supervised visual representation learning[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 6391-6400.

[52]. Wang J, Jiao J, Bao L, et al. Self-supervised spatio-temporal representation learning for videos by predicting motion and appearance statistics[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019: 4006-4015.

[53]. Misra I, Zitnick C L, Hebert M. Shuffle and learn: unsupervised learning using temporal order verification[C]//European Conference on Computer Vision. Springer, Cham, 2016: 527-544.

[54]. Gidaris S, Singh P, Komodakis N. Unsupervised representation learning by predicting image rotations[J]. arXiv preprint arXiv:1803.07728, 2018.

[55]. Noroozi M, Favaro P. Unsupervised learning of visual representations by solving jigsaw puzzles[C]//European Conference on Computer Vision. Springer, Cham, 2016: 69-84.

[56]. Fernando B, Bilen H, Gavves E, et al. Self-supervised video representation learning with odd-one-out networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 3636-3645.

[57]. Wang X, Gupta A. Unsupervised learning of visual representations using videos[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 2794-2802.

[58]. blog.csdn.net/LoseInVain/…

[59]. Vondrick C, Shrivastava A, Fathi A, et al. Tracking emerges by colorizing videos[C]//Proceedings of the European Conference on Computer Vision (ECCV). 2018: 391-408.

[60]. Vinyals O, Blundell C, Lillicrap T, et al. Matching networks for one shot learning[C]//Advances in neural information processing systems. 2016: 3630-3638.

[61]. Vinyals O, Fortunato M, Jaitly N. Pointer networks[C]//Advances in neural information processing systems. 2015: 2692-2700.