姿态估计与行为识别(行为检测、行为分类)的区别[通俗易懂]

姿态估计与行为识别(行为检测、行为分类)的区别[通俗易懂]姿态估计和行为识别作为计算机视觉的两个领域,对于新人来说,较为容易弄混姿态估计和行为识别两个概念。 姿态估计(PoseEstimation)是指检测图像和视频中的人物形象的计算机视觉技术,可以确定某人的某个身体部位出现在图像中的位置,也就是在图像和视频中对人体关节的定位问题,也可以理解为在所有关节姿势的空间中搜索特定姿势。简言之,姿态估计的任务就是重建人的关节和肢干,其难点主要在于…

大家好,又见面了,我是你们的朋友全栈君。

姿态估计和行为识别作为计算机视觉的两个领域,对于新人来说,较为容易弄混姿态估计和行为识别两个概念。

 

姿态估计(Pose Estimation)是指检测图像和视频中的人物形象的计算机视觉技术,可以确定某人的某个身体部位出现在图像中的位置,也就是在图像和视频中对人体关节的定位问题,也可以理解为在所有关节姿势的空间中搜索特定姿势。简言之,姿态估计的任务就是重建人的关节和肢干,其难点主要在于降低模型分析算法的复杂程度,并能够适应各种多变的情况、环境(光照、遮挡等等)。姿态估计的输出,是一个高维的姿态向量,而不是某个类别的类标,因此这一类方法需要学习的是一个从高维观测向量到高维姿态向量的映射。

姿态估计可分为四个子方向:

单人姿态估计(Single-Person Skeleton Estimation)

单人姿态估计,首先识别出行人,然后再行人区域位置内找出需要的关键点。常见的数据集有MPII、LSP、FLIC、LIP,每种数据集都有不同的精确度指标。其中MPII是当前单人姿态估计中最常见的benchmark,使用的是PCKh指标(可以认为预测的关键点与GT标注的关键点经过head size normalize后的距离),目前有的算法已经可以在上面达到93.9%的准确率。

多人姿态估计(Multi-Person Pose Estimation)

单人姿态估计算法往往被用来做多人姿态估计,一般有两种方式。Top-down先找到图片中所有行人,然后对每个行人做姿态估计,寻找每个人的关键点;bottom-up先寻找图片中所有的parts(关键点,比如头部、手、膝盖等),然后把这些parts组装成一个个行人。

测试集主要有COCO、CrowdPose等。

人体姿态跟踪(Video Pose Tracking)

如果把姿态估计往视频中扩展,就有了人体姿态跟踪的任务。主要是针对视频场景中的每一个行人,进行人体以及每个关键点的跟踪。这是一个综合且难度较大的工作,相比于行人跟踪来说,人体关键点在视频中的temporal motion会比较大,比如一个行走的行人,手跟脚会不停的摆动,所以跟踪难度会比跟踪人体框大。

主要的数据集是PoseTrack

3D人体姿态估计(3D skeleton Estimation)

将人体姿态往3D方向进行扩展,则是输入RGB图像,输出3D的人体关键点。

经典数据集Human3.6M

除了输出3D的关键点之外,有一些工作开始研究3D的shape,比如数据集DensePose,而且从长线来讲,这个是非常有价值的研究方向。

 

2D姿势估计——从RGB图像估计每个关节的2D姿势(x,y)坐标。

3D姿势估计——从RGB图像估计3D姿势(x,y,z)坐标。

行为识别可以借助姿态估计的相关研究成果来实现,比如HDM05这类姿态库就提供了每一帧视频中人的骨架信息,可以基于骨架信息判断运动类型。

 

参考文献

人体姿态估计文献综述,简单介绍了大约十种方法

https://blog.csdn.net/BockSong/article/details/81037059

深度学习人体姿态估计算法综述

https://www.infoq.cn/article/6Btg0-1crfmb7svRGa6H

2019深度学习人体姿态估计指南(翻译的文章)

https://blog.csdn.net/u010636181/article/details/90036365

https://nanonets.com/blog/human-pose-estimation-2d-guide/

 

行为识别(Action Detection/Regnition),最终的结果是得到图像或视频段中目标的行为类别。视频中人体行为识别主要分为两个子方向。

一个是给定一个视频片段进行分类(行为分类 Action Recognition),一般使用的数据库都先将动作分割好了,一个视频片段中包含一段明确的动作,时间较短(几秒钟)且有唯一确定的标签。所以也可以看作是input为视频,输出为label。

一个是不仅要知道一个动作在视频中是否发生,还需要知道动作发生在视频的哪段时间(包括开始和结束时间)(行为检测 Temporal Action Localization)。特点是需要处理较长的、未分割的视频,且视频中通常有较多干扰,目标动作一般只占视频的一小部分。也可以说是对视频进行指定行为的检测

Action Recegniton和Temporal Action Localization之间的关系,同image classification和object detection之间的关系比较像。基于image classification问题,发展出了许多强大的模型,比如ResNet、VGGNet等,这些模型在object detection的方法中起到了很大的作用。同样的,action recognition的相关模型如two-stream、C3D、iDT等也被广泛的应用在action detection中。

 

 

参考文献

行为识别的综述博客:

https://blog.csdn.net/neu_chenguangq/article/details/79504214

给出了行为识别的一些概述及资源合集(文章、代码)

https://blog.csdn.net/Gavinmiaoc/article/details/81179630

时序动作检测综述

http://www.pianshen.com/article/5760138121/

 

常用的行为分类的数据集:

UCF101:来源为YouTube视频,共计101类动作,13320段视频。共有5个大类的动作:1)人-物交互;2)肢体运动;3)人-人交互;4)弹奏乐器;5)运动。

