openpose姿态估计【学习笔记】

news2024/11/25 2:49:15

文章目录

      • 1、人体需要检测的关键点
      • 2、Top-down方法
      • 3、Openpose
        • 3.1 姿态估计的步骤
        • 3.2 PAF(Part Affinity Fields)部分亲和场
        • 3.3 制作PAF标签
        • 3.4 PAF权值计算
        • 3.5 匹配方法
      • 4、CPM(Convolutional Pose Machines)模型
      • 5、Openpose
        • 5.1 序列的作用
        • 5.2 整体框架

1、人体需要检测的关键点

在本项目中,需要检测人体18个关键点,除了下图所标注的17个关键点外,还有1个脖子关键点

在这里插入图片描述

2、Top-down方法

1、检测得到所有人的框;
2、对每一个框进行姿态估计输出结果

Top-down方法的问题
1、姿态估计做成啥样主要由人体检测所决定,能检测到效果估计也没问题
2、但是如果俩人出现重叠,只检测到一个人,那肯定会丢失一个目标
3、计算效率有点低,如果一张图像中存在很多人,那姿态估计得相当慢了

能不能设计一种方法不依赖于人体框而是直接进行预测呢?有的,接下来请看下面的方法

3、Openpose

3.1 姿态估计的步骤

姿态估计的2个步骤
1、识别出图片中所有关键点,
2、按顺序拼接同属一个人的所有关键点

如下面左图所示,我们识别人体18个关键点中的右肩关键点,就在图片中建立热度图(高斯),识别18个关键点就需要建立18个特征图
在这里插入图片描述

3.2 PAF(Part Affinity Fields)部分亲和场

PAF作用:将属于同一个人的不同关键点按顺序拼接

整体框架如下,1张图片经过CNN网络后分成2个网络,Parts Detection网络是预测关键点,Parts Association网络是预测方向,人体18个关键点总共需要19个不同的方向,而确定方向至少需要1个平面,即 x x x y y y 坐标,所以Parts Association需要预测19x2=38个特征图

在这里插入图片描述

3.3 制作PAF标签

Parts Association输出38张特征图,其中19张特征图预测 x x x 坐标,19张特征图预测 y y y 坐标,每一张特征图的像素点都需要输出坐标值。在PAF标签处理中,把2个关键点所包围的矩形当中的所有像素值的方向与2个关键点的方向都一致。
在这里插入图片描述
蓝色和红色分别是两个关键点, V V V 是其向量,

在这里插入图片描述
在这里插入图片描述

对于其中某个PAF特征图(19种连接方式种的1种),这就相当于得到PAF标签值了,包括所有人在该连接处的向量,
在这里插入图片描述

3.4 PAF权值计算

两个关键点j1与j2之间的权值计算方法
在这里插入图片描述
d j 1 d_{j1} dj1 d j 2 d_{j2} dj2分别表示j1与j2两点的坐标,求j1和j2间各点的PAF在线段j1j2上投影的积分,其实就是线段上各点的PAF方向如果与线段的方向越接近权值就越大

3.5 匹配方法

在这里插入图片描述

4、CPM(Convolutional Pose Machines)模型

为OpenPose后面的工作奠定了基础,也可以当作基础框架,通过多个stage来不断优化关键点位置(stage1预测完全错误,2和3在纠正)

在这里插入图片描述

stage越多相当于层数越深,模型感受野越大,姿态估计需要更大的感受野,因为进行关键点检测需要更多关于人体的信息,所以感受野越大则人体的信息越多,关键点检测越能检测准确

在这里插入图片描述

使用多个stage级联的思想,每个stage都加损失函数,也就是中间过程也得做的好才行

在这里插入图片描述

5、Openpose

两个网络结构分别搞定:1、关键点预测;2、姿势的‘亲和力’向量
使用多个stage级联的思想,2个网络结构输出之后再进行特征融合,因为方向的预测离不开关键点的位置信息,关键点的位置信息也与方向有关

在这里插入图片描述

5.1 序列的作用

多个stage,相当于纠正的过程,不断调整预测结果

在这里插入图片描述

5.2 整体框架

两个分支都要经过多个阶段,注意每个阶段后要把特征拼接一起

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/881985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【uniapp2】获取manifest里的versionName版本号

