【论文精读】时间卷积网络(Temporal Convolutional Networks,TCN)

论文链接:Temporal Convolutional Networks for Action Segmentation and Detection

摘要

在视频中,识别和实时分割细粒度的人类行为/动作,对于机器人、监控、教育等领域至关重要。典型的方法是首先从视频帧中提取 局部时空 特征,然后将它们输入时间分类器中捕获 高层时间模式。本文介绍了一种新的时间模型,称为 时间卷积网络(Temporal Convolutional Networks, TCN),使用时间卷积来实现细粒度的动作分割或检测。编码器-解码器TCN(ED-TCN) 使用池化和上采样来捕获长距离时间模式,膨胀TCN 使用膨胀卷积。文章证明了TCN能够捕捉动作组成、动作的片段连续性和长时间的依赖关系,并且比基于LSTM的循环神经网络训练速度快得多。将模型应用于三个细粒度数据集,展现出了巨大改进。

1.介绍

动作分割对于多种应用至关重要,这些应用包括协作机器人(collaborative robotics)和日常生活活动分析(analysis of activities of daily living)等。这些应用需要理解和识别视频中的动作序列。

给定一个视频,动作分割的目标是同时对视频中的每个动作进行时间上的分割(segmentation),并对每个分割出来的动作片段进行分类(classification)。这意味着系统需要识别出视频中的动作,并确定每个动作的开始和结束时间点,同时识别出动作的具体类型。

文章特别关注于模拟特定场景下的活动,例如厨房或监控设置。这些场景中的动作可能持续几分钟,并且由几十个不同的动作组成。这些动作(如切番茄和削黄瓜皮)往往只有细微的差别。这增加了动作分割任务的难度,因为系统需要能够识别并区分这些相似的动作。

目前的方法将该任务解耦为提取低级时空特征采用高级时间分类器。时间模型主要是通过滑动窗口来实现,这通常不能捕捉到长距离的时间模式;段模型能够捕捉单个动作段内的属性,但忽略了动作段之间的依赖关系,可能无法理解动作段之间的联系;而循环模型虽然能够处理时间依赖,但在实际应用中存在训练和解释上的挑战。这些挑战表明,动作分割领域需要更先进的方法来有效地处理长距离依赖和提高模型的可解释性。

时间卷积网络通过使用时间卷积滤波器的层次结构捕获长距离时间模式来克服已有方法的缺点。TCN有两种类型:编码-解码TCN膨胀TCN。编码器-解码器TCN (ED-TCN)仅使用时间卷积、池化和上采样的层次结构,但可以有效地捕获长距离时间模式。ED-TCN的层数相对较少(例如,编码器中有3层),但每层包含一组长的卷积滤波器,这意味着每层可以处理较长的时间序列数据,从而捕捉长距离的时间依赖。膨胀TCN(Dilated TCN)使用膨胀卷积代替池化和上采样,并在层之间添加跳跃连接(skip connections),它是对WaveNet模型的改编,WaveNet模型最初是为语音处理任务开发的。Dilated TCN有更多的层,但每层使用的膨胀卷积核仅作用于少量的时间步。膨胀卷积允许网络在不增加参数数量的情况下,增加感受野,从而捕捉更广泛的时间依赖。这两种方法都能够有效地处理动作分割任务中的关键挑战,即捕捉动作的局部特征长距离时间依赖

2.时间卷积网络

ED-TCN:ED-TCN使用的是编码器-解码器架构,结合了时间卷积。这种架构会首先在编码器中将时间序列特征压缩为更紧凑的表示,再通过解码器将其扩展,以用于动作预测。

Dilated TCN:Dilated TCN(膨胀卷积网络)基于WaveNet模型进行改进,采用了一系列的膨胀卷积(dilated convolutions)。膨胀卷积是一种特殊的卷积方式,通过在卷积核中插入空隙(dilation),使得卷积能够捕捉更长时间范围的信息,从而增大感受野,而无需增加卷积层数。

