使用OpenVINO实现人体动作识别

article/2025/10/16 6:06:32

Paula Ramos著   张晶 译

目录

1.1 人体动作识别背景简介

1.2 OpenVINOTM Notebook简介

1.3 动作识别模型简介

1.4 实现实时动作识别

1.4.1 下载模型

1.4.2 初始化模型

1.4.3 辅助函数

1.4.4 AI函数

1.4.5 完整执行整个程序

1.5 关于作者:

1.6 声明和免责声明


1.1 人体动作识别背景简介

        自从我在英特尔开始我的旅程以来已经有几个月了,我很高兴能与大家分享我一直在做的事情。今天,我将带你浏览我的第一个关于人体动作识别的OpenVINOTM Notebook。我希望你喜欢它,并且可以将它应用到你正在进行的开发中。

        在本博客中,您将了解如何使用 OpenVINO™ 工具套件以同步的方式进行实时人体动作识别。

        人体动作识别是一种 AI 功能,可以在录制或实时视频中查找和分类大量活动。例如:如果您有大量的家庭视频收藏,并且想要找到特定的记忆,如1.1所示,那么人体动作识别是最简单、最快的方法。

        传统方法需要您花费大量精力和时间手动查看您拥有的每个视频,直到找到合适的视频。使用人体动作识别,您可以训练 AI 模型根据录制的活动为您自动分类和组织您的视频,从而在几秒钟内更轻松地找到和访问您最珍贵的记忆。

  图1.1  珍贵的家庭回忆

        人体动作识别也可以应用于制造业等企业。例如:为工人提供一种保证他们工作安全的解决方案,该方案能够识别工人正在执行任务和工人手势,并提醒管理人员可能存在的潜在危险。

这只是人体动作识别的几个应用场景。在接下来的几年里,我希望在这个领域看到更多新的和令人兴奋的应用案例。在运行这个OpenVINOTM Notebook后,若能激发您想到还有其它领域可以从人体动作识别功能中受益,请告诉我们。现在,让我们开始吧。

1.2 OpenVINOTM Notebook简介

          OpenVINOTM Notebook是开源免费的一系列Jupyter Notebook格式的OpenVINO TM范例程序。本文对应的OpenVINOTM Notebook范例是Live Action Recognition with OpenVINO™,如图1-2所示。

图1-2  Live Action Recognition with OpenVINO™

          Live Action Recognition with OpenVINO™基于DeepMind Kinetics-400人体动作视频数据集,它总共包含 400 个动作,包括

  • 人的动作(例如,写作、喝酒、大笑)
  • 人与人的动作(例如,拥抱、握手、玩耍)扑克)
  • 人与物体的动作(骑摩托车、洗衣服、吹气球)

您还可以区分一组亲子互动,例如:编辫子或梳头、萨尔萨舞或机器人跳舞,以及拉小提琴或吉他,如图1.2所示。

图1.2  人体动作识别

        有关标签和数据集的更多信息,请参阅“The Kinetics Human Action Video Dataset”研究论文。

        您可以使用普通计算机运行此OpenVINOTM Notebook范例程序,无需硬件加速器。使用 OpenVINOTM 工具套件的好处在于:它设计为在边缘工作,因此可以针对边缘运行,优化您的AI模型,以便在GPU、CPU 或VPU上高效运行。

        您可以使用各种视频源,例如:来自 URL、本地存储的文件或网络摄像头源。

1.3 动作识别模型简介

        本文使用Open Model Zoo的Action Recognition模型库,它提供了各种各样的预训练深度学习模型和演示应用程序。本文使用的模型 action-recognition-0001,这是一个基于 Video Transformer,具有 ResNet34 架构的模型,如图1.3所示。

图1.3 人体行为识别模型流程图

     action-recognition-0001模型含两个关键组件:

  • 编码器,基于 PyTorch 框架,输入形状为 [1x3x224x224],表示批尺寸大小为1,颜色通道为3,图像尺寸为 224 x 224 像素;输出形状为 [1x512x1x1],表示内嵌的已处理帧。
  • 解码器,同样基于 PyTorch 框架,输入形状为 [1x16x512],表示批尺寸大小为1,一秒内处理 16 帧,内嵌数据为 512。

    我选择每秒 16 帧进行分析——因为这是Kinetics-400 作者找到类别分数的平均帧数。如图1.2中的 GIF 所示,对帧进行预处理以及分析中心裁剪的图像。

    编码器和解码器都创建了一个序列到序列 (Seq2Seq) 系统来识别 Kinetics-400 数据集的人体动作。由于没有过量的标注信息,模型性能是最好的,它可以帮助我们理解处理工作流程

     了解了上述基础信息后,您可以按照以下步骤开始识别您自己的视频:

  1. 准备OpenVINO Notebooks运行环境。
  2. 准备您的视频源、网络摄像头或视频文件以及您想要检测的常见活动。考虑通过检查数据集标签来检测动作名称。
  3. 在您的计算机上打开一个 Jupyter Notebook。该Notebook可以在 Windows、MacOS 和 Ubuntu 下通过不同的互联网浏览器运行。

1.4 实现实时动作识别

现在,我将向您展示如何使用 OpenVINO™ 实现实时动作识别。

1.4.1 下载模型

        我们使用 Open Model Zoo 工具,例如:omz_downloader,来下载Open Model Zoo中的预训练模型。omz_downloader是一个命令行工具,可以自动创建目录结构并下载选定的模型。

        使用omz_downloader工具下载 Open Model Zoo的“action-recognition-0001”模型,如图1.4所示。

图1.4  下载action-recognition-0001模型

1.4.2 初始化模型

        在执行推理计算前,需要先初始化推理引擎,然后从模型文件中读取网络和权重,并将模型加载到所选设备(本文例子中是 CPU)上,最后获取模型的输入和输出节点,如图1.5所示。

图1.5  初始化模型

1.4.3 辅助函数

        您需要一些辅助函数来帮您将执行结果可视化,例如:创建一个以裁剪为中心的 ROI,调整图像大小,并在每一帧中放置文本信息。

1.4.4 AI函数

        这里将依次实现AI推理计算。

        第一步: 在运行编码器之前对每帧图像进行预处理(预处理)。在将帧传入编码器之前,请先准备好图像:

  1. 将图像放缩到编码器输入尺寸,即[224,224]
  2. 将放缩后的图像进行中心裁剪,并使其长宽相等
  3. 将颜色通道从HWC变为CHW

具体代码实现,如图1.6所示。

图1.6  图像预处理

        第二步,执行编码器模型推理计算。encoder()函数调用已编译模型(compiled_model),执行推理计算,然后从输出节点提取推理计算结果,并以列表形式以供解码器使用,如图1.7所示。

图1.7  执行编码器模型推理计算

        第三步,执行解码器模型推理计算。decoder()函数将来自编码器输出的16帧的嵌入层连接在一起,然后转置数组以匹配解码器输入尺寸。它调用已编译好的解码器模型 (compiled_model_de),提取 logits,并将logits标准化以获得沿指定轴的置信度值。最后,它将最高概率解码为相应的标签名称,如图1.8所示。

图1.8  执行解码器模型推理计算

1.4.5 完整执行整个程序

        现在,我们可以直接执行整个完整的人体动作识别程序。

 Human Action Recognition with OpenVINO™程序链接:openvino_notebooks/403-action-recognition-webcam.ipynb at main · openvinotoolkit/openvino_notebooks · GitHub

        首先,选择您要为其运行完整工作流程的视频。

video_file = "https://archive.org/serve/ISSVideoResourceLifeOnStation720p/ISS%20Video%20Resource_LifeOnStation_720p.mp4"
run_action_recognition(source=video_file, flip=False, use_popup=False, skip_first_frames=600)

        然后,选择网络摄像头并再次运行完整的工作流程。

run_action_recognition(source=0, flip=False, use_popup=False, skip_first_frames=0)

    恭喜!你已经做到了。我希望您发现这个主题对您的应用程序开发有趣和有用。😉

要了解有关 OpenVINO 工具包及其功能的更多信息,请访问https://www.openvino.ai/。如需更多动手 AI 培训,请查看我们的AI Dev Team Adventures

