近期由于需要做一些关于人体行为识别及摔倒检测的研究,故进行调研如下,如有错误请指正,欢迎交流。

一、行为识别

在场景识别中,有很大一部分研究是针对于人体行为识别的,主要进行识别的也是一些家庭内的危险行为,如小孩、老人摔倒检测,外来人员闯入等,这些都可归为人体行为识别的范畴之内。
行为识别(action recognition),即根据视频图像完成对于人体动作的区分,这其中包括但不限于摔倒等危险动作。
在行为识别领域,主要包含以下几个子领域:

  1. Untrimmed Video Classification:一段未修剪很长的视频序列,其中在时序上包含多个类型的动作,且其中很多动作并不需要特别关注,所以这类视频需要进行全局分析进行分类。
  2. Trimmed Action Recognition:一段修剪的视频序列包含一类动作,序列时间长度不定,根据视频标签进行学习分类。
  3. Temporal Action Proposal:在一段较长的视频序列中找到含有动作的视频段,并将其提取分类,类似于图像目标检测任务中的候选框提取分类。
  4. Temporal Action Localization:与上述的类似,即在长视频序列中找到存在动作行为的视频段,然后对视频段进行分类研究。
  5. Dense-Captioning Events:对于一段未经修剪的长视频序列,里面可能包含很多动作,找到存在的动作视频行为段,并对其进行视频行为描述。

接下来,将对行为识别领域的相关技术研究现状进行简单的分析和总结。

1.1 行为识别相关数据集

关于行为识别领域内的数据库有很多,而较为常用的主要是UCF101、HMDB51、Kinetics、THUMOS 2014和ActivityNet。
前三个主要用于动作识别分类常用,主要包含大量不同类型的动作,其中UCF101含13320段视频及101类动作、HMDB51含7000段视频及51类动作、Kinetics含300k段视频及400类动作。
后两个主要用于行为检测,数据来源为youtube,也较为常用。

1.2 行为识别技术研究现状

考虑到对于人体行为识别的检测主要是实时的,需要对视频的每一帧进行检测分析,故对于视频序列的处理分析更符合于上述的Temporal Action Proposal、Temporal Action Localization以及Dense-Captioning Events相关领域,当然其他领域的相关研究也会在这里介绍。

1.2.1 DT算法

图1 DT算法框架图

如上图所示为算法的基本框架,包括密集采样特征点,特征点轨迹跟踪和基于轨迹的特征提取,以及还有后续的特征编码和分类。

图2 DT算法提取的相关特征

首先进行密集采样特征,将视频的每一帧分为不同尺度,并对不同尺度的图片进行网格划分采集特征点,并在时间序列上跟踪特征点变化,形成轨迹;之后对提取的轨迹进行操作,得到轨迹描述子和运动/结构描述子(HOG,HOF,MBH),并对其使用Bag of Features的方法进行特征编码,并利用SVM分类器分类。
可以看到,DT算法可对任意长度的视频序列进行特征提取,提取主要基于人体光流变化的相关特征。
来源:论文Dense Trajectories and Motion Boundary Descriptors for Action Recognition

1.2.2 iDT算法

iDT算法是基于上述DT算法进行改进得到的算法,其基本框架与DT算法相同,如图1所示。关于iDT算法的改进主要是考虑了相机运动估计,从光流中消除相机运动带来的影响,使提取特征更为准确,如图3所示;除此之外,特征采取归一化方式也有所改进,同时采用Fisher Vector方式编码,极大的提升了算法效率。
在这里插入图片描述

图3 human detector效果图

可以说,iDT算法是最经典的一种方法,尤其是在手工特征提取方面效果突出,而且算法的精度和效率也较为优秀。当然,基于深度学习的方法已经超过iDT,但通过一些ensemble后总能获得一些提升。
来源:论文Action Recognition with Improved Trajectories

1.2.3 Two-Stream CNN

