PySlowFast模型训练实操步骤及Python 实时摄像头动作识别代码示例

发布时间:2026/7/11 1:24:46
PySlowFast模型训练实操步骤及Python 实时摄像头动作识别代码示例 PySlowFast 是由 Meta (Facebook AI Research) 开源的、专注于视频行为识别的经典深度学习框架。由于其模型输入需要一个固定帧数的视频片段Video Clip因而在进行摄像头实时推理时我们需要通过队列Queue循环维护一个滑窗来缓存摄像头采集到的帧。下面为您梳理 PySlowFast 从模型训练到使用 Python 进行摄像头实时动作识别的完整闭环方案。一、 模型训练 (Model Training)PySlowFast 推荐使用其内置的命令行工具tools/run_net.py进行高效的多卡/单卡训练。在编写代码前需要准备好数据集如 Kinetics400 或自定义行为数据集并生成对应的train.csv和val.csv。1. 配置文件修改首先拷贝并修改官方的configs/Kinetics/SLOWFAST_8x8_R50.yaml配置文件TRAIN:ENABLE:TrueDATASET:kineticsBATCH_SIZE:8# 根据显存调整EVAL_PERIOD:10CHECKPOINT_PERIOD:1DATA:NUM_FRAMES:32# 采样帧数SAMPLING_RATE:2# 帧采样间隔PATH_TO_DATA_DIR:/path/to/your/annotations/# 存放 train.csv 的路径PATH_PREFIX:/path/to/your/videos/# 视频文件根目录MODEL:NUM_CLASSES:10# 替换为你的自定义动作类别数量NUM_GPUS:1OUTPUT_DIR:.# 权重文件保存目录2. 执行训练命令python tools/run_net.py--cfgpath/to/your_custom_slowfast.yaml训练结束后在OUTPUT_DIR下会生成形如checkpoints/checkpoint_epoch_00050.pyth的模型权重文件。二、 核心Python 实时摄像头动作识别代码以下是在 Python 脚本中调用训练好的 PySlowFast 模型并通过 OpenCV 读取摄像头或直播流进行滑动窗口预测的完整示例代码。注意事项由于 PySlowFast 自带的内部加载器对实时流不够灵活此代码使用PyTorchVideoPySlowFast 官方底层配套的轻量化库或纯torch方式来构造网络。importcollectionsimportcv2importnumpyasnpimporttorchfrompytorchvideo.modelsimportcreate_resnetfromtorchvision.transformsimportCompose,Lambdafromtorchvision.transforms._transforms_videoimportCenterCropVideo,NormalizeVideo# # 1. 配置参数与模型加载# DEVICEcudaiftorch.cuda.is_available()elsecpu# 这里的参数需要和训练时的 YAML 配置文件严格对齐NUM_FRAMES32# 模型的总输入帧数SAMPLING_RATE2# 采样步长每隔2帧取1帧REQUIRED_FRAMESNUM_FRAMES*SAMPLING_RATE# 缓存区总共需要容纳的帧数 (64帧)# 加载自定义模型结构 (以标准的 SlowFast ResNet50 为例)# 如果你使用的是原版 PySlowFast 权重建议使用 torch.hub 或通过 slowfast.models 构建defload_slowfast_model(checkpoint_path,num_classes10):# 这里通过 pytorchvideo 快速构建符合 SlowFast 架构的网络modeltorch.hub.load(facebookresearch/pytorchvideo,slowfast_r50,pretrainedFalse)# 修改最后的分类头以匹配你训练时的类别数model.blocks[6].projtorch.nn.Linear(model.blocks[6].proj.in_features,num_classes)# 加载训练好的权重checkpointtorch.load(checkpoint_path,map_locationDEVICE)ifmodel_stateincheckpoint:model.load_state_dict(checkpoint[model_state])else:model.load_state_dict(checkpoint)model.to(DEVICE)model.eval()returnmodel# 替换为你的权重路径和标签CHECKPOINT_PATHcheckpoints/checkpoint_epoch_00050.pythCLASS_NAMES[Label0,Label1,Label2,Label3,Label4,Label5,Label6,Label7,Label8,Label9]modelload_slowfast_model(CHECKPOINT_PATH,num_classeslen(CLASS_NAMES))# # 2. 图像预处理流水线# transformCompose([Lambda(lambdax:x/255.0),NormalizeVideo(mean[0.45,0.45,0.45],std[0.225,0.225,0.225]),CenterCropVideo(crop_size256)])defpack_pathway_output(cfg,frames): 将视频帧分割为 Slow 路径和 Fast 路径所需的输入格式 Slow 路径低帧率采样较少帧空间特征强 Fast 路径高帧率采样较多帧时间运动特征强 # frames 形状: [C, T, H, W]fast_pathwayframes# 根据采样比例抽取 Slow 路径对应的帧# 比如在 SlowFast 8x8 中Slow 采样率一般是 Fast 的 4 倍即每 4 帧取 1 帧slow_step4slow_pathwaytorch.index_select(frames,1,torch.linspace(0,frames.shape[1]-1,frames.shape[1]//slow_step).long().to(DEVICE),)return[slow_pathway,fast_pathway]# # 3. 摄像头实时视频流循环# capcv2.VideoCapture(0)# 0 代表本地自带摄像头也可以填入 RTSP 视频流地址frame_buffercollections.deque(maxlenREQUIRED_FRAMES)# 循环队列缓冲区print(开始实时动作识别按 q 退出...)current_predictionWaiting...withtorch.no_grad():whilecap.isOpened():ret,framecap.read()ifnotret:break# 1. 转换色彩空间并存入缓冲区rgb_framecv2.cvtColor(frame,cv2.COLOR_BGR2RGB)# 调整大小加快处理速度 (PySlowFast通常输入短边为256)resized_framecv2.resize(rgb_frame,(340,256))frame_buffer.append(resized_frame)# 2. 当缓冲区存满所需帧数时启动模型推理iflen(frame_buffer)REQUIRED_FRAMES:# 依采样步长从缓冲区中取帧实现稀疏采样sampled_frames[frame_buffer[i]foriinrange(0,REQUIRED_FRAMES,SAMPLING_RATE)]# 变换形状由 List 的 [H, W, C] 转换为 Tensor [C, T, H, W]video_tensortorch.from_numpy(np.array(sampled_frames)).permute(3,0,1,2).float().to(DEVICE)# 预处理 (归一化、裁剪)video_tensortransform(video_tensor)# 构建 SlowFast 双路径输入inputspack_pathway_output(None,video_tensor)# 增加 Batch 维度 [[1, C, T_slow, H, W], [1, C, T_fast, H, W]]inputs[x.unsqueeze(0)forxininputs]# 模型前向传播predsmodel(inputs)# 获取预测结果top1_val,top1_idxpreds.topk(1,dim1)probstorch.nn.functional.softmax(preds,dim1)confidenceprobs[0][top1_idx.item()].item()# 如果置信度高于阈值更新预测文本ifconfidence0.6:current_predictionf{CLASS_NAMES[top1_idx.item()]}({confidence:.2f})else:current_predictionBackground/Unknown# 3. 将预测结果实时渲染在画面上cv2.putText(frame,fAction:{current_prediction},(20,50),cv2.FONT_HERSHEY_SIMPLEX,1,(0,255,0),2,cv2.LINE_AA)cv2.imshow(PySlowFast Real-time Action Recognition,frame)ifcv2.waitKey(1)0xFFord(q):breakcap.release()cv2.destroyAllWindows()三、 生产环境优化建议异步多线程 (Multi-threading)上面的示例是单线程的。在实际项目如服务器高帧率推流中cap.read()读取摄像头、缓冲区填充、与model(inputs)推理应当拆分到不同的线程中。否则由于深度学习模型前向传播的耗时会导致画面卡顿和网络延迟。硬件加速如果对实时性Latency要求极高建议将最终训练出来的 PyTorch.pyth权重转换为ONNX格式进而转为TensorRT(NVIDIA GPU) 或OpenVINO(Intel CPU) 进行边缘端部署帧率通常可提升数十倍。