本文对应的英文原文链接:https://medium.com/@paularamos_5416/human-action-recognition-with-openvino-toolkit-f1b530af33e5

1.5 关于作者:

        大家好!我叫Paula Ramos。自 2000 年代初以来,我是一名 AI 爱好者并一直从事计算机视觉工作。开发创新的集成工程技术是我的热情所在。我喜欢开发并部署可以被人用来解决真是世界里面真实问题的解决方案。如果您想分享您对我们如何改进社区内容的想法,请给我留言!😉 我很高兴听到您的反馈。

1.6 声明和免责声明

        英特尔技术可能需要启用硬件、软件或服务激活。没有任何产品或组件是绝对安全的。您的成本和结果可能会有所不同。

        英特尔不控制或审核第三方数据。您应该咨询其他来源以评估准确性。英特尔否认所有明示和默示保证,包括但不限于适销性、特定用途适用性和不侵权的默示保证,以及因履行过程、交易过程或贸易使用产生的任何保证。本文档未授予任何知识产权的许可(明示或暗示、禁止反言或其他方式)。

© 英特尔公司。英特尔、英特尔徽标和其他英特尔标志是英特尔公司或其子公司的商标。其他名称和品牌可能会被视为他人的财产


http://chatgpt.dhexx.cn/article/g6TRLSUB.shtml

相关文章

使用kinect2.0做动作识别和动作计数

利用kinect2结构光相机进行运动动作识别和运动计数,不仅可以测量运动人员的卡路里,也可以测出运动速度和做功,并对于运动的动作做出科学规范的指导。 这里我们选用kinect2和windows系统作为开发工具来进行开发。如果要进行运动动作的识别&am…

基于Detectron2和LSTM的人体动作识别

人体动作识别通过分析视频来预测或分类视频中人物的各种动作。它被广泛应用于监测、体育、健身、防御等各个领域。 假设你想创建一个在线教授瑜伽的应用程序。它应该提供一个预先录制的瑜伽视频列表供用户观看。用户在应用程序上观看视频后,可以上传自己的个人练习…

短视频动作识别技术简述

1总体介绍 短视频在当前多媒体环境中占据着巨大流量,有效理解视频内容对于数据分发发挥着重要作用,动作识别是视频内容理解的一个重要方向。当前图像识别技术已趋于成熟,但动作识别仍未达到理想效果,相比于图像识别,动…

动作识别01:Understanding action recognition in still images

文章目录 摘要一、引言二、相关工作三、实验3.1 定义交互功能 四、结果总结 摘要 静止图像中的动作识别与姿态估计、目标识别、图像检索、视频动作识别和视频帧标记等计算机视觉任务密切相关。这个问题的重点是用单一的框架识别一个人的动作或行为。与视频中的动作识别不同——…

mediapipe 实现动作识别

环境 windows 10 64bitmediapipe 0.8.10.1 前言 本文使用 google 家的 mediapipe 机器学习框架,结合 opencv 和 numpy,实现了一个实时识别 站立、坐下、走动、挥手 共4个动作的简单系统。 mediapipe 能做的事情非常多,感兴趣的童鞋可以去研究…

行为动作识别

一、跌倒检测数据集 随着计算机学科与人工智能的发展和应用,视频分析技术迅速兴起并得到了广泛关注。视频分析中的一个核心就是人体行为识别,行为识别的准确性和快速性将直接影响视频分析系统后续工作的结果。因此,如何提高视频中人体行为识别…

基于骨骼的动作识别:PoseConv3D

Revisiting Skeleton-based Action Recognition解读 摘要1. 简介2. Related Work2.1 基于3D-CNN的rgb视频动作识别2.2 基于GCN的骨骼动作识别2.3 基于CNN的骨骼动作识别 3. Framework3.1 Pose Extraction3.2 From 2D Poses to 3D Heatmap Volumes3.3 基于骨骼的动作识别3D-CNN3…

视频动作识别调研(Action Recognition)