TWO-STREAM CNN网络主要分为两个部分,一部分处理RGB图像信息,一部分处理光流图像,最后经过融合训练分类。首先,该网络结构可以充分考虑视频的时间和空间信息,空间部分包含目标及场景,时间部分包括帧与帧之间的相机运动或目标运动信息;其次,每个网络都由CNN和最后的softmax组成,并能在有限训练数据的情况下取得不错结果;最后,采用多任务训练的方法将数据集联合,并利用平均融合,在堆叠的softmax上训练SVM,并在公开数据集测试获得了很好的结果。
在这里插入图片描述

图4 Two-Stream网络结构图

尽管TWO-STREAM CNN网络可以提升目标检测准确率,但其最大的弊端就是不能对长时间的视频进行建模,只能对连续的几帧视频提取,小样本数据更能满足其要求。如果是针对时间较长的视频序列,通过逐帧访问的方式会造成运行效率变慢,不能满足时效性要求。

1.2.4 TSN

TSN(Temporal Segments Networks)是在TWO-STREAM CNN网络上改进的网络,而目前基于two-stream的方法都是由TSN作为骨干网络的。
在这里插入图片描述

图5 TSN网络结构

与two-stream相同,TSN也是由空间流卷积网络和时间流卷积网络构成,而其不同于前者的地方在于TSN从整个视频中稀疏采样一系列短片段,对每个片段给出其初步预测,并综合片段共识得到视频级预测结果。
拥有与two-stream的共性问题,TSN的精度较高,但算法运行时间较长,实时性方面可能会有所折损。

1.2.5 C3D

C3D(3-Dimensional Convolution)是除了two-stream外的一大主流方式,而其盛行的原因则是因为其结构简单,速度快,同时还具有不错的识别准确率。
在这里插入图片描述

图6 网络结构图

由于视频是三维信息,通过将传统的二维卷积核改为三维卷积核来处理视频,可以很好的汇聚视频的目标、场景和动作等信息,同时通过它所提出的特征是高效的、紧凑的、使用简单的,被广泛使用。

1.2.6 LSTM+Two-Stream

通过LSTM做two-stream网络的时间和空间信息融合,可以保持很不错的识别准确率,同时相比CNN可以极大的节省时间,提升效率。
在这里插入图片描述

图7 网络结构图

来源:论文Beyond Short Snippets: Deep Networks for Video Classification

1.2.7 R-C3D网络

R-C3D(Region 3-Dimensional Convolution)网络是基于Faster R-CNN和C3D网络的思想,可以对于任意长度的视频、任意长度行为进行端到端的检测,最主要的一点是速度快,而且模型通用性很好。
在这里插入图片描述

图8 网络结构图

来源:论文R-C3D-Resgion Convolutional 3D Network for Temporal Activity Detection

1.2.8 其他

当然,除了这些上述方法外,还有很多通过ensemble的方式将相关网络进行融合进行行为识别的方式以及在时间、空间上提取关键帧的方法。
来源:
其他相关研究方法

二、摔倒检测研究现状

关于目标检测的方法,现在主流的算法可分为两类。一类是基于Region Proposal的R-CNN系算法,包括R-CNN,Fast R-CNN,Faster R-CNN等,它们都是two-stage的,即需要先产生目标候选框,也就是目标位置,然后再对候选框做分类与回归。另一类是Yolo,SSD这类one-stage算法,其仅仅使用一个卷积神经网络CNN直接预测不同目标的类别与位置。相对来说,第一类方法的准确度更高,但是速度慢,第二给算法速度快,但是准确性要低一些。
针对于摔倒检测,现在有很多的研究都是基于可便携穿戴传感器检测实现的,而针对于计算机视觉的摔倒检测十分有限,接下来将介绍调研到的近些年关于通过视觉方法进行摔倒检测的研究。

2.1 相关数据集

2.1.1 UR Fall Detection Dataset(URFD)