两种TCN网络的特征:

  • 层级计算:每一层的所有时间步会同时更新,而不是逐帧地、顺序地进行更新。这意味着,在网络的一层中,所有的帧都会并行地计算,这样能够提升计算效率。
  • 时间维度上的卷积:卷积操作是在时间维度上进行的。也就是说,网络会在时间轴上应用卷积核来捕捉时序特征,以便模型能够从连续的帧中学习到动作的时间变化。
  • 感受野(Receptive Field):每一帧的预测是基于一个固定长度的时间范围内的信息,这个范围称为感受野。感受野的大小决定了网络在预测当前帧时,能够参考的前后帧数量。这样设计是为了确保网络在预测时能够使用到足够的时间上下文信息,从而做出更准确的预测。

【!NOTE】:
TCN主要用于处理时序数据(如时间序列、音频、视频等),这类数据通常有两个主要维度:时间维度特征维度
。例如,一个时间序列数据可以表示为 ( T , F ) (T,F) (T,F),其中 T T T 是时间步数, F F F 是每个时间步的特征数。因此,TCN的卷积核(或卷积滤波器)通常是二维的,二维卷积核的一个维度用于沿时间轴(即在不同的时间步)上滑动,另一个维度用于沿特征轴进行计算。这样,卷积核可以在时间轴上跨步,捕捉不同时间步之间的依赖关系,同时在特征轴上结合各特征的信息。特别地,TCN的卷积核的一个维度与输入数据的特征维度 F F F 相同,这样可以在特征维度上进行直接的内积计算,而无需在特征维度上滑动。具体来说,TCN的卷积核会跨越所有的特征维度(即与输入的特征维数一致),这样在卷积过程中,卷积核可以直接对每个时间步上的所有特征进行内积计算。而卷积操作的滑动则只在时间维度上进行,通过在时间轴上移动来提取不同时间步之间的依赖关系。

在动作分割、检测任务中,TCN的输入是一组视频特征。这意味着TCN不是直接处理原始视频帧,而是处理从视频帧中提取出来的特征。这些视频特征可以来自于空间卷积神经网络或时空卷积神经网络。空间CNN主要处理单个视频帧中的空间信息,而时空CNN则同时处理视频帧中的空间和时间信息。这些特征是针对给定视频的每个帧提取的。这意味着TCN在处理视频时,会逐帧分析视频特征,来理解和预测视频中的时间序列动态,如动作识别和分割。这种方法允许TCN专注于时间维度上的模式识别,而空间或时空特征提取则由CNN完成。

符号表示:设 X t ∈ R F 0 X_t\in \mathbb{R}^{F_0} XtRF0 是维度为 F 0 F_0 F0 、时间步为 t t t 的输入向量, 1 ≤ t ≤ T 1\le t \le T 1tT 。每个视频序列的时间步长 T T T 可能不同。每个视频帧的动作标签是通过一个独热编码(one-hot encoding)向量 Y t ∈ { 0 , 1 } C Y_t\in\{0,1\}^C Yt{0,1}C 来表示的,其中 C C C​ 是类别数量,真实类别的元素为1,其余元素为0。

2.1 编码-解码TCN

描述文字
图1. 编码-解码时间卷积网络(ED-TCN),采用了时序卷积层、池化层和上采样层。

编码器由 L L L 层组成,每层包括了时间卷积、激活函数和最大池化操作,记为 E ( l ) ∈ R F l × T l E^{(l)}\in \mathbb{R}^{F_l×T_l} E(l)RFl×Tl, 其中 F l F_l Fl 是 第 l l l 层的卷积核(过滤器)数量, T l T_l Tl 是第 l l l​ 层的时间步长(序列总长度)。