HMDB51:来源为YouTube视频,共计51类动作,约7000段视频。

骨架数据库,比如MSR Action 3D,HDM05,SBU Kinect Interaction Dataset等。这些数据库已经提取了每帧视频中人的骨架信息,基于骨架信息判断运动类型。

 

常用的行为检测的数据集:

THUMOS2014:在行为检测任务中只有20类动作的未分割视频是有序行为片段标注的

MEXaction2:骑马和斗牛

ActivityNet:目前最大的数据集,同时包含分类和检测两个任务,包含200个动作类别

 

行为识别的难点:

(1)类内和类间差异, 同样一个动作,不同人的表现可能有极大的差异。

(2)环境差异, 遮挡、多视角、光照、低分辨率、动态背景.

(3)时间变化, 人在执行动作时的速度变化很大,很难确定动作的起始点,从而在对视频提取特征表示动作时影响最大。

(4)缺乏标注良好的大的数据集

 

行为识别领域内的重要方法

传统方法——iDT

利用光流场来获取视频序列中的一些轨迹,再沿着轨迹提取HOF、HOG、MBH、trajectory等特征。HOF基于灰度图计算,另外几个基于optical(密集光流)计算。最后对其进行特征编码,再基于编码结果训练SVM分类器。iDT利用前后两帧之间的光流和surf关键点进行匹配,从而消除或减弱相机运动带来的影响。

优点:稳定性最高、可靠性高

缺点:速度慢

 

深度学习——Two-Stream(双流CNN

对视频序列中每两帧计算密集光流,得到密集光流的序列(即temporal信息)。然后对于视频图像(spatial)和密集光流(temporal)分别训练CNN模型,两个分支的网络分别对动作的类别进行判断,最后直接对两个网格的class score进行fusion(包括直接平均和SVM

两种方法),得到最终的分类结果。

优点:精度高,在UCF-101上达到0.96的准确率

缺点:速度慢

 

深度学习——C3D(3D卷积)

通过3D卷积操作核去提取视频数据的时间核空间特征。这些3D特征提取器在空间和时间两个维度上操作,因此可以捕捉视频流的运动信息。然后基于3D卷积提取器构造一个3D卷积神经网络,这个架构可以从连续视频帧中产生多通道的信息,然后在每一个通道都分离地进行卷积和下采样操作。最后将所有通道的信息组合起来得到最终的特征描述。

优点:速度快,300fps

缺点:精度低,在UCF-101上为0.85准确率

 

参考文献

三种方法的对比引自于:

https://www.jianshu.com/p/2c2c7e96b9b7

按照时间顺序整理了部分视频行为检测&分类方案

https://www.jianshu.com/p/583c26bbb675

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/152033.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python编写手机app_手机学python的app

    python编写手机app_手机学python的app用程序控制手机,再也不用自己去做重复枯燥的任务了

    2022年8月12日
    4
  • 实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!「建议收藏」

    实时 摔倒识别 /运动分析/打架等异常行为识别/控制手势识别等所有行为识别全家桶 原理 + 代码 + 数据+ 模型 开源!「建议收藏」文章目录一、基本过程和思想二、视频理解还有哪些优秀框架三、效果体验~使用手势:pythonrun_gesture_recognition.py健身_跟踪器:卡路里计算三、训练自己数据集步骤然后,打开这个网址:点击一下startnewproject但是官方的制作方法是有着严重bug的~我们该怎么做呢!原代码解读大家好,我是cv君,很多大创,比赛,项目,工程,科研,学术的炼丹术士问我上述这些识别,该怎么做,怎么选择框架,今天可以和大家分析一下一些方案:用单帧目标检测做的话,前后语义相关性很差(也有

    2022年6月21日
    46
  • 《电子信息系统机房设计规范》(GB50174-2008)_电子信息机房设计规范最新

    《电子信息系统机房设计规范》(GB50174-2008)_电子信息机房设计规范最新一、物理安全1.1物理安全主要包括:(1)机房环境安全(2)通信线路安全(3)设备安全(4)电源安全1.1.1机房的安全等级分为三个基本类别:A类:对计算机机房的安全有严格的要求,有完善的计算机机房安全措施。B类:对计算机机房的安全有较严格的要求,有较完善的计算机机房安全措施。C类:对计算机机房的安全有基本的要求,有基本的计算机安全措施。1.2.1机房安全要求和措施:(1)机房的场地,…

    2022年10月2日
    0
  • 学习方法

    学习方法

    2021年8月17日
    46
  • pytest测试框架和unittest_python列表生成式

    pytest测试框架和unittest_python列表生成式一、核心要素(1)TestCase测试用例一个.py脚本就是一个测试用例测试用例类必须继承于unittest.TestCase类中的方法名必须以test开头,否则不会被执行类的外部写main方法(自测代码)(2)TestSuite测试套件测试套件就是测试用例的集合把多个测试用例集合到一起就构成了测试套件测试套件不能直接执行(3)TextTestR…

    2022年10月14日
    0
  • 文件删除不掉:0X80070570解决办法

    文件删除不掉:0X80070570解决办法nbsp nbsp nbsp nbsp nbsp 今天在 linux 下拷东西 因为有急事所以强制拔掉了硬盘 结果就出现文件夹删不掉的情况 采用 Ultral 试试的时候获得了错误码 0X 这样就好办了 搜索了几下就得到了解决办法 右键硬盘选择工具检查磁盘 然后再进入硬盘删除该文件夹 成功解决 其实很简单

    2025年7月8日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号