数据集包含30条跌倒数据以及40条正常生活数据,数据集由两个摄像机所记录,一个平行安装于地板,一个安装于天花板,同时还有加速度计进行数据记录。数据集包含相机深度数据、RGB数据以及视频。
在这里插入图片描述

图9 URFD数据集

2.1.2 Fall Detection Dataset(FDD)

该数据集总共包含21499张图像,由5名参与者进行录像,其中包括三名女性以及两名男性,同时所有集合都增添了原始图像和水平翻转图像,以增加数据集。数据集由一台摄像机所记录,位于房顶位置,高约2.4米,且数据集包含深度图像数据以及RGB图像,同时每张图片都有相应的标签。
在这里插入图片描述

图10 FFD数据集

2.1.3 Multiple Cameras Fall Dataset(MCFD)

该数据集共包含24个场景,每个场景用8个摄像机记录,前22个场景包含跌倒和正常时间,后两个场景仅包含混杂事件,摄像机位于屋内房顶的八个不同方向,且视频集不包含标签文档。
在这里插入图片描述

图11 MCFD数据集

2.2 摔倒检测相关算法技术研究现状

2.2.1 YOLO目标检测算法系列

1. YOLO v1
YOLO v1的核心思想就是利用整张图片作为网络的输入,在输出层回归边界框的位置和边界框所属的类别,而其只需要一次CNN运算即可,相比R-CNN系列算法速度会更快,但精度会出现一定的折扣,且对于后面出现的SSD算法其表现较差。
在这里插入图片描述

图12 YOLO v1实例图

YOLO v1尽管在速度方面很有优势,但其方法模型依赖于物体识别标注数据,而且对于非常规的物体形状或比例检测效果并不理想;除此之外,对于相互靠近的物体和小的群体检测效果不好,并对同一类物体出现的新的不常见的长宽比和其他情况时泛化能力偏弱。

2. YOLO v2 & YOLO 9000
YOLO v2的检测速度要优于FasterR-CNN,SSD等,但其精度就表现不是很好。
YOLO 9000通过联合训练算法所训练出来的,可以实时检测超过9000种物体分类,具有很好的检测性能。

3. YOLO v3 & YOLO v3-tiny
YOLO v3在Pascal Tian X上处理608*608图像速度达到20FPS,速度有极大提升,但是其模型复杂度也提升了不少,可以通过改变模型结构的大小来权衡速度于精度。除此之外,它的背景误检率低,通用性强,对非自然图像物体的检测率也很高。当然,缺点方面则是其识别物体位置精准性差,召回率低。
YOLO v3-tiny在一些速度要求很好的项目中是首要选择,它是在YOLO v3的基础上去掉了一些特征层,只保留了2个独立预测分支,但是可能会出现精度低的问题。
当然,在摔倒检测中,也有学者通过基于YOLO v3的方法进行摔倒检测,并取得了不错的结果。
来源:论文Human Fall Detection Algorithm Based on YOLOv3

4. YOLO v4
YOLO v4在原有YOLO目标检测架构的基础上,采用了近些年CNN领域中最优秀的优化策略,从数据处理、主干网络、网络训练、激活函数、损失函数等各个方面都有着不同程度的优化,同时开发了一个高效而强大的模型,并且在实时目标检测算法中精度最高,实现了精度和速度的最佳平衡,可以很好的用于工业界。

2.2.2 SSD算法

SSD算法是Faster RCNN和YOLO的结合,采用了基于回归的模式(类似于YOLO),在一个网络中直接回归出物体的类别和位置,因此检测速度很快;同时也利用了基于区域的概念(类似于Faster RCNN),在检测的过程中,使用了许多候选区域作为ROI。
相比于YOLO,SSD对于小目标的检测更有优势,且模型的稳定性肯定比YOLO强,但缺点可能是模型训练较为困难并且较慢。

2.2.3 R-CNN目标检测算法系列

