MMPose(openmmlab AI实战营二期第一节)

news/2024/7/18 6:23:18

链接:人体关键点检测与MMPose_哔哩哔哩_bilibili

赶了个进度,实际上没听到,一个方向被浓缩成50分钟是有点难度。后续有需要再回顾吧

人体姿态估计:识别人体关键点坐标。模式识别任务,难点是始终在变化。以关键点连线,2/3D中还原人体姿态。PoseC3D:基于人体姿态识别行为动作。CG动画追踪表情、手势姿态等。

  • 人体姿态估计的介绍与运用
  • 2D姿态估计
    • 自顶向下
    • 自底向上
    • 单阶段
    • 基于transformer
  • 3D姿态估计
  • 人体姿态估计的评估方法
  • DensePose
  • 人体参数化模型

一、2D姿态估计

1.1基于regression based

将关键点的检测变成一个回归问题(x_{1},y_{1},...,x_{j},y_{j})=f_{\Theta }(I)

 

 输入一张图像,输出一个回归的坐标,类似于boundingbox回归的感觉。但是精度不高。是监督学习。

1.2 Heatmap Based

不直接回归关键点坐标,量预测关键点任务变成每个位置的概率H_{1...J}=f_{\Theta }(I)

H_{j}(x_{j},y_{j})=1表示关键点j位于(x_{j},y_{j})的概率为1,H是热力图,尺寸与原图像I相同或者按比例缩小,概率图啊。

 

 类似于分类概率了吧。可以通过求极大值的方法得到关键点的坐标。

热力图相对回归坐标容易一些,模型精度也更高(讲着认为热力图识别关键点符合神经网络特性),但是热力图计算量也比较大。

1.3关键点热力图的标注

搜索

 将每个点的概率,通过高斯核变成一个热力的概率图。

1.4使用热力图训练模型

 输入图像->预测热力图

    关键点->高斯模糊后的热力图 

损失函数是1范式或者2范式

1.5 从热力图中还原关键点

  • 朴素方法:求最大概率点。多个点不够鲁棒,另外讲着提到结果不是高斯的?
  •  归一化概率,取其期望,即高斯重心

 因为是网络是反向传播,模型可以求导,热力图是可以求导的,坐标也可以求导,从而指引热力图

1.6 自顶向下的方法(多人估计)

先检测人,然后做单肢体的估计

  •  整体精度受限于检测器的精度,也就是第一环节的行人识别者确度影响随后的环节。也就是精度
  • 速度和计算量与人数成正比。也就是速度。
  • 多阶段模型

1.7 自底向上(多人估计)

 先检测关键点,然后在组合成单个任务形态

1.8 单阶段(多人估计)

 1.9 基于回归的自顶向下方法

DeepPose(2014)

通过级联提升精度 

 所有预测类的网络都里能发现这种思路,多阶段变成单阶段,然后单网络变成级联网络。

回归方法的优势与劣势

优势:

  • 回归精度无上限,但热力图受限特征图空间分辨率。
  • 热力图计算需要在高分辨率特征图上,因此计算成本高。

劣势:

  • 图像到关键点坐标映射是高度非线性的,更难收敛,精度也比热力图差。2D关键点预测大部分集中于基于热力图。

Residual Log-likelihood Estimation(RLE) (2021)

对关键点位置进行更准确的概率建模,从而提高位置预测的精度

 高斯分布不一定符合数据的真实分布???使用均值比较,就是默认服从高斯分布,如果均值一致,服从的分布一致???这里的高斯核刚才讲到的热力图,通过高斯模糊是一个意思,点位置的高斯。

RLE主要是构建概率分布,然后通过最大似然。

回归和最大似然估计的联系。

这里揭示了为啥基于均值比较的二范数回归问题暗含高斯分布。固定方程和各向同性???

 RLE是一个可学习的分布???

标准化流 Normalizing Flow 

这个是什么意思呢?神经网络学习一个映射?将最初的概率分部映射成复杂的概率密度函数 ?

 正向变换是求解映射函数?逆向映射就可以将复杂概率函数恢复成原始的概率分部。

 实际上应该是复杂、都类型的分布以通用形式组合而来,类似于小波变换什么的。。。

重参数化设计

 也就是将复杂的概率分部通过使用高斯分布去表示,这个是网络模型中常用的方案,在VAE等模型中也提到过。

残差似然函数

也就是在高斯分布x的基础上有一个x_0的概念,这个x_0就是残差似然

 完整的RLE模型

 残差似然 x 基础似然,通过均值和方差进行平移拉伸,得到最终的似然函数P

基于热力图的自顶向下的方法

 网络模型少不了的几大内容都提到了,局部信息、全局信息、残差链接,最终的目的生成热力图

级联的hourglass模块

 常规的级联套路,就是一级一级的裁剪、细化

 simple  Baseline

 特征提取网络改成resnet了

