BMN:Boundary-matching network for temporal action proposal generation

Video Analysis 相关领域解读之Temporal Action Detection(时序行为检测) - 知乎本文投稿于 @极视角 公众号,链接为 文章链接. 上一篇 Video Analysis相关领域解读之Action Recognition(行为识别) - 知乎专栏介绍了 Action Recognition 领域的研究进展。Action Recognition主要是用于给分割好的…https://zhuanlan.zhihu.com/p/26603387[ECCV 2018] 用于时序动作提名生成的边界敏感网络 - 知乎这篇笔记主要介绍我们录用于ECCV 2018上的论文: "BSN: Boundary-Sensitive Network for Temporal Action Proposal Generation"。这篇论文主要针对时序动作提名生成(temporal action proposal generation)…https://zhuanlan.zhihu.com/p/39327364[ICCV 2019][时序动作提名] 边界匹配网络详解 - 知乎这篇笔记主要介绍我们团队(百度视觉技术部VideoPlus组)发表于ICCV 2019上的工作:" BMN : Boundary-Matching Network for Temporal Action Proposal Generation"[1]。这篇论文主要针对我去年所发表的BSN…https://zhuanlan.zhihu.com/p/75444151

时序动作检测的应用是相当广泛的,包括动作剪辑,精彩片段检测,高光检测等等,目前我主要是用在智能剪辑上,对运动类,电商或者萌宠类的视频进行精彩镜头剪辑。

1.定义

temporal action detection是要在视频序列中确定动作发生的时间区间(包括开始时间与结束时间)以及动作的类别,一般分成两个步骤:(1) temporal action proposal generation: 即进行时序动作提名,产生候选的视频时序片段,即相当于Faster-RCNN中的RPN网络的作用;(2) action classification: 即判断候选视频时序片段的动作类别。两个部分结合在一起,即实现了视频中的时序动作检测。高质量的时序动作提名应该具备几点特质:(1)灵活的时序长度(2)精确的时序边界(3)可靠的置信度分数。

时序动作检测的难点:

  • 难点1:在目标检测中,物体目标的边界通常都是非常明确的,所以可以标注出较为明确的边界框。但时序行为的边界很多时候并不是很明确,什么时候一个行为算开始,什么时候行为算结束常常无法给出一个准确的边界(指精确的第几帧)。
  • 难点2:只使用静态图像的信息,而不结合时序信息在行为识别中是可以的(虽然结合时序信息效果会更好)。但在时序行为检测中,是无法只使用静态图像信息的。必须结合时序的信息,比如使用RNN读入每帧图像上用CNN提取的特征,或是用时序卷积等。
  • 难点3:时序行为片段的时间跨度变化可能非常大。比如在ActivityNet中,最短的行为片段大概1s左右,最长的行为片段则超过了200s。巨大的时长跨度,也使得检测时序动作非常难。

2.bsn

BMN:Boundary-matching network for temporal action proposal generation_第1张图片

bsn包括三个部分,1.视频特征提取,2.边界敏感网络,生成时序动作提名,3.非极大值抑制。 

在特征提取上使用的是双流网络,双流最后的输出是将rgb和光流进行拼接,实际上,这块用光流是很少的,一般是rgb和audio特征的拼接。由于是有时序的,最终的输出是一个二维的矩阵。

