时序动作检测《BSN: Boundary Sensitive Network for Temporal Action Proposal Generation》
时序动作检测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博客
温馨提示:本文仅供自己参考(勿捧杀),如有理解错误,有时间再改!
时序行为检测
两段式目标检测方法如Faster RCNN先使用RPN网络生成proposal,然后再使用Fast RCNN网络对proposal进行精炼,得到更加准确的结果。两段式时序行为检测方法跟两段式目标检测方法类似,先生成时序行为的proposal候选片段,然后再使用时序动作识别方法对proposal进行行为分类。所以生成的proposal的准确性严重影响时序行为检测的性能,高质量的proposal应该具备两个重要属性:
1、proposal对于GT的召回率和重合度要足够高
2、在实现高的召回率和重合度的前提下,使用的proposal要足够少
一个高质量的proposal方法应该能够灵活的生成不同时序长度,且边界准确的proposal,同时给出proposal中包含动作行为的置信度,这和Faster RCNN网络中的RPN思想基本一致。
BSN使用local to global局部到全局的方式生成高质量的proposal,首先通过局部连接的方式组合具有高置信度的开始和结束位置,构成可能的proposal,然后使用proposal-level特征全局检索过滤高置信度的proposal,BSN算法一共有三步:
Step 1:BSN在视频片段的每个时间位置都预测输出当前时间点属于一个动作的开始概率、结束概率,以及当前时间点属于某个动作的概率,生成一个<start prob, end prob, action prob>的时间序列作为局部信息。
Step 2:使用自下而上的方式直接组合具有高预测概率值的开始点(如下图中红色实线的2个峰值点)和结束点(如下图中蓝色虚线的1个峰值点),从而可以生成不同长度不同边界准确性的proposal(如下图中2个开始点和1个结束点组成2个可能的proposal)。
Step 3:BSN利用proposal内部和周围的action prob组成的特征,通过评估proposal是否包含action的置信度来进一步从step 2的输出结果中检索具有高置信度的proposal。这些proposal-level的特征为更好的评估提供了全局信息
问题定义
视频定义:
其中,表示视频中的某一帧,表示视频的总帧数。
视频action的GT标签定义:
其中表示视频中的一个动作片段,分别表示动作片段的开始位置和结束位置,表示视频中包含的标注动作GT的数量。
不同于时序动作识别和时序动作检测任务,时序动作proposal生成方法并不关注生成的proposal中的具体action类别,只关注proposal中是否包含action,所以是一个二分类问题,和Faster RCNN的RPN模块类似,RPN只识别出可能包含目标物体的区域,然后丢给下一级网络去进一步确定目标物体的类别以及目标的准确位置。
视频特征提取
BSN算法中使用Two-Stream双流网络提取视频特征,双流网络一路提取图像的空间特征,一路提取光流的时序运动特征。在视频片段的每个位置提取图像特征和光流特征,表示如下:
其中,表示视频中的第 t 帧图像,表示以视频第 t 帧图像为中心的连续图像计算的光流,然后将和分别输入到Two-stream双流网络提取特征,然后将双流网络的两路输出特征进行concat融合得到。对视频的每个时间位置都计算得到和,并提取特征,从而得到视频的时序特征,BSN算法在进行视频特征提取时,为了降低计算量,采用步长为的间隔采样,所以采样的特征序列总帧数为。在视频特征提取方面,BSN算法和上一篇中讲到的SSAD算法有较大区别,具体参见上一篇博客。
BSN算法主要模块
Temporal Evaluation Module(TEM)
TEM是一个三层的时序卷积网络,网络的输入是上一步视频特征编码中使用双流网络提取的时序特征,然后TEM预测输入的时序特征每个时序位置是一个动作开始点的概率,结束点的概率,以及这个时序位置属于一个动作的概率,从而输出starting开始点的时序概率,ending结束点的时序概率,以及每个点是否属于一个动作的时序概率,starting、ending以及action的概率预测都是二分类问题。网络结构是Conv(512; 3; Relu) -> Conv(512; 3; Relu) -> Conv(3; 1; Sigmoid),最终输出3通道表示计算3个概率值。
TEM输出的三个概率序列表示如下:
Proposal Generation Module(PGM)
PGM组合TEM模块输出的具有高置信度概率值的starting开始点和ending结束点,生成可能的proposal片段,然后基于各个proposal中各个时间序列位置的动作概率构造BSP特征。
筛选开始时间和结束时间点:
根据starting序列概率选择开始时间点:选择的点或者峰值点(比两边都大的凸起点)。Ending时间点采用同样的方式选择。
构造候选proposal:
将上一步选择出的开始时间点和结束时间点进行两两组合,并且组合的时间点满足设置的视频最大和最小长度参数,。其中是训练集中标注的动作GT的最大和最小长度大小。
候选proposal特征提取:
上一步提取的候选proposal表示为,将之间的片段定义为中间区域,将以为中心的片段定义为,将以为中心的片段定义为。在片段内的动作概率序列上采用线型插值方式均匀采样16个特征点得到,在和片段内的动作概率序列上采用线型插值方式分别均匀采样8个特征点得到和。将采样的特征点进行concat得到这个proposal的BSP特征。
Porposal Evaluation Module(PEM)
PEM使用多层感知机(多个全连接层)对PGM中每个候选proposal提取的BSP特征进行处理,得到候选proposal与GT的重合置信度。到目前为止,一个候选proposal就可以被表示为下式:
其中,表示这个proposal的开始位置和结束位置,表示这个proposal开始和结束位置的概率置信度,表示这个proposal与GT的重合置信度。在模型预测阶段,使用这些置信度来共同决定模型的预测输出结果。
模型训练
Temporal Evaluation Module(TEM)训练
训练数据构造:
在特征序列上F使用长度为的不重叠滑窗,窗口表示为。是窗口内的特征序列,是窗口内的GroundTruth实例,每个GT实例表示为, 表示GT实例的开始位置和结束位置。定义GT开始位置区域、结束位置区域以及动作实例区域如下:
对于窗口内的序列特征,TEM网络输出每个序列位置的开始概率、结束概率、动作概率,定义序列位置的区域表示如下:
是 特征序列中连续两个snippet在原始视频帧上的时序间隔,这个时序间隔我理解就是提取视频特征时使用的采样间隔 。分别计算每个 与所有 的IoP比率的最大值得到 作为监督信号,IoP定义为snippet区域与某一 区域的重叠部分比上snippet区域的比值。 时间点的特征可以表示如下:
其中, 是 时间点的开始、结束以及动作概率, 是监督信号,分别是与 区域的IoP最大的 所对应的IoP值。 就是TEM的输出结果以及监督信号,其中是TEM的预测输出结果,是监督信号。在训练TEM模块时,通过定义一个IoP的阈值,将 的结果减去IoP阈值然后使用sign符号函数得到[0,1]的监督信号。比如有一组 ,IoP的阈值设为0.5,那么训练的监督信号标签为 。
损失函数:
TEM处理的是三个二分类问题,其损失函数是三个二分类的加权Logistic Regression损失的加权和。
其中是符号函数,是超参数阈值,同时加入平衡正负样本。
Proposal Evaluation Module(PEM)训练:
训练数据构造:
对于TEM的输出结果,PEG模块生成了候选的proposal已经proposal的BSP特征,候选proposal表示如下:
将特征输入到PEM网络,得到预测置信度,同时计算该proposal与窗口内所有GT的IoU值。然后一个proposal可以表示为:
设置为positive,为negative。其中是PEM的预测结果,是回归模型的监督信号。
损失函数:
PEM网络使用回归损失:
Post-Processing(后处理):
在预测阶段的输出结果如下:
是预测的动作开始和结束位置,是预测的开始和结束位置的概率置信度,是预测的动作的置信度。对结果进行非极大化抑制,从而去除重叠的结果。采用了soft-nms算法来通过降低分数的方式来抑制重叠的结果。处理后的结果即为BSN算法最终生成的时序动作Proposal。
模型评价指标
AR(Average Recall): 基于多种IoU阈值的Average Recall (AR)模型平均召回率评价指标
AR@AN(Average Recall @ Average Number of proposals): 为了评估不同模型在达到相同性能的条件下需要使用的proposal的数量多少,定义了AR@AN评价指标
mAP(mean Average Precision): 基于多种IoU阈值的mean average precision(mAP)模型预测平均准确率评价指标
参考:[ECCV 2018] 用于时序动作提名生成的边界敏感网络 - 知乎
开源代码:GitHub - wzmsltw/BSN-boundary-sensitive-network: Codes of our paper: "BSN: Boundary Sensitive Network for Temporal Action Proposal Generation"
时序动作检测《BSN: Boundary Sensitive Network for Temporal Action Proposal Generation》相关推荐
- BMN:Boundary-matching network for temporal action proposal generation
Video Analysis 相关领域解读之Temporal Action Detection(时序行为检测) - 知乎本文投稿于 @极视角 公众号,链接为 文章链接. 上一篇 Video Analy ...
- 【论文翻译】 BMN: Boundary-Matching Network for Temporal Action Proposal Generation
BMN: Boundary-Matching Network for Temporal Action Proposal Generation 边界匹配网络[时序动作提名] 1. Introductio ...
- BSN: Boundary-Sensitive Network for Temporal Action Proposal Generation
转自BSN作者林天威知乎:https://zhuanlan.zhihu.com/p/39327364,用于学习交流. 前言 这篇笔记主要介绍我们录用于ECCV 2018上的论文: "BSN: ...
- PBRNet:Progressive Boundary Refinement Network for Temporal Action Detection (AAAI 2020)
PBRNet:Progressive Boundary Refinement Network for Temporal Action Detection AAAI 2020 中国科学技术大学 欢迎感兴 ...
- 【论文阅读】时序动作检测系列论文精读(2020年)
文章目录 1. DBG: Fast Learning of Temporal Action Proposal via Dense Boundary Generator 论文目的--拟解决问题. 贡献- ...
- CVPR2019 | 论文之行为/动作识别、手势识别、时序动作检测及视频相关
CVPR2019 | 论文之行为/动作识别.手势识别.时序动作检测及视频相关 行为/动作识别.手势识别 1.An Attention Enhanced Graph Convolutional LSTM ...
- Talk预告 | 腾讯AI Lab研究员童湛南京大学谈婧:基于注意力机制的视频自监督表示学习和时序动作检测
本期为TechBeat人工智能社区第465期线上Talk! 北京时间12月22日(周四)20:00,腾讯AI Lab研究员--童湛&南京大学计算机科学与技术系硕士研究生--谈婧的Talk将准时 ...
- 论文阅读:TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals
TURN TAP: Temporal Unit Regression Network for Temporal Action Proposals 摘要 方法 视频单元处理 剪辑金字塔建模 单元级别时间 ...
- Learning salient boundary feature for anchor-free temporal action localization AFSD阅读笔记及代码复现
论文地址:Lin_Learning_Salient_Boundary_Feature_for_Anchor-free_Temporal_Action_Localization_CVPR_2021_pa ...
最新文章
- LeetCode简单题之检查字符串是否为数组前缀
- struts2教程(9)--OGNL表达式使用
- html距离已过去多久,用javascript写的倒计时,从某年某月距离到今天还有多少时间...
- TMS320F28335之定时器
- hdu5720_贪心
- 调用系统相机和相册,并且裁剪成圆形图片(解决6.0,7.0,8.0版本问题)
- 全局配置_配置全局异常处理,结果没有想到,spring boot实践(3)
- Python【WINAPI】钩子程序获取账号密码等键盘输入信息
- 何晓飞首次披露飞步自动驾驶方案:无人货运起步,自研AI芯片
- isnull pivot server sql_使用SQL Server中的“Pivot”将行转换为列
- 转: 技巧/诀窍:在ASP.NET中重写URL
- Office 2010下载安装
- 一般线性模型混合线性模型广义线性模型【转】
- 实现一个内存池管理的类
- 装饰器(Decorator)模式
- 想做出高级又好看的PPT,这8个窍门你别错过
- go 字符转ASCII 字符转成数字
- uniapp --自我学习
- Python 1~500 求和(循环遍历求和,高斯求和,定义函数求和)
- java的三种技术架构