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实现人体动作识别相关推荐

  1. 简单的机器学习程序_人体动作识别小程序【机器学习 人工智能】

    人体动作识别(Human activity recognition)是健康领域一个热点问题,它通过加速度计,陀螺仪等传感器记录人体运动数据,对人体动作进行识别.最近用微信小程序做了一个动作识别的项目, ...

  2. 基于kinect的人体动作识别系统

    基于kinect的人体动作识别系统(算法和代码都放出) 首先声明一下,本系统所使用的开发环境版本是计算机系统Windows 10.Visual Studio 2013.Opencv3.0和Kinect ...

  3. 基于3D关节点的人体动作识别综述(转)

    原文:2016,Pattern Recognition: 3D skeleton-based human action classification: A survey 摘要 近年来,基于深度序列的人 ...

  4. 人体动作识别与评价——区别、联系及研究进展

    摘要 人体动作识别与动作评价是近年来的热点研究问题.两者在数据类型.数据处理.特征描述等方面有许多相通之处.近年来,随着应用需求的显著增长,出现了大量有关动作识别与评价的研究工作,但两者间的区别与联系 ...

  5. 基于kinect的人体动作识别系统(算法和代码都放出)

    基于kinect的人体动作识别系统(算法和代码都放出) 首先声明一下,本系统所使用的开发环境版本是计算机系统Windows 10.Visual Studio 2013.Opencv3.0和Kinect ...

  6. java kinect 人体识别_基于kinect的人体动作识别系统

    [实例简介] 基于kinect v2的人体动作识别,配套博客(http://blog.csdn.net/baolinq/article/),基于mfc,可以识别左移右移.上蹦下跳等,也可以自己自定义其 ...

  7. 阿旭机器学习实战【2】KNN算法进行人体动作识别

    本系列文章为机器学习实战内容,旨在通过实战的方式学习各种机器学习算法的知识,更易于掌握和学习,更过干货内容持续更新- 目录 人类动作识别问题描述 导入相关数据并查看数据信息 构建KNN算法模型并查看准 ...

  8. 空间注意力机制sam_一种基于注意力机制的神经网络的人体动作识别方法与流程...

    本发明属于计算机视觉领域,具体来说是一种基于注意力机制的神经网络的人体动作识别的方法. 背景技术: 人体动作识别,具有着非常广阔的应用前景,如人机交互,视频监控.视频理解等方面.按目前的主流方法,可主 ...

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

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

最新文章

  1. python下载大文件-使用请求在python中下载大文件
  2. SQL语句删除重复记录
  3. python编程少儿游戏编程_少儿编程课堂|python – 用游戏学编程
  4. 阿里云容器网络文件系统 CNFS 1.0 发布,体验云原生时代的容器共享存储
  5. 给mysql数据添加一个只拥有一张表的权限
  6. SAP Commerce Cloud Accelerator theme css 加载的问题和 multi step checkout
  7. 数据库水平切分的实现原理解析——分库,分表,主从,集群,负载均衡器(转)...
  8. Spring Cloud Zuul –编写过滤器
  9. 【codevs1282】约瑟夫问题,卡数据ing?
  10. 通达信副图指标公式:买卖黄金线(抄底用)
  11. or导致索引失效的解决方法_电容引脚断裂失效的机理和解决方法
  12. python数据分析学什么意思_什么是python数据分析
  13. Video Copilot VCReflect for Mac/win (AE倒影插件) 支持2022多帧渲染​
  14. linux退出热键_LINUX常用快捷键
  15. 新唐N76E003与ST公司STM8S003F3芯片对比 史上最全的没有之一
  16. Window10 Excel复制粘贴卡死
  17. grasps元素_无摩擦力是什么意思
  18. 晶振(crystal)与晶振(oscillator)的区别
  19. RK3568平台开发系列讲解(安卓篇)WakeLock分析
  20. python递归,匿名函数

热门文章

  1. 修复被劫持、篡改的IE主页
  2. linux性能优化大师(一)
  3. 武侠乂怎么修改服务器,武侠乂操作技巧 武侠乂手游怎么操作
  4. ToDesk 1.0.1019a中文版 (mac必备远程控制软件)
  5. 投资房产先看年租金回报率 低于3%不要买房
  6. ScriptManager的简单用法-ASP.Net 中ASP:ScriptManager控件的使用
  7. VMware 安装CentOS以及安装多个linux系统
  8. 10大游戏显存占用率测试
  9. 人力资源机器下载方法
  10. 淘宝直播丨900W粉店铺夺行业周榜Top1,商家自播增长要素全解析