ActivityNet Challenge 2019 冠军模型BMN算法全解析

 ActivityNet Challenge 2019 冠军模型BMN算法全解析

【飞桨开发者说】储泽栋,北京交通大学软件学院大四在读,曾获ICPC国际大学生程序设计竞赛亚洲区域赛铜牌,全国大学生服务外包大赛二等奖

ActivityNet Challenge 2019 冠军模型BMN算法全解析


随着互联网世界视频数量的急剧增长,视频内容分析技术得到了越来越广泛关注。视频动作定位是视频内容分析领域里的一个重要任务,它的目标是在一段未经修剪的视频中定位出动作类别及其对应的时序边界。通常视频动作定位任务可以分为两个阶段:时序提名生成和动作分类。


本文所介绍的算法BMN为百度自研,为时序提名生成任务提供了一个高效的解决方案,是ActivityNet 2019大赛中的task1和task2的冠军方案(task1为时序提名生成,task2为视频动作定位)。

模型概览

ActivityNet Challenge 2019 冠军模型BMN算法全解析

图 1 BMN算法概览

ActivityNet Challenge 2019 冠军模型BMN算法全解析

图 2 网络配置图

作为BSN系列的改进方案,BMN算法继承了BSN的整体思路:先定位动作的边界,再将边界节点组合为时序提名,对于候选的时序提名,基于置信度分数进行筛选,得到最终的动作定位集合。

BMN模型的处理流程如下:首先使用双流网络(光流+RGB)对输入视频进行预处理,得到编码特征。然后将编码特征输入Base Module,使用两层时序卷积提取特征,其后分TEM和PEM两个分支进行处理,TEM模块通过两层时序卷积处理得到视频每个位置为开始边界的概率序列和为结束边界的概率序列,PEM模块处理得到BM配置信度图(该过程将在下文中详细介绍),使用该置信度图可以轻松得到任一候选提名的置信度分数。

在后处理阶段,边界概率两个序列中的极大值点及超过最大值一半的点所在视频位置被视为候选开始边界或候选结束边界。通过对两种边界的两两组合,我们可以得到一系列的候选动作提名,再通过在置信度图中检索分数,我们可以得到一个拥有置信度分数的候选提名集合。最后,算法采用了Soft-NMS方法来去除了冗余结果。

边界匹配机制

BMN提出了一种新的时序提名置信度评估机制——边界匹配机制,作用于PEM模块。边界匹配机制的目的是为生成的候选提名提出可靠的置信度分数,下面笔者将从以下三个方面对该机制进行讲解。

01

BM置信度图


首先我们将一个时序动作提名ActivityNet Challenge 2019 冠军模型BMN算法全解析表示为开始边界为ActivityNet Challenge 2019 冠军模型BMN算法全解析,结束边界为ActivityNet Challenge 2019 冠军模型BMN算法全解析的匹配对。如下图所示,边界匹配机制的目的是创建由有不同开始边界和长度的边界匹配对组成的二维BM置信度图ActivityNet Challenge 2019 冠军模型BMN算法全解析我们用ActivityNet Challenge 2019 冠军模型BMN算法全解析表示提名ActivityNet Challenge 2019 冠军模型BMN算法全解析的置信度分数,其中ActivityNet Challenge 2019 冠军模型BMN算法全解析的开始边界ActivityNet Challenge 2019 冠军模型BMN算法全解析,持续时ActivityNet Challenge 2019 冠军模型BMN算法全解析,因此其结束边界ActivityNet Challenge 2019 冠军模型BMN算法全解析因此,我们可以使用BM置信度图来为候选的时序提名获取置信度分数。

ActivityNet Challenge 2019 冠军模型BMN算法全解析

图 3 BM置信度图

BM置信度图中,分布在同一行的提名拥有相同的持续长度,分布在同一列的提名拥有相同的开始边界,分布在副对角线的提名拥有相同的结束边界。右下角部分提名因为结束边界超出视频范围,因此归为无意义区域。

02

BM layer简介

如何从视频特征序列提取出BM置信度图是一个关键的问题,该算法引入一个BM layer来完成这个任务。视频时序序列特征为ActivityNet Challenge 2019 冠军模型BMN算法全解析,通过BM layer我们可以得到BM特征图ActivityNet Challenge 2019 冠军模型BMN算法全解析随后经过一系列卷积层得到BM置信度图ActivityNet Challenge 2019 冠军模型BMN算法全解析,其中D为预定义的时序动作提名最大长度。

BM layer的作用是:对于提名ActivityNet Challenge 2019 冠军模型BMN算法全解析,我们将在中均匀采样N个点以获得拥有丰富上下文信息的提名特征ActivityNet Challenge 2019 冠军模型BMN算法全解析随后我们可以通过对所有提名同时采用这种采样策略来获取边界匹配特征图ActivityNet Challenge 2019 冠军模型BMN算法全解析

ActivityNet Challenge 2019 冠军模型BMN算法全解析

图 4 BM layer

然而采样过程中依然还有两个难点待解决:

(1)如何从非整数点采样特征?

(2)如何对所有提名同时采样?

如上图所示,我们采用一个采样掩码矩阵ActivityNet Challenge 2019 冠军模型BMN算法全解析与时序特征序列矩阵ActivityNet Challenge 2019 冠军模型BMN算法全解析在时序维度相乘来同时解决这两个问题。首先,对于每个提名ActivityNet Challenge 2019 冠军模型BMN算法全解析,我们通过上述增广采样方构建一个权重项ActivityNet Challenge 2019 冠军模型BMN算法全解析对于一个非整数的采样点,我们定义它的采样掩码ActivityNet Challenge 2019 冠军模型BMN算法全解析为:

ActivityNet Challenge 2019 冠军模型BMN算法全解析

其中dec和floor分别指取小数部分函数和取整数部分函数。进而,我们可以获得权重项ActivityNet Challenge 2019 冠军模型BMN算法全解析随后,通过在时序维度矩阵相乘ActivityNet Challenge 2019 冠军模型BMN算法全解析ActivityNet Challenge 2019 冠军模型BMN算法全解析,我们可以得到提名特征:

ActivityNet Challenge 2019 冠军模型BMN算法全解析

通过将单个提名的权重项ActivityNet Challenge 2019 冠军模型BMN算法全解析扩展到BM置信度图中所有提名,我们可以得到权重矩阵ActivityNet Challenge 2019 冠军模型BMN算法全解析,最后使用矩阵相乘便可得到BM特征度图ActivityNet Challenge 2019 冠军模型BMN算法全解析因为采样掩码矩阵W对任何视频来说都是相同的,因此它可以被提前计算,进而在推理过程中BM player的计算速度将会非常快。

03

BM标签

在训练时,我们将BM标签图记为ActivityNet Challenge 2019 冠军模型BMN算法全解析,它与BM置信度图ActivityNet Challenge 2019 冠军模型BMN算法全解析拥有相同的维度和形状,其中ActivityNet Challenge 2019 冠军模型BMN算法全解析表示候选提名ActivityNet Challenge 2019 冠军模型BMN算法全解析与所有真实提名的最大交并比总体来说,在边界匹配机制中,我们使用BM layer从时序特征序列ActivityNet Challenge 2019 冠军模型BMN算法全解析中高效地生成BM特征图ActivityNet Challenge 2019 冠军模型BMN算法全解析,随后使用一系列卷积来生成BM置信度图ActivityNet Challenge 2019 冠军模型BMN算法全解析,整个过程将使用BM标签图ActivityNet Challenge 2019 冠军模型BMN算法全解析来进行有监督的训练。

飞桨复现项目地址:

https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/video/models/bmn


总结

最终使用飞桨对BMN复现在ActivityNet1.3数据集的验证集上评估精度如下:

ActivityNet Challenge 2019 冠军模型BMN算法全解析

BMN算法是时序动作检测领域的经典之作,它的主要贡献是通过引入一种全新的时序提名评估机制以及高效的特征采样方式,来提升了前作BSN方法的性能和效率。但是因其网络较为简单,因此其网络设计和优化方面依然存在着提高空间。AAAI2020的一篇工作《Fast Learning of Temporal Action Proposal via Dense Boundary Generator》通过优化损失函数、改进网络设计的方式进一步提高了该系列工作的性能指标,有兴趣的同学可以自行阅读。

如在使用过程中有问题,可加入飞桨官方QQ群进行交流:703252161

如果您想详细了解更多飞桨的相关内容,请参阅以下文档。

官网地址:

https://www.paddlepaddle.org.cn

飞桨开源框架项目地址:

GitHub:

https://github.com/PaddlePaddle/Paddle

Gitee: 

https://gitee.com/paddlepaddle/Paddle

END

ActivityNet Challenge 2019 冠军模型BMN算法全解析