姿态估计与人体动作识别的多任务深度学习模型

2023-11-19

最近在做一个人体康复训练的项目,一开始考虑到人体康复训练需要肢体的细微动作,所以先使用人体姿态估计识算法提取骨骼点,再根据人体骨骼点来识别动作(后来发现也不一定这样),并组合成一个端对端的模型,正好找到了最近的一篇论文《2D/3D Pose Estimation and Action Recognition using Multitask Deep Learning》。看完这篇论文来和大家分享一下。

一、背景

方法很少

论文中作者说心在这种端对端的方法很少,“there is no method in the literature that solves both problems”,具体是不是很少也没有去验证,姑且当做很少吧

为什么方法很少

作者现在人体姿态识别的主流方法是使用heat map ,而输出heat map后会使用一个argmax函数进行求骨骼点坐标,这个argmax函数是不可微的,所以不能求导,也就不能联合动作识别来达到端对端。

本文的解决方法

作者使用soft-argmax来代替argmax,而soft-argmax可微,所以解决问题
看到这里,那么heat map方法是什么?为什么它就成了人体姿态估计的主流方法?argmax与soft-argmax又是什么鬼?接下来说一下问题。
这里写图片描述
图1 姿态识别类型
如上图,人体姿态估计按输出结果的形式可以分成两种,对于前者而言,我们期望得到的是精确的坐标值(x, y);而对于后者而言,我们期望得到对应的热点图谱,用这个热点图谱的响应值来反映人体的不同部位,也就是说,不同部位获得的响应应该是不同的,对于感兴趣的区域(例如头部),需要返回一个较高的响应,而其它部位则响应相对较低。
采用回归的方式来解决人体姿态识别问题,效果并不理想。其主要原因有两方面:一方面是人体运动比较灵活,另一方面,回归模型的可扩展性较差,比较难于扩展到不定量的人体姿态识别问题中。因此,目前大家普遍使用的过渡处理方法是将其看作检测问题,从而获得一张热点图谱。
这里写图片描述
贴上一张找到的argmax函数,这个函数的目的是取出heat map中值最大对应的坐标。这个函数不可微分,不能求导。作者使用的soft-argmax函数改与softmax函数,后面再说到。

网络结构

这里写图片描述
图2 多任务姿态估计与动作识别结构图
从图中可以看到,输入图像(视频)经过一个Multitask CNN后得到Visual feature 、Probability maps、2D/3D estimated poses,将Visual feature 、Probability maps融合,再经过Appearence recongnition 处理,与经过Pose recongition处理的骨骼点进行联合识别动作。

Multitask CNN

这里写图片描述
entry flow : 原始图像作为输入,经过Inception-V4,输出提取的初步特征Visual feature
Prediction block : 作者根据Hourglass Design设计,最后一层的pk作为骨骼点p,每一个block由8个residual depth-wise卷积,分成三部分组成。每一层还会输出一个probability maps。在动作识别中还会用到上述的两个map,得到appearance features。
贴出Horglass Design的链接,有需要的小伙伴可以去看一下:
[论文阅读理解 - Stacked Hourglass Networks for Human Pose Estimation]https://arxiv.org/pdf/1710.02322.pdf
[Human Pose Regression by Combining Indirect Part Detection and Contextual
Information
]
https://arxiv.org/pdf/1710.02322.pdf
值得注意的是,作者会将Inception-V4提取出来的Visual features 与pk输出的Probability maps提取出来,用到后面的动作识别
这里写图片描述
动机:捕捉不同尺度下图片所包含的信息. 局部信息,对于比如脸部、手部等等特征很有必要,而最终的姿态估计需要对整体人体一致理解. 不同尺度下,可能包含了很多有用信息,比如人体的方位、肢体的动作、相邻关节点的关系等等.

Soft-argmax layer

在输出heat map后需要接一层Soft-argmax layer目的是将heat map转换为(x,y)坐标值,
这里写图片描述
这里写图片描述
其中 Φ(x)l,c Φ ( x ) l , c 是softmax的输出, cWc c W c lHx l H x 是正则化参数。

3D posestimation

