关键点检测 HRNet网络详解笔记

news2024/11/23 17:02:55

关键点检测 HRNet网络详解笔记

  • 0、COCO数据集百度云下载地址
  • 1、背景介绍
  • 2、HRNet网络结构
  • 3、预测结果(heatmap)的可视化
  • 3、COCO数据集中标注的17个关键点
  • 4、损失的计算
  • 5、评价准则
  • 6、数据增强
  • 7、模型训练

论文名称: Deep High-Resolution Representation Learning for Human Pose Estimation
论文下载地址:https://arxiv.org/abs/1902.09212

0、COCO数据集百度云下载地址

百度云链接: https://pan.baidu.com/s/1U3pPJ5nDluGdCtYi0njejg
提取码: x3qk 复制这段内容后打开百度网盘手机App,操作更方便哦

1、背景介绍

这篇文章是由中国科学技术大学和亚洲微软研究院在2019年共同发表的。这篇文章中的HRNet(High-Resolution Net)是针对2D人体姿态估计(Human Pose Estimation或Keypoint Detection)任务提出的,并且该网络主要是针对单一个体的姿态评估(即输入网络的图像中应该只有一个人体目标)。人体姿态估计在现今的应用场景也比较多,比如说人体行为动作识别,人机交互(比如人作出某种动作可以触发系统执行某些任务),动画制作(比如根据人体的关键点信息生成对应卡通人物的动作)等等。
在这里插入图片描述
在这里插入图片描述

2、HRNet网络结构

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

# Stage1
downsample = nn.Sequential(
    nn.Conv2d(64, 256, kernel_size=1, stride=1, bias=False),
    nn.BatchNorm2d(256, momentum=BN_MOMENTUM)
)
self.layer1 = nn.Sequential(
    Bottleneck(64, 64, downsample=downsample),
    Bottleneck(256, 64),
    Bottleneck(256, 64),
    Bottleneck(256, 64)
)

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

3、预测结果(heatmap)的可视化

在这里插入图片描述
在这里插入图片描述
但在原论文中,对于每个关键点并不是直接取score最大的位置(如果为了方便直接取其实也没太大影响)。在原论文的4.1章节中有提到:
光看文字其实还是不太明白,下面是源码中对应的实现,其中coords是每个关键点对应预测score最大的位置:

for n in range(coords.shape[0]):
    for p in range(coords.shape[1]):
        hm = batch_heatmaps[n][p]
        px = int(math.floor(coords[n][p][0] + 0.5))
        py = int(math.floor(coords[n][p][1] + 0.5))
        if 1 < px < heatmap_width-1 and 1 < py < heatmap_height-1:
            diff = np.array(
                [
                    hm[py][px+1] - hm[py][px-1],
                    hm[py+1][px]-hm[py-1][px]
                ]
            )
            coords[n][p] += np.sign(diff) * .25

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

3、COCO数据集中标注的17个关键点

"kps": ["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"]

最后把每个关键点绘制在原图上,就得到如下图所示的结果。
在这里插入图片描述

4、损失的计算

在论文第3章Heatmap estimation中作者说训练采用的损失就是均方误差Mean Squared Error
在这里插入图片描述
在这里插入图片描述

"kps": ["nose","left_eye","right_eye","left_ear","right_ear","left_shoulder","right_shoulder","left_elbow","right_elbow","left_wrist","right_wrist","left_hip","right_hip","left_knee","right_knee","left_ankle","right_ankle"]
"kps_weights": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.2, 1.2, 1.5, 1.5, 1.0, 1.0, 1.2, 1.2, 1.5, 1.5]

5、评价准则

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

6、数据增强

在这里插入图片描述
注意输入图片比例
在这里插入图片描述

7、模型训练

在这里插入图片描述
多GPU训练指令:

CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 --use_env  train_multi_GPU.py

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

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

相关文章

Parasoft Jtest 2023.1

Parasoft Jtest 2023.1 2692407267qq.com&#xff0c;更多内容请见http://user.qzone.qq.com/2692407267/

知识图谱:信息抽取简易流程

目录 一、标注训练数据 二、训练数据模型 三、实现NER 一、标注训练数据 使用工具:Brat ## BRAT安装 0、安装条件 (1)运行于Linux系统 (2)brat(v1.3p1)仅支持python2版本运行使用,否则会报错 File "standalone.py", line 257except SystemExit, sts:^Syn…

探索最佳建筑工程项目管理软件,提高效率与协作

相比于其他行业的项目管理&#xff0c;建筑工程项目管理的周期一般更长&#xff0c;涉及部门更多&#xff0c;传统的管理方式无法照顾到方方面面。因此越来越多的工程团队希望能通过现代化数据管理工具来协助自己进行建筑工程项目管理。 正所谓有需求就有市场&#xff0c;目前市…

使用SSH连接虚拟机一直提示填写密码

查看ssh服务是否开启 service ssh status 上面的报错&#xff0c;查看ssh、sshd是否都已安装&#xff1a;ps -e| grep ssh 这里显示没有安装sshd 安装sshd&#xff1a;sudo apt-get install openssh-server centos和ubantu的安装指令不一样&#xff0c;centos是使用yum指令进…

el-table 指定层级展开

