人类动作识别

Human Action Recognition

人类动作识别(Human Action Recognition)的主要目的是从图片或者适配中识别并理解人类的动作和活动。一般来说,人类的动作可以通过多种方式识别,例如外观、深度、光流和身体骨骼等。

动作识别与姿态识别(Pose Recognition)是两个相关但是不同的任务。动作识别的主要目的是在给定的视频序列中识别出目标对象是否在行走、奔跑或者跳动。也就是说动作识别需要考虑人类的身体随时间变化而运动的情况。而姿态识别的主要目的是识别出人类身体的形态(configuration)或者姿态(pose)。主要涉及检测各种身体关节的位置,如肘部、膝盖和臀部等,并估计他们之间的角度。这在动作捕捉、游戏和虚拟现实中都很有用。

人类动作识别在监控(Surveillance)、人机交互(Human-Machine Interaction)、运动分析(Sports analysis)以及健康医疗领域(Healthcare)都有重要的应用,也是真人驱动的3D数字人的基础技术。

人类动作识别的深度学习技术主要步骤如下:

  1. 数据获取和预处理:用传感器或者摄像头获取需要识别人类动作的图片或者视频,然后需要通过resize、剪裁、正规化等预处理。某些时候还需要去除背景和不相关信息的步骤。
  2. 特征抽取:目前流行的方式是基于大规模数据(如ImageNet)上训练的CNN预训练模型抽取原始图片的特征,如edge、corners和textures等。
  3. 特征抽取:从预处理结果数据中抽取特征,包括空间、时间等,技术包括傅里叶变换、深度学习等
  4. 序列建模:与一般的识别和分类问题不同的是,人类动作识别需要有序列建模过程,即如用RNN或者LSTM网络捕捉人类动作随时间变化的特征。这对准确识别人类动作来说十分重要。因为人类的同一个动作一般来说是个连续过程。

分类:最终的目的就是基于序列建模结果的输出进行动作分类,一般来说softmax分类器就可以。

具体的与人类动作识别相关的算法举例:

  • 3D-CNNs
  • Two-Stream CNN
  • RNN
  • Transformer Network

人类动作识别