☰
视频动作识别数据集怎么选?从UCF101到AVA的完整指南
2026/10/5 16:22:18 网站建设 项目流程

1. 先分清三类任务:动作识别、行为识别、时空动作检测,别选错数据集

1.1 任务定义的区别决定了数据集选型

很多朋友第一次接触“视频动作识别、行为识别、时空动作检测数据集”这三个关键词时,容易把它们当成一回事,结果照着某个 benchmark 训出来的模型,拿到自己场景里怎么都跑不通。原因很简单——这三个方向的数据集形态差异非常大,选错数据集等于一开始就埋雷。

动作识别(action recognition)最经典的定义是:给定一段完整或裁剪过的视频片段,为整段视频打一个行为类别标签。典型代表就是 UCF101、HMDB51、Kinetics 系列、Something-Something 系列。这类数据集适合做“What is happening”的判断,比如判断一个人是在跑步、挥手还是打篮球。模型输出的是视频级类别概率,不关心人具体在哪、动作发生在哪一帧。

行为识别(activity recognition / human behavior recognition)在很多论文里和动作识别混用,但严格来说它有更偏“长时序复合活动”的意味,比如“准备早餐”“组装家具”“驾驶车辆”这种持续几十秒甚至几分钟的完整流程。典型数据集是 Breakfast、COIN、EPIC-KITCHENS。这类任务需要识别的是由多个原子动作组成的高层行为,对时序建模能力要求更高,光靠“一个片段一个类别”的建模方式远远不够。

时空动作检测(spatio-temporal action detection)则是三兄弟里最硬核的:不仅要知道视频里发生了什么,还要在每一帧中定位是谁、在哪个空间位置、从哪一帧到哪一帧做了什么动作。典型数据集是 AVA、UCF101-24、JHMDB、MultiSports。输出形式是带时间戳的检测框序列或 tubelet,模型要同时解决检测和分类,训练成本、标注成本、评估复杂度都成倍上升。

1.2 从“选数据集”反推你的真实需求

我建议所有入门者在跑任何模型之前,先问自己三个问题:我的输入是完整视频还是裁剪过的片段?我的输出是视频级标签、关键帧标签,还是逐帧带框的轨迹?我的应用场景是监控安防、体育分析、工业质检,还是人机交互?这三个问题的答案,直接决定了你该去下载哪一类数据集。

举个例子,如果你做的是监控场景下的“打架检测”,那种模型本质上更接近时空动作检测或者视频级分类,取决于你最后要报警粒度是“这5秒在打架”还是“这一帧他抬起了拳头”。如果是前者,用 UCF 这类视频分类数据集做预训练已经够用;如果是后者,AVA 这种逐帧框级标注的数据集才是必需品。

另外,很多人忽略的一点是“预训练数据集”和“目标任务数据集”可以分开。比如你用 Kinetics-400 做预训练,再用自己标注的 2000 条监控片段做微调,这是工业界最常见的做法。千万别为了省事直接拿公开数据集当生产数据用,视频场景的域差异(domain gap)非常明显,监控摄像头视角、遮挡程度、光照条件跟 YouTube 视频完全不是一回事。

1.3 标注成本决定了数据集规模的上限

我在实际项目里最深刻的体会是:视频数据集的标注成本远高于图像数据集。图像标注一张图,画个框几秒钟就完成;视频标注一段 10 秒的视频,如果要做逐帧框级标注,哪怕只有 30fps,也有 300 帧要处理,而且动作过程中的形变、遮挡会让标注员反复回放,标注效率极低。

这也是为什么时空动作检测数据集(如 AVA)普遍采用“每秒标一帧关键帧”的稀疏标注策略,而不是逐帧全标。AVA 的思路是:每个视频每隔一秒取一个关键帧,只在这些关键帧上标人体框和动作标签,中间帧通过插值或直接忽略来训练。这个设计极大降低了标注成本,也让 AVA 成为目前规模最大的时空动作检测 benchmark 之一。你在选型时如果预算有限,建议优先考虑带稀疏标注的数据集或工具链,不要一上来就追求逐帧精细标注。

提示:如果你只是想快速验证一个视频分类模型,先去 UCF101 或 HMDB51 上跑通,再考虑上 Kinetics 和大规模行为识别;直接拿 AVA 练手,很容易被标注格式和评估脚本劝退。

