ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用InternVideo做视频动作识别:面向初学者的Kinetics-400微调完整指南

如何用InternVideo做视频动作识别:面向初学者的Kinetics-400微调完整指南 如何用InternVideo做视频动作识别面向初学者的Kinetics-400微调完整指南【免费下载链接】InternVideo[ECCV2024] Video Foundation Models Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideoInternVideo 是上海 AI Lab 开源的视频基础模型系列而用它在Kinetics-400 数据集上做视频动作识别微调是入门视频理解最经典、资料最全的路径。本文带你从零开始安装环境 → 准备数据 → 运行一条命令微调 InternVideo2 模型 → 得到 K400 上 90% Top-1 精度的动作识别模型全程无需修改核心代码。上图直观展示了 InternVideo2 在动作识别、时序定位、检索等 20 任务上的表现——其中Kinetics-400 FineTuned Classification 达到 92.1% Top-1正是本文要复现的目标。为什么选 InternVideo 做视频动作识别InternVideo 采用Local/Global 两阶段时空建模架构见上图框架图先用 Local UniBlock 分别建模时序与空间局部特征再通过 Global UniBlock 做全局时空融合。这种设计让它既学到了强空间语义又保留了时序动态信息动作识别能力显著优于纯图像模型。对项目感兴趣的同学可以查看 InternVideo2 README 和 ECCV2024 论文 PDF 了解完整背景。第一步一键克隆仓库并安装 InternVideo 环境git clone https://gitcode.com/OpenGVLab/InternVideo cd InternVideo/InternVideo2/single_modality pip install -r requirements.txt 依赖清单维护在 requirements.txt完整安装说明见 INSTALL.md。推荐 PyTorch 1.12 与 CUDA 11.6 环境微调 1B 模型单卡 A100 即可跑通。第二步Kinetics-400 数据集准备K400 包含 400 个动作类别、约 24 万条训练视频。官方数据文件含预处理好的视频列表与标签的获取方式写在 DATASET.md 中。下载完成后建议按如下目录组织路径可按需修改your_data_path/ └── k400/ ├── train_*.txt # 训练视频列表 ├── val_*.txt # 验证视频列表 ├── test_*.txt # 测试视频列表 └── raw_videos/ # 原始视频第三步读懂 K400 微调脚本的关键参数所有官方微调脚本都集中在 scripts/finetuning/full_tuning/ 目录K400 专用脚本位于 scripts/finetuning/full_tuning/k400/。以 1B 模型 8 帧版 1B_ft_k710_ft_k400_f8.sh 为例核心参数解释如下参数示例值含义--modelinternvideo2_1B_patch14_224要微调的模型规格也可换 S/B/L 蒸馏小模型--data_setKinetics_sparse稀疏采样的 Kinetics 数据加载器--nb_classes400类别数K400 固定为 400--finetuneK710 预训练权重路径初始化权重决定起点精度--num_frames8每个 clip 输入帧数--epochs3微调通常只需 3 轮即可收敛--lr1e-5全参微调推荐小学习率--test_num_segment/--test_num_crop4/3评估时多裁剪集成策略 微调起点很重要脚本默认加载K710 预训练权重1B_ft_k710_f8.pth在 K400 上能直接冲到 91.3% Top-1。各规格模型的权重与脚本对照表见 MODEL_ZOO.md。第四步启动训练一条命令跑通修改脚本头部三个变量指向你自己的路径PREFIX你的数据路径/k400 # 数据前缀 DATA_PATH你的数据路径/k400 # 数据集路径 MODEL_PATH你的模型路径/1B_ft_k710_f8.pth # 初始化权重然后进入 single_modality 目录执行bash ./scripts/finetuning/full_tuning/k400/1B_ft_k710_ft_k400_f8.sh脚本最终调用的是 run_finetuning.py它会自动完成构建 Kinetics 数据加载器 → 加载权重 → 训练 3 个 epoch →自动评测最佳 checkpoint--test_best并输出 Top-1/Top-5。GPU 显存紧张时保留脚本中的--use_checkpoint即可节省约 30% 显存。⚠️ 脚本默认使用 SLURM 集群提交srun单机多卡可改为torchrun或python -m torch.distributed.run启动同一组参数参考 scripts/pretraining/ 中的写法。训练完成后的评估技巧只看结果加上--eval参数仅跑测试不做训练换集成策略--test_num_segment 4 --test_num_crop 3表示 4 段时序 clip × 3 个空间裁剪精度更高但耗时翻倍日志与权重每 100 步自动保存一次 checkpoint训练日志写在脚本同级的输出目录中。常见问题速查显存不够优先开--use_checkpoint --checkpoint_num 6或改用蒸馏出的 S/B/L 小模型脚本显存占用降一个数量级。精度上不去确认加载的是 K710 预训练权重而非纯预训练权重K400 微调只需 3 个 epoch学习率过大1e-4容易过拟合。数据加载报错检查train.txt/val.txt中视频路径是否指向存在的文件--split保持,不变。想扩展到其他数据集K600/K700/MiT/SthSth 的脚本结构完全相同直接改--nb_classes与数据路径即可。写在最后按照本指南你只需要改 3 个路径、跑 1 条命令就能在 Kinetics-400 上得到 90% Top-1 的视频动作识别模型。下一步推荐把微调好的 K400 权重当作初始化继续微调 Moments in Time 或 SthSth V2脚本同样在 full_tuning/ 中体验预训练 → K710 → K400 → 目标域的完整迁移路线。Happy training! 【免费下载链接】InternVideo[ECCV2024] Video Foundation Models Data for Multimodal Understanding项目地址: https://gitcode.com/OpenGVLab/InternVideo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表