EAST框架:单一模型实现早期动作预测,动态采样与令牌掩码技术解析
1. 项目概述与核心挑战
早期动作预测,简单来说,就是让机器在视频动作还没演完的时候,就“猜”出接下来会发生什么。这听起来像是科幻电影里的场景,但在现实应用中,比如自动驾驶预判行人意图、工业监控预警危险操作、或者智能家居提前响应你的手势,这项技术都至关重要。其核心挑战在于“信息不足”:模型只能看到动作的开头一小部分,却要推断出整个复杂、可能包含多种变化的动作序列,这无异于管中窥豹。
过去几年,社区的主流思路是“分而治之”:针对不同的视频观测比例(比如只看10%、30%、50%的视频),分别训练一个专门的模型。这么做虽然直观,但代价巨大。想象一下,为了覆盖从10%到90%的9个观测比例,你需要训练并维护9个模型,这背后的计算成本、存储开销和部署复杂度,在工程上几乎是灾难性的。更关键的是,这种策略让模型失去了“举一反三”的能力——一个在50%观测比例下表现优异的模型,面对30%的片段可能就束手无策。
我最近在复现和深入研究克罗地亚萨格勒布大学团队提出的EAST框架时,发现它直击了上述痛点。EAST的核心思想非常巧妙:通过一种动态采样策略,在训练时就让模型“见识”所有可能的观测比例,从而练就一身“以不变应万变”的本事,最终只需一个模型就能应对所有测试场景。 此外,他们还引入了一种基于视觉重复性的令牌掩码技术,能聪明地丢掉视频中那些变化不大的、冗余的视觉信息,从而将训练内存和耗时直接砍半,且精度损失微乎其微。实测下来,这套组合拳在NTU60、SSv2和UCF101这几个权威数据集上,全面刷新了纪录,最高有超过10个百分点的提升。这不仅仅是学术指标的进步,更意味着我们离高效、实用的实时视频分析系统又近了一大步。
2. EAST框架核心设计思路拆解
EAST的全称是“Early Action prediction Sampling strategy with Token masking”,这个名字就点明了它的两大支柱:动态采样策略和令牌掩码。它的目标不是发明一个全新的网络结构,而是设计一套更聪明的训练方法和效率优化技巧,让现有的、强大的视觉Transformer(ViT)模型在早期动作预测任务上发挥出最大潜力。
2.1 动态采样策略:告别“一个萝卜一个坑”
传统方法的症结在于,训练数据和测试数据的“语境”不匹配。训练时模型看的是完整视频,测试时却只给看一部分,这必然导致性能滑坡。EAST的解决方案是,在训练阶段就模拟测试环境。
具体是怎么做的呢?在每一次构建训练样本时,EAST会随机从一个均匀分布中采样一个观测比例ρ,比如0.3(即30%)。然后,它从原始视频中抽取两段连续的片段:一段是“已观测”片段(Present),长度为T帧,取自视频的前ρ部分;紧接着,再抽取一段“未观测”片段(Future),长度也为T帧,紧挨着已观测片段之后。将这两段拼接起来,就构成了一个训练样本。
注意:这里的关键细节是“紧挨着”。确保已观测片段的最后一帧和未观测片段的第一帧在原始视频中是连续的,避免了时间上的扭曲,让模型学习到的是真实、连贯的动作演进规律。
这个简单的策略带来了革命性的变化:
- 单一模型泛化所有比例:模型在训练中见识了从0.1到0.9所有可能的“观测-未来”组合,因此学会了如何根据任意长度的上下文进行推理。在测试时,无论输入的视频比例是多少,同一个模型都能处理。
- 极大提升训练效率:相比于训练9个独立模型,EAST只需要训练1个模型,理论上节省了近9倍的训练资源(GPU时间、存储空间)。
- 隐式学习动作动力学:通过同时优化基于“已观测”部分的预测和基于“完整片段”(已观测+未观测)的预测,模型被迫去理解动作从开始到结束的演变过程,从而增强了从局部推断全局的能力。
2.2 编码器-解码器与复合损失函数
EAST的模型架构基于经典的Vision Transformer,但增加了一个轻量级的解码器用于特征预测。
编码器:采用标准的ViT结构(如ViT-B/16),负责将输入的视频片段(无论是“已观测”还是“完整”片段)编码为一系列特征令牌。这里使用了时空位置编码,让模型能够理解像素在空间和时间上的关系。
解码器:这是一个相对简单的模块,其任务是根据“已观测”片段编码的特征,去预测“未观测”片段应有的特征。论文中对比了自回归解码和直接解码两种方式,发现一个简单的4层Transformer直接解码器效果更好。解码器的输入是经过空间平均池化后的已观测特征(每个时间步一个特征向量),输出是预测的未来特征。
复合损失函数:这是EAST性能提升的关键。损失函数由两部分组成:
- 预测损失:计算模型基于“已观测”片段预测出的动作类别,与真实标签之间的交叉熵损失。这部分直接优化早期预测的准确性。
- 先知损失:将“完整片段”(已观测+未观测)输入同一个编码器,得到“先知特征”,并计算其预测动作的交叉熵损失。
$$ L = L_{pred} + L_{oracle} $$
这个设计非常精妙。L_pred的梯度迫使编码器和解码器学习如何从局部信息做出准确判断。L_oracle的梯度则确保编码器本身能提取出具有高度判别性的特征,即使看到的是完整动作。两者结合,相当于让模型同时扮演“学生”(根据局部猜整体)和“老师”(看到全局后验证)的角色,通过这种内部监督,极大地提升了特征质量。
2.3 令牌掩码:聪明的“信息压缩”
视频数据天然存在大量冗余,相邻帧之间背景往往不变,主体动作也可能有静止时刻。ViT模型将所有图像块都视为令牌进行处理,在计算注意力时会产生与令牌数量平方相关的复杂度,这对长视频来说是巨大的负担。
EAST的令牌掩码技术,其灵感来源于传统的角点检测思想:变化大的地方信息量更丰富。具体实现上,对于输入的视频,它将每一帧划分为不重叠的管块。然后,计算每个空间位置上,当前管块的第一帧与下一管块最后一帧之间的像素差异(L1距离)。差异越小的管块,说明其内容随时间变化越小,越“冗余”。
在训练和推理时,EAST直接丢弃掉每个空间位置上差异排名在后50%的令牌(即掩码掉)。这意味着,模型只处理那些变化最显著、信息最丰富的视觉区域。
这么做的收益是巨大的:
- 内存减半:需要存储和计算的令牌数量直接减少50%,显著降低了GPU显存占用。
- 训练加速2倍:更少的令牌意味着更小的注意力矩阵,计算量大幅下降。
- 精度几乎无损:因为丢弃的是最不重要的信息,所以对最终分类精度的影响非常小。这本质上是一种高效的、基于内容重要性的数据压缩。
3. 核心实现细节与实操要点
理解了EAST的设计思想后,要将其复现或应用到自己的项目中,有几个关键的实现细节必须把握。这部分是我在实验过程中踩过坑、调过参后总结出的经验。
3.1 数据采样与预处理流程
动态采样是EAST训练流程的引擎。在实操中,你需要一个灵活的数据加载器。
步骤一:视频帧读取与采样
- 对于一个视频,首先解码并获取其总帧数
T_total。 - 随机采样观测比例
ρ ~ Uniform(0.1, 0.2, ..., 0.9)。 - 计算观测部分的结束帧索引:
T_obs_end = int(ρ * T_total)。 - 从
[0, T_obs_end)区间内,均匀采样T帧(如T=8),作为已观测片段V_obs。这里通常采用稀疏采样策略,以覆盖更长的时间范围。 - 从
[T_obs_end, T_total)区间内,紧接着V_obs的最后一帧,再均匀采样T帧,作为未观测片段V_future。 - 将
V_obs和V_future在时间维度上拼接,得到训练用的视频片段V = concat(V_obs, V_future)。
步骤二:数据增强
对于 V_obs 和 V(完整片段),需要分别进行相同的数据增强(如随机裁剪、水平翻转、MixUp等),以保持一致性。需要注意的是,时间上的抖动(如时序插值)要谨慎使用,以免破坏“已观测”与“未观测”片段之间严格的时间先后关系。
实操心得:
T的选择需要权衡。太短(如4帧)可能信息不足,太长(如16帧)则增加计算负担。论文中采用8帧是一个较好的平衡点。对于动作变化缓慢的数据集,可以适当增加T。
3.2 令牌掩码的高效实现
令牌掩码的实现效率直接影响训练速度。不建议在数据加载阶段进行,因为动态计算每个样本的掩码会增加CPU负担。更好的做法是集成在模型的前向传播过程中。
实现思路:
- 在将视频帧输入ViT的Patch Embedding层之前,先将其划分为管块。
- 计算每个空间位置
(i, j)上,所有时间步管块之间的差异序列。一个高效的实现是计算每个管块与其后续管块之间的差异,然后对每个空间位置的特征图,计算其沿时间维度的方差或平均差异。 - 根据预设的掩码比例
k(如0.5),为每个空间位置计算一个差异阈值。保留差异大于阈值的管块对应的令牌,掩码(即丢弃)差异小的。 - 生成一个布尔掩码矩阵,用于后续的注意力计算。在计算注意力时,被掩码的令牌不参与Key和Value的计算,仅保留其位置编码信息(如果需要)。
注意事项:直接丢弃令牌可能会破坏ViT的序列结构。一种更优雅的方式是使用“令牌合并”技术,将相似令牌的特征加权合并,而不是直接丢弃,这样能保留更多信息。但EAST论文中的结果表明,对于早期预测任务,直接丢弃冗余令牌已经足够好,且实现更简单高效。
3.3 损失函数与梯度流设计
复合损失函数的实现需要仔细处理梯度流,确保两部分损失都能正确地对编码器和解码器进行更新。
编码器参数更新:
- 接收
V_obs, 计算L_pred。 - 接收完整片段
V, 计算L_oracle。 - 编码器
E的参数会同时受到L_pred和L_oracle的梯度影响。L_pred的梯度教会它如何为早期预测提取有用特征;L_oracle的梯度则确保它作为一个特征提取器本身是强大的。
解码器参数更新:
- 仅受
L_pred的梯度影响。它的任务是学习从“已观测特征”到“未来特征”的映射,这个映射关系直接服务于早期分类。
在PyTorch中的典型训练循环片段如下:
4. 实验配置、训练技巧与结果分析
要让EAST框架跑出论文中的效果,超参数设置和训练细节至关重要。以下配置基于原文,并补充了一些实际训练中发现的技巧。
4.1 数据集准备与评估协议
EAST在四个主流数据集上进行了评估,它们的特性各异:
- Something-Something V2 (SSv2):大规模、细粒度的日常动作数据集,对时序关系建模要求高。
- NTU RGB+D 60:大规模人体动作数据集,包含RGB、深度、骨骼等多模态数据,EAST仅使用RGB。
- UCF101:小规模动作识别数据集,动作类别定义较宽泛。
- Epic-Kitchens-100:大规模第一人称视角(egocentric)厨房活动数据集,包含动词和名词分类。
统一的评估协议: 这是EAST强调的一点,也是复现时容易出错的地方。必须使用单一模型在所有9个观测比例(0.1, 0.2, ..., 0.9)上进行测试。测试时,模型仅输入对应比例的视频前缀部分。绝对不能在测试时使用完整视频提取特征再截取,这会泄露未来信息,导致不公平的比较。
4.2 训练超参数与优化策略
| 超参数 | 推荐值 | 说明与调整建议 |
|---|---|---|
| 骨干网络 | ViT-B/16 (VideoMAE预训练) | 使用在Kinetics-400上经过VideoMAE预训练的权重至关重要。从头训练效果差且极慢。 |
| 输入帧数 | T=8 (已观测) + 8 (未观测) | 共16帧。可尝试T=16以获取更长时间上下文,但计算量倍增。 |
| 图像分辨率 | 224×224 | 标准ViT输入尺寸。 |
| 批次大小 | 96 (SSv2/NTU/EK) / 128 (小数据集) | 受GPU内存限制。使用梯度累积可模拟更大批次。 |
| 优化器 | AdamW | 当前视觉Transformer训练的事实标准。 |
| 初始学习率 | 1e-3 | 按 lr = base_lr * batch_size / 256 缩放。 |
| 权重衰减 | 0.05 | 较强的权重衰减有助于防止过拟合。 |
| 学习率调度 | Cosine Annealing | 训练结束时学习率衰减至接近0。 |
| 训练周期 | SSv2/EK: 40, NTU: 50, UCF101: 100 | 小数据集需要更多周期以防止过拟合。 |
| 数据增强 | Random Crop, Horizontal Flip, MixUp | MixUp对提升泛化能力效果显著。 |
| 令牌掩码比例 | k=0.5 | 平衡效率与精度的最佳点。可尝试0.25(更高精度)或0.75(更高效率)。 |
训练技巧:
- 预热:在训练开始的前几个epoch(如5个),使用线性增长的学习率预热策略,有助于稳定训练。
- 随机种子:对于实验复现,固定随机种子以保证结果可复现。论文中强调了使用固定种子。
- 混合精度训练:使用AMP(Automatic Mixed Precision)可以进一步减少显存占用并加速训练,几乎不影响精度。
- 梯度裁剪:对于较深的网络或较大的批次,梯度裁剪可以防止训练不稳定。
4.3 性能结果深度解读
EAST在多个数据集上实现了SOTA(State-Of-The-Art)。我们不仅要看数字,更要理解这些提升背后的含义。
在NTU60上的表现: EAST仅使用RGB模态,就大幅超越了之前结合了骨骼、深度等多模态信息的方法。例如,在观测比例ρ=0.3时,EAST比之前的SOTA方法TemPr高出惊人的19.2个百分点。这强烈表明:
- 动态采样策略的有效性:让模型学习跨比例泛化的能力,比增加输入模态更关键。
- ViT骨干的强大:配合合适的预训练和训练策略,纯视觉模型能捕捉到足够丰富的时空信息。
在SSv2上的表现: SSv2数据集对时序逻辑要求极高。EAST在所有观测比例上均超越TemPr,平均提升7.7个百分点。特别值得注意的是,TemPr需要为每个观测比例训练独立模型,而EAST只有一个模型。这意味着EAST在取得更高性能的同时,模型存储和部署成本降低了9倍。
效率对比: 这是EAST最吸引工程实践的亮点之一。
- 训练时间:在UCF101上,EAST一个训练周期耗时80秒,而TemPr需要173秒。EAST快了2倍以上。
- 推理速度:EAST处理一个视频片段仅需12毫秒,TemPr则需要78毫秒。EAST推理快6倍以上。
- 内存占用:得益于50%的令牌掩码,EAST的训练峰值显存降低了约一半,使得在消费级GPU(如RTX 3090)上训练成为可能。
这些效率提升并非以牺牲精度为代价。消融实验表明,令牌掩码(k=0.5)带来的精度损失小于0.5%,但换来了成倍的效率提升,这在工程上是极其划算的。
4.4 关键消融实验的启示
论文中的消融实验清晰地揭示了每个组件的贡献:
-
动态采样的必要性:对比实验“EASTE vs VideoMAE”表明,仅仅是在训练时引入动态采样(即使没有解码器和先知损失),就能在低观测比例(ρ=0.1)上带来超过14个百分点的巨大提升。这证明了训练-测试数据分布对齐是解决早期预测问题的首要关键。
-
复合损失的价值:在已有动态采样的基础上,加入“先知损失”进行联合训练(
L_pred + L_oracle),能再带来平均1.5个百分点的提升。这说明让编码器同时学习“局部判别”和“全局判别”特征,能产生协同效应。 -
令牌掩码的智能性:对比随机掩码、MAR的运行单元掩码,EAST提出的基于时间差异的掩码(
M^d_k)在相同掩码比例下精度最高。这验证了“丢弃变化最小的令牌”这一直觉是有效的,它比随机丢弃保留了更多信息量。 -
单一模型 vs 专用模型:图2的结果非常直观。虽然为某个特定比例专门训练的模型在该比例上可能略优于EAST,但它在其他所有比例上的表现都急剧下降。而EAST的单一模型在所有比例上都保持了接近最优的、稳定的高性能。这证明了EAST学到的是一种通用的、稳健的早期推理能力,而非对特定上下文长度的过拟合。
5. 常见问题、避坑指南与扩展思考
在实际复现和应用EAST框架时,你可能会遇到以下问题。这里分享我的排查经验和解决方案。
5.1 训练不稳定或精度不达标
- 问题表现:损失震荡剧烈,或最终精度远低于论文报告值。
- 排查步骤:
- 检查预训练权重:确认使用的是在Kinetics-400/600上使用VideoMAE方法预训练的ViT权重,而不是ImageNet-21K上预训练的权重。视频预训练权重包含了至关重要的时序建模先验知识。
- 检查数据采样:确保“已观测”和“未观测”片段在时间上是严格连续的。编写一个可视化脚本,检查采样出的帧序列是否正确。
- 检查损失权重:确保
L_pred和L_oracle的损失值在同一个数量级。如果其中一个过大或过小,可以尝试为其添加一个平衡权重(尽管论文中用的是1:1)。 - 降低学习率:如果使用了更大的批次或不同的GPU,尝试适当降低初始学习率。
- 关闭令牌掩码:首先在不使用令牌掩码的情况下进行训练,确保基线模型能正常收敛并达到接近论文中“EASTE”的性能。然后再开启掩码,观察精度下降是否在合理范围内(<1%)。
5.2 令牌掩码导致精度下降过多
- 问题表现:开启50%令牌掩码后,模型精度下降超过2%。
- 解决方案:
- 调整掩码比例:将
k从0.5调整为0.25或0.3,保留更多令牌。这会在精度和效率之间取得新的平衡。 - 检查差异计算:确认令牌差异的计算是否正确。是否在正确的时空维度上计算了L1/L2距离?对于静态背景居多的数据集(如UCF101),基于帧间差异的掩码可能过于激进,可以考虑使用更温和的掩码策略,或结合空间注意力来指导掩码。
- 渐进式掩码:在训练初期使用较低的掩码比例(如0.2),随着训练进行,逐步增加到目标比例(如0.5)。这能让模型有一个适应的过程。
- 调整掩码比例:将
5.3 如何将EAST应用到自己的数据集或任务
EAST的框架具有很强的通用性,不仅限于论文中的四个数据集。
-
适配新数据集:
- 数据格式:确保你的视频数据能被解码为帧序列,并有对应的动作类别标签。
- 观测比例定义:对于某些非常短暂的动作,观测比例可能需要调整。例如,一个只有1秒的动作,观测0.1秒可能信息量几乎为零。可以考虑根据动作的平均时长来定义有意义的观测比例范围。
- 采样策略:如果视频长度差异巨大,动态采样时可能需要根据视频长度对
T(采样帧数)进行自适应调整,或采用更密集的采样来覆盖短视频。
-
扩展到其他模态:
- 骨骼关键点:可以将EAST的思想应用于骨骼序列。此时,令牌是每一帧的人体关节点。令牌掩码可以基于关节点的运动幅度(速度或加速度)来实施,掩码掉那些不动的关节。
- 多模态融合:可以为RGB流和骨骼流分别构建EAST编码器,然后在特征层面或决策层面进行融合。动态采样和复合损失的思想可以分别应用于每个模态的训练。
-
用于动作检测/时序定位:
- EAST的核心是分类,但可以将其作为特征提取器,用于更复杂的任务。例如,可以用EAST编码器提取视频片段的特征,然后接一个时序动作检测头(如TCN、Transformer Decoder),在未观测的时间段内预测动作的边界和类别。此时,
L_oracle可以调整为基于完整片段的检测损失。
- EAST的核心是分类,但可以将其作为特征提取器,用于更复杂的任务。例如,可以用EAST编码器提取视频片段的特征,然后接一个时序动作检测头(如TCN、Transformer Decoder),在未观测的时间段内预测动作的边界和类别。此时,
5.4 对计算资源的实际需求
很多研究者关心能否在有限的资源下运行EAST。
- 最低配置:论文中使用2块RTX A6000(48GB显存)进行训练。通过使用令牌掩码(k=0.5),显存占用减半。
- 消费级GPU可行性:在单张RTX 3090(24GB)上,通过以下调整,训练是可能的:
- 将批次大小减小至32甚至16。
- 使用梯度累积来模拟更大的批次。
- 启用混合精度训练(AMP)。
- 可以考虑使用
k=0.75的更高掩码比例来进一步降低内存。 - 对于ViT-B/16,输入224x224分辨率,T=8,经过上述优化,在24GB显存上以较小批次训练是可行的。
- 推理部署:EAST的推理非常高效(12ms/片段),非常适合实时应用。可以轻松部署到边缘设备或服务器上,进行流式视频分析。
EAST框架的成功,在于它用一系列简洁而深刻的设计,系统性地解决了早期动作预测中的关键难题:泛化性、效率与性能的平衡。它告诉我们,有时候,在训练策略和优化方法上的创新,比一味追求更复杂的网络结构更能带来实质性的突破。这套动态采样、联合训练、智能掩码的组合拳,为视频理解领域的其他时序预测任务也提供了极具价值的参考范式。