将每一层的卷积核(过滤器)的集合定义为 W = { W i } i = 1 F l ,   W i ∈ R d × F l − 1 W=\{W^{i}\}^{F_l}_{i=1},\ W^i\in\mathbb{R}^{d×F_{l-1}} W={Wi}i=1Fl, WiRd×Fl1 , 并具有相应的偏置向量 b b b .给定前一层的信号 E l − 1 E^{l-1} El1 ,计算 E l E^{l} El​ 的公式如下: E l = f ( W ∗ E l − 1 + b ) , E^{l}=f(W*E^{l-1}+b), El=f(WEl1+b),其中, f ( ⋅ ) f(·) f() 是激活函数, ∗ * 是卷积操作。激活函数采用 ReLU \text{ReLU} ReLU 激活函数。

每个激活函数之后,执行宽度为 2 2 2 的最大池化操作,实现 T l = 1 2 T l − 1 T_l=\frac{1}{2}T_{l-1} Tl=21Tl1​ 。

解码器类似于编码器,仅将池化操作替换为上采样操作,且顺序变为上采样操作、时间卷积和激活函数。上采样通过简单地重复每个特征向量两次来实现。时间卷积操作对模型的动作预测起到了关键作用,具体来说,卷积将中间压缩层的信息逐步传播到最终的动作预测层。


【!NOTE】:
编码器将时序信息(例如视频或序列数据)压缩为更紧凑的特征表示,而解码器则把这些特征还原为可用于动作预测的形式。在编码器压缩信息后,中间层包含高度抽象的特征,这种压缩后的表示更加高效,但尚不足以进行精确的动作预测。在解码器中,通过时间卷积操作,网络可以逐步将中间层的抽象特征转换并扩展到更详细的特征表示中。解码器利用这些卷积操作来“传播”信息,使得网络能够逐帧地预测动作,帮助模型恢复出完整的时序细节。ED-TCN的一大优势在于,解码器中的卷积能够学习并捕捉到不同动作之间的过渡关系,这在视频中的动作识别或分割任务中尤为重要。滤波器可以学习某一动作后续出现另一个动作的可能性,从而帮助模型更流畅、精确地进行预测。实验表明,解码器中使用卷积滤波器显著提高了模型性能,因为它有效捕捉到了时序上的依赖关系和过渡信息,而这些对于预测准确的动作序列非常关键。总结来说,解码器中的卷积操作就像一种“翻译器”,把压缩后的信息转换为更细化的步骤,使得网络不仅能够理解孤立的动作,还能准确预测动作序列中各个动作的衔接与过渡。


每个解码器层表示为 D l ∈ R F l × T l ,   f o r   l ∈ { L , . . . , 1 } D^l\in\mathbb{R}^{F_l×T_l},\ for\ l\in\{L,...,1\} DlRFl×Tl, for l{L,...,1} 。与编码器层的数量相同,索引顺序相反。

输出层,第 t t t 个(时间步)视频帧对应于 C C C 个动作类的概率 Y ^ t ∈ [ 0 , 1 ] C \hat{Y}_t\in[0,1]^C Y^t[0,1]C​ 计算如下: Y ^ t = softmax ( U D t 1 + c ) , \hat{Y}_t=\text{softmax}(UD^1_t+c), Y^t=softmax(UDt1+c),其中,权重矩阵 U ∈ R C × F 1 U\in\mathbb{R}^{C×F_1} URC×F1 ,偏置 c ∈ R C c\in\mathbb{R}^C cRC​ .


【IMPORTANT】

感受野(Receptive Field)

