本文参考BMN提出作者林天威在知乎的博客进行分析理解
[ICCV 2019][时序动作提名] 边界匹配网络详解 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/75444151
目录
5.1.1 如何从众多proposal选择候选proposal
一、前言
文章题目: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置信度图,横坐标表示时序提名开始边界的位置,纵坐标表示时序提名的长度。
这幅图意思就是:每一行,他们的持续时间是相同的,但是不同的横坐标意味着他们开始的时间不同。每一列开始的时间是相同的,但是不同纵坐标表示他们持续的时间不同。
置信度图表示为 ,这里D是定义的proposal最大持续时长超参数(从数据集中可以知道事件最长持续时长是多少), T为输入时序特征序列的长度。
一个Proposal表示为,其中i是横坐标表示开始的时间,j是纵坐标持续的时间,结束时间就是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