视频动作识别调研(Action Recognition) 本文首发于微信公众号“ StrongerTang”,可打开微信搜一搜,或扫描文末二维码,关注查看更多文章。 原文链接:( https://mp.weixin.qq.com/s?__bizMzg3NDEzOTAzMw&…

动作识别概况

文章目录 一、动作识别二、动作识别的难点三、动作识别现在常用的方法四、行为识别的两个方向五、常用数据集六、常用框架介绍 一、动作识别 主要目标是判断一段视频中人的行为的类别,所以也可以叫做 Human Action Recognition。 二、动作识别的难点 1.类内和类之…

动作/行为识别调研

动作识别调研 1. 简介1.1 基本概念1.2 难点 2. 人体动作识别系统2.1 传统方法2.1.1 iDT框架 2.2 深度学习方法2.2.1 Two-Stream双流架构2.2.2 3D卷积架构2.2.3 CNNLSTM架构2.2.4 GCN架构 相关文献 1. 简介 动作识别(Action Recognition),就是从视频片段&#xff08…

2022广州大学计算机网络实验--使用网络协议分析器捕捉和分析协议数据包

广州大学学生实验报告 开课学院及实验室:计算机科学与工程实验室 2022年**月**日 学院 计算机科学与教育软件 年级、专业、班 ****** 姓名 **** 学号 *******39 实验课程名称 计算机网络实验 成绩 实验项目名称 使用网络协议分析器…

五个好用的网络协议分析工具(附下载地址)

Network Packet Analyzer,是一种网络分析程序,可以帮助网络管理员捕获、交互式浏览网络中传输的数据包和分析数据包信息等。这里给出了5个最好的网络数据包分析工具,具体如下: 1. Wireshark 相信大家都很熟悉,就不多…

网络协议安全分析

网络安全层次结构 物理层 在通信线路上保障不被搭线,不被偷听,尽可能检测出来。 数据链路层 a.点对点的链路上可以采用通信保密机进行加解密。 b.由第层硬件完成,对上层透明。 c.缺陷:无法适应多个路由器的网络,尤其I…

各网络协议分析

IP ip头 ![Image][IPstr] Wireshark ![Image][IPstr2] 名称值含义可选值占位IP版本0100IPV40110:IPV64bit头部长度010120bytes(5)可表示的最大值为1111(60bytes(15))4bit服务类型0x00默认转发(DF)8bit总长度52首部和数据之和最大为2^16-165535字节16bit标识0x239d它是一个…

网络协议分析(结合版)

初识协议 1.什么是协议? 数据从源地点传输到目的地点,网络上所有设备需要“讲”相同的“语言”。 描述网络通信中如何规范使用“语言” 的一组规则就是协议。 2.数据通信协议: 决定数据的格式和数据的传输的一组规则或者一组惯例 协议分层 ARP协议 …

计算机网络--使用网络协议分析器捕捉和分析协议数据包

实验目的 (1)、 熟悉ethereal的使用 (2)、 验证各种协议数据包格式 (3)、 学会捕捉并分析各种数据包。 实验环境 Window 10,ethereal,winpcap 实验内容 (1&#xff…

网络协议分析-TCP协议分析

目录 一 . TCP协议的应用二 . TCP包结构三 . 实例化 一 . TCP协议的应用 二 . TCP包结构 源端口号( 16 位):它(连同源主机 IP 地址)标识源主机的一个应用进程。 目的端口号( 16 位)&#xff1a…

计算机网络 实验三 使用网络协议分析器捕捉和分析协议数据包

学院 计算机学院 年级、专业、班 软件工程 姓名 涂山 学号 170****** 实验课程名称 计算机网络实验 成绩 实验项目名称 使用网络协议分析器捕捉和分析协议数据包 指导老师 (1)实验目的…

实例:使用网络分析仪进行电缆测试

本应用测试针对非标称50Ω的线缆,包括同轴、双绞线、差分高速数据线的测试,包括阻抗参数、S参数(插损、驻波、Smith图等等),也可以绘制眼图。 根据电缆的性能,如频率范围、长度、是否差分,设置…

协议数据分析

实验目的 了解协议分析仪的使用方法和基本特点。 增强对网络协议的理解。 实验要求 要求在进行协议数据分析后,能够将网络数据与具体的网络操作相互映证,如实的记录实验结果,完成实验 实验环境 1.一台运行Windows 2000的计…