当前位置: 首页 > article >正文

Move AI技术浅析(五):动作识别与分类

一、动作识别与分类模块概述

动作识别与分类 的主要任务是从提取到的运动特征中,识别出具体的动作类型,并对动作进行分类。该模块包括 动作识别 和 动作分类 。

  • 动作识别:从运动特征中识别出具体的动作类型,如走路、跑步、跳跃等。
  • 动作分类:对识别出的动作进行更细致的分类,如区分不同的舞蹈动作或不同的运动项目。

二、动作识别详解

2.1 动作识别步骤详解

2.1.1 特征提取

动作识别的第一步是从视频帧中提取出有意义的运动特征。特征提取包括关键点检测和特征表示两个步骤。

  • 关键点检测:检测视频帧中的关键点(如人体关节、手部关键点、面部关键点等)。

    • 方法:OpenPose, MediaPipe, AlphaPose 等。
    • 关键技术:卷积神经网络(CNN)、热图(Heatmap)、部分亲和场(Part Affinity Fields, PAFs)。
  • 特征表示:将检测到的关键点表示为适合后续处理的格式。

    • 方法:坐标表示、热图表示、特征向量表示。
    • 关键技术:坐标归一化、时间序列特征提取。
2.1.2 特征预处理

为了提高动作识别的准确性,需要对提取到的特征进行预处理。

  • 归一化处理:对关键点的坐标进行归一化处理,如相对于图像大小或人体尺寸进行归一化。

    • 公式

  • 时间序列数据生成:将关键点的坐标数据表示为时间序列数据。

    • 公式

  • 数据增强:对时间序列数据进行数据增强,如旋转、平移、缩放等,以增加数据的多样性。
2.1.3 特征选择

从预处理后的特征中选择最具判别力的特征,以提高分类精度。

  • 方法
    • 主成分分析(PCA):用于降维和特征选择。
    • 线性判别分析(LDA):用于特征选择。
    • 递归特征消除(RFE):用于特征选择。
2.1.4 分类模型训练

使用标注数据训练分类模型。

  • 模型选择

    • 支持向量机(SVM)
      • 优点:分类精度高。
      • 缺点:对大规模数据处理能力有限。
    • 随机森林(Random Forest)
      • 优点:对噪声不敏感。
      • 缺点:模型复杂度高。
    • 卷积神经网络(CNN)
      • 优点:可以自动提取特征,分类精度高。
      • 缺点:需要大量的计算资源和训练时间。
    • 递归神经网络(RNN)
      • 优点:可以处理时间序列数据。
      • 缺点:训练时间长,容易出现梯度消失问题。
    • 时空图卷积网络(ST-GCN)
      • 优点:可以有效地建模人体关节之间的关系和动作的时间动态特性。
      • 缺点:模型复杂度高。
  • 训练过程

    • 数据划分:将数据集划分为训练集、验证集和测试集。
    • 超参数调优:调整模型超参数,如学习率、批量大小、迭代次数等。
    • 模型评估:使用验证集评估模型性能,选择最佳模型。
2.1.5 分类预测

使用训练好的模型对新的数据进行分类预测。

  • 方法
    • 单标签分类:每个样本属于一个类别。
    • 多标签分类:每个样本属于多个类别。

2.2 动作识别模型详解

2.2.1 支持向量机(SVM)

SVM 是一种经典的分类模型,可以用于动作识别。

  • 过程模型

  • 公式

2.2.2 递归神经网络(RNN)

RNN 是一种专门用于处理序列数据的神经网络,可以用于动作识别。

  • 过程模型

  • 公式

2.2.3 卷积神经网络(CNN)+ RNN

结合 CNN 和 RNN 的方法可以同时提取空间和时间特征。

  • 过程模型

2.2.4 时空图卷积网络(ST-GCN)

ST-GCN 结合了 GCN 和 TCN,可以有效地建模人体关节之间的关系和动作的时间动态特性。

  • 过程模型