2. 视频动作识别领域的老牌经典数据集,每个都有哪些坑

2.1 图像级视频分类经典数据集横向对比

视频动作识别的入门数据集,绕不开下面这几个名字。我按“使用频率”和“踩坑指数”做了个横向对比,方便你直接挑适合自己的。

数据集视频数量类别数视频特点适合场景我的使用建议
UCF10113320段101类YouTube 真实场景,每段 4-10 秒入门跑通流程首选。下载快、类别广、社区解析工具多
HMDB516766段51类电影和 YouTube 混合,分辨率偏低跨域鲁棒性测试配合 UCF101 一起做评估
Kinetics-400约30万段400类每段10秒,来源 YouTube 的各类日常活动预训练主干模型数据量大,适合做 pretrain;存储约 300GB
Something-Something v2约22万段174类人与物体的基础交互,强调时序因果时序建模能力测试很考验模型对“先/后/同时”的理解
Sports-1M约110万段487类体育视频,YouTube 来源大规模弱监督预训练标签噪声大,需要清洗策略

UCF101 是我最推荐新手第一个跑的数据集,原因是“恰恰好处”:101 个类别覆盖了人体动作、人-物交互、体育动作、乐器演奏等类型,每段视频长度都在 10 秒以内,不需要处理长时序问题。社区里 Transformers、SlowFast、TSM 等主流模型的配置文件基本都是基于 UCF101 或 Kinetics 预训练权重做微调,资料多到随便搜都能找到答案。

HMDB51 的分辨率普遍不高,很多视频是电影片段截取,带有明显的镜头切换和背景干扰。如果你想测试模型在“脏数据”上的表现,HMDB51 是不错的试金石;但如果你只是想刷精度,别把它当成主战场。

Kinetics-400 是近年来视频理解领域最重要的预训练数据集,几乎所有现代视频骨干模型都在它上面做过预训练。但它也有两个明显的坎:一是数据体积巨大,原视频压缩包解压后接近 300GB,磁盘和带宽成本都不低;二是它的类别分布虽然均衡,但很多视频是人-环境交互,训练出来的模型在某些工业场景里迁移效果并不好。我通常的做法是:直接用官方发布的预训练权重,而不是自己重新下载训练一遍,省时省力。

Something-Something v2 是另一个值得单独说的数据集。它的核心特点是所有动作都是“手和物体的基础交互”,比如“把某物从桌子左边移到右边”“放下某物”“拿起某物”。这类动作对空间关系和时间顺序极度敏感,用普通的单帧静态图像推理根本做不对。实测下来,TSN 这类依赖空间外观的模型在 SSv2 上表现远逊于在 UCF101 上的成绩,而 TimeSformer、SlowFast 这类带有时序注意力机制的模型会有明显优势。如果公司业务涉及机械臂操作、人机交互、手势控制,SSv2 比 UCF101 更有参考价值。

2.2 行为识别别拿视频分类数据集硬怼,长时序数据集这样选

如果你要做的是“行为识别”——厨房操作识别、装配流程质检、驾驶行为分析这类长周期、多步骤的行为理解,上面那些几秒钟一个标签的视频分类数据集基本帮不上忙。你需要的是带有“层次化标签结构”的长时序数据集。

Breakfast 数据集包含 10 种早餐制作活动(比如煮咖啡、炒鸡蛋、切水果),一共 1712 个视频,每个视频时长普遍在 1 到 10 分钟之间。它最值得关注的是“两级标签体系”:既有宏观的活动类别(Activity),也有细粒度的动作片段(Action),比如“拿刀”“切面包”“打开冰箱”。这种结构非常适合训练“先识别原子动作,再推理复合行为”的模型。

COIN 数据集则把范围扩大到了“指导性任务”,包含 180 个任务类别,覆盖维修、烹饪、手工艺等 12 个大类,共 7781 个视频。它的亮点是标注了每个视频中的关键步骤,“步骤起点/终点”都用时间戳标注出来了。如果你的产品想做“AI 师傅教你做事”或者“操作规范检测”,COIN 是非常贴近真实业务的数据集。