边界敏感网络包括三个模块,第一块是时序评估模块TEM,用的3个卷积对视频序列中每个位置上动作开始的概率、动作结束概率和动作同时进行的概率进行预测。第二块是提名生成网络,基于上面得出的概率序列来生成提名,怎么生成呢?选择动作开始和动作结束要满足两点条件之一,1.概率高于一个阈值,2.该时间节点的概率高于前一时刻以及后一个时刻,也就是个概率峰值,以此来选择动作开始或者结束的概率点,将候选开始时间节点和候选结束节点两两结合,保留时长满足要求的提名。如下所示,红线是开始概率,蓝线是结束概率,这样就生成了很多的时序段。到这里时序已经产生了,但是预测的是开始概率,动作进行概率和结束概率,仅用这三个概率还是无法评估时序本身的score,因此第三步为每个候选时序动作提名生成对应的特征描述,对于每个提名,取其本身时序区间作为center region,取开始节点和结束节点附近一段区间作为starting region和ending region,对于每个区间,在动作概率序列上的对应位置采样N个点,拼接后得到一个特征,最终利用PEM模块,一个简单的mlp,得到每个提名的置信度分数,置信度分数越高,则保留。看到这里,有几个问题,第一时序生成和置信度生成是割裂的,这不是一个端到端的网络,生成的时序的三个概率又作为PEM的输入,因此后续的bmn正是在这个点上对其进行优化。

BMN:Boundary-matching network for temporal action proposal generation_第2张图片

 nms的计算是提名和真实gt之间按照iou进行筛选。

3.bmn

bsn是一个多阶段的方法,提名特征提取以及置信度评估是对每个时序提名逐个进行的,这也是一个可优化的点,也就是一组视频输入,输出的n个提名都需要重新经过PEM提特征得到置信度,显然是没有必要的,那么可以不可以在一个统一的网络中同时高效的产生时序概率序列和时序提供的置信度分数。

BMN:Boundary-matching network for temporal action proposal generation_第3张图片

bmn主要包括三个模块,首先进行特征提取,这一步可以很多样,用tsm做特征提取都可以,第一个模块是backbone,base moudle模块包括两个1维卷积,处理输入的特征时序,大多数的bmn都是基于提好的特征进行预测的,目前用的比较广泛的是activity的特征提取数据集,base module输出后续两个模块所共享的时序特征序列。时序评估模块TEM包括两个1d卷积层,输出开始概率序列和结束概率序列,提名评估模块PEM包括了BM layer,以及生成置信图的一个3d卷积和3个2d卷积,最终输出为BM置信度图,提名生成和bsn一样,都是基于开始和结束概率进行配对,不过不需要再去训练时序提名特征网络,只需要从同时生成的二维置信度图中取出时序提名对应的置信度分数即可。最终在采用softnms去重。

因此bmn的核心在于BM机制(Boundary-matching mechansim),首先介绍下什么是BM置信度图?一个时序提名定义为一个开始边界和一个结束边界所构成的边界匹配对。按照时序提名开始边界的位置以及时序提名的长度将所有可能存在的时序提名结合成一个二维的边界匹配图。

BMN:Boundary-matching network for temporal action proposal generation_第4张图片

上图,可以表示所有潜在的时序提名,在BM置信度图中每个点所代表的的数值就是其所对应的时序提名的置信度分数。因此可以通过生成置信度图来同时给所有时序提名生成置信度分数,横轴是T输入时序特征序列的长度,纵轴是D,为最大的时序提名长度, 注意上图,相同的行表明时序提名具有相同的时序长度,纵轴是时序提名长度,相同的纵轴表明时序长度相同,相同的列表明输入时序特征的长度的起始点是一样的,则具有相同的开始时间,实际上这个二维的BM图上的每个点都代表了一个二维坐标,即起始时间和时序长度,那么就锁定了一个时序的置信度。如何生成这个置信度图呢?首先从时序特征序列中生成BM特征图,再从BM特征图生成BM置信度图。

BMN:Boundary-matching network for temporal action proposal generation_第5张图片

上图是从时序特征序列到BM特征图生成过程,通过采样矩阵和特征序列的乘积获取BM特征图,选定一个start之后,同一个时序长度上采样N个点作为该提名的特征。这个从时序特征采样到BM特征图的过程角BM layer。

从BM特征图到BM置信度图采用了3D卷积和2D卷积的来提取,训练中,采用BM标签图作为BM置信度图的监督。

最后看一下bmn的网络结构图:

BMN:Boundary-matching network for temporal action proposal generation_第6张图片

你可能感兴趣的:(电商算法与创意生成,深度学习,人工智能)