ED-TCN的解码器的每一帧的预测是基于固定时间范围感受野)内的信息来进行的。
感受野是在进行预测时,网络能够“看到”或影响当前帧预测的时间范围。对于每一帧,网络会利用前后一定数量的帧的信息来确定当前帧的动作。
公式 r ( d , L ) = d ( 2 L − 1 ) + 1 r(d,L)=d(2^L-1)+1 r(d,L)=d(2L1)+1 表示了感受野的大小。其中, L L L 代表网络(解码器或编码器)层数, d d d​ 是每一层卷积的持续时间,也就是每一层的卷积核能“覆盖”的时间长度。通过这个公式能计算出当前帧预测依赖的时间帧数量,即预测当前帧所需要的前后帧信息的总长度。
随着层数 L L L 的增加,感受野会扩大,网络能够利用更长的时间范围的信息来预测每一帧。每一层卷积的持续时间 d d d 影响每层卷积的范围,当 d d d 较大时,每层卷积“看到”的时间范围增加,感受野随之变大。
这个固定长度的感受野让网络能够通过多层卷积有效整合前后帧的信息,从而捕捉动作的上下文信息。这样的设计在时序数据中非常重要,因为它能够帮助模型更准确地判断动作的开始、结束和过渡。
总结来说,感受野的大小决定了每一帧的预测能从多少时间范围内获取信息。通过公式计算,ED-TCN的解码器可以在设计时调整感受野的大小,以确保每一帧预测时都能参考到适当长度的时间信息。


2.2 膨胀TCN

2.2.1 膨胀卷积

在这里插入图片描述

膨胀卷积的卷积核与有间隔的特征图像素点进行乘积和求和,因此感受野比普通卷积更大。如果间隔像素点为 1 1 1 ,则膨胀率为 2 2 2 ;如果间隔像素点为 2 2 2 ,则膨胀率为 3 3 3 。普通卷积的膨胀率为 1 1 1

(感受野:卷积网络中每个输出特征图中的每个像素点对应输入图像的区域大小。)

在这里插入图片描述
参数说明:

  • 卷积核大小 kernel_size 和膨胀率 dilation rate 共同决定了感受野的大小;

  • stride 代表了输出特征图的尺寸相比于输入特征图的尺寸要缩减多少倍;

  • padding 是输入特征图周围补0的层数。若普通卷积输出特征图与膨胀卷积输出特征图尺寸相同,则膨胀卷积的 padding 参数要大于普通卷积。

在这里插入图片描述
膨胀卷积缺点网格效应。由于膨胀卷积是一种稀疏的采样方式,当多个膨胀卷积叠加时,有些像素根本没有被利用到,会损失信息的连续性与相关性,进而影响分割、检测等要求较高的任务。上图中右侧的绿色像素点只用到了第一幅原始图像中的紫色像素点得到,即仅用了大约1/4的像素点,损失信息较多。因此膨胀卷积最好不要连续使用

2.2.2 膨胀TCN

将最初用于语音合成的WaveNet模型改造为适用于动作分割任务的模型。WaveNet最早的目标是通过预测每一个音频采样 Y t Y_t Yt​ 来生成连续的音频数据。在WaveNet中,给定从第 1 1 1 帧到第 t t t 帧的音频信息,它会预测第 t + 1 t+1 t+1 帧的音频值,即音频序列的下一个采样点。

在动作分割任务中,WaveNet的目标是预测当前帧的动作标签 Y t Y_t Yt 。具体来说,给定视频序列中从第 1 1 1 帧到第 t t t 帧的特征信息,模型的输出 Y t Y_t Yt 代表的是第 t t t 帧的动作类别。

总的来说,WaveNet在语音合成中,输出 Y t Y_t Yt 是预测未来的音频采样;而在动作分割任务中,输出 Y t Y_t Yt 是根据当前时间步(帧)之前的视频特征来预测当前帧的动作。这意味着模型利用时间序列的历史特征来识别当前时刻的动作。

描述文字
图2. 膨胀TCN模型使用膨胀卷积的层叠来捕获长距离时间模式。

膨胀TCN模型定义了一系列 Blocks ,每个 Block 包含了 L L L 个膨胀卷积层的顺序连接。第 j j j 个 Block 的第 l l l 层的激活(输出)表示为 S ( j , l ) ∈ R F w × T S^{(j,l)}\in \mathbb{R}^{F_{w}×T} S(j,l)RFw×T 。每一层都有相同数量的卷积核 F w F_w Fw ,这保证了能够组合来自不同层的激活(输出)。每一层由膨胀率为 s s s 的膨胀卷积、一个非线性激活 f ( ⋅ ) f(·) f() 和一个残差连接组成,残差连接结合了该层的输入和卷积输出。