相关新闻

3步掌握UnityExplorer:游戏运行时调试的终极解决方案

3步掌握UnityExplorer:游戏运行时调试的终极解决方案

3步掌握UnityExplorer:游戏运行时调试的终极解决方案 【免费下载链接】UnityExplorer An in-game UI for exploring, debugging and modifying IL2CPP and Mono Unity games. 项目地址: https://gitcode.com/gh_mirrors/un/UnityExplorer 在Unity游戏开发过程…

发布时间:2026/7/11 1:24:45
聊城营销网站建设价格别被忽悠了,这行水比你想象的深多了

聊城营销网站建设价格别被忽悠了,这行水比你想象的深多了

咱聊城做买卖的老板们,最近是不是都在愁这事儿?想搞个网站,去问了一圈,报价从两千到两万都有,心里直打鼓。这中间差的不是一点半点,是整整十倍的差价啊。很多人第一反应是:咋差这么多?是不是有人黑心?其实吧,真不是黑心,是坑太深。我见过不少同行,为了接单,先报个…

发布时间:2026/7/11 1:24:02
洪泽网站建设避坑指南:本地企业如何花小钱办大事

洪泽网站建设避坑指南:本地企业如何花小钱办大事

最近跟几个洪泽本地的老板喝茶,聊起网站的事,发现大家还是有很多误区。很多人觉得做个网站就是买个域名、租个服务器,然后套个模板完事。其实真不是这么回事。我在这一行摸爬滚打这么多年,见过太多因为不懂行被坑的案例,今天就想掏心窝子跟大家聊聊,在洪泽做网站到底该怎…

