视频动作识别(Action Recognition)综述

article/2025/10/16 6:07:00

概述

使用深度学习方法解决视频中行为识别/动作识别的问题解决思路有两大类,一是以抽取并分类时空特征为目的的视频识别方法;二是以提取骨架信息进行再训练为目的的姿态估计方法。本文主要梳理近5年来第一类论文中的算法,其中有三个分支:分别是two-stream(双流)方法,C3D方法以及CNN-LSTM方法。

1.任务特点

动作识别和图像分类其实很相似,图像分类是按照图像中的目标进行软分类,动作识别也类似。起初类似于UCF数据集,都是采用单标签,也就是一段视频只对应一个标签。现在CPVR举办的Activitynet(Kinetics数据集)每段视频中包含多个标签。相比于图像分类,视频多了一个时序维度,而这个问题恰恰是目前计算机领域令人头疼的问题。

1.1 任务难点

动作识别处理的是视频,所以相对于图像分类来说多了一个需要处理的时序维度动作识别还有一个痛点是视频段长度不一,而且开放环境下视频中存在多尺度、多目标、摄像机移动及不同视角等众多的问题。此外,动作的类内差异性和类间相似性也是难点之一。这些问题都是导致动作识别还未能实用化的重要原因。

2.数据集介绍

目前比较常用的数据库主要有3个,UCF101、HMDB51和Kinetics。

3.技术原理

在深度学习出现之前,表现最好的算法是iDT[1][2],之后的工作基本上都是在iDT方法上进行改进。深度学习出来后,陆续出来多种方式来尝试解决这个问题,具体包括:Two-Stream[3][4]、C3D(Convolution 3 Dimension)[6],还有RNN[7]方向等。

3.1 iDT方法

在深度学习之前,iDT(improved Dense Trajectories)方法是最经典的一种方法。虽然目前基于深度学习的方法已经超过iDT,但是iDT的思路依然值得学习,而且与iDT的结果做结合后总能获得一些提升。
iDT的思路主要是在《Dense Trajectories and Motion Boundary Descriptors for Action Recognition》和《Action Recognition with Improved Trajectories》两篇文章中体现。这两篇都是Wang H的文章,前者要更早一些,介绍了DT(Dense Trajectories)算法。后者则在前者的基础上进行了改进。DT算法的基本思路为利用光流场来获得视频序列中的一些轨迹,再沿着轨迹提取HOF,HOG,MBH,trajectory 4种特征,其中HOF基于灰度图计算,另外几个均基于dense optical flow计算。最后利用FV(Fisher Vector)方法对特征进行编码,再基于编码结果训练SVM分类器。而iDT改进的地方在于它利用前后两帧视频之间的光流以及SURF关键点进行匹配,从而消除、减弱相机运动带来的影响,改进后的光流图像被成为warp optical flow。

3.2 Two stream方法

Two-Stream方法是深度学习在动作识别方向的一大主流方向。最早是VGG团队在NIPS上提出来的。其实在这之前也有人尝试用深度学习来处理动作识别,例如李飞飞团队通过叠加视频多帧输入到网络中进行学习,但不幸的是这种方法比手动提取特征更加糟糕。当Two-Stream CNN出来后才意味着深度学习在动作识别中迈出了重大的一步。

3.2.1 Two stream CNN

Two-Stream CNN网络顾名思义分为两个部分,一部分处理RGB图像,一部分处理光流图像。最终联合训练,并分类。这篇文章主要有以下三个贡献点。
① 论文提出了two-stream结构的CNN网络,由空间(RGB)和时间(光流)两个维度的网络组成;
② 作者提出了利用网络训练多帧密度光流,以此作为输入能在有限训练数据的情况下取得不错的结果;
③ 采用多任务训练的方法将两个动作分类的数据集联合起来,增加训练数据,最终在两个数据集上都取得了更好的效果(作者提到,联合训练也可以去除过拟合的可能)。
因为视频可以分为空间和时间两个部分。空间部分,每一帧代表的是空间信息,比如目标、场景等等。而时间部分是指帧间的运动,包括摄像机的运动或者目标物体的运动信息。所以网络相应的由两个部分组成,分别处理时间和空间两个维度。每个网络都是由CNN和最后的softmax组成,最后的softmax的fusion主要考虑了两种方法:平均,在堆叠的softmax上训练一个SVM。网络的结构图如下所示。
在这里插入图片描述

图1 Two-stream architecture for video classification

光流栈(Optical flow Stacking):
光流栈,或者叫做光流的简单叠加。简单的来说就是计算每两帧之间的光流,然后简单的堆叠。
考虑对一小段视频进行编码,假设起始帧为T,连续L帧(不包含T帧)。计算两帧之间的光流,最终可以得到L张光流场,每张光流场是2通道的(因为每个像素点有x和y方向的移动)。
最后将这些光流场输入,得到相应的特征图。
该方法在UCF-101和HMDB-51上取得了与iDT系列最好的一致效果。在UCF-101上准确度为88.0%,在HMDB上准确度为59.4%。

3.2.2 TSN

TSN(Temporal Segments Networks)[5]是在two-Stream CNN基础上改进的网络。目前基于two-stream的方法基本上是由TSN作为骨干网络。
two-stream方法很大的一个弊端就是不能对长时间的视频进行建模,只能对连续的几帧视频提取temporal context。为了解决这个问题,TSN网络提出了一个很有用的方法,先将视频分成K个部分,然后从每个部分中随机的选出一个短的片段,然后对这个片段应用上述的two-stream方法,最后对于多个片段上提取到的特征做一个融合。下图是网络的结构图。
在这里插入图片描述

图2 Two stream Architecture

3.3 C3D方法