HRNet

 多分辨率网络结构的特征融合,实际上这种网络画起来这种形式反而不好看懂。

 这里讲的更多的是融合策略,maxpooling,感觉这种网络结构比较复杂,鲁棒性可能更低,因为相对而言被过拟合了。

HRNet配合不同任务头

 自底向上

Part Affinity Fields & OpenPose

先检测关键点,和四肢走向(四肢走向?),然后利用聚类,两个关键点有某段肢体相连,则关键点属于同一人。

 关键点与肢体预测

 预测全部肢体的方向场,关键点和对应向量,下一个点也能得到。

肢体定义的关键点亲和度

 

 这里类似于不连续线段检测,如何将不连续的线段组合成一条长的连续线段。

基于亲和度匹配关键点

K部图???不是很懂,大意可能就是首先所有节点全连接,然后按照一定拓扑结合删掉某些链接

 单阶段方法

SPM

 structured pose representation(spr)

位置和不同的方向的回归

 hierarchical SPR

 降低由于形变带来的关节点距离差异变化导致的回归难度。

 网络设计

回归策略

根节点+稠密位移图

 损失函数

 

 基于transformer的方法

PRTR2021

 主要是全局信息吧

 STN网络就很常见了,主要是应对多种变化的

TokenPose(2021)

 每个关键点是一个token???是把位置信息作为关键点,和token组合了?那预测呢

 

 

 3D人体姿态估计

任务描述

感觉原理上和2D是一样的,难度就是代码上。

 绝对坐标VS相对坐标

 难点:从2D图像中回复3D信息

 语义信息中包含刚性变换

 视频帧之间的变换

 单张图片

 

 Coarse-to-fine

为每一个关节点预测一个64x64xd的3D热力图

 Simple Baseline 3D

 VideoPose3D

这个是不是就是利用时空信息

 VoxelPose

 评估指标

 

 

 

 DensePose

mesh

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


http://www.niftyadmin.cn/n/393584.html

相关文章

chatgpt赋能python:Python可以有多个同名函数吗?

Python 可以有多个同名函数吗? Python作为一门高级编程语言,其灵活性和易用性备受开发人员的青睐。在Python中,函数是编程语言的核心,任何有经验的Python工程师都会知道Python的函数允许使用相同的名称来进行定义。那么问题来了&…

数字音系统研究开发真题第1章习题答案解析

hezkz17 进答疑裙 1声音可分为两种,纯音和复合音,平常人们说话的声音属于哪一种?语音的频率范围是多少?音频信号通常包括哪些声音信号?其频率范围是多少?  2023/6/3 下午11:27:56 通常人们说话…

redis缓存单体服务测试本地锁失效问题

测试1&#xff1a;锁释放之后向redis缓存存入数据 //TODO 产生堆外内存溢出 OutOfDirectMemoryError//gulimall.com查询分类Overridepublic Map<String, List<CategoryLevel2Vo>> getCatelogJson() {/*** 问题 &#xff1a;解决办法* 1.缓存穿透 高并发情况下查询缓…

皮卡丘../../(目录遍历)/敏感信息泄露/PHP反序列化

一.目录遍历 1.概述 在web功能设计中,很多时候我们会要将需要访问的文件定义成变量&#xff0c;从而让前端的功能便的更加灵活。 当用户发起一个前端的请求时&#xff0c;便会将请求的这个文件的值(比如文件名称)传递到后台&#xff0c;后台再执行其对应的文件。 在这个过程中…

mysql密码字段类型

数值 mysql 的数值数据类型可以大致划分为两个类别&#xff0c;一个是整数&#xff0c;另一个是浮点数或小数。 许多不同的子类型对这些类别中的每一个都是可用的&#xff0c;每个子类型支持不同大小的数据&#xff0c;并且 MySQL 允许我们指定数值字段中的值是否有正负之分(U…

衡量距离的公式

内积欧氏距离曼哈顿距离p范数编辑距离汉明距离

数据库四种事务隔离级别的区别以及可能出现的问题

文章目录 1.数据库并发操作带来的主要问题及原因&#xff1a;① 丢失修改② 脏读③ 不可重复读 2.四种事务隔离级别的区别以及可能出现的问题&#xff1a;① Read uncommitted&#xff08;读未提交&#xff09;② Read committed&#xff08;读提交&#xff09;③ Repeatable r…

chatgpt赋能python:Python反转语句:实用技巧提升编程能力

Python反转语句&#xff1a;实用技巧提升编程能力 Python是一门流行的编程语言&#xff0c;许多开发者都会选择Python作为主要的开发语言。其中一个原因是Python的语法简单易学&#xff0c;不仅适合初学者入门&#xff0c;也能被经验丰富的开发者用来构建复杂应用程序。在本文…