全部笔记
科研手记6 min2026-07-16

我为什么从骨架动作识别转向时序动作定位

一个识别对了、但没有回答问题的模型

本科阶段我跟着导师做基于骨架的人体行为识别。第一次把整条流水线跑通的时候很兴奋:Kinect 采回来的骨架序列喂进网络,屏幕上打出"挥手",对了。

但兴奋劲过去之后,有个问题一直悬着:我喂给模型的,是一段已经剪好的视频。 动作从哪一帧开始、到哪一帧结束,是数据集作者提前替我标好切好的。模型做的事情是"给一段确定包含动作的片段贴标签"——而真实世界的视频是连续的、没有裁剪的,里面绝大部分时间什么都没发生。

换句话说,我的模型在回答一个被简化过的问题。真正的问题是:在一条未裁剪的长视频里,什么动作、从何时开始、到何时结束。 这就是时序动作定位(Temporal Action Localization,TAL)。

当时的判断和限制

做这个决定的时候,我手里有什么、缺什么,都很具体。

有的:一套自己搭的 Kinect 多模态采集系统(RGB、深度、骨架三路同步),被异常关节数据折磨出来的数据清洗直觉,还有第一篇论文 DB-HPN 沉淀下来的完整实验流程——两阶段骨架滤波、时序长度归一化,这些后来都成了授权专利的一部分。

缺的:TAL 是完全不同的技术栈。特征从骨架变成视频特征(I3D、VideoMAE),任务从分类变成"分类 + 边界回归",评估从准确率变成 mAP@tIoU。等于半个方向要重学。

还有一个现实判断:骨架识别在标准数据集上的精度已经卷到很高,我自己的实验也能跑到 97% 以上。当一个领域的进步开始以小数点后一位计的时候,值得问一句:是问题快解完了,还是这个问题的设定本身太舒服了?我的答案是后者——"裁剪好的片段"这个假设太舒服了。

实际做了什么

我没有立刻换方向,而是先把手头的事做完整:DB-HPN 论文成稿投出去,相关方法申报专利,采集系统交付给课题组继续用。旧方向不是甩掉的,是收口的。

然后从 ActionFormer 入手进入 TAL——先复现,不创新。把 baseline 在 THUMOS14 上完整跑通,逐行理解一阶段架构里"边界回归"和"类别预测"怎么共享一个 Transformer。复现的过程比读十遍论文有用,因为你会在自己的训练曲线上撞见论文里一笔带过的所有坑。

复现完 baseline,才有资格问"它哪里不够好"。我的观察是:堆叠注意力会弱化短时局部变化,而动作边界恰恰藏在这些局部变化里。这个观察后来长成了 SAEFormer——针对局部语义融合和边界感知增强的改进,现在在期刊审稿流程中。

回头看,哪里判断错了

两件事。

第一,我当时以为换方向约等于重新开始,做好了"前两年白干"的心理准备。错了。骨架时代练出来的东西几乎全部迁移了过来:对数据质量的敏感、对"边界"的直觉(骨架滤波处理的异常帧问题,和 TAL 的动作边界模糊问题,本质上都是时序信号的突变检测)、以及一套完整的"采集—清洗—实验—消融"工程习惯。方向会换,做事的方式会跟着你走。

第二,我一度把"领域太卷"当成撤退的理由。后来想明白,卷不卷不重要,重要的是问题变了:我关心的问题从"这是什么动作"变成了"动作何时发生",再往后是"没见过的动作类别怎么办"(零样本、开放词汇)。是问题牵引方向,不是热度。

下一步

TAL 的下一站是开放世界:真实场景的动作类别是开放且长尾的,封闭类别训练出来的定位能力,遇到没见过的类别就会失效。视觉语言模型给了一条把"类别"从固定标签变成自然语言描述的路。这是我正在调研的方向,也是为博士阶段准备的问题——还没有成果,但问题已经足够具体。

从骨架到 TAL 这一步教会我的方法论就一句话:先把当前问题做到能收口,再让下一个问题自己浮出来。方向不是选出来的,是做出来的。