三、动作分类详解

3.1 动作分类步骤详解

3.1.1 动作识别

首先,需要使用动作识别方法识别出具体的动作类型。

3.1.2 动作分类方法

动作分类方法可以分为以下几类:

1.多类别分类

  • 方法:将动作识别为多个类别中的一个。
  • 模型:SVM, Random Forest, CNN, RNN, ST-GCN 等。

2.多标签分类

  • 方法:将动作识别为多个类别的组合。
  • 模型:多标签 SVM, 多标签 CNN 等。

3.层次分类

  • 方法:将动作按照层次结构进行分类。
  • 模型:层次 SVM, 层次 CNN 等。

3.2 动作分类模型详解

3.2.1 多类别分类模型

多类别分类模型可以使用以下方法:

  • 一对一(One-vs-One)

    • 方法:为每一对类别训练一个分类器。
    • 优点:实现简单。
    • 缺点:计算复杂度高。
  • 一对多(One-vs-All)

    • 方法:为每个类别训练一个分类器。
    • 优点:实现简单。
    • 缺点:可能存在类别不平衡问题。
3.2.2 多标签分类模型

多标签分类模型可以使用以下方法:

  • Binary Relevance

    • 方法:为每个标签训练一个二分类器。
    • 优点:实现简单。
    • 缺点:忽略了标签之间的相关性。
  • Classifier Chains

    • 方法:将标签链式连接起来,训练一系列分类器。
    • 优点:考虑了标签之间的相关性。
    • 缺点:模型复杂度高。
3.2.3 层次分类模型

层次分类模型可以使用以下方法:

  • 层次 SVM

    • 方法:构建层次结构,为每个层次训练一个 SVM 分类器。
    • 优点:可以处理层次结构。
    • 缺点:模型复杂度高。
  • 层次 CNN

    • 方法:构建层次结构的 CNN 模型。
    • 优点:可以自动提取层次特征。
    • 缺点:需要大量的计算资源和训练时间。

四、关键技术

4.1 动作识别关键技术

  • 支持向量机(SVM):用于分类。
  • 递归神经网络(RNN):用于处理时间序列数据。
  • 卷积神经网络(CNN):用于提取空间特征。
  • 时空图卷积网络(ST-GCN):用于提取时空特征。

4.2 动作分类关键技术

  • 多类别分类方法:一对一、一对多。
  • 多标签分类方法:Binary Relevance, Classifier Chains。
  • 层次分类方法:层次 SVM, 层次 CNN。

http://www.kler.cn/a/457963.html

相关文章:

  • sqoop将MySQL数据导入hive
  • raspberrypi-kernel
  • Spring Boot 嵌套事务详解及失效解决方案
  • vue3 + element-ui + vue router的使用教程 基于HBuilderX
  • 【C#】WPF设置Separator为垂直方向
  • Python编程技术
  • JMeter 如何并发执行 Python 脚本
  • 14. HDFS基准测试
  • C++软件设计模式之命令模式
  • DataWhale之工作流
  • 基于Golang的记账系统的服务端的设计与实现
  • sentinel-请求限流、线程隔离、本地回调、熔断
  • 算法题(18):删除有序数组中的重复项2
  • 数据的简单处理——pandas模块——选择数据
  • Linux系统离线部署MySQL详细教程(带每步骤图文教程)
  • 常见的排序算法过程和比较分析
  • NLP基础知识 - 向量化
  • 人工智能-Python网络编程-HTTP
  • MNER多模态实体识别论文介绍,有关大模型和chatgpt
  • 《机器学习》从入门到实战——线性回归
  • 使用seata实现分布式事务管理
  • 【畅购商城】购物车模块之修改购物车以及结算
  • 【总结整理】 神经网络与深度学习 邱锡鹏 课后习题答案 扩展阅读链接
  • L2TP_VPN和IPSec_VPN
  • Java 访问数据库的奇妙之旅
  • 【算法思想04】二分查找