膨胀卷积在计算时只作用于 t t t t − s t-s ts 两个时间步, s s s 是膨胀率,用于控制两个时间步之间的间隔。膨胀卷积在进行计算时,不像普通卷积那样连续作用于相邻的时间步,而是隔着一定的间距进行。比如,当膨胀率 s = 1 s=1 s=1 时,卷积会作用于 t t t t − 1 t-1 t1 这两个相邻的时间步;而当 s = 2 s=2 s=2 时,卷积作用于 t t t t − 2 t-2 t2 这两个有间隔的时间步。通过这种 间隔取样 的方式,膨胀卷积可以在不增加卷积层数的情况下 扩大感受野,因为每层的卷积核可以“跳跃”式地获取更大时间范围的特征。这种设计有助于捕捉到长期依赖关系,适合处理时序数据。这种仅对 t t t t − s t-s ts 之间进行卷积的方式使得网络可以 在多个层次上组合不同时间间隔的信息。例如,在较浅的层次可以捕捉短时间依赖关系,而在更深的层次可以通过更大的 s s s 值捕捉更长时间的依赖。

卷积核参数化为 W = { W 1 , W 2 } W=\{W^1,W^2\} W={W1,W2} ,其中 W i ∈ R F w × F w ,   b ∈ R F w W^i\in \mathbb{R}^{F_w×F_w},\ b\in\mathbb{R}^{F_w} WiRFw×Fw, bRFw 。令 S ^ t ( j , l ) \hat{S}_t^{(j,l)} S^t(j,l) 是第 t t t 时间步(帧)的膨胀卷积的结果, S t ( j , l ) {S}_t^{(j,l)} St(j,l) 是加上残差连接后的结果,计算公式如下: S ^ t ( j , l ) = f ( W 1 S t − s ( j , l − 1 ) + W 2 S t ( j , l − 1 ) + b ) , S t ( j , l ) = S t ( j , l − 1 ) + V S ^ t ( j , l ) + e , \hat{S}^{(j,l)}_{t}=f(W^1S^{(j,l-1)}_{t-s}+W^2S^{(j,l-1)}_{t}+b), \\ S^{(j,l)}_{t}=S^{(j,l-1)}_{t}+V\hat{S}^{(j,l)}_{t}+e, S^t(j,l)=f(W1Sts(j,l1)+W2St(j,l1)+b),St(j,l)=St(j,l1)+VS^t(j,l)+e,其中, V ∈ R F w × F w V\in\mathbb{R}^{F_w×F_w} VRFw×Fw e ∈ R F w e\in \mathbb{R}^{F_w} eRFw​ 是残差链接的权重和偏置。

一个 Block 内的连续的层的膨胀率依次增加,即 s l = 2 l s_l=2^l sl=2l​ ,这使得在不大量增加参数量的情况下,大大增加了感受野。

通过一组跳跃连接(skip connections)将每个 Block 的输出求和得到 Z 0 ∈ R T × F w Z^0\in \mathcal{R}^{T×F_w} Z0RT×Fw​ : Z t 0 = ReLU ( ∑ j = 1 B S t ( j , L ) ) , Z^0_t=\text{ReLU}(\sum^{B}_{j=1}{S^{(j,L)}_{t}}), Zt0=ReLU(j=1BSt(j,L)), Z 0 ∈ R T × F w Z^0\in \mathcal{R}^{T×F_w} Z0RT×Fw 得到一组隐藏状态 Z t 1 = ReLU ( V r Z t 0 + e r ) Z^1_t=\text{ReLU}(V_rZ^0_t+e_r) Zt1=ReLU(VrZt0+er) ,其中 V r ∈ R F w × F w V_r\in\mathbb{R}^{F_w×F_w} VrRFw×Fw 为权重矩阵, e r e_r er 为偏置。再由隐藏状态 Z t 1 Z^1_t Zt1 得到预测值 Y ^ t \hat{Y}_t Y^t Y ^ t = softmax ( U Z t 1 + c ) , \hat{Y}_t=\text{softmax}(UZ^1_t+c), Y^t=softmax(UZt1+c),其中, U ∈ R C × F w U\in \mathbb{R}^{C×F_w} URC×Fw 为权重矩阵, c ∈ R C c\in\mathbb{R}^C cRC​ 为偏置。