EPIC-KITCHENS 是第一人称视角的厨房活动数据集,视频来自 GoPro 等头戴设备拍摄,包含“抓取物品”“切菜”“洗锅”等原子动作,还有“拿哪个物体”的细粒度标签,常用于多模态行为识别任务。它也是少有的同时提供手部框和物体框标注的第一人称数据集,和“具身智能”方向的结合度很高。近两年很多论文提到的“具身智能数据集质量要求及评价方法”中,就大量参考了这类第一视角数据的标注规范。

注意:长时序行为识别对模型架构的要求和短动作完全不同。常见做法是先做动作片段分割(temporal segmentation),再在分割结果上做活动分类;直接拿视频分类模型端到端硬训,很难收敛。

2.3 骨骼动作识别与骨架数据集的补充价值

骨骼动作识别(skeleton-based action recognition)在行为识别领域是独立的一支。它不依赖 RGB 图像,而是利用人体关键点坐标序列来识别动作。这种做法的好处是对外观差异、光照变化不敏感,而且数据量小、推理速度快,非常适合边缘部署。

NTU RGB+D 是目前学术界最常用的骨骼动作数据集,包含 60 类单人动作和 40 类双人交互动作,总视频数超过 5.6 万段。后来扩展的 NTU RGB+D 120 把类别数增加到了 120 类,总样本量达到 11.4 万段。这个数据集同时提供 RGB 视频、深度图、3D 骨骼姿态和红外画面四种模态,可以说是骨骼行为识别领域的“标准考卷”。

PKU-MMD 是另一个值得关注的多模态行为数据集,包含 51 个动作类别、约一万个长视频序列,每个序列覆盖多个连贯动作,因此天然适合做“时序动作检测”。如果你既要识别动作类别、又想知道每段动作的起止时间,PKU-MMD 比 NTU 更合适。

我在实际项目里的经验是:骨骼数据集的“领域适配”难度比 RGB 数据低,因为关键点坐标已经很抽象了,不同摄像头之间的迁移也相对容易。但它的上限同样受限于姿态估计器的质量,如果你用开源姿态模型抽骨骼点,建议先做一轮关键点质量筛查,把抖动大、缺失严重的序列剔除掉,否则会把噪声直接传给动作分类器。

3. 时空动作检测数据集,这才是硬骨头

3.1 AVA:时空动作检测绕不开的基准

AVA(Atomic Visual Actions)数据集是当前时空动作检测领域公认的标准 benchmark,目前常用版本是 AVA 2.2,包含 430 个视频,来自 15 个电影片段,总时长约 590 分钟。标注对象是所有出现在关键帧中的人体,动作类别为 80 类原子动作,比如站的、走着、跑步、伸手、触摸某物、与人交谈等。

AVA 最核心的标注设计是“每秒标注一帧”。视频按 30fps 打开,但标注员只对每秒的第 1 帧、第 31 帧、第 61 帧这类关键帧做人体框和动作标签标注。这意味着训练时模型面对的是一个稀疏时间监督的问题:你输入一整段连续视频,但只有关键帧有框和标签,其他帧全靠模型自己学出来。作者用 Interpolated 策略来补全标注,但实际训练中主流模型(如 SlowFast、ACAR-Net)都会按照关键帧附近的时序窗口采样,然后只在关键帧上计算 loss。

AVA 的评估指标是 frame-level mAP,也就是在关键帧上计算检测框和动作类别两个维度的平均精度。评估时要求预测框和真实框的 IoU 大于 0.5,同时动作类别正确才算正例。这个标准不算苛刻,但类别之间的长尾分布问题很明显,像“站立”“走路”这类高频类别很容易刷高,而“摔倒”“下蹲”这类低频动作才是真正拉开模型差距的地方。

我在跑 AVA 时踩过一个大坑:官方提供的“keyframe”策略天生适合 SlowFast 这种带时间下采样的网络,但对单流网络并不友好。如果你用的是纯空间检测器(比如先在帧上做人体检测,再对每个框做动作分类),建议直接把关键帧当成“当前帧”,前后各取 1 秒的上下文送进去,效果比只取单帧好很多。

3.2 除此之外,还有这些时空动作检测数据集值得收藏

