时序动作检测SSAD《Single Shot Temporal Action Detection》_程大海的博客-CSDN博客_时序动作检测
时序动作检测《BSN: Boundary Sensitive Network for Temporal Action Proposal Generation》_程大海的博客-CSDN博客
时序动作检测《BMN: Boundary-Matching Network for Temporal Action Proposal Generation》_程大海的博客-CSDN博客
《Non-local Neural Networks》个人总结理解_程大海的博客-CSDN博客
时序动作检测《BSN++: Complementary Boundary Regressor with Scale-Balanced Relation Modeling for ……》_程大海的博客-CSDN博客
温馨提示:本文仅供自己参考(勿捧杀),如有理解错误,有时间再改!
BMN算法是对BSN算法的改进,有关BSN算法的详细介绍,请参考上一篇文章。一个高质量的proposal生成方法应当具备生成的proposal长度灵活可变、proposal边界精确、proposal可靠的置信度。
BSN算法的缺点:
1、BSN算法中PEG模块对于候选proposal的特征构建和置信度评估是分开进行的,效率低
2、在BSN算法中的TEM模块对每个时刻采用局部上下文信息进行特征建模,proposal特征的构建缺少丰富的时序上下文信息
3、BSN算法中包含多个处理步骤:视频特征提取、TEM、PGM、PEM等,是一个多阶段的算法模型,不是一个统一的网络模型
视频特征提取
BMN算法中对于视频的形式化定义以及视频时序特征的提取方法和BSN算法相同。
Boundary-Matching Mechanism
在BM机制中,一个proposal被表示为一对开始边界点和结束边界点,然后将这个(开始,结束)转换为(开始,持续时长),然后使用一个二维的BM置信度图来表示所有可能的proposal的(开始,持续时长)对,其中横轴表示proposal的不同开始时间点,纵轴表示proposal的持续长度。在BM机制中,首先定义一个BM层用来从输入的特征序列中生成BM特征图,在BM特征图中,包含每个proposal丰富的特征和上下文信息,然后对于BM特征图使用卷积层来计算得到BM置信度图。
BM置信度图
BM置信度图要点解释:
1、BM置信度图上每一行上的proposal具有相同的持续时间,不同的开始时间位置
2、BM置信度图上每一列上的proposal具有相同的开始时间位置,但是具有不同的持续时间长度
3、BM置信度图上平行于45度线上的proposal具有不同的开始时间点和持续时间长度,但是具有相同的结束时间点
4、BM置信度图的右下角区域的proposal是无效的,因为此区域的proposal的开始时间+持续时间可能会超过视频的总时长
假设将BM置信度图表示为,对于置信度图中的任一proposal的坐标,位于第行,第列,其对应的proposal表示为, 表示这个proposal以为开始位置,持续时间,以为结束位置的置信度。通过BM置信度图,可以生成所有可能的proposal的预测置信度值。
Bounding-Matching Layer(BM层)
Bounding-Matching Layer模块将提取到的视频特征序列转换为BM置信度图。首先,定义提取到的视频特征序列为,对于每个proposal ,在其开始时间和结束时间范围内,采样N个点特征点,得到每个proposal的特征,对每个proposal 都进行同样的采样过程,就得到了BM特征图:
其中,是原始特征序列的输入通道数,是在每个proposal上的采样点数,是定义的proposal最大持续时长超参数,是输入的原始特征序列长度。
BM特征采样需要解决的问题:
1、如何在开始时间和结束时间范围内采样N个特征点,这些特征点可能不会刚好落在整数位置上,需要定义非整数位置的特征点采样方法,(BSN算法中采用的是线型插值均匀采样,类似于RoI Align,这种计算方式这能对每个proposal进行单独计算,效率低)
2、如何同时提取BM置信度图上所有proposal的特征点,以提高计算效率
proposal特征采样实现方法:
首先对于proposal 的边界进行扩充,,为起始边界点,为结束边界点,,对该区间进行均匀采样N个点,并且生成采样点对应的权重矩阵,然后根据每个均匀采样点的权重以及与之对应的时序特征加权计算每个采样点的特征,权重矩阵计算公式如下:
对于在proposal片段内采样的N个点,假如第n个采样点,那么表示这个采样点落在时间序列和之间,通过采样点的小数部分来衡量采样点和时间序列和之间的靠近程度,并使用和的加权结果来表示位置的采样结果,的小数部分越大,表明离越远,时刻的权重就越小,时刻t+1的权重就越大。
将权重矩阵和时序特征点乘就得到proposal的特征。以上计算方式只是BM置信度图上一个proposal的特征计算方法,然后将其扩展到二维BM置信度图上,扩展后的权重矩阵为,使用权重矩阵和时序特征进行点乘,得到BM特征图。
重点:在BSN算法中,每个proposal的特征采样采用线型插值得到,对于每个proposal都要单独计算插值结果得到特征,效率低。在BMN算法中,在时序长度和采样点数量都确定的情况下,每个proposal中的N个采样点的位置也是确定的,所以N个采样点对应的权重矩阵也是确定的,可以事先计算得到,并且可以使用矩阵点乘的方式实现,实现方式更优美,大大提升计算速度。
BM层的训练监督信号
BM置信度图上每个点都是一个proposal,对于每个proposal,计算proposal与所有GT的IoU的最大值作为这个proposal置信度训练的监督信号。
BMN算法结构
Base Model
BMN算法在Base Model提取序列特征方面与BSN方法一致,均采用固定大小的滑动窗口实现,使用固定大小的滑动窗口,也就确定了时序特征的序列长度T,从而也就能确定BM层的权重矩阵了。Base Model采用了两个1D卷积来增加时序维度的感受野:
Temporal Evaluation Module (TEM)
TEM模块与BSN算法的TEM模块的作用相同,计算方法不同。TEM模块使用概率预测的方式输出输入的时序特征的每个时序位置是动作开始和动作结束的概率,这个概率使用sigmoid函数来计算:
TEM在每个时序位置输出两个通道,然后使用sigmoid转换为概率值,分别表示开始概率和结束概率。TEM输出的概率在BSN中用来构造可能的proposal,但是在BMN中,不使用TEM生成的概率序列来生成可能的proposal,而是使用BM层来生成所有可能的proposal,TEM预测的开始点和结束点概率在BMN中用来在后处理阶段和BM置信度图一起计算proposal的置信度。
Proposal Evaluation Module (PEM)
PEM模块中包含BM层使用权重矩阵生成所有可能的proposal的特征得到BM特征图,然后对于BM特征图使用3D、2D卷积计算得到BM置信度图计算所有proposal的置信度。PEM模块中每个proposal采样32个特征点,然后使用3D卷积在特征点维度上将32个特征点进行压缩到1个特征点从而消除采样特征维度。最终再通道维度上的输出为2,表示输出proposal的两个置信度,一个置信度是使用分类损失计算得到的,一个置信度是使用回归损失计算得到的。
模型训练
使用重叠度50%的滑窗来截取固定大小的特征序列,并且滑窗中至少包含一个动作实例。
TEM训练数据构建
BMN算法中的TEM和BSN算法中的TEM计算类似,都是先确定一下GT动作实例开始位置的region区间 和结束位置的region区间,然后计算时序位置的区间 分别与GT开始位置区间和结束位置区间重叠度的IoR,将得到的IoR的最大值分别作为时序位置作为开始位置的GT标签和结束位置的GT标签。IoR的定义就是区间region的重叠度。
IoU的计算:
IoR的计算(在BSN论文中叫IoP,在BMN论文中叫IoR):
PEM训练数据构建
计算BM置信度图中每个proposal与窗口中所有标注动作实例GT的IoU的最大值作为这个proposal的置信度GT标签,用于训练得到BM置信度图。
损失函数
TEM损失
TEM损失和BSN算法一样,采用加权的逻辑斯蒂回归损失分别计算开始损失和结束损失。
PEM损失
PEM模块由于同时输出两个预测概率,一个用于分类,一个用于回归,分类损失采用逻辑斯蒂回归损失,回归损失采用L2损失。
整体损失
BMN算法推理
使用TEM输出的开始和结束概率序列提取候选proposal
BMN中基于TEM生成候选proposal的方式与BSN算法完全一样。选择概率大于设定阈值,或者是峰值的开始点和结束点组成候选的开始点序列和结束点序列,然后将开始序列和结束序列进行两两配对得到候选的proposal,候选的proposal此时可以表示为:
联合TEM和PEM的输出结果计算候选proposal的置信度
基于proposal的开始节点概率、结束节点概率、分类置信度、回归置信度计算得到proposal的置信度值:
soft-nms进行后处理
最后使用Soft-NMS进行后处理去除冗余的预测结果。
参考:[ICCV 2019][时序动作提名] 边界匹配网络详解 - 知乎
参考:https://github.com/open-mmlab/mmaction2
参考:https://github.com/JJBOY/BMN-Boundary-Matching-Network