【IMPORTANT】

感受野(Receptive Field)

膨胀TCN中每层的卷积核尺寸比ED-TCN层小,因此为了获得大小相等的感受野,它需要更多的层或 Block。其感受野的表达式为 r ( B , L ) = B ∗ 2 L r(B,L)=B*2^L r(B,L)=B2L B B B 是 Block 的数量, L L L 是每个 Block 的层数。


2.3 实现细节

  • 损失函数与优化方法:两种TCN模型的参数都是通过类别交叉熵损失来学习的。优化方法则是用随机梯度下降结合ADAM优化器来进行更新。
  • Dropout策略:将Dropout应用于整个卷积滤波器上,而不是单独作用于每个权重。这种策略能提高模型性能,并生成更平滑的权重分布。它的原理是随机“关闭”整个滤波器,模型被迫利用其他滤波器提取不同的特征组合。由于某些滤波器在训练过程中随机失效,这样可以防止模型对某些特征过度依赖,从而增强模型的鲁棒性和泛化能力,减少过拟合。这种 Filter-wise Dropout 策略特别适合卷积层,特别是在处理图像、视频、音频或其他需要提取空间特征的时序数据中非常有效,因为卷积滤波器在空间上会提取整个局部区域的特征,而关闭整个滤波器可以有效避免特征提取的偏差。
  • ED-TCN滤波器数量:在ED-TCN中,每一层(第 l l l 层)的滤波器数量 F l = 96 + 32 × l F_l=96+32×l Fl=96+32×l,随着层数 l l l​ 的增加,滤波器数量逐渐增多,这样可以帮助模型在较高层级上学习更复杂的特征。
  • Dilated TCN滤波器数量:在膨胀TCN中,发现性能对每层的滤波器数量不敏感,因此将每层的滤波器数量 F w F_w Fw 设为 128 128 128,即各层统一采用 128 128 128​ 个滤波器,这样可以简化模型结构。
  • 采用 Keras 和 TensorFlow 框架来实现。

2.4 因果vs非因果

因果性(Causal):在因果实验中,第 t t t 时刻的预测只能基于从第 1 1 1 时刻到第 t t t 时刻的数据。这意味着预测当前帧的动作不能利用未来的数据,这种方式更贴近实时应用场景(例如机器人控制),因为系统通常只能根据当前及过去的信息进行预测。

非因果性(Acausal):在非因果实验中,第 t t t​ 时刻的预测可以利用整个序列中的数据。这表示模型可以参考未来的数据进行当前帧的预测。这样的方式在不需要实时预测的情况下有更高的准确性,因为它可以利用整个序列的信息来进行更准确的预测。

2.4.1 ED-TCN中的因果和非因果卷积

  • 因果卷积:在因果情况下,ED-TCN对第 t t t 帧进行卷积时,只会使用从 X t − d X_{t-d} Xtd X t X_t Xt 的数据,其中 d d d 表示卷积滤波器的长度。这种设计确保了每一时刻的预测仅依赖当前和过去的信息
  • 非因果卷积:在非因果情况下,ED-TCN在第 t t t 帧进行卷积时,可以参考从 X t − d / 2 X_{t-d/2} Xtd/2 X t + d / 2 X_{t+d/2} Xt+d/2​ 的数据。这意味着每一帧的预测不仅使用当前和过去的信息,还会使用未来的信息,这样可以提升模型的预测准确性

