0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用OpenVINO工具套件以同步的方式进行实时人体动作识别

英特尔物联网 来源:英特尔物联网 作者:Paula Ramos博士 2022-08-20 15:29 次阅读

人体动作识别背景简介

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

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

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

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

图1.1珍贵的家庭回忆

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

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

现在,让我们开始吧!

OpenVINO Notebook简介

OpenVINO Notebook 是开源免费的一系列 Jupyter Notebook 格式的 OpenVINO 范例程序。

本文对应的 OpenVINO Notebook 范例是Live Action Recognition with OpenVINO,如图1-2所示。

6bec57c8-1ee3-11ed-ba43-dac502259ad0.png

图1-2Live Action Recognition with OpenVINO

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

人的动作(例如,写作、喝酒、大笑)

人与人的动作(例如,拥抱、握手、玩耍)扑克)

人与物体的动作(骑摩托车、洗衣服、吹气球)

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

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

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

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

动作识别模型简介

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

6cdbce98-1ee3-11ed-ba43-dac502259ad0.png

图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 数据集的人体动作。由于没有过量的标注信息,模型性能是最好的,它可以帮助我们理解处理工作流程

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

准备OpenVINO Notebooks 运行环境。

准备您的视频源、网络摄像头或视频文件以及您想要检测的常见活动。考虑通过检查数据集标签来检测动作名称。

在您的计算机上打开一个 Jupyter Notebook。该Notebook可以在Windows、MacOS 和 Ubuntu 下通过不同的互联网浏览器运行。

实现实时动作识别

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

1.4.1

下载模型

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

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

6cfaf21e-1ee3-11ed-ba43-dac502259ad0.png

图1.4下载 action-recognition-0001 模型

1.4.2

初始化模型

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

6d14a8c6-1ee3-11ed-ba43-dac502259ad0.png

图1.5初始化模型

1.4.3

辅助函数

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

1.4.4

AI 函数

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

第一步:

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

01

将图像放缩到编码器中输入尺寸,即[224,224]

02

将放缩后的图像进行中心裁剪,并使其长宽相等

03

将颜色通道从 HWC 变为 CHW

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

6d3673d4-1ee3-11ed-ba43-dac502259ad0.png

图1.6图像预处理

第二步:

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

6d5215a8-1ee3-11ed-ba43-dac502259ad0.png

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

第三步:

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

6d669046-1ee3-11ed-ba43-dac502259ad0.png

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

1.4.5

完整执行整个程序

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

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

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)

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

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    45

    文章

    3679

    浏览量

    135396
  • 硬件加速器
    +关注

    关注

    0

    文章

    42

    浏览量

    12852
  • 人体动作识别

    关注

    0

    文章

    5

    浏览量

    2304

原文标题:使用 OpenVINO™ 实现人体动作识别 | 开发者实战

文章出处:【微信号:英特尔物联网,微信公众号:英特尔物联网】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C#中使用OpenVINO™:轻松集成AI模型!

    与分析三大领域中,如何快速将AI模型集成到应用程序中,实现AI赋能和应用增值?最容易的方式是:在C#中,使用OpenVINO工具套件集成AI模型。 一,什么是
    的头像 发表于 02-07 14:05 219次阅读
    C#中使用<b class='flag-5'>OpenVINO</b>™:轻松集成AI模型!

    使用OpenVINO™条件编译功能,压缩Windows应用体积

      作者: 杨亦诚 英特尔 AI 软件工程师 在 OpenVINO 编译过程中,我们可以根据应用对于硬件平台的需求,关闭或开指定推理后端的编译,达到简化 OpenVINO 运行库的目的,例如
    的头像 发表于 01-13 10:26 159次阅读
    使用<b class='flag-5'>OpenVINO</b>™条件编译功能,压缩Windows应用体积

    基于EasyGo Vs工具包和Nl veristand软件进行的永磁同步电机实时仿真

    、航空航天和能源电力等实时测试和验证至关重要的行业。 本篇内容主要介绍基于EasyGo Vs 工具包和Nl veristand软件进行的永磁同步电机(PMSM)
    的头像 发表于 11-27 11:28 446次阅读
    基于EasyGo Vs<b class='flag-5'>工具</b>包和Nl veristand软件<b class='flag-5'>进行</b>的永磁<b class='flag-5'>同步</b>电机<b class='flag-5'>实时</b>仿真

    常见人体姿态评估显示方式的两种方式

    人体姿态评估中有两种常见的显示方式,分别是火柴人效果与BodyPix效果。其中火柴人效果本质就是基于关键点的深度学习模型推理以后的显示效果;Bodypix本质就就是语义分割模型
    的头像 发表于 11-11 11:21 296次阅读
    常见<b class='flag-5'>人体</b>姿态评估显示<b class='flag-5'>方式</b>的两种<b class='flag-5'>方式</b>

    使用OpenVINO C++在哪吒开发板上推理Transformer模型

    OpenVINO 是一个开源工具套件,用于对深度学习模型进行优化并在云端、边缘进行部署。它能在诸如生成式人工智能、视频、音频以及语言等各类应
    的头像 发表于 10-12 09:55 463次阅读
    使用<b class='flag-5'>OpenVINO</b> C++在哪吒开发板上推理Transformer模型

    使用OpenVINO C# API部署YOLO-World实现实时开放词汇对象检测

    的快速准确识别,并通过AR技术将虚拟元素与真实场景相结合,为用户带来沉浸式的交互体验。在本文中,我们将结合OpenVINO C# API使用最新发布的OpenVINO 2024.0部署 YOLO-World实现
    的头像 发表于 08-30 16:27 922次阅读
    使用<b class='flag-5'>OpenVINO</b> C# API部署YOLO-World实现<b class='flag-5'>实时</b>开放词汇对象检测

    OpenVINO2024 C++推理使用技巧

    很多人都使用OpenVINO新版的C++ 或者Python的SDK,都觉得非常好用,OpenVINO2022之后的版本C++ SDK做了大量的优化与整理,已经是非常贴近开发的使用习惯与推理方式。与OpenCV的Mat对象对接
    的头像 发表于 07-26 09:20 1083次阅读

    简单两步使用OpenVINO™搞定Qwen2的量化与部署任务

    英特尔 OpenVINO工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模
    的头像 发表于 04-26 09:39 1900次阅读
    简单两步使用<b class='flag-5'>OpenVINO</b>™搞定Qwen2的量化与部署任务

    毫米波雷达模块在高精度人体姿态识别的应用

    的优势。本文将探讨毫米波雷达模块在高精度人体姿态识别中的应用场景、原理和技术挑战,旨在为推动人体姿态识别技术的发展提供技术支持和理论指导。 人体
    的头像 发表于 04-24 15:20 836次阅读

    英码科技EA500I基于昇腾Mind SDK实现实时人体关键点检测

    在教育、体育、安防、交通、医疗等领域中,实时人体关键点检测应用发挥着至关重要的作用,比如在体育训练时,实时人体关键点检测可以精确、实时地捕捉运动员的动作,从而
    的头像 发表于 04-21 17:44 1089次阅读
    英码科技EA500I基于昇腾Mind SDK实现<b class='flag-5'>实时人体</b>关键点检测

    英码科技EA500I基于昇腾Mind SDK实现实时人体关键点检测

    在教育、体育、安防、交通、医疗等领域中,实时人体关键点检测应用发挥着至关重要的作用,比如在体育训练时,实时人体关键点检测可以精确、实时地捕捉运动员的动作,从而
    的头像 发表于 04-20 08:25 635次阅读
    英码科技EA500I基于昇腾Mind SDK实现<b class='flag-5'>实时人体</b>关键点检测

    简单三步使用OpenVINO™搞定ChatGLM3的本地部署

    英特尔 OpenVINO工具套件是一款开源 AI 推理优化部署的工具套件,可帮助开发人员和企业加速生成式人工智能 (AIGC)、大语言模
    的头像 发表于 04-03 18:18 2243次阅读
    简单三步使用<b class='flag-5'>OpenVINO</b>™搞定ChatGLM3的本地部署

    【转载】英特尔开发套件“哪吒”快速部署YoloV8 on Java | 开发者实战

    OpenVINO 工具套件基于OneAPI开发,可以加快高性能计算机视觉和深度学习应用开发速度的工具套件,适用于从边缘到云的各种英特尔计算平
    的头像 发表于 03-23 08:05 700次阅读
    【转载】英特尔开发<b class='flag-5'>套件</b>“哪吒”快速部署YoloV8 on Java | 开发者实战

    基于英特尔哪吒开发者套件平台来快速部署OpenVINO Java实战

    OpenVINO 工具套件基于OneAPI开发,可以加快高性能计算机视觉和深度学习应用开发速度的工具套件,适用于从边缘到云的各种英特尔计算平
    的头像 发表于 03-21 18:24 1624次阅读
    基于英特尔哪吒开发者<b class='flag-5'>套件</b>平台来快速部署<b class='flag-5'>OpenVINO</b> Java实战

    OpenVINO™ Java API应用RT-DETR做目标检测器实战

    本文将从零开始详细介绍环境搭建的完整步骤,我们基于英特尔开发套件AIxBoard为硬件基础实现了Java在Ubuntu 22.04系统上成功使用OpenVINO™ Java API,并且成功运行了RT-DETR实现实时端到端目标
    的头像 发表于 03-18 15:04 904次阅读
    <b class='flag-5'>OpenVINO</b>™ Java API应用RT-DETR做目标检测器实战