UCF101-24 是从 UCF101 中选出的包含时空动作标注的子集。它保留了 24 个动作类别,并为每个视频标注了人体框在整个时间跨度内的轨迹。评估方式采用 video-level mAP,即要求预测框在时间维度上至少覆盖整个动作的一半时长,空间上 IoU 要超过设定阈值。和 AVA 相比,UCF101-24 的标注更“完整”,每个动作实例都有一个连续存在的框序列,训练起来比较直观,但它没有 AVA 那么大,类别也少很多。

JHMDB 数据集是另一个经典的时空动作检测 + 姿态估计联合数据集,包含 928 个视频、21 个动作类别。它的特色是同时提供人体关节点标注和动作框标注,很适合做“姿态引导的动作检测”研究。缺点是数据量小,只能用于预训练验证和模型调试,不适合做最终评估。

MultiSports 是近年来比较新的多人体育动作数据集,收集了篮球、足球、排球等 8 类运动场景下的多人同时动作,标注精度高、多人交错情况多。它比 AVA 更“拥挤”,对模型的多人关联能力要求极高,适合做拥挤场景下的动作检测研究,但下载和预处理门槛也更高。

提示:做时空动作检测时,千万别把“人体检测器”和“动作分类器”混成一个模型。业界普遍做法是先训练一个高召回的人体检测器(YOLO 或 DETR 系),把每帧的候选框捞出来,再对这些框做动作分类。直接把分类任务塞进检测头里,反而会因为两个任务的收敛速度不同而拖垮训练。

3.3 视频实例分割与动作检测的交集

很多人没意识到,时空动作检测和视频实例分割(VIS)在数据格式上有很多交集。视频实例分割要求对视频中的每个目标实例做像素级分割,并保持跨帧的身份一致;时空动作检测则只关心人体实例和动作类别。两者的核心差异在于:动作检测不需要像素级掩码,但需要类别语义更细致。

在实际业务中,如果你既要“知道人站在哪、做了什么动作”,又需要“把人从背景中精细抠出来”做后续分析,YTVIS、OVIS 这类视频实例分割数据集是很好的补充。它们的标注格式和 COCO 很接近,社区解析工具多,转成动作检测任务时也比较顺滑。

我的建议是:不要把视野局限在“动作识别”一个领域,视频理解和视频分割是同一套基础能力的不同出口。你在整理数据集清单时,顺手把 YTVIS、DAVIS 的下载地址和标注格式也写进笔记,后续做精细化分析时能少走很多弯路。

4. 从公开数据集到“训练自己的数据集”,这四步最关键

4.1 标注格式选型:先想清楚要不要兼容开源工具链

很多项目的起点是“我有一批视频,想训练一个动作识别模型”。这时候最容易犯的错误是:拿到公开数据集后,把自己的标注格式照着公开数据集硬套,结果发现标注工具、训练脚本、评估代码三套体系互相不兼容。

我的建议是:先想清楚“最终要跑什么模型”,再反推标注格式。如果你要跑 mmaction2 或 SlowFast,建议直接按照 AVA 或 Kinetics 的标注格式整理数据,尤其是时间戳、框坐标、类别 id 的字段命名,尽量和开源模型默认的 Dataset class 对齐,这样你只需要写一个几十行的 format 转换脚本,而不是从零写一套数据加载器。

如果你用的是检测底模路线,打算先做人检测再对框做分类,那标注格式可以走 COCO 风格,把每一帧的检测框存成 JSON,动作类别存成 category 字段。这种格式的好处是可以用现成的 detectron2、mmdetection 工具链,后续换模型不用重标数据。

4.2 善用 YOLOv8、YOLO26、DEIM 等检测器做预标注,大幅降低人工标注成本

这一块我一定要单独拿出来讲,因为太多人倒在“标注成本”上。视频数据标注的痛点是:一段一分钟的 30fps 视频足足有 1800 帧,就算采样到 5fps,也要标 300 帧。人工一张张框选人体,成本高到劝退。

现在的主流做法是“预标注 + 人工修正”。先用 YOLOv8、YOLO26 这类速度型检测器在关键帧上自动检测出人体框,再让标注员只负责“确认框是否正确 + 打动作类别标签”。实测下来,光这一步就能把单人标注效率提升 3 到 5 倍。