C3D(3-Dimensional Convolution)[6]是Two-Stream之外的另一大主流方法,但是目前来看C3D的方法得到的效果普遍比Two-Stream方法低好几个百分点。但是C3D仍然是目前研究的热点,因为该方法比Two-Stream方法快很多,而且基本上都是端到端的训练,网络结构更加简洁。该方法思想非常简单,图像是二维,所以使用二维的卷积核。视频是三维信息,那么可以使用三维的卷积核。所以C3D的意思是:用三维的卷积核处理视频。
C3D共有8次卷积操作,5次池化操作。其中卷积核的大小均为3x3x3,步长为1。池化核为2x2x2,但是为了不过早的缩减在时序上的长度,第一层的池化大小和步长为1x2x2。最后网络再经过两次全连接层和softmax层后得到最终的输出结果。网络的输入为3x16x112x112,其中3为RGB三通道,16为输入图像的帧数,112x112是图像的输入尺寸。
在这里插入图片描述

图3 C3D Architecture

3.4 RNN方法

因为视频除了空间维度外,最大的痛点是时间序列问题。而众所周知,RNN网络在NLP方向取得了傲人的成绩,非常适合处理序列。所以除了上述两大类方法以外,另外还有一大批的研究学者希望使用RNN网络思想来解决动作识别问题。
典型工作有中科院深圳先进院乔宇老师的工作:《RPAN:An End-to-End Recurrent Pose-Attention Network for Action Recognition in Videos》[7]。这篇文章是ICCV2017年的oral文章。但是与传统的Video-level category训练RNN不同,这篇文章还提出了Pose-attention的机制。
在这里插入图片描述

图4 RPAN Architecture

这篇文章主要有以下几个贡献点:
1)不同于之前的pose-related action recognition,这篇文章是端到端的RNN,而且是人体姿态的时空演变;
2)不同于独立的学习关节点特征(human-joint features),这篇文章引入的pose-attention机制通过不同语义相关的关节点(semantically-related human joints)分享attention参数,然后将这些通过human-part pooling层联合起来;
3)视频姿态估计,通过文章的方法可以给视频进行粗糙的姿态标记。

此外,RNN方向比较新的研究包括如下:
1)2018 Zhenxing ZHENG等人的《Multi-Level Recurrent Residual Networks for Action Recognition》[9],提出了一种新的多层次循环残差网络(MRRN),它结合了三种识别流。每个流由一个剩余网络(resnet)和一个循环模型组成。该模型通过使用两个可选的网格从静态帧中学习空间表示,并使用叠加简单循环单元(SRU)来建模时间动态,从而捕获时空信息。通过计算SoftMax分数的加权平均值来融合三个独立学习的低、中、高级别表示的不同级别流,以获得视频的互补表示。与以前以时间复杂度和空间复杂度为代价提高性能的模型不同,该模型通过使用快捷连接降低了复杂度,并以更高的效率进行端到端培训。与CNN-RNN框架基线相比,MRRN显示出显著的性能改进,并获得了与最新技术相当的性能,在HMDB-51数据集上达到51.3%,在UCF-101数据集上达到81.9%,尽管没有额外的数据。
在这里插入图片描述

图 5 CNN-RNN Framework

2)2019年Lin Sun等人的《Coupled Recurrent Network (CRN)》,提出了一种新的循环结构,称为耦合循环网络(CRN),用于处理多个输入源。在CRN中,RNN的并行流耦合在一起。CRN的关键设计是一个循环解释块(RIB),它支持以循环方式从多个信号中学习互易特征表示。与在每个时间步或最后一个时间步叠加训练损失的RNN不同,也提出了一种有效的CRN训练策略。实验证明了该方法的有效性。特别是,在人类动作识别和多人姿态估计的基准数据集上取得了新的进展。

4.总结

视频动作识别是视频理解的重要内容,也是计算机视觉领域的重要组成部分,在视频信息检索、日常生活安全、公共视频监控、人机交互、科学认知等领域都有广泛的应用前景和社会价值,是值得长期投入的课题。
但动作识别和检测的关系就类似于图像识别和图像检测,可以说识别是检测的一部分或者说是前期准备,因而目前的研究热点主要集中于难度更大的动作检测部分。

参考文献
[1] Wang H, Schmid C. Action recognition with improved trajectories[C]//Computer Vision (ICCV), 2013 IEEE International Conference on. IEEE, 2013: 3551-3558.
[2] Wang H, Kläser A, Schmid C, et al. Dense trajectories and motion boundary descriptors for action recognition[J]. International journal of computer vision, 2013, 103(1): 60-79.
[3] Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]//Advances in neural information processing systems. 2014: 568-576.
[4] Feichtenhofer C, Pinz A, Zisserman A P. Convolutional two-stream network fusion for video action recognition[J]. 2016.
[5] Wang L, Xiong Y, Wang Z, et al. Temporal segment networks: Towards good practices for deep action recognition[C]//European Conference on Computer Vision. Springer, Cham, 2016: 20-36.
[6] Tran D, Bourdev L, Fergus R, et al. Learning spatiotemporal features with 3d convolutional networks[C]//Computer Vision (ICCV), 2015 IEEE International Conference on. IEEE, 2015: 4489-4497.
[7] Du W, Wang Y, Qiao Y. Rpan: An end-to-end recurrent pose-attention network for action recognition in videos[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2017: 3725-3734.
[8] Karpathy A, Toderici G, Shetty S, et al. Large-scale video classification with convolutional neural networks[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2014: 1725-1732.


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

相关文章

使用OpenVINO实现人体动作识别

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 人…

使用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图等等),也可以绘制眼图。 根据电缆的性能,如频率范围、长度、是否差分,设置…