Openpose 学习总结

2024-05-15 00:58
文章标签 学习 总结 openpose

本文主要是介绍Openpose 学习总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这里提出几个问题,以及整个论文流程:

Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields(Openpose)

1. https://blog.csdn.net/weixin_41441682/article/details/81357369

2. https://github.com/assmdx/ComputerVisionDoc/blob/master/openpose/openpose.md,中文论文网站,也就是翻译

3. https://blog.csdn.net/htt789/article/details/80283370,这篇文章分析很透彻,能抓住问题的核心

4. http://jacobkong.github.io/posts/3799204522/ 姿势识别论文总结

openpose的前身就是CPM算法,相比较与CPM算法识别单人,openpose可以识别多人,虽然这么说不太严格,因为CPM算法也是可以通过center map识别出多人的,但openpose提出了PAFs,更加优雅的解决了多人的问题。

 

这里简单介绍一下网络的流程,首先是输入一张原始图片,经过基础网络VGG进行简单的特征提取,得到一个Feature map,然后在stage1,经过两个分支分别预测。第一个分支为关键点的分支,这个分支也为CPM的经典方法,此外在这个分支的基础之上增加了PAF骨骼点走向的分支。之后的阶段与上面的类似,最终得到网络的输出S,L

损失函数的计算,两种loss求和。

       

损失函数为每一层循环网络的损失函数之和,接下来说一下两个步骤吧:

第一个就是关键点检测,用的CPM方法。关键点检测,通过图像中标注的2D点Xj,k计算S的groundtruth(S*),其中X (j,k)表示图片中第k个人的第 j 种关节 计算方法:Sj*符合正态分布,当像素点P接近注释点Xj,k时,达到正态曲线的峰值,则每张图像中第j种关节的S,为图像中k个人的正态分布峰值。

                 

第二个步骤为PAF的检测:

其中像素P是否落在肢体上需要满足两个条件 
 
每张图像中第c中肢体的Lc*,为k个人在位置p的向量平均值 


评估两个关键点之间的相关性:
关键点dj1,dj2和PAF已知之后,计算两个关键点连线向量和两关键点连线上各像素的PAF向量之间的点积的积分作为两个关键点之间的相关性。 
 
像素p进行采样


接下来就需要通过PAF计算出来的图的关系来得到一个匹配,最大匹配:匹配边数最多 
完美匹配:所有点都是匹配点 
最大权重匹配:所有匹配边权重之和最大 
最大匹配:匹配边数最多 
完美匹配:所有点都是匹配点 
最大权重匹配:所有匹配边权重之和最大 
求解最大匹配方法:匈牙利算法匈牙利算法
https://blog.csdn.net/nineship/article/details/82797557

这篇关于Openpose 学习总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/990352

相关文章

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

在Java中实现线程之间的数据共享的几种方式总结

《在Java中实现线程之间的数据共享的几种方式总结》在Java中实现线程间数据共享是并发编程的核心需求,但需要谨慎处理同步问题以避免竞态条件,本文通过代码示例给大家介绍了几种主要实现方式及其最佳实践,... 目录1. 共享变量与同步机制2. 轻量级通信机制3. 线程安全容器4. 线程局部变量(ThreadL

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa