PaddleVideo + YOWO 实现实时摄像头视频检测的完整代码示例
📅 2026/7/11 6:05:40
👁️ 次浏览
在 PaddleVideo 中YOWO 模型主要用于时空动作定位Spatio-Temporal Action Detection。由于 YOWO 需要同时输入一段连续的帧序列如 16 帧来进行时空特征提取因此实现实时摄像头检测的核心在于构建滑动窗口Sliding Window机制。以下是结合 PaddleVideo 官方推理逻辑与 OpenCV 实时流处理的完整代码示例。这段代码展示了如何在内存中维护帧队列并逐窗口进行推理importcv2importnumpyasnpimportpaddlefrompaddlevideo.configsimportget_cfgfrompaddlevideo.modelingimportbuild_model# 1. 配置与模型初始化 # 加载 YOWO 的配置文件请根据实际路径修改cfgget_cfg(configs/detection/yowo/yowo.yaml)# 构建模型并加载预训练权重modelbuild_model(cfg.MODEL)model_statepaddle.load(cfg.MODEL.pretrained)model.set_state_dict(model_state)model.eval()# 视频处理相关参数WINDOW_SIZE16# YOWO 通常需要的连续帧数STEP_SIZE4# 滑动窗口的步长每次滑过几帧用于降低计算量THRESHOLD0.5# 动作置信度阈值# 2. 视频流读取与滑动窗口构建 capcv2.VideoCapture(0)# 0 代表默认摄像头ifnotcap.isOpened():raiseRuntimeError(❌ 无法打开摄像头)frame_buffer[]# 内存中的帧队列frame_count0print( 开始实时动作检测按 ESC 键退出...)whileTrue:ret,framecap.read()ifnotret:print(❌ 无法读取摄像头画面)break# 预处理将 BGR 转换为 RGB 并 resize 到模型输入尺寸 (如 224x224)# 注意实际推理前还需要进行 Normalize 和 Transpose (HWC - CHW)# 这里为展示核心逻辑省略了完整的预处理 pipelinergb_framecv2.cvtColor(frame,cv2.COLOR_BGR2RGB)resized_framecv2.resize(rgb_frame,(224,224))frame_buffer.append(resized_frame)frame_count1# 当帧队列达到窗口大小且满足步长条件时触发一次推理iflen(frame_buffer)WINDOW_SIZEandframe_count%STEP_SIZE0:# 取出当前窗口的 16 帧组成 Batch Tensor: [1, T, C, H, W]clipnp.array(frame_buffer[-WINDOW_SIZE:])clip_tensorpaddle.to_tensor(clip).transpose([3,0,1,2]).unsqueeze(0)# 模型前向推理withpaddle.no_grad():outputsmodel(clip_tensor)# 解析输出假设输出包含 boxes, scores, labels# 具体的解析方式需参考 PaddleVideo YOWO 的官方后处理代码boxes,scores,labelsoutputs# 在原始帧上绘制检测框取窗口内的最新一帧进行绘制display_frameframe.copy()forbox,score,labelinzip(boxes,scores,labels):ifscoreTHRESHOLD:x1,y1,x2,y2map(int,box)cv2.rectangle(display_frame,(x1,y1),(x2,y2),(0,255,0),2)cv2.putText(display_frame,f{label}:{score:.2f},(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,255,0),2)# 实时显示cv2.imshow(YOWO Real-time Action Detection,display_frame)# 滑动窗口弹出最旧的帧保持内存占用稳定frame_bufferframe_buffer[STEP_SIZE:]else:# 未达到推理条件时仅显示实时画面cv2.imshow(YOWO Real-time Action Detection,frame)# 按 ESC 退出ifcv2.waitKey(1)0xFF27:break# 3. 释放资源 cap.release()cv2.destroyAllWindows() 核心工程要点说明内存管理代码中通过frame_buffer frame_buffer[STEP_SIZE:]实现了滑动窗口的滑动确保内存中始终只保留少量帧避免了显存/内存溢出。性能优化通过设置STEP_SIZE 4模型并不是每帧都推理而是每隔 4 帧推理一次。这在保证动作检测连续性的同时将计算开销降低了约 75%。数据预处理在实际工程中frame_buffer中存储的应该是经过完整预处理Resize、Normalize、ToTensor后的 NumPy 数组或 Tensor以加快推理时的组装速度。你可以将此代码作为基础模板根据你实际使用的 PaddleVideo 版本的 API 接口如数据预处理和后处理的具体函数进行微调即可快速跑通实时动作检测 Demo。
FPGA RS422串口调试:从USB转接线选型到Modelsim仿真的3个关键步骤在工业通信领域,RS422凭借其差分传输特性和强抗干扰能力,成为FPGA与远端设备通信的常见选择。本文将系统化梳理从硬件选型到仿真验证的全流程,帮助工程师规避常见陷…
📅 2026/7/11 6:04:40
本文将深入对比10款客户管理CRM系统:超兔一体云、Salesforce、HubSpot、SuiteCRM、Dynamics 365、简道云CRM、明道云CRM、橙单CRM、麦客CRM、尘锋CRM,从定位、核心功能、适用场景、部署模式等多维度拆解,为企业2026年CRM选型提供客观参考。
…
📅 2026/7/11 6:04:40
1. OpenClaw不是“App”,而是一套跨设备协同的节点协议系统很多人点开搜索页看到“OpenClaw下载 安装 最新版V2026.5.20指南,中文官网直连安卓苹果手机图文教程”,第一反应是:又一个带中文界面的国产APP?点进去找APK、…
📅 2026/7/11 6:04:40
STM32多串口动态printf重定向:1个fputc函数支持USART1/2/3切换在嵌入式开发中,串口调试是最常用的调试手段之一。而printf作为C语言中最常用的输出函数,如果能将其重定向到串口,将极大提升调试效率。但对于需要同时调试多个外设或…
📅 2026/7/11 7:07:57
这次我们来关注AI领域的最新动态,特别是围绕Anthropic、腾讯、NVIDIA和微软这几家巨头的重大变化。从技术角度看,这些变化不仅影响投资格局,更直接关系到开发者的工具选择、部署方案和未来技术路线。最近的热点包括Anthropic推出的"J-le…
📅 2026/7/11 7:07:57
复旦大学Idk数据集构建实战:基于TriviaQA的3步标注流程与78.96%准确率提升在人工智能助手日益普及的今天,如何让大模型更诚实地表达"我不知道"而非生成错误答案,已成为提升AI真实性的关键技术挑战。复旦大学团队提出的Idk数据集构建…
📅 2026/7/11 7:07:57
最近在AI开发圈里,不少同行都在关注一个重要动态:字节跳动的豆包和阿里巴巴的通义千问相继宣布,将于2026年7月15日正式下线其智能体功能。这个时间点恰好与《人工智能拟人化互动服务管理暂行办法》正式施行之日重合,引发了业界对A…
📅 2026/7/11 7:07:57
🖥️OpenClaw 2.7.9 桌面 AI 自动化工具完整部署指南|Windows 新手搭建本地数字员工
📖文章引言
在众多面向个人电脑的开源 AI 工具里,OpenClaw 凭借本地运行、自主执行电脑任务、全图形化操作的特点收获大量使用者,…
📅 2026/7/11 7:07:57
在计算机视觉领域,我们经常遇到一个令人困扰的问题:为什么那些在ImageNet等大规模2D数据集上表现优异的预训练模型,在实际的3D场景应用中却常常表现不佳?比如在机器人导航、自动驾驶或AR/VR应用中,模型能够识别物体却无…
📅 2026/7/11 7:06:57
摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计…
📅 2026/7/11 0:00:31
1. 命令简介gpm 是 Linux 系统下运行于虚拟控制台(文字终端模式)的鼠标服务器。它的主要功能是在没有图形界面的纯文本环境中,为虚拟控制台提供鼠标支持,允许用户使用鼠标进行文本的选择、复制和粘贴操作,极大地提升了…
📅 2026/7/11 0:00:31
导语
先澄清一个常被混用的概念:BI试点"上线",并不等于试点"验收通过"。很多企业把仪表板做出来、账号发下去、培训开完场,就默认试点已经跑通,随后进入推广阶段——结果推广到第二个部门、第三个业务线时&am…
📅 2026/7/11 0:00:31
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/10 22:46:54
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/10 22:46:54
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/10 22:46:54
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/10 22:46:54
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/10 22:46:54
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/10 22:46:54