这里写图片描述
如果是3D的数据,作者使用一个单一的一维Soft-argmax来处理Z轴的数据,最后得出的z轴坐标与x,y一起组合合成三维。

动作识别

作者将提取的骨骼点与底层视觉特征(visual features
)融合,
这里写图片描述

骨骼点的处理

作者将骨骼点进行一个重新“排布”的规划,时间维度为vertical axis, 骨骼点位horizontal axis,骨骼点的表示为channels

Appearance-based recongnition

作者将Visual feature 与Probability maps 进行了融合
这里写图片描述
其中输入 FtRWf×Hf×Nf F t ∈ R W f × H f × N f
MtRWf×Hf×NJ M t ∈ R W f × H f × N J ,输出 VRT×Nf×Nf V ∈ R T × N f × N f ,Nf为输出特征图的通道数,Nj为骨骼点的个数
作者在这里将两个不同维度的矩阵相乘,使用到了克罗内克积,详细的如下:
[克罗内克积][https://zh.wikipedia.org/wiki/%E5%85%8B%E7%BD%97%E5%86%85%E5%85%8B%E7%A7%AF]

动作识别

得到骨骼点数据与视觉图像后,作者通过一个网络来进行回归运算,具体模型如下:
这里写图片描述

实验

作者做了许多实验,现在就主要的实验进行一下:
这里写图片描述
在2D数据上进行的动作识别,使用Penn Action 与MPII数据集,可以看出效果还是很好的,而且作者使用混合数据集也没有损失多少准确度,还增加了鲁棒性
这里写图片描述
在3D数据集上进行,看出来融合了两个信息效果还是蛮好的。
这里写图片描述
最后作者还有一个对比,分别使用Pose(骨骼点)、Appearance(视觉信息),Aggregation(混合使用)来对四个动作进行识别,可以看出单独使用骨骼点数据在喝水与打电话两个动作识别上精度不高,因为这两个动作从骨骼点数据上来看是差不多的,但是加上视觉信息,就和方便的得出一个是拿上水杯,一个是手机。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

姿态估计与人体动作识别的多任务深度学习模型 的相关文章

随机推荐

  • 单片机检测信号通断通用电路(3.3V/5V直流信号,24V+直流信号,220V交流信号)

    在实际的电路设计中 往往需要用到单片机检测某些信号通断 检测电压有无 在一定的范围内 比如3 3V的直流信号 单片机的IO是可以直接连接信号检测的 但是往往实际信号各种各样 24V 48V直流 220V交流 甚至380V交流 单片机就无法直
  • pc连接用access,交换机互联用trunk

    实验目的 同一个里vlan下面的所有主机可以相连 vlan10和vlan100可以相通 实验前提 把pc的基本配置做完 让他们在一个网段里 给pc1和pc3按照要求用vlan10 pc2用vlan100 交换机1 首先让交换机创建10 10
  • html中使用js实现体彩11选5随机选号

    体彩11选5随机选号 页面预览 代码实现
  • OpenCV简单应用(一、摄像头拍照)

    1 首先安装OpenCV 当然所用电脑要有摄像头 且接入网络 比较简单粗暴的做法是到Python所在的目录下 Scripts下运行 pip install opencv python 2 以下代码是开启摄像头 按任意键退出 import c
  • QT2023新版安装教程

    目录 前言 一 QT在线安装包下载 1 官方网站 2 镜像 清华大学 二 QT安装 1 更换安装源 2 安装界面 3 组件选择 重点 参考 Qt2023新版保姆级 安装教程 前言 本文主要介绍2023新版QT安装过程 希望能帮到大家 一 Q
  • mybatisplus是什么?

    Mybatis Plus 简称为Mybatis 或MP 是一个开源的Mybatis增强框架 它是在Mybatis基础上进行了扩展和增强 Mybatis Plus旨在简化开发过程 提高代码的开发效率 并提供更多的便捷功能 Mybatis Pl
  • 仿网易云音乐小程序

    一 程序描述 仿网易云音乐小程序 调用网易云API真实接口 实现了音乐播放 音乐切换 歌词显示 搜索音乐 视频播放 用户登录退出等功能 以下是效果展示 仿网易云小程序 二 代码介绍 1 目录介绍 2 搜索 代码讲解 实现思路 先把搜索的静态
  • 台式电脑切换集成显卡和独立显卡

    台式电脑切换集成显卡和独立显卡 1 背景 2 认识 3 步骤 3 1 确认是否有两个显卡以及当前显示器连接显卡 3 2 更新驱动 3 3 确认显示器连接接口 3 4 显卡设置 4 总结 1 背景 发现电脑在处理画面时有非常卡顿 想着电脑装的
  • html中图片热区链接怎么设置,html图像热区链接做好之后怎么上传到网页上让别人打开?...

    html图像热区链接做好之后怎么上传到网页上让别人打开 以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 让我们赶快一起来看一下吧 图像热区链接做好之后怎么上传到网页上让别人打开 做的是静态
  • 使用session实现同一账号只能同时一个人使用

    使用session实现同一账号只能同时一个人使用 今天我们要讲的就是 实现同一个账号只能同一时间让一个人使用 实现起来也是非常的简单 其实我这里讲到的是我前几天做出来的一个大概核心代码和核心思路 我也是查遍了很多网站 看了很多人的源码然后都
  • QT绘图之自动缩放画线和点

    需求 用 作为画板 把纸条缩放到 上 纸条长度不定 宽度固定 纸条上任意位置画点或者线 点距或者线距不固定 点数和线数也不固定 要成比例映射到 上直观显示 话不多说 上代码 ool sprayer Widget eventFilter QO
  • 导入Unity 2D Animation插件没有生效

    导入Unity 2D Animation后 打开Sprite Editor发现没有Skinning Editor选项 这可能是因为导入插件后与项目原有的Plugin下的库产生冲突导致的 这时候点击Packages Editor Unity
  • 线程和线程池

    线程和线程池 并发和并行 并发是指在单个CPU核心上 多个线程占用不同的CPU时间片 但由于每个线程占用的CPU时间片非常短 比如10ms 看起来就像是多个线程在共同执行一样 但在微观物理上看其实还是串行执行的 这样的场景称作并发 并行是指
  • QQ小程序服务器内部错误,网络

    网络 使用说明 在小程序 小游戏中使用网络相关的 API 时 需要注意下列问题 请开发者提前了解 1 服务器域名配置 每个QQ小程序需要事先设置一个通讯域名 小程序只可以跟指定的域名与进行网络通信 包括普通 HTTPS 请求 qq requ
  • 工作队列(workqueue)

    转载于 http blog csdn net angle birds article details 8448070 项目需要 在驱动模块里用内核计时器timer list实现了一个状态机 郁闷的是 运行时总报错 Scheduling wh
  • 仿鸟云IDC模板 最新修复创梦虚拟主机管理系统+主控模板+鸟云模板源码

    介绍 最近仿鸟云的 IDC 模板 好像很火 很早以前做了一个和鸟云早期的模板 但后来服务器没备份 数据丢失了 此为近期找到的一份新的鸟云源码 如果大家有需求 可以进行长期更新维护此套模板 做到更精 在 Global asa 文件的最后一行之
  • SpringBoot配置多个Redis数据源

    一 添加依赖
  • type traits浅析

    1 G2 9的type trait G2 9的type trait用一个泛化类模板来定义各种类型的属性 默认都是假的 然后给每一种类型都添加了偏特化版本 这样的缺点是每写一个类 都要添加一个偏特化的模板类 十分麻烦 2 C 改进的type
  • 渗透:vulnhub DC系列之DC1

    DC系列之DC1 一 靶机配置及说明 下载地址 https www vulnhub com entry dc 1 292 靶机 DC1 VMware IP 192 168 49 152 攻击机 kali2018 IP 192 168 49
  • 姿态估计与人体动作识别的多任务深度学习模型

    最近在做一个人体康复训练的项目 一开始考虑到人体康复训练需要肢体的细微动作 所以先使用人体姿态估计识算法提取骨骼点 再根据人体骨骼点来识别动作 后来发现也不一定这样 并组合成一个端对端的模型 正好找到了最近的一篇论文 2D 3D Pose