发布时间:2026/7/11 1:24:00
Zotero PDF Translate插件兼容性困境:4类用户角色应对指南与实战方案

Zotero PDF Translate插件兼容性困境:4类用户角色应对指南与实战方案

Zotero PDF Translate插件兼容性困境:4类用户角色应对指南与实战方案 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode.c…

发布时间:2026/7/11 2:23:31
网站建设技术质量指标到底咋看?别被忽悠,这几点才是硬道理

网站建设技术质量指标到底咋看?别被忽悠,这几点才是硬道理

本文关键词:网站建设技术质量指标真的气炸了!昨天有个朋友哭着找我,说花了两万块做的企业官网,打开慢得像蜗牛,百度根本搜不到,客服还在那扯皮说“这是艺术感”。我一看后台代码,好家伙,全是冗余代码,图片没压缩,连个基础的HTTPS都没上。这种坑,我见得太多了。今天必…

发布时间:2026/7/11 2:21:40
广州镭拓科技网站建设公司:别被花哨页面骗了,我们要的是能卖货的网站

广州镭拓科技网站建设公司:别被花哨页面骗了,我们要的是能卖货的网站

本文关键词:广州镭拓科技网站建设公司做网站到底是为了好看还是为了赚钱?这问题听起来像废话,但市面上90%的建站公司都在给你做“好看”的东西。我见过太多老板花了几万块,弄个满屏动画、加载慢得像蜗牛的网站,最后客户还没看完第一屏就关了。广州镭拓科技网站建设公司最近…

发布时间:2026/7/11 2:20:34
赣州网站建设资讯揭秘:老板别再花冤枉钱,本地SEO实战血泪史

赣州网站建设资讯揭秘:老板别再花冤枉钱,本地SEO实战血泪史

本文关键词:赣州网站建设资讯做网站的老板们,是不是每次打开后台看到流量只有个位数,心里就直冒冷汗?别急着骂娘,先看看你的网站是不是还在用十年前的模板,或者干脆就是个“死站”。我干了八年赣州网站建设资讯这块的活儿,见过太多老板花了几万块做个花里胡哨的首页,结…

发布时间:2026/7/11 2:20:13
品牌网站建设策划方案怎么做才不踩坑?老站长血泪总结,拒绝花架子

品牌网站建设策划方案怎么做才不踩坑?老站长血泪总结,拒绝花架子

本文关键词:品牌网站建设策划方案说实话,我现在看到那些满屏动画、加载要半分钟还看不清字的企业官网,心里就冒火。真的,太烦了。很多老板花了几万甚至十几万做个网站,结果连个客户都留不住,钱打了水漂,还怪SEO没效果。我当初也是这么过来的,被坑怕了,所以今天必须把这…

发布时间:2026/7/11 2:20:13
住房建设部投诉网站怎么用?开发商违规别忍,教你高效维权

住房建设部投诉网站怎么用?开发商违规别忍,教你高效维权

买房这事儿,水太深了。很多人以为交了钱,签了合同,就万事大吉。 现实往往是一记响亮的耳光。 延期交房、货不对板、质量烂尾…… 遇到这些破事,别急着在业主群里骂街。 骂街解决不了问题,只会让你更焦虑。 你需要的是武器,是渠道,是让他们怕的东西。今天不灌鸡汤,只讲干…

发布时间:2026/7/11 2:20:08
别瞎找了!稼禾建设集团网站到底长啥样?扒开内幕看真相

别瞎找了!稼禾建设集团网站到底长啥样?扒开内幕看真相

你是不是也在找那个传说中的稼禾建设集团网站?我也找过。真的,那种感觉太难受了。就像你在深夜饿得前胸贴后背,打开冰箱却发现里面空空如也。你想知道他们家到底接没接过什么大项目,想知道他们的资质有多硬,想看看那些高楼大厦背后有没有他们的名字。结果呢?搜出来的全是…