在要展示版本号的页面中添加: onLoad() {// 获取本地应用资源版本号plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) > {this.innerVer wgtinfo.version;this.versionCode wgtinfo.versionCode;console.log(wgtinfo);});},打印看看获取的信息&#x…

机器学习---逻辑回归代码

1. 逻辑回归模型 import numpy as npclass LogisticRegression(object):def __init__(self, learning_rate0.1, max_iter100, seedNone):self.seed seedself.lr learning_rateself.max_iter max_iterdef fit(self, x, y):np.random.seed(self.seed)self.w np.random.normal…

视频汇聚平台EasyCVR安防监控视频汇聚平台的FLV视频流在VLC中无法播放的问题解决方案

众所周知,TSINGSEE青犀视频汇聚平台EasyCVR可支持多协议方式接入,包括主流标准协议国标GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。在视频流的处理与分发上,视频监控…

ESP8266获取网络时间 实时时钟

程序现象 一、用串口调试助手调试 1.发送指令ATRST重启模块使应用模式更改生效; 2.发送指令ATE0取消回显 3.使用串口发送指令ATCWMODE1设置模块Wi-Fi应用模式为Station模式; 4.发送指令ATCWJAP "ssid","pwd"连接AP; …

react-native-webview RN和html双向通信

rn登录后得到的token需要传递给网页,js获取到的浏览器信息需要传递给rn RN Index.js: import React from react import { WebView } from react-native-webview import useList from ./useListexport default function Index(props) {const { uri, jsCode, webVie…

23款奔驰S450 4MATIC升级车载冰箱系统,快乐就是这么朴实无华呀

凉爽餐饮随时触手可及。容积10升的可拆卸冷藏箱与后排扶手和谐融合。如此一来,即使在炎炎夏日,也可享受沁凉的冷饮。

Vue3头像(Avatar)

效果如下图:在线预览 APIs 参数说明类型默认值必传shape指定头像的形状‘circle’ | ‘square’‘circle’falsesize设置头像的大小number | ‘large’ | ‘small’ | ‘default’ | Responsive‘default’falsesrc图片类头像资源地址string‘’falsealt图片无法显…

关于微信临时文件wxfile://tmp文件如何处理,微信小程序最新获取头像和昵称

分享-2023年资深前端进阶:前端登顶之巅-最全面的前端知识点梳理总结,前端之巅 *分享一个使用比较久的🪜 技术栈:taro框架 vue3版本 解决在微信小程序获取微信头像时控制台报错:找不着wxfile://tmp 文件路径,失败&…

迁移协调器 - 就地迁移模式

在本系列博客的第一部分中,我们从高层级视角介绍了 Migration Coordinator 提供的所有模式,Migration Coordinator 是内置于 NSX 中的完全受 GSS 支持的工具,可将 NSX for vSphere 迁移到 NSX (NSX-T)。 本系列的第二篇博客将详细介绍就地迁…

cesium 卫星环绕扫描

成果图 源码 let viewer new Cesium.Viewer(cesiumContainer,{// terrainProvider: Cesium.createWorldTerrain(),geocoder: false, // 隐藏查找位置homeButton: false, // 隐藏返回视角到初始位置sceneModePicker: false, // 隐藏视角模式的选择baseLayerPicker: false, // 隐…

亚马逊云科技助力珠海丹德构建安全技术底座,促进商业发展

随着消费者对商品质量和安全关注度的不断提高,防伪、溯源、防窜已经成为企业关注的重要领域。据前瞻产业研究院数据显示,2028年中国防伪行业市场容量将超过4000亿元,未来市场对防伪、溯源、防窜技术的需求和重视程度可见一斑。 作为一家用智慧…

软件测试项目实战,电商业务功能测试点汇总(全覆盖)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 支付功能怎么测试…

医院后勤管理用什么系统好?的修医院报修管理系统有哪些优势?

随着医院后勤工作量的不断增加,需要协调和维护的设备和部门也随之增多。传统的医院后勤管理方式已经显得不够优越,其劣势日益凸显,无法满足实际工作需求。因此,快速推动医院后勤信息化管理已成为当前医院发展的迫切需求。而的修医…

进销存记账软件2023排行榜,秦丝、智慧记、管家婆哪家更好用?

进销存记账软件已经成为很多实体店必备的一款软件,使用进销存记账软件可以帮助实体店解决手工记账效率低下、对账麻烦且出错率高等问题。 很多实体店都是小本生意,选择进销存记账软件时由于缺乏经验,随意选择,结果买回来之后一堆问…

无人机跟随一维高度避障场景--逻辑分析

无人机跟随一维高度避障场景--逻辑分析 1. 源由2. 视频3. 问题3.1 思维发散3.2 问题收敛 4. 图示4.1 水平模式4.2 下坡模式4.3 上坡模式4.4 碰撞分析 5. 总结6. 参考资料 1. 源由 最近拿到一台测试样机,功能很多,就不多赘述。 这里针对跟随功能进行下吐…

java面试基础 -- 方法重载 方法重写

目录 重载 重写 重载 方法的重载是指在同一个类中定义多个方法, 他们具有相同的名称, 但是具有不同的参数列表, 例如: public void myMethod(int arg1) {// 方法体 }public void myMethod(int arg1, int arg2) {// 方法体 }public void myMethod(String arg1) {// 方法体 }…

企业权限管理(九)-用户操作

用户操作 1用户查询 UserController findAll Controller RequestMapping("/user") public class UserController {Autowiredprivate IUserService userService;RequestMapping("/findAll.do")public ModelAndView findAll() throws Exception {ModelAndVie…

PMP考试通过标准是什么?

PMP 新考纲一共是 180道题,答对 108道就通过了,具体怎么看通过没有? 一、查看是否通过 1、登录PMI 官网,点击“Log In” 如果忘记 PMI 的账号、密码了也别着急,去找你报名的培训机构,一般报名处有记录&…

C语言 — qsort 函数

介绍:qsort是一个库函数,用来对数据进行排序,可以排序任意类型的数据。 void qsort (void*base, size_t num, size_t size, int(*compart)(const void*,constvoid*) ) qsort 具有四个参数: …