1. R-CNN
R-CNN首先选择训练好的CNN模型,然后通过对输入图像进行选择性搜索获得2000个候选区域框,并修改大小输入CNN模型得到特征图,再训练分类器对不同类别进行区分,并使用回归器修正每个候选框位置,具体步骤如下图所示。
在这里插入图片描述

图13 R-CNN结构图

R-CNN尽管可以很好的完成目标检测分类任务,精度很高,但训练过程由于巨大的卷积网络以及每个候选区域都输入CNN特征提取浪费了许多时间,从而导致速度慢。除此之外,由于提取出的特征需要储存,可能占用空间大。

2. Fast R-CNN
Fast R-CNN主要针对每一个候选区域进行CNN操作进行了改进,把整张图片送入CNN网络进行特征提取,不需要像R-CNN对每个候选区域进行输入CNN,提升了效率;同时,训练速度相应提升,不需要存储提取的特征,减少了储存空间占用;除此之外,提升了网络的利用效率,用于分类和回归调整的功能都用CNN网络实现,不需要额外的分类器和回归器。
尽管如此,Fast R-CNN仍然有缺陷,对于生成候选区域仍然不够快速,再速度方面还需要提升。

3. Faster R-CNN
Faster R-CNN是在R-CNN和Fast R-CNN的基础上提出来的,主要亮点就是将获取特征图,候选区域选取,回归和分类等操作全部融合在一个深层网络当中,效率和精度较前两者提升很多,但存在的问题是生成候选区需要花费大量时间,并且也会影响后续的检测性能。

2.2.4 基于MHI的检测算法

图14 算法整体结构

该方法首先基于R-CNN进行人体检测,之后并对其进行追踪,并以相同的帧率生成MHI。之后,将所有边界框映射到由相同RGB图像序列生成的相应MHI,并在边界框中提取每个子MHI的HOG特征,最后使用SVM进行分类。
该方法可以达到很好的精度,但唯一的缺憾是在时间复杂度方面还有些欠缺,但也可以达到实时检测,同时具有很好的鲁棒性。
来源:论文(1)The recognition of human movement using temporal templates 论文(2)FALL DETECTION BASED ON MOTION HISTORY IMAGE AND HISTOGRAM OF ORIENTED GRADIENT FEATURE

2.2.5 基于手工特征的检测方法

基于手工特征的检测方法主要分为三类:帧间差分法、光流法以及背景差分法,其中背景差分法又包含混合高斯建模方法、codebook方法以及ViBe算法,其中尤其是ViBe算法的实时性和准确率最高,被广泛用于运动的目标检测,包括摔倒等行为。
ViBe等手工特征提取算法主要用于从RGB图像视频中比较前后帧从而判断前景和后景,由此划分出运动的人体,之后基于上述方法进行滤波操作以及有关HOG、LBH等特征提取,并融合有关CNN提取特征的方式,进而输入到分类器进行分类检测。
该方法较为简单,但相比于R-CNN系得到边界框的方法效果较差,同时可能出现识别精度低的问题,但也可以作为一个备选方案。
来源:论文Automatic fall detection of human in video using combination of features

2.2.6 基于OpenPose的检测方法

图15 基于OpenPose的方法

该方法通过OpenPose进行人体动作关键点的提取,之后利用CNN及SVM来判断是否摔倒。该方案的特色在于可通过OpenPose的方法取得人体姿态的关节点位置,从这一方面考虑进行后续识别,具有很好的鲁棒性,而后续的工作也可以结合采用CNN等深度学习的方式来进行动作的高识别率检测
来源:论文Video-based Fall Detection for Seniors with Human Pose Estimation

2.2.7 基于LSTM的检测方法

图16 基于LSTM检测结构图

基于LSTM的方法主要是从时间序列上处理不同帧之间的变化情况,可专注于人体运动从而忽略静态场景图象,因此就不需要背景差分建模来处理前后景,解决了每次需对场景配置进行校准的工作。而基于特征提取方面,也可以采用卷积网络等表现好的深度网络,提高识别准确率。
该方法的创新之处在于利用LSTM来进行序列间模型的学习,实时性和准确度都可以得到很好的保证。
来源:论文RGB-D Fall Detection via Deep Residual Convolutional LSTM Networks