2.4.2 膨胀TCN中的非因果卷积

  • 因果的膨胀TCN如前文介绍的 S ^ t ( j , l ) = f ( W 1 S t − s ( j , l − 1 ) + W 2 S t ( j , l − 1 ) + b ) \hat{S}^{(j,l)}_{t}=f(W^1S^{(j,l-1)}_{t-s}+W^2S^{(j,l-1)}_{t}+b) S^t(j,l)=f(W1Sts(j,l1)+W2St(j,l1)+b) ,膨胀卷积在计算时只作用于 t t t t − s t-s ts 两个时间步。
  • 在非因果的膨胀TCN中,调整了卷积的方式,使得每一层都可以使用一个前时间步、当前时间步以及一个后时间步的数据。这意味着模型可以在当前时刻卷积时,将未来的一个时间步的信息也包含进来,从而提升预测性能 S ^ t ( j , l ) = f ( W 1 S t − s ( j , l − 1 ) + W 2 S t ( j , l − 1 ) + W 3 S t + s ( j , l − 1 ) + b ) . \hat{S}^{(j,l)}_{t}=f(W^1S^{(j,l-1)}_{t-s}+W^2S^{(j,l-1)}_{t}+W^3S^{(j,l-1)}_{t+s}+b). S^t(j,l)=f(W1Sts(j,l1)+W2St(j,l1)+W3St+s(j,l1)+b).

3.实验

3.1 评价指标

由于动作分割和动作检测任务使用的评价标准有所不同,所以实验分别采用了两类指标,并提出了适用于两类任务的统一F1@k分数:

  1. 分割指标(Segmentation Metrics)

    • 帧级指标:主要包括准确率(accuracy)、精确率(precision)和召回率(recall)。这些指标按帧计算,评估模型在每帧上的预测准确性。

    • 分割编辑距离:用于评估分割序列的准确性,考虑预测结果的顺序错误和过分割问题。这对于需要动作连续性的任务(如人机交互)特别重要。

    • 帧级指标的局限性:尽管帧级指标可以反映整体准确性,但模型即使帧级准确率高,仍可能产生大量的过分割错误。因此,仅用帧级指标无法全面评估模型的实际表现。

  2. 检测指标(Detection Metrics)

    • mAP@mid:基于动作中点的平均精度(mean Average Precision, mAP),要求预测片段的中点位于真实片段内。

    • mAP@k:通过IoU(交并比)评估准确度,要求预测片段与真实片段的IoU达到指定阈值 τ \tau τ。不同阈值下的mAP用于评估模型对动作边界的捕捉能力。

    • mAP指标的局限性:mAP对片段置信度的计算方式敏感,轻微的变化可能导致结果波动,不适合需要高可靠性置信度的细粒度动作检测任务。

  3. 段级F1@k分数

    适用于分割和检测任务。该指标在满足以下条件时能够更准确地反映模型性能:

    • 惩罚过分割错误。

    • 不惩罚预测结果与真实片段之间的微小时间偏移,以容忍标注误差。

    • 评分依据动作数量,而非动作持续时间,从而更加公平地评价模型。

3.2 数据集

  1. 50 Salads

    该数据集包含50段制作沙拉的视频,每段视频时长5-10分钟,包含大约30个动作实例,动作类别包括切番茄剥黄瓜等。设置了两种动作类别粒度:高粒度(9个类)和中粒度(17个类)。高粒度类别合并了相似的动作(如不同蔬菜的切割),而中粒度则将不同动作单独区分。使用的特征来源于Lea等人设计的VGG风格的空间CNN特征,将视频数据下采样至每秒1帧。

  2. MERL Shopping

    该数据集由106段监控视频组成,包含固定视角的场景,每段视频中只有一名用户与货架交互,包含伸手取货检查产品等5类动作。视频中的动作通常持续几秒,特征源自Singh等人的多流CNN网络(包括RGB、光流、裁剪后的RGB和光流特征),经PCA降维至50维,每秒2.5帧。

  3. GTEA(Georgia Tech Egocentric Activities)

    包含28段视频,记录了4名受试者在厨房场景中完成诸如制作三明治冲咖啡等活动。视频平均时长1分钟,使用11个动作类别。由于光流特征噪声较大,使用了帧间差分图像来代替光流作为输入特征,每秒3帧。