先来看看页面默认全部展开时页面的显示效果&#xff1a;所有节点被展开&#xff0c;一眼望去杂乱无章&#xff01; 那么如何实现只展开指定的节点呢&#xff1f;最终效果如下&#xff1a;一眼看去很舒爽。 干货上代码&#xff1a; <el-table border v-if"refreshTabl…

C++ Primer 第5章 语句

C Primer 第5章 语句 5.1 简单语句一、空语句二、别漏写分号&#xff0c;也别多写分号三、复合语句&#xff08;块&#xff09; 5.2 语句作用域5.3 条件语句5.3.1 if语句一、使用if else语句二、嵌套if语句三、注意使用花括号四、悬垂else五、使用花括号控制执行路径 5.3.2 swi…

力扣-219.存在重复元素||

Idea 使用哈希表来辅助存储&#xff0c;key存储nums数组中的值nums[i]&#xff0c;value存储该值在nums数组的下标 i&#xff0c;然后遍历nums数组&#xff0c;未出现的重复的存储在hashmap中 AC Code class Solution { public:bool containsNearbyDuplicate(vector<int>…

Kuboard突然无法访问提示:Failed to connect to the database

一、背景 没有做任何特殊操作&#xff0c;突然kuboard访问时&#xff0c;提示如下信息&#xff1a; {"message": "Failed to connect to the database.","type": "Internal Server Error" }二、排查过程 此处kuboard为docker部署的…

二刷力扣--二叉树(3)

106.从中序与后序遍历序列构造二叉树 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 手动构造的步骤&#xff1a; 后序确定根&#xff0c;中序分…

面试必杀技:Jmeter性能测试攻略大全(第一弹)

前言 性能测试是一个全栈工程师/架构师必会的技能之一&#xff0c;只有学会性能测试&#xff0c;才能根据得到的测试报告进行分析&#xff0c;找到系统性能的瓶颈所在&#xff0c;而这也是优化架构设计中重要的依据。 第一章 测试流程&#xff1a; 需求分析→环境搭建→测试…

上位机通过Modbus转Profinet网关与变频器Modbus通讯案例

上位机与变频器Modbus通讯是通过Modbus转Profinet网关来实现的。这个网关可以理解为一个通信翻译器&#xff0c;负责将上位机通过Modbus协议发送的数据转换为Profinet协议&#xff0c;再通过Profinet网络与变频器进行通信。 上位机通过Modbus转Profinet网关与变频器Modbus通讯…

操作系统存储管理

目录 存储管理&#xff08;1&#xff09; 第一节 存储管理概述&#xff08;内存管理&#xff09; 一、存储体系 二、存储管理的任务 三、地址转换 存储管理&#xff08;2&#xff09; 第二节 分区管理方案 一、固定分区 二、可变分区 三、分区管理方案的优缺点 第…

基于Web的足球青训俱乐部管理后台系统的设计与开发

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着社会经济的快速发展&#xff0c;人们对足球俱乐部的需求日益增加&#xff0c;加快了足球健身俱乐部的发展&#xff0c;足球俱乐部管理工作日益繁忙&#xff0c;传统…

安果清理大师-不用的时候我真的不给你推荐这种软件

下载地址&#xff1a;安果移动 视频演示&#xff1a;安果清理大师-不用的时候我真的不给你推荐这种软件_哔哩哔哩_bilibili 全能手机助手&#xff1a;四大功能&#xff0c;全面呵护您的手机&#xff01;☆ 在如今的数字时代&#xff0c;手机已经成为我们生活中不可或缺 的伴侣…

1795_ChibiOS网络书籍阅读_实时系统的一些概念

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 不同的OS在介绍自己的机理的时候都有自己的模型或者抽象概念&#xff0c;ChibiOS也不例外。这里的几个概念需要做一个基本的理解&#xff1a; 1. 进…

如何使用Selenium进行自动化测试

前言 对于很多刚入门的测试新手来说&#xff0c;大家都将自动化测试作为自己职业发展的一个主要阶段。可是&#xff0c;在成为一名合格的自动化测试工程师之前&#xff0c;我们不仅要掌握相应的理论知识&#xff0c;还要进行大量的实践&#xff0c;积累足够的经验&#xff0c;…

RGB格式

Qt视频播放器实现&#xff08;目录&#xff09; RGB的使用场景 目前&#xff0c;数字信号源&#xff08;直播现场的数字相机采集的原始画面&#xff09;和显示设备&#xff08;手机屏幕、笔记本屏幕、个人电脑显示器屏幕&#xff09;使用的基本上都是RGB格式。 三原色 RGB是…

【51单片机】6-静态和动态控制数码管

1.什么是数码管 1.几方面看数码管 1. 外观 2.作用 数码管是显示器件&#xff0c;用来显示数字的 3.分类 单个&#xff08;1位&#xff09;&#xff0c;连排(2位&#xff0c;4位&#xff0c;8位&#xff09; 2.工作原理 1.亮灭原理 其实是内部的照明LED 2.显示数字 原理&…

速码!!BGP最全学习笔记:BGP概述

一、BGP概述 BGP是一种实现自治系统AS之间的路由可达&#xff0c;并选择最佳路由的矢量性协议。早期发布的三个版本分别是BGP-1&#xff08;RFC1105&#xff09;、BGP-2&#xff08;RFC1163&#xff09;和BGP-3&#xff08;RFC1267&#xff09;&#xff0c;1994年开始使用BGP-4…