如果你对检测精度要求更高,DEIM 这类 DETR 系检测器也可以纳入考虑。DEIM 相比传统 DETR 在训练收敛速度和精度上都有改进,尤其对密集小目标的表现更好,适合多人的体育、监控场景。使用流程一般是:先在 COCO 或 Visual Genome 预训练权重上用少量目标领域数据微调,再把待标注视频批量跑一遍,输出带类别的检测框,转成半成品标注文件。

这个方案里有个细节要注意:预标注模型产生的“漏检”比“误检”更麻烦。漏检了,标注员要手动新增框,工作量大;误检只是删框,比较快。所以预标注时宁可把检测阈值调低一点,把框出得多一点,也别让它漏人。

4.3 大规模数据集处理的两个核心环节:清洗与类别均衡

最近很多人讨论“大规模数据集的处理包括两个核心环节”,根据我实际动手的经验,这两个环节就是“清洗”和“类别均衡”。别看说得容易,做起来全是血泪。

清洗的第一个层面是去掉“坏样本”。你从网上下载的视频、自己录制的摄像头数据,都可能包含重复片段、镜头切换过于频繁的片段、目标过小或严重遮挡的片段。这些坏样本不仅浪费计算资源,还会严重干扰模型收敛。我常用的做法是:先跑一遍动作分类预训练模型,记录每个候选样本的 top-1 置信度,然后把置信度极低的样本拎出来人工检查——往往能揪出一大批“标签错误”或者“无动作发生”的无效样本。

清洗的第二个层面是“去重”。视频领域的重复样本比图像领域更隐蔽,同一段内容可能以不同分辨率、不同帧率、不同裁剪方式出现多次。你可以用感知哈希(pHash)或者特征向量的余弦相似度做粗筛,把相似度过高的片段归为同一组,再手动确认是否保留。

类别均衡更是视频训练的必修课。动作识别数据集普遍存在长尾分布,比如“走路”“站立”这类基础动作数量巨大,而“摔倒”“攀爬”这类关键动作数量稀少。硬训的话,模型基本会偏向高频类别。我的建议是分三步处理:先统计类别频次分布,然后对高频类别做下采样,对低频类别做增强(如时序裁剪、翻转、速度扰动),最后如果低频类别实在凑不够,考虑用少量人工合成数据或者迁移学习补充。

4.4 数据增强、帧采样策略与数据集版本管理

视频数据增强操作比图像复杂得多,但换来的是更强的泛化能力。最常用也最稳定的几个手段是:随机裁剪(空间 Jitter)、随机水平翻转、随机时序采样(比如在每段视频里随机抽取连续 N 帧,采样间隔可调)、速度扰动(把视频加速或减速 0.8 到 1.2 倍)、色彩抖动。这几个组合起来,基本能满足大多数场景,不用一上来就上 Mixup、CutMix 那些复杂玩法。

帧采样策略是初学者最容易忽略的细节。UCF101 和 Kinetics 的训练标准做法是“均匀抽 N 帧”:把一段视频平均切分成 N 段,每段随机抽取一帧,组成一个 N 帧的输入片段。这个策略保证了训练时看到的帧覆盖了整个视频的时间范围,而不是集中在开头或结尾。实际使用时,N 通常在 8 到 32 之间,资源充足就选大一点的 N,模型对短动作和快速动作的敏感度会更高。

最后讲一个很多人吃过亏的点:数据集版本管理。做我们自己标注的数据集时,一定要在文件夹或者 JSON 里记录“版本号”,并把原始视频、标注文件、清洗脚本、增强参数全部存档。我见过太多团队标注文件改了七八版,模型训练完发现数据版本对不上,整个实验白做。用 Git LFS 或者是简单的按日期归档都可以,但必须有这个动作。

5. 常见问题与排查技巧实录:数据集使用避坑速查表

5.1 下载链接失效、许可证不清、标签噪声

视频数据集的下载链接失效是常态,尤其是学术机构维护的老数据集。遇到这种情况,第一选择是去数据集官方 GitHub 看有没有镜像链接,第二选择是到 Hugging Face Datasets 搜,很多经典数据集已经有第三方上传的完整版。如果这两条路都不通,还有一个民间技巧:去论文的 Issues 区或问答社区搜“dataset download”,往往能找到热心网友分享的网盘链接。

许可证是另一个必须提前确认的问题。有些数据集仅限学术使用,不允许商业化,你如果拿它训练了商业产品,后面会有法律风险。我建议在下载时顺手把这个信息填入一个专门的“License 记录表”,每用一份数据都留个底。

标签噪声则是公开数据集里最常见也最难解决的问题。Kinetics-400 的标签噪声据估算有 3% 到 5%,这在预训练规模上可以接受,但如果你拿它做小数据集微调,噪声会被放大。解决办法有两个:一是用置信度筛选+人工抽检的方式清洗一遍;二是直接用 Clean 版本的 Kinetics(比如 Kinetics-700 的清洗子集)作为替代。

5.2 类别不平衡的应急处理方案

类别不平衡是所有视频数据集的通病,公开的还相对好一点,自己录制的数据通常极度偏斜。举个例子,做驾驶行为识别时,“正常驾驶”的视频可能占了 90%,“急刹车”“变道不打灯”这些关键动作加起来不到 10%,模型训练完基本只会输出“正常驾驶”。

我的应急处理方案是:先统计每个类别的样本数,写下采样系数,再用加权采样器(WeightedSampler)对视频片段做重新抽样,让每个类别在每一个 epoch 里被抽到的概率大致相等。同时,对少数类别做更强的时序增强,比如把 2 秒的片段重复拼接成 4 秒,把 30fps 的视频降到 15fps 再做一次,都能额外创造出一些变化样本。

如果少数类别实在太少(比如只有几十条视频),我的建议是放弃训练自己的模型,改用“预训练特征 + 线性分类头”的方案。具体做法是:用开源模型提取视频特征,冻结骨干网络,只训练一个小的分类头。这样对数据量的要求会低一个数量级,在少样本场景下往往比端到端训练效果更稳。

5.3 各类问题的快查表

为了方便你排查问题,我把实际项目里高频出现的坑整理成了表格,按“问题现象、原因分析、解决方案”三列列出。

问题现象原因分析解决方案
训练 loss 降不下去标签噪声过大或样本类别重复清洗标签,检查标注质量,降低学习率重新训练
验证集 mAP 偏低,尤其是低频动作类别类别不平衡加权采样、数据增强、修改 Loss 中的类别权重
模型对镜头切换敏感,切换处频繁误判训练数据里镜头切换过多清洗样本,去掉过短的片段,增加时序平滑后处理
推理时漏检框很多人体检测器的阈值设太高降低检测置信度阈值,或者用更密集的锚点/查询机制
预测结果总是集中在某一类数据类别分布极端不均检查采样器权重和 Loss 权重,确认类别 id 映射是否错位

5.4 下载、存储与算力的成本控制经验

视频数据集动辄几十 GB 到几百 GB,存储和带宽成本很容易被忽略。我自己的经验是:不要在下第一时间把所有视频都解压成原始帧,而是先用 ffmpeg 抽取关键帧或低分辨率版本,跑通流程后再决定要不要保留全量。原始视频按 25fps 抽帧会直接多出几百 GB 的中间文件,训练时再用缓存复用,能省下大量磁盘空间。

训练时的 I/O 瓶颈也要提前处理。视频数据在训练时往往是异步加载,如果每步训练都要实时解码视频,GPU 会被 CPU 解码速度拖死。建议提前用 ffmpeg 把所有视频抽帧为图片序列,或者训练前按固定帧采样存成 numpy 数组,用内存映射(mmap)读取。实测下来,这一步能把训练速度提升 2 倍以上,尤其是使用多卡训练时效果更明显。

算力紧张的朋友,建议先用小规模子集做消融实验,比如从 UCF101 里每个类别抽 10 个视频,把全套训练脚本跑通,确认模型的收敛曲线正常,再上全量数据。别一上来就挑战 Kinetics 预训练+全量微调,GPU 账单会教做人。

我个人维护这份数据集清单的习惯是:每用一个新的数据集,都会把“数据集简介、标注格式要点、下载入口、License、踩过的坑”整理成一篇 markdown 笔记,放在项目仓库的 docs 目录下。这样半年后再回来翻,不用重新踩一遍当年的雷。希望这份持续更新的整理也能成为你收藏夹里一个长期有效的起点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询