发布时间:2026/7/11 0:00:38
温江区建设局网站怎么查进度?新手避坑指南与真实操作细节

温江区建设局网站怎么查进度?新手避坑指南与真实操作细节

最近好多朋友私信我, 问温江区那边搞装修或者买房, 到底怎么查审批进度。 很多人第一反应就是去现场排队, 其实现在都数字化了, 大部分业务都能在温江区建设局网站搞定。 但这里头水挺深, 稍微不注意就容易踩坑。 今天我就结合这几年在温江跑工地的经验, 给大家捋一捋, …

发布时间:2026/7/11 0:00:41
上海最好网站建设公司怎么选?老站长掏心窝子的避坑指南

上海最好网站建设公司怎么选?老站长掏心窝子的避坑指南

本文关键词:上海最好网站建设公司说实话,在这个行当摸爬滚打这么多年,见过太多老板被坑得底裤都不剩。昨天有个做建材的朋友找我喝茶,一脸愁容。他说之前找了一家所谓的“高端”团队,花了八万块,结果做出来的网站跟十年前的模板似的,连个手机适配都搞不定。他问我,到底…

发布时间:2026/7/11 0:01:45
做个人信息管理网站建设,这3个坑我踩了七年,你千万别再跳

做个人信息管理网站建设,这3个坑我踩了七年,你千万别再跳

做了七年建站,见过太多老板花大钱买模板,最后发现根本没法用。特别是现在大家都讲究数据隐私,想搞个个人信息管理网站建设,结果越搞越乱。这篇文不整虚的,直接说怎么把这套系统落地,让你自己的数据真正听话。先说个真事儿。去年有个做自由职业的朋友找我,他说想建个网站…

发布时间:2026/7/10 15:55:18
杨凌规划建设局网站怎么查最新规划?老杨说点大实话

杨凌规划建设局网站怎么查最新规划?老杨说点大实话

杨凌规划建设局网站你是不是也遇到过这种情况?想看看自家旁边要修路,还是建公园。翻遍了手机,搜出来的全是几年前的旧闻。或者好不容易找到个入口,页面加载慢得像蜗牛。心里那个急啊,真的,懂的人都懂。我是老杨,在杨凌混了十几年,跟这行打交道不少。今天不跟你扯那些虚…

发布时间:2026/7/9 15:43:42
杭州网站建设 seo 避坑指南:别被那些只会套模板的忽悠了

杭州网站建设 seo 避坑指南:别被那些只会套模板的忽悠了

昨天半夜两点,我还在改一个客户的后台,咖啡都凉透了。这哥们儿是做机械配件的,在余杭那边,找的前一家公司花了八千块做了个站,结果上线一个月,百度连个影子都没有。他急得给我打电话,说是不是被黑了。我让他把链接发过来,打开一看,好家伙,那代码乱得跟刚被猫抓过的毛…

发布时间:2026/7/9 16:54:10
建站7年才悟出的网站建设思路,别再花冤枉钱了

建站7年才悟出的网站建设思路,别再花冤枉钱了

做建站这行整整7年了。 见过太多老板花几万块, 最后做出来的网站像个垃圾场。 今天不整那些虚头巴脑的术语。 就聊聊我踩过的坑, 和真正能落地的网站建设思路。很多老板一上来就问: “多少钱能做个高大上的?” 我通常直接劝退。 因为方向错了, 你给再多钱也是打水漂。 真正…

发布时间:2026/7/9 15:45:02
合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

合肥的网站建设避坑指南:别被低价忽悠,这3个细节决定生死

做企业官网最怕什么?不是技术难,是交钱后没人管,或者上线一个月连个访客都没有。这篇东西不扯虚的,直接告诉你怎么在合肥找个靠谱的团队,或者自己怎么避坑。先说个大实话,我在合肥混这行五年多,见过太多老板因为贪便宜吃大亏。你去百度搜“合肥的网站建设”,出来一堆报…

发布时间:2026/7/10 18:05:06
别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

别被忽悠了!德州网站建设那些坑,我拿真金白银换来的教训

做这行久了,心里就憋着一股火。每次看到客户拿着网上抄来的模板,问我能不能做成“苹果官网”那种效果。我就想笑。真的,太想笑了。今天咱不整那些虚头巴脑的专业术语。就聊聊德州网站建设里,那些让人头秃的真实事儿。我有个客户,老张。他是做德州本地建材的,实在人。当初…

发布时间:2026/7/10 16:48:50