码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 2D人体姿态估计 - DeepPose


    【https://github.com/Naman-ntc/Pytorch-Human-Pose-Estimation】 

    【CVPR】【HTML】

    早期一些自顶向下的深度学习方法用神经网络直接预测人体关键点的 2D 坐标。

    DeepPose [1] 是这类方法的经典代表。DeepPose 采用级联的神经网络来预测人体各个关键点的相对坐标。每一个阶段都拿上一阶段的输出坐标作为输入,并进一步预测更为准确的坐标位置。最终,将预测得到的归一化的相对坐标转换为绝对坐标。

    Alexander Toshev和Christian Szegedy提出的DeepPose最早将CNN(卷积神经网络)应用于人体关节点检测。DeepPose将人体姿态估计转换为关节点回归问题,并提出了将CNN应用于人体关节点回归的方法:使用整幅图像输入到7层CNN来做关节点回归,更进一步,使用级联的CNN检测器来增加关节点定位的精确度。

     DeepPose在LSP数据集上的PCP@0.5平均精度达到61%,是当时的state-of-art方法

    直接回归坐标的方法思路直接,可以直接获得关键点位置,往往有更快的预测速度。然而,由于人体姿态的自由度很大,直接预测坐标的建模方式对神经网络的预测并不友好,预测精度受到了一定制约。

    .1、首先,为了更好更统一地训练,作者希望让图片以人为核心呈现,从而引入了一种关节坐标的标准化方法。

    那么归一化的关节点坐标(相对坐标)表示如下:

    得到网络预测的关节点坐标相对于图片的绝对位置为

    y^{*}=N^{-1}(\psi(N(x) ; \theta))
     但是我发现后面姿态识别的Baseline论文好像也没有再采取过这种标准化了。我的一个猜想是,当时Batch Normalization(2015)的文章还没发表,所以DeepPose(2014)根据姿态识别的特点采用了这样的标准化方法。但实际上,它和Batch Normalization起的功能可能差不多,因此在后续网络的构建中,如果加入了BN,那就不必再做这样的姿态标准化了。

     2、基础网络部分

    这一块不复杂,整体上复刻了AlexNet,只变了输出处。从原来的一维向量(长为分类的“类别数“)变成了一维向量(长为“两倍的关节数“)。而之所以输出的长度改成了两倍的关节数,是因为每个关节有横纵两个坐标要预测。

    值得注意的是,由于预测坐标其实是一种非线性很强的回归任务,对于卷积网络来说也没有很好的利用上图片的空间信息。因此自从14年的Joint Training of a Convolutional Network and a Graphical Model for Human Pose Estimation提出了热图方法后,主流网络就很少采用预测坐标的方式来进行姿态识别了。预测坐标以及热力图具体的优缺点也会在后续的文章中介绍。

    论文中的网络结构,Backbone就是AlexNet

    3、进阶网络部分

    为了达到更棒的局部观测效果,作者又对小尺度下的各个关节额外建立更多的AlexNet来学习。因此这一块的实现其实相当于针对不同关节提取出更小的图片框,再对这些提出出来的局部图片框进行标准化(模块1)和DNN(模块2)的重新建模和计算,这样做的原因是在放大目标位置的过程中有利于精度的提高。

    但是比起它的实现过程,其实更重要的它这一模块的思想,那就是只要在不同阶段中反复的对关节位置提取提取,就有利于精度的提高提高。这样一种结合local和global的思想其实在后继很多的论文中都有采用到(Stacked Hourglass/CPM/...),并被证明是行之有效的思路。

     参见:

    人体姿态估计-DeepPose (详细说明)

    DeepPose总结 - 知乎

    DeepPose: 基于深度神经网络的人体姿态估计 Human Pose Estimation via Deep Neural Networkse

    DeepPose全面解析(原理+代码+Colab) - 知乎

    https://blog.csdn.net/header_zzj/article/details/116706719

  • 相关阅读:
    【C++】基础入门(二):缺省参数与函数重载
    pg 在执行批量插入问题 --chatGPT
    1022 Digital Library
    美容院管理系统有哪些促销方式?
    oracle中的minus数据比对
    JMM(Java Memory Model,Java内存模型)
    Casbin访问控制框架入门详解及Java案例示范
    计算机体系结构:编译器预取例题(优化前后失效次数计算)
    [Interview]Java 面试宝典系列之 Java 集合类
    拉代码后npm i 提示代码更改9999+是因为创建代码仓库把node_modules文件提交到了git仓库
  • 原文地址:https://blog.csdn.net/light169/article/details/124997546
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号