BMN: Boundary-Matching Network for Temporal Action Proposal Generation【文章分析与理解】

本文参考BMN提出作者林天威在知乎的博客进行分析理解

[ICCV 2019][时序动作提名] 边界匹配网络详解 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/75444151

目录

一、前言

二、整体感受

三、网络流程

四、细节展开

4.1 TEM(生成概率序列)

4.2 PEM(生成置信度图,本文重点)

4.2.1 BM置信度图

4.2.1  BM特征图生成

五、后处理

5.1  可以得到候选proposal

5.1.1 如何从众多proposal选择候选proposal

5.2 融合边界概率和置信度,生成动态置信分数Pf

5.3 去除冗余


一、前言

文章题目:BMN:时间动作方案生成的边界匹配网络

研究内容:时间动作的proposal生成

研究背景:时间动作的proposal生成是一项具有挑战性任务。目前很多方法已经可以精确定位出动作发生的边界,但是不能生成准确的置信度分数。因此本文提出BM机制,利用BMN网络同时实现精确的定位边界以及准确的置信度分数。

二、整体感受

 图1 

如图1(也是文章里面的图1),从整体上展示了文章的工作。

输入:时序视频,里面有事件开始结束的真值

接下来进入BMN网络

网络中包含两部分:边界概率生成(红蓝色折线)和边界匹配置信度图生成

(注意:这两个部分同时进行)

后处理:从边界概率生成这里产生边界概率,同时和边界匹配置信度图进行匹配,计算出分类置信度分数和匹配置信度分数。得到一个完整表示的proposal,即φ=(开始时间,结束时间,开始的概率,结束的概率,分类置信度分数,回归置信度分数),再通过soft-msn去除冗余即为最后结果。

三、网络流程

图2

 输入--特征提取(双流网络,不展开)--Base Module(处理提取的特征,得到一个新的特征让TEM和PEM使用)---左边TEM模块(生成前面提到的红蓝折线也就是概率序列)---右边PEM模块(生成置信度图)(TEM和PEM是同时进行的)----概率序列和置信度图匹配计算置信度分数得到最后结果。

四、细节展开

4.1 TEM(生成概率序列)

 图3

如图3是TEM模块的网络结构和维度变换。经过这些操作就能生成每个时刻是开始结束的概率。

图4 

概率可视化后如图4

说明:文章代码最开始输入是未裁剪视频,经过了一个采样,以及一个滑动窗口(窗口大小为100),经过双流网络特征提取后维度为(400,100),经过Base Module处理变成(256,100)。这幅图里开始的Feature是经过Base Module处理后的。

4.2 PEM(生成置信度图,本文重点)

 图5

说明:这幅图里开始的Feature也是经过Base Module处理后的。

PEM模块生成置信度图的过程是:时序特征----BM特征图----BM置信度图

时序特征就是前面处理过的特征,重点是BM特征图的生成,从BM特征图到置信度图也比较简单

4.2.1 BM置信度图

在讲BM特征图之前先说一下什么是BM置信度图

图6 

如图6就是BM置信度图,横坐标表示时序提名开始边界的位置,纵坐标表示时序提名的长度。

这幅图意思就是:每一行,他们的持续时间是相同的,但是不同的横坐标意味着他们开始的时间不同。每一列开始的时间是相同的,但是不同纵坐标表示他们持续的时间不同。

置信度图表示为Mc\in \mathbb{R}^{^{D\times T}} ,这里D是定义的proposal最大持续时长超参数(从数据集中可以知道事件最长持续时长是多少), T为输入时序特征序列的长度。

一个Proposal表示为\varphi (i,j),其中i是横坐标表示开始的时间,j是纵坐标持续的时间,结束时间就是i+j。 Mc(i,j)表示每个proposal的置信度。这样这个二位置信度图就能表示出每一个可能的proposal的置信度。

举例:Mc(1,2)表示一个开始时间是1,持续了2秒的事件的置信度,那么结束时间也就是1+2=3秒

Mc(3,2)表示一个开始时间是3,持续了2秒的事件的置信度,那么结束时间就是3+2=5秒

因此在置信度图中任何一个Proposal都可以被表示出来。

4.2.1  BM特征图生成

 图7

如图7展示了PEM模块的整体过程。BM特征图是通过BM层生成的,也就是图5的boundary_matching_layer。

图8 

如图8就是生成BM特征图的过程。上面的是N×T的权重矩阵,下面的是C×T特征矩阵,右边的是生成的BM特征图。

N是采样点个数,T是输入时序特征序列的长度,C是特征的维度。

4.2.1.1 什么范围内采样?

对Proposal的边界进行了扩充,在这个经过扩充的proposal里面采样N个点

4.2.1.2 权重矩阵如何生成(重点)

权重矩阵计算公式如下:

 

 图9

说明:dec和floor都是python的函数,分别代表取小数部分以及向下取整。例如,2.35的dec=0.35,floor=2。t表示整数

 图10

现在来看看图10怎么计算的。

已知N=4,T=10,采样起始点为1,采样结束点为8.计算权重矩阵

①计算采样间隔=(采样结束时间-采样开始时间)/(采样点个数-1)=(8-1)/(4-1)=7/3

②采样结果:1,1+7/3,1+7/3+7/3,1+7/3+7/3+7/3

                        即为1,10/3,17/3,24/3

③设置一个空的权重矩阵N×T的(4×10)

⑤开始按照公式计算

 t表示整数时刻,持续时间T=10所以t就从0秒到9秒

第一个采样点为1,if t=floor(tn),整数时刻1=向下取整(采样点1),即1=1,所以权重1-dec(1)=1

第一个采样点为1,if t=floor(tn)+1,整数时刻2=向下取整(采样点1)+1,即2=1+1,权重dec(1)=0

其他情况权重都是0

第二个采样点为10/3,if t=floor(tn),整数时刻3=向下取整(采样点10/3),即3=3,所以权重1-dec(10/3)=1-0.333=0.666

第二个采样点为10/3,if t=floor(tn)+1,整数时刻4=向下取整(采样点10/3)+1,即4=3+1,权重dec(10/3)=0.666

其他情况权重都是0

采样点17/3,24/3同理可以得出权重。

即可得到                                              也就是原图的

 4.2.1.3 BM特征图和BM置信度图

 Sf就是下面的时序特征(C×T),wi,j就是刚刚生成的权重矩阵。将两个点乘就能得到一个proposal的BM特征。

将维度扩大,扩展到二维置信度图上,

 然后再点乘就能得到BM特征图

 之后再经过三维-二维卷积即可得到BM置信度图

五、后处理

5.1  可以得到候选proposal

 分别表示(开始时间,结束时间,开始时间概率,结束时间概率,分类置信度,回归置信度)

5.1.1 如何从众多proposal选择候选proposal

也就是为什么在下面的示例中proposal开始概率只选了三个,结束概率只选了两个。并且开始结束概率只确定了三个proposal

选开始和结束概率要满足上面两个条件。ptn是该时刻概率值。

基于上面两个条件选出了三个开始和两个结束。确定proposal的时候,需要满足,开始在结束之前,并且开始和结束连成的proposal持续时长不能大于数据集里最大事件持续时长

5.2 融合边界概率和置信度,生成动态置信分数Pf

 这几个分别代表:置信度分数 = 开始概率 × 结束概率 × 根号下(分类置信度 × 回归置信度)

所以proposal变成了

5.3 去除冗余

使用soft-nms 

猜你喜欢

转载自blog.csdn.net/qq_46073783/article/details/130839635