zoukankan      html  css  js  c++  java
  • 姿态估计与行为识别(分类)、行为检测的区别

    姿态估计的源起

    行为识别是一项具有挑战性的任务,受光照条件各异、视角多样性、背景复杂、类内变化大等诸多因素的影响。
    对行为识别的研究可以追溯到1973年,当时Johansson通过实验观察发现,人体的运动可以通过一些主要关节点的移动来描述,因此,只要10-12个关键节点的组合与追踪便能形成对诸多行为例如跳舞、走路、跑步等的刻画,做到通过人体关键节点的运动来识别行为
    正因为如此,在Kinect的游戏中,系统根据深度图估计出的人体骨架(Skeleton,由人体的一些关节点的位置信息组成,coco采用18个点),对人的姿态动作进行判断,促成人机交互的实现。

    CVPR2017 ActivityNet行为识别竞赛(Kinetics 数据集) 提出的视频理解的核心Task:

    • 修剪视频识别(Trimmed Action Recognition):

        这个在计算机视觉领域已经研究多年,对**时域预先分割好**的序列判定其所属行为动作的类型,即给**一段只包含一个动作**的修剪视频中的动作分类**。
        注:开始的ucf数据集每段trimmed video只对应一个动作标签,现在的Kinetics数据集一段trimmed已经对应多个动作标签.
      
    • 时序行为定位(Temporal Action Localization)(行为检测):

      (现实应用中真正的场景,时序行为定位于我们常说的目标检测一致。)**序列尚未被在时域上分割**(Untrimmed)(时域上有的序列不存在动作),因此需要同时对行为动作进行时域定位(分割)和类型判定,即要求1从视频中**找到可能存在行为的视频段**,2并且给视**频段分类**。
      
    • 时序动作建议(Temporal Action Proposal):
      类似于图像目标检测任务中的候选框提取。在一段长视频中通常含有很多动作,这个任务就是从视频中找出可能含有动作的视频段。(输出:视频中所有包含动作的动作段----动作场景)

    • 密集行为描述(Dense-Captioning Events):
      该任务要求在时序行为定位(检测)的基础上进行视频行为描述。也就是说,该任务需要将一段未修剪的视频进行时序行为定位得到许多包含行为的视频段-----即时序动作建议后,对该视频段进行行为描述。比如:man playing a piano(action video captioning
      基于时序动作建议的action video captioning

    姿态估计目的

    • 核心:输出一个高维的姿态向量表示关节点的位置,即一整组关节点的定位)
      从图像背景中分离出人体前景,然后重建人物的关节、肢体,以便作为行为识别的输入,进行动作的识别,如跑步,跳跃等

    人体骨架如何获得

    主要有两个途径:
    1.通过RGB图像进行姿态估计(Pose Estimation)获得
    2.通过深度摄像机直接获得(例如Kinect)

    每一时刻(帧)骨架对应人体的K个关节点所在的坐标位置信息,一个时间序列由若干帧组成。

    基于骨架的行为识别技术的关键:

    1. 如何设计 鲁棒和有强判别性 的特征
    2. 如何 利用时域相关性 来对行为动作的动态变化进行建模。

    姿态估计

    (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/

  • 相关阅读:
    BZOJ4503 两个串
    【挖坟】HDU3205 Factorization
    webpack打包 The 'mode' option has not been set, webpack will fallback to
    echarts js报错 Cannot read property 'getAttribute' of null
    微信支付 get_brand_wcpay_request fail,Undefined variable: openid
    layui动态设置checbox选中状态
    layui 获取radio单选框选中的值
    js 获取数组最后一个元素
    js生成指定范围内的随机数
    layer重复弹出(layui弹层同时存在多个)的解决方法
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13267450.html
Copyright © 2011-2022 走看看