注:上述两部分主要针对人体行为识别以及摔倒检测进行了相关介绍,仅供参考。
人体行为识别及摔倒检测相关研究现状-------本文仅为学习笔记,不做任何商业用途-------前言    近期由于需要做一些关于人体行为识别及摔倒检测的研究,故进行调研如下,如有错误请指正,欢迎交流。一、行为识别    在场景识别中,有很大一部分研究是针对于人体行为识别的,主要进行识别的也是一些家庭内的危险行为,如小孩、老人摔倒检测,外来人员闯入等,这些都可归为人体行为识别的范畴之内。    行为识别(action recognition),即根据视频图像完成对于人体动作的区分,这其中包括但不
YOLO系列目标 检测 数据集大全目标 检测 数据集无人机 检测 数据集飞鸟 检测 数据集人脸和口罩 检测 数据集安全帽 检测 数据集火焰 检测 数据集火焰和烟雾 检测 数据集行人 检测 数据集行人车辆 检测 数据集车辆 检测 数据集待更新…… 目标 检测 数据集 无人机 检测 数据集 数据集下载:
在这篇文章中,我们将介绍一些方法来制作用于 人体 行为识别 的视频分类器。在我们讨论视频分类之前,让我们先了解一下什么是 人体 行为识别 。简单地说,对某人正在执行的活动/动作进行分类或预测的任务称为活动识别。我们可能会有一个问题:这与普通的分类任务有什么不同?这里的问题是,。看看这个人做的这个后空翻动作,我们只有看完整的视频才能判断这是一个后空翻。 如果我们提供的模型只是来自视频片段的随机快照(如下图),那么它可能会错误地预测动作。 如果一个模型只看到上面的图像,那么它看起来有点像这个人正在下降,所以它预测会下降。
3D Photography Dataset Multiview stereo data sets: a set of images Multi-view Visual Geometry group’s data set Dinosaur, Model House, Corridor, Aerial views, Valbonne Church, Raglan Castle, K
参考文献:https://arxiv.org/abs/2004.07485v1 代码实现:https://github.com/MVIG-SJTU/AlphAction Asynchronous Interaction Aggregation for Action Detection 理解交互是视频动作 检测 的重要组成部分。我们提出了异步交互聚合网络(AIA),它利用不同的交互促进动作 检测 。其中有两个关键设计:一是交互聚合结构(IA),采用统一的范式对多种交互类型进行建模和集成;另一种是异步内存更新算法
视频行为数据集 传统的通用的数据集: 1、KTH数据集:2004年发布,包含 6 类 人体 行为:行走、慢跑、奔跑、拳击、挥手和鼓掌,每类行为由 25 个人在四种不同的场景(室外、伴有尺度变化的室外、伴有衣着变化的 室外、室内)执行多次,相机固定。该数据库总共有 2391个视频样本。视频帧率为 25 fps,分 辨率为 160×120,平均长度为 4 秒。 2、The Weizmann Datase...
qq_45360276: 解决了,把源代码from openpose import pyopenpose as op改成:import pyopenpose as op,然后把路径改为 sys.path.append('{}/python/openpose'.format(self.arg.openpose)) sys.path.append('{}/build/python/openpose'.format(self.arg.openpose)),后面记得把pose_deploy_linevec.prototxt放到models/pose/coco就可以了 ST-GCN源码运行完整版(含OpenPose编译安装)及常见问题 qq_45360276: 请问在ubuntu系统里怎么改demo_offline的内容啊 ST-GCN源码运行完整版(含OpenPose编译安装)及常见问题 GRrrrr_: 请问这个问题解决了吗 ST-GCN源码运行完整版(含OpenPose编译安装)及常见问题 weixin_47018798: 所以怎么改