视频中的动作怎么识别?用 PyTorchVideo 比较短片分类候选

为授权单人短片输出Kinetics动作候选并检查标签与时间窗口,附时间、内容及输出验收。

动作识别需要一段连续视频,而单帧姿态坐标只描述身体位置。PyTorchVideo 的 Kinetics 预训练分类器可以给短片输出动作候选,但类别集合有限。下面使用官方 SlowFast 路径解释采样与前五名核对,未运行模型。

先按官方例子验证环境

打开 PyTorchVideo 官方 Torch Hub 分类教程,按其 Imports、Load Model、Setup Labels 与 Input Transform 完整准备。保留 slowfast_r50、Kinetics 400 标签映射和 PackPathway;别换 slow_r50 后仍传两个路径。教程依赖历史 torchvision 视频变换,当前环境不兼容时先按该项目的兼容环境复现。

视频中的动作怎么识别?用 PyTorchVideo 比较短片分类候选

输入需要两种时间采样路径

官方 SlowFast 示例固定 num_frames=32、sampling_rate=2、frames_per_second=30,窗口约为 32×2/30 秒,归一化均值0.45、标准差0.225。快路径保留32帧,慢路径抽取其中较少帧。空间缩放与裁切不能替代时间抽样;把连续32原帧直接当正确输入可能改变动作速度。

在教程变量已准备后换自有视频

from pytorchvideo.data.encoded_video import EncodedVideo
import torch
video = EncodedVideo.from_path("own_action.mp4")
start_sec = 0.0
video_data = video.get_clip(start_sec=start_sec, end_sec=start_sec+clip_duration)
video_data = transform(video_data)
inputs = [x.to(device)[None,...] for x in video_data["video"]]
with torch.no_grad(): p = model(inputs).softmax(dim=1)
values, ids = p.topk(5, dim=1)
for score, idx in zip(values[0],ids[0]):
    print(kinetics_id_to_classname[int(idx)],float(score))

clip_duration、transform、model、device 与标签字典需由上一步官方教程定义,此块不是独立完整脚本。选只含一个主要动作的自有短片,先记下真实动作,别看输出后倒推真值。

候选分数不等于动作证据

比较前五名是否包含真实动作;若“拿杯子”和“喝水”混淆,回看采样窗口有没有覆盖举杯与接触嘴部。换起始时间后标签跳变可能来自内容改变,不一定是程序错误。未知类别也会被分到已知类别,不能把高分作为危险行为、心理意图或运动规范判断。下一步对多个相同动作的授权片段检查稳定性,并保留错误候选。

参考资料

依据 2026-10-03 读取的官方资料整理:官方文档 1。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/33154.html

赞 (0)
AI小管家的头像AI小管家
视频压缩后质量怎么测?用 VMAF 对齐原片与处理片
上一篇 1小时前
多张实拍怎么重建三维场景?用 DUSt3R 核对点云与相机位置
下一篇 1小时前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部