3.3 实验结果

50 Salads:在高层级和中层级动作类别上,ED-TCN在F1、编辑距离和帧级准确率方面均优于其他模型。相较于Bi-LSTM和Dilated TCN,ED-TCN减少了过分割错误。

MERL Shopping:在非因果模式下,ED-TCN在F1分数上表现最佳,但Dilated TCN在mAP指标上略占优势。在因果模式下,ED-TCN仍然表现优异。

GTEA:ED-TCN在F1@k和帧级准确率上取得最高分数,表现优于其他基准模型。

3.4 消融实验

在50 Salads数据集上进行的消融实验包括:

  1. 激活函数:对不同激活函数进行比较,归一化ReLU在ED-TCN中表现最佳。
  2. 感受野:通过调整层数和滤波器大小,确定最佳感受野。结果表明,较大的感受野有助于提升模型性能。
  3. 训练时间:TCN的训练速度比Bi-LSTM快得多,原因是TCN可以并行计算。

4.总结

实验表明,ED-TCN在多个数据集上表现出色,具有更少的过分割问题,适合时序数据的长距离依赖建模。Dilated TCN在精度指标上表现优异,但不如ED-TCN在处理过分割问题时稳定。

### Temporal Convolutional Networks (TCN) 架构 TCN是一种强大的深度学习架构,能够处理任意长度的输入序列并生成相应长度的输出序列[^1]。这种特性使得TCN在网络中可以利用非常深远的历史数据来进行预测。 #### 膨胀卷积与残差连接 为了实现这一目标,TCN采用了膨胀卷积(Dilated Convolutions)以及残差层(Residual Layers)。膨胀卷积允许网络在不增加参数数量的情况下扩大感受野,从而覆盖更长时间范围内的上下文信息。而残差连接则有助于构建更深的网络结构,缓解梯度消失问题,提高训练效率和效果。 ```python import torch.nn as nn class TCNBlock(nn.Module): def __init__(self, n_inputs, n_outputs, kernel_size, stride, dilation, padding, dropout=0.2): super(TCNBlock, self).__init__() self.conv1 = nn.Conv1d(n_inputs, n_outputs, kernel_size, stride=stride, padding=padding, dilation=dilation) self.bn1 = nn.BatchNorm1d(n_outputs) self.dropout1 = nn.Dropout(dropout) self.net = nn.Sequential(self.conv1, self.bn1, nn.ReLU(), self.dropout1) self.downsample = nn.Conv1d( n_inputs, n_outputs, 1) if n_inputs != n_outputs else None self.relu = nn.ReLU() def forward(self, x): out = self.net(x) res = x if self.downsample is None else self.downsample(x) return self.relu(out + res) ``` 此代码片段展示了如何定义一个基本的TCN模块,其中包括了膨胀卷积操作及其后的批标准化、激活函数应用及dropout机制来防止过拟合现象的发生。此外还实现了跳跃链接以支持深层网络的学习过程。 #### 时间维度上的滑动窗口 不同于传统的RNN系列模型依靠递归单元间的状态传递来捕捉时间动态特征的方式,TCN则是通过沿着时间轴方向移动的小型局部滤波器——即所谓的“滑窗”——提取模式。这种方法不仅简化了计算流程而且提高了并行化程度,在实际应用场景下往往能带来更好的性能表现[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值