TSA-Net论文详解

2021-04-11  本文已影响0人  ce0b74704937

论文地址:Scale Matters: Temporal Scale Aggregation Network for Precise Action
Localization in Untrimmed Videos

该文章发表在ICME2020,文章认为时序检测定位边界时,时序信息的充分利用是很重要的,但是因为不同的动作类别时长是不一样的,所有one-for-all的感受野是比较难的,为了解决这种问题文章提出了多尺度的感受野融合的方法。文章的目的只是解决时序提名的问题。

一、网络结构

网络结构如下图所示


1.png

首先要明确的是网络的输入是利用P3D、C3D或者TSN提取的特征。

对于一个时长为\sigma * T的视频,经过采样间隔为\sigma的采样,得到T个snippet(一个snippet可以定义为对应采样点的图片帧和对应采样点的光流特征,或者对应采样点及附近的采样帧的集合)。将T个snippet经过特征提取器后,得到T个时序特征序列F=[f_1, f_2, ..., f_T]。F就是本文提出网络的输入,即上图中的Sequence of Video Feature。F输入到几层共享的1维卷积后,输入到三个分支,每个分支由几个MDC组成(MDC结构后续会讲),最后经过pool层预测出对应的结果。

文章为了增加网络时序维度的感受野,并且不引入过多的计算复杂度,于是提出了上图中的Multi-Dilation Temporal Convolution(MDC) Block。MDC Block就是将几个空洞卷积并联起来,空洞卷积的核大小都一样,只是 dilation rate不一样,而且空洞卷积是在残差块里面,MDC结构如下图所示,其中d_1<d_2<d_3

2.png
1.1 关键点的预测

该网络对三类点进行预测,即开始点t^{(s)}, 结束点t^{(e)},以及中间点t^{(i)}=(t^{(s)} + t^{(e)})/2。对应给定的视频,可能存在多个动作,对应预测方式,多个动作的groundtruth表示为\Gamma= \{\gamma_k=(t^{(s)}_k, t^{(e)}_k, t^{(i)}_k),k=1...K \ \}。每个snippet都用0、1表示是否为开始点、结束点和中间点,即Y^{(s)},Y^{(i)},Y^{(e)}\in \{ 0,1\ \}^T。因为这些点是比较稀疏的,为了平衡正负样本的比例,文章将一个小区域定义为正样本。拿开始点t^{(s)}_k来说,在区间[t^{(s)}_k-\delta \cdot L_k, t^{(s)}_k+\delta \cdot L_k]中的都为开始点,其中L_k=t^{(e)}_k-t^{(s)}_k\delta为超参数,文章采用0.1。结束点和中间点正样本的定义同开始点。

关键点的预测就是网络输出对每个snippet进行三类的预测,给出每个snippet三类的概率值。

1.2 proposal的产生与选择

通过关键点的预测,对于每个snippet可以得到三个概率值P^{(s)},P^{(i)},P^{(e)}\in [0, 1]^T,根据概率值筛选出候选的开始点和结束点,筛选规则如下:

  1. 概率值是否大于0.9
  2. 概率值是否是局部最大值,即当前snippet的概率值是否比前后两个概率值大

通过上述规则可以筛选出开始点集合C^{(s)}=\{ c^{(s)} \rbrace和结束点集合C^{(e)}=\{ c^{(e)} \rbrace,将开始点和结束点组合起来就可以得到多个proposal,这些proposal通过下述规则可以去除一些低质量的proposal:

  1. c^{(s)}c^{(e)}的距离应该在[d_{min}, d_{max}]之间,其中[d_{min}, d_{max}]为训练集中标注的最小动作时长和最长动作时长
  2. c^{(s)}c^{(e)}求得的中间点t^{(i)}=(t^{(s)} + t^{(e)})/2所处位置是否满足上述候选点的条件,即是否概率大于0.9或者是否为局部最大值,如果不满足,那么将c^{(s)}c^{(e)}组成的proposal舍弃,如下图红色线条所示
    3.png

为了得到更高质量的proposal,需要对proposal赋予更好的置信度,对于点c^{(s)}, c^{(e)}构成的proposal对应的置信度用下式表示
P(\overline{c^{(s)}_i c^{(e)}_i})=P^{(s)}(c^{(s)}_i)\cdot P^{(e)}(c^{(e)}_i) \cdot \Phi(c^{(s)}, c^{(e)})
其中P^{(s)}(c^{(s)}_i)P^{(e)}(c^{(e)}_i)是网络估计出来的概率。\Phi(c^{(s)}, c^{(e)})是利用新的网络学习出来的,下面解释一下\Phi(c^{(s)}, c^{(e)})怎么得到的。

对于点c^{(s)}, c^{(e)}构成的proposal,为了能够利用非背景的信息,先将proposal的区域扩大1.4倍,最终获得大小为1.4\times (c^{(e)}-c^{(s)})的区域,然后从P^{(s)},P^{(i)},P^{(e)}中等间隔的采样32个点,合起来就得到一个96维的向量,这个向量经过下面这个小网络输出\Phi(c^{(s)}, c^{(e)})
小网络结构为FC(96->96) -> ReLU -> FC(96->48) -> ReLU -> FC(48->1)->sigmoid

得到P(\overline{c^{(s)}_i c^{(e)}_i})=P^{(s)}(c^{(s)}_i)\cdot P^{(e)}(c^{(e)}_i) \cdot \Phi(c^{(s)}, c^{(e)})概率为每个proposal的置信度,利用这个置信度使用nms或者soft-nms得到最终的结果。

二、 loss计算

这里有两类loss,一个是TSA-Net的loss,一个是最好小网络的loss

2.1 TSA-Net使用的loss

如上面的网络结构图所示,TSA-Net使用的是交叉熵loss,因为要预估三类关键点的结果,所以loss为
J = J^{(s)}+ J^{(i)} + J^{(e)}
拿关键点为开始点说明J^{(s)},开始点的loss计算用公式如下
J^{(s)} = \sum_{i=1...T}[Y^{(s)}(i)\cdot log(P^{(s)}(i)) + (1-Y^{(s)}(i))\cdot log((1-P^{(s)}(i)))]

2.2 置信度小网络的loss

min\sum_{i}l(\Phi(c^{(s)}_i, c^{(e)}_i), sup_{\gamma_k \in \Gamma} IoU(\overline{c^{(s)}_i c^{(e)}_i)}, \gamma_k )
上式中\sum是将所有潜在的proposal相加,l表示l1 loss,IoU表示两个一维seg之间的IoU

上一篇下一篇

猜你喜欢

热点阅读