| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> HRNet -> 正文阅读 |
|
[人工智能]HRNet |
HRNet人体关键点检测 论文:Deep High-Resolution Representation Learning for Hunman Pose Estimation HRNet 是一个 2D 的检测方案,并非是一个 3D 的检测方案。它是一个单一个体姿态评估,每次只能识别一个人的姿势。所以需要一个特定的目标检测网络,先将每个人的位置信息得到,之后再逐个输入。
0
0
0: 对于 Human Pose Estimation 任务,现在基于深度学习的方法主要有两种:
HRNet 就是基于 heatmap 的一种方式。 目录
项目结构如图 2 2 2 ,是我寻找到的关于 HRNet-w32 的模型结构简图,在论文中除了提出 HRNet-w32 外还有一个 HRNet-w48 的版本,两者区别仅仅在每个模块所采用的通道个数不同,网络的整体结构都是一样的。而该论文的核心思想就是不断地去融合不同尺度上的信息,也就是论文中所说的 Exchange Blocks 。 通过图 2 2 2 可以看出, HRNet 首先通过两个卷积核大小为 3 × 3 3\times3 3×3 步距为 2 2 2 的卷积层(后面都跟有 BN 以及ReLU )共下采样(缩小图片)了 4 4 4 倍。然后通过 Layer1 模块,这里的 Layer1 其实和之前讲的 ResNet 中的 Layer1 类似,就是重复堆叠 Bottleneck ,注意这里的 Layer1 只会调整通道个数,并不会改变特征层大小。下面是实现 Layer1 时所使用的代码。
接着通过一系列 介绍完 接着再来阐述图中的 Up 和 Down 究竟是怎么实现的,对于所有的 Up 模块就是通过一个卷积核大小为
1
×
1
1\times1
1×1 的卷积层然后 BN 层最后通过 最后,需要注意的是在 Stage4 中的最后一个 Exchange Block 只输出下采样 4 倍分支的输出(即只保留分辨率最高的特征层),然后接上一个卷积核大小为 1 × 1 1\times1 1×1卷积核个数为 17 (因为 COCO 数据集中对每个人标注了 17 个关键点)的卷积层。最终得到的特征层( 64 × 48 × 17 64\times48\times17 64×48×17 )就是针对每个关键点的 heatmap (热力图)。 预测结果(heatmap)可视化关于预测得到的 heatmap (热力图),为了方便理解,画了下面这幅图。首先,左边是输入网络的预测图片,大小为 256 × 192 256\times192 256×192,为了保证原图像比例,在两侧进行了 padding 。右侧是我从预测结果,也就是heatmap( 64 × 48 × 17 64\times48\times17 64×48×17 )中提取出的部分关键点对应的预测信息( 48 × 17 × 1 48\times17\times1 48×17×1 )。上面有提到过,网络最终输出的 heatmap 分辨率是原图的 1 / 4 1/4 1/4 ,所以高宽分别对应的是 64 和 48 ,接着对每个关键点对应的预测信息求最大值的位置,即预测 score 最大的位置,作为预测关键点的位置,映射回原图就能得到原图上关键点的坐标(下图有画出每个预测关键点对应原图的位置)。 在原论文中,对于每个关键点并不是直接取 score 最大的位置(如果为了方便直接取其实也没太大影响)。在原论文的 4.1 章节中有提到:
如果看不懂的话可以借鉴下图。假设对于某一关键点的预测 heatmap 如下所示,根据寻找最大 score 可以找到坐标 ( 3 , 3 ) (3, 3) (3,3) 点,接着分别对比该点左右两侧( x x x 方向),上下两侧( y y y 方向)的 score 。比如说先看左右两侧,明显右侧的 score 比左侧的大(蓝色越深代表 score 越大),所以最终预测的 x x x 坐标向右侧偏移 0.25 0.25 0.25 故最终 x = 3.25 x=3.25 x=3.25 ,同理上侧的 score 比下侧大,所以 y y y 坐标向上偏移 0.25 0.25 0.25 故最终 y = 2.75 y=2.75 y=2.75 。 损失的计算在论文第 3 3 3 章 Heatmap estimation 中作者说训练采用的损失就是均方误差 Mean Squared Error。
通过前面讲的内容我们知道网络预测的最终结果是针对每个关键点的 heatmap ,那训练时对应的 GT 又是什么呢。根据标注信息我们是可以得知每个关键点的坐标的(原图尺度),接着将坐标都除以 4 (缩放到 heatmap 尺度)在进行四舍五入。针对每个关键点,我们先生成一张值全为 0 的 heatmap ,然后将对应关键点坐标处填充 1 就得到下面左侧的图片。如果直接拿左侧的 heatmap 作为 GT 去训练网络的话,你会发现网络很难收敛(可以理解为针对每个关键点只有一个点为正样本,其他 64 × 48 ? 1 64\times48-1 64×48?1 个点都是负样本,正负样本极度不均),为了解决这个问题一般会以关键点坐标为中心应用一个 2D 的高斯分布(没有做标准化处理)得到如右图所示的 GT(随手画的不必深究)。利用这个 GT heatmap 配合网络预测的 heatmap 就能计算 MSE 损失了。 下面这幅图是某张真实训练样本(左侧)对应 nose 关键点的 我们知道如何计算每个关键点对应的损失后还需要留意一个小细节。代码中在计算总损失时,并不是直接把每个关键点的损失进行相加,而是在相加前对于每个点的损失分别乘上不同的权重。下面给出了每个关键点的名称以及所对应的权重。
评价准则在目标检测( Object Detection )任务中可以通过 IoU(Intersection over Union)作为预测 bbox 和真实 bbox 之间的重合程度或相似程度。在关键点检测(Keypoint Detection)任务中一般用 OKS( Object Keypoint Similarity )来表示预测 keypoints 与真实 keypoints 的相似程度,其值域在 0 到 1 之间,越靠近 1 表示相似度越高。在 MS COCO 官网中有详细介绍 OKS 指标,详情参考: https://cocodataset.org/#keypoints-eval
其他数据增强在论文中作者采用的数据增强有:随机旋转(在
?
4
5
°
-45^{\circ}
?45° 到
4
5
°
45^{\circ}
45° 之间),随机缩放(在
0.65
0.65
0.65 到
1.35
1.35
1.35 之间),随机水平翻转以及 注意输入图片比例假设对于输入网络图片固定尺寸是
256
×
192
256\times192
256×192 (height : width = 4 : 3),但要预测的人体目标的高宽比不是4 : 3,此时千万不要直接简单粗暴的拉伸到
256
×
192
256\times192
256×192 ,正确的方法是保持目标原比例缩放到对应尺度然后再进行相应的 padding (如下图中间所示,由于目标的 height : width > 4 : 3,所以保持原比例将 height 缩放到 256,然后在图片 width 两测进行 padding 得到
256
×
192
256\times192
256×192 )。如果拥有原始图像的上下文信息的话可以直接在原图中固定 height(目标 height : width > 4 : 3 的情况)然后调整 width 保证 height : width = 4 : 3,再重新裁剪目标并缩放到
256
×
192
256\times192
256×192 (如下图右侧所示)。这样预测的结果才是准确的。如果直接简单粗暴的拉伸目标,准确率会明显下降。因为作者源码中训练网络时始终保证目标的比例不变,那么我们在预测时也要保证相同的处理方式,即保证目标比例不变。前人在 COCO2017 val 数据上对齐论文精度时,就是由于没有注意这个细节,导致精度差了十几个点。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/29 8:38:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |