CVPR 2021 | 微软提出解构式关键点回归, 刷新COCO自底向上多人姿态检测记录!...
本文转载自微软研究院AI头条。
编者按:在拥挤的人群的场景下,由于人群过于密集,重合程度太高,所以每个人的位置难以用人体检测框表示,而传统的一些自下而上的人体姿态估计算法也很难检测到人物的关键点。因此,微软亚洲研究院提出了用直接回归坐标的方法设计多人姿态检测模型,其结果超过了此前的关键点热度图检测并组合的方法,并且在 COCO 和 CrowdPose 两个数据集上达到了目前自底向上姿态检测的最好结果。相关工作“DEKR: Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regression”已被 CVPR 2021 收录。
随着深度学习的发展,运用计算机视觉中的人体姿态估计技术已经能够高精度地从人体的图片中检测出人体关键点,并恢复人体位姿。在应用端,此技术也已经在人机交互、影视制作、运动分析、游戏娱乐等各领域大放异彩。
相比单人姿态检测,由于不知道图像中每个人的位置和总人数,多人姿态检测技术在预测图片中每个人的不同关键点所在的位置时更加困难。其困难在于:不仅要定位不同种类的关键点,还要确定哪些关键点属于同一个人。
针对这一困难,学术界有两种解决方案,一种是自顶向下的方法,先检测出人体目标框,再对框内的人体完成单人姿态检测,这种方法的优点是更准确,但开销花费也更大;另一种则是自底向上的方法,常常先用热度图检测关键点,然后再进行组合,该方法的优点是其运行效率比较高,但需要繁琐的后处理过程。
最近,也有学者采用了基于密集关键点坐标回归的框架(CenterNet)对图片中的多人姿态进行检测。此方法要求对于图中的每个像素点都要直接回归 K 个关键点的位置,虽然简洁,但在位置的准确度方面却一直都显著低于先检测再组合的方法。
而微软亚洲研究院的研究员们认为,回归关键点坐标的特征必须集中注意到关键点周围的区域,才能够精确回归出关键点坐标。基于此,微软亚洲研究院提出了一种基于密集关键点坐标回归的方法:解构式关键点回归(Disentangled Keypoint Regression, DEKR)。
这种直接回归坐标的方法超过了以前的关键点热度图检测并组合的方法,并且在 COCO 和 CrowdPose 两个数据集上达到了目前自底向上姿态检测的最好结果。相关工作“DEKR: Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regression”已经被CVPR 2021收录。
论文地址:
https://arxiv.org/pdf/2104.02300.pdf
代码地址:
https://github.com/HRNet/DEKR
DEKR 方法有两个关键:
1.用自适应的卷积激活关键点区域周围的像素,并利用这些激活的像素去学习新的特征;
2.利用了多分支的结构,每个分支都会针对某种关键点利用自适应卷积学习专注于关键点周围的像素特征,并且利用该特征回归这种关键点的位置。
通过以上两个技术关键,DEKR 学到的特征更加专注于目标关键点周围,因此,回归出的关键点具有很高的精度。
方法:解构式关键点回归(DEKR)
密集关键点回归框架对于每个像素点都会通过回归一个 2K 维度的偏移值向量来估计一个姿态。这个偏移值向量图是通过一个关键点回归模块处理骨干网络得到的特征而获得的。
解构式关键点回归(DEKR)的框架如下图所示,研究员们将骨干网络生成的特征分为K份,每份送入一个单独的分支。每个分支用各自的自适应卷积去学习一种关键点的特征,最后用一个卷积输出一个这种关键点的二维偏移值向量。在图中,为了表示方便,假设了 K=3,事实上,在 COCO 数据集的实验中,K 为17。
图1:解构式关键点回归(DEKR)的框架
关键点1:自适应卷积
一般来说,人体的关键点与中心点的距离比较远,一个在中心点处的普通卷积只能看到中心点周围像素的信息,而一系列在中心点处的普通卷积则可以看到更远的在目标关键点周围的像素信息,但是它不能集中地去激活这些关键点周围的像素。
因此,研究员们采用了自适应的卷积学习来激活关键点周围信息的特征。换句话说,自适应卷积就是普通卷积的加强版。
以上公式中,W 代表卷积核的权重。q 是二维的位置,g_si^q 代表了偏移量,而两者相加代表了被激活的像素点。这个偏移量可以像可形变卷积(Deformable Convolution)一样用额外的普通卷积进行估计,也可以将空间形变卷积(Spatial transformer network)从全局模式扩展到逐像素模式。
在上述选择中,研究员们采用了后者:为每个像素预测仿射变换矩阵和平移矩阵。从而将这两个矩阵作用于普通卷积的卷积核,得到自适应卷积的卷积核。
关键点2:多分支回归
研究员们还进一步用了多分支的结构。每个分支分别用不同的自适应卷积激活对应的关键点周围的像素,然后回归出相应的关键点。研究员们将骨干网络输出的特征分成了 K 个特征,然后利用这些特征估计对应关键点的偏移值向量图。
上述每个公式都代表了其中一个分支为了回归一种关键点所进行的操作。可以看出,这些分支结构相同,但是被相互独立地训练。
图2展示了鼻子、左肩、左膝、左脚踝这些关键点对应分支学到的人的中心点处自适应卷积激活的像素位置。可以观察到通过多分支的结构,每个分支都可以用其自己的自适应卷积集中激活相应关键点位置附近的像素。
通过多分支结构,研究员们显式地将特征解构分别预测了不同的关键点,这让优化变得更加容易,进而让模型可以准确地预测出关键点的位置。
图2:鼻子、左肩、左膝、左脚踝这几个关键点对应分支学到的人的中心点处自适应卷积激活的像素位置。
在损失函数方面,关键点偏移值向量图的损失函数是用人的大小来正则化的光滑 L1 损失函数。公式如下:
此外,在关键点和中心点热度图的损失函数设计中,研究员们还用一个独立的热度图估计分支估计了 K 张关键点热度图和一张中心点热度图,中心点热度图显示了像素是人的中心点的置信度。热度图用来给回归出的人体姿态进行打分并且排序,热度图的损失函数为加权的 L2 损失函数。
结合 L1 和 L2 损失函数就可生成总体的损失函数。具体而言就是由关键点回归的损失函数与关键点和中心点热度图的损失函数加权而成。
在上式中,λ 是一个权重系数,研究员们设置为0.03。
实验结果:COCO和CrowdPose的双重验证
在 COCO 数据集中,研究员们首先将模型在 COCO train2017 上进行了训练,训练时使用了随机旋转、随机缩放、随机平移、随机水平翻转的增广方式,然后对于 HRNet-w32 骨干网络,将图片裁剪到512×512;对于 HRNet-w48,将图片裁剪到640×640,并用 Adam 优化器训练网络,一共训练了140回,初始学习率为 1e-3,分别在第90回和第120回降为 1e-4 和 1e-5。
随后,研究员们又在 COCO val2017 和 COCO test-dev2017 上进行了测试。在测试时,保持了图片长宽比不同,把图片的短边缩放到512/640。此外,还采用了翻转测试,将原始的热度图、关键点位置图和翻转后的热度图、关键点位置图分别做了平均。同时研究员们也尝试了多尺度测试,平均了各个尺度的热度图,并且收集了三个尺度的回归结果。
在 COCO val2017 测试集上的结果如表1所示,表中的“AE”指的是 Associative Embedding。可以看到 DEKR 在 COCO val2017 达到了很好的结果。
表1:在 COCO val2017 中的测试结果
在 COCO test-dev2017 上的结果如表2所示,DEKR 方法是已知第一个在 COCO test-dev2017 上仅用单尺度测试就达到了 70AP 的方法。
表2:在 COCO test-dev2017 中的测试结果
在 CrowdPose 数据集中,研究员们在 CrowdPose 训练集和验证集上训练了网络,训练的方法除了回合数,其余的都与 COCO 数据集完全一致。模型在 CrowdPose 数据集一共训练了300回合,初始学习率为1e-3,分别在第200回和第260回降到 1e-4 和 1e-5。
在 CrowdPose 测试集上的结果如表3所示。
表3:在 CrowdPose 测试集中的测试结果
在消融实验中,自适应卷积在基准方法的基础上将 AP 提高了3.5,然后多分支结构进一步将 AP 提高了2.6,两者结合将基准的 AP 提高了6.1。
表4:消融实验结果
此外,通过错误分析工具可以看到 Jitter 和 Miss 两种错误显著减少,分别减少了4.6和1.5。这也证明了 DEKR 方法确实提高了关键点回归的位置准确度。
图3展示出了模型在回归关键点时注意到的区域,左栏为基准方法,右栏为 DEKR。为了展示得更加清楚,研究员们只用了鼻子和两个脚踝这三个关键点作为例子。从图中可以看到 DEKR 的自适应卷积和多分支结构确实让特征更加集中注意到关键点周围的区域。
图3:模型在回归关键点时注意到的区域,左栏为基准方法,右栏为 DEKR
研究员们将回归出的关键点匹配到了距其最近的从热度图检测出的关键点,这种匹配的做法对单尺度测试(ss)结果影响不大,但是提高了多尺度测试(ms)的结果。其在三个测试数据集不同的骨干网络下的结果如表5所示。
表5:不同的骨干网络下的结果,“D-32”表示使用了 HRNet-W32 骨干网络,“D-48”表示使用了 HRNet-W48 骨干网络。
综上,DEKR 显著地提高了关键点回归的质量,并且达到了现阶段自底向上姿态检测的最好结果。DEKR 将用于回归的特征解构,这样每个特征都可以集中注意到相应关键点区域,进而更准确地回归对应关键点。
备注:姿态
姿态估计交流群
人体姿态估计、手势识别等更多新鲜资讯,若已为CV君其他账号好友请直接私信。
在看,让更多人看到
CVPR 2021 | 微软提出解构式关键点回归, 刷新COCO自底向上多人姿态检测记录!...相关推荐
- CVPR 2021 | 微软提出“解构式关键点回归“, 刷新COCO自底向上多人姿态检测记录!
随着深度学习的发展,运用计算机视觉中的人体姿态估计技术已经能够高精度地从人体的图片中检测出人体关键点,并恢复人体位姿.在应用端,此技术也已经在人机交互.影视制作.运动分析.游戏娱乐等各领域大放异彩. ...
- DEKR 解构式关键点回归(一):算法思想与原理
前言 CW前阵子玩了下人体姿态估计,用上了微软新鲜出炉的算法--DEKR: Bottom-Up Human Pose Estimation Via Disentangled Keypoint Regr ...
- DEKR 解构式人体关键点回归(二):标签分配(Label Assignment)
前言 上一期 DEKR 解构式人体关键点回归(一):算法思想与原理 解析了DEKR的算法与工作原理,这期本文将聚焦于标签分配.当然,首先得了解标签是什么,明确模型的学习目标,然后再进一步看看如何制作与 ...
- CVPR 2021 Oral | GLEAN: 基于隐式生成库的高倍率图像超分辨率
摘要 · 看点 在 CVPR 2021 上, 南洋理工大学 S-Lab 和商汤科技等提出的隐式生成库(Generative Latent Bank), 针对高倍率图像超分辨中的质量和保真度问题提出了一 ...
- CVPR 2021 | Facebook提出FP-NAS:搜索速度更快、分类精度更高、性能更好
作者|严志程 来源|机器之心 来自 Facebook AI 的严志程团队发表一种新的神经架构的快速搜索算法.该算法采用自适应架构概率分布熵的架构采样,能够减少采样样本达 60%,加速搜索快 1.8 倍 ...
- 展开运算符解构赋值_解构式展开式搜索栏
展开运算符解构赋值 View demo 查看演示Download Source 下载源 Maybe you have noticed the little adjustments that we di ...
- CVPR 2021 论文解读Vol.6 I 动态区域感知卷积,进一步提升分类/检测/分割性能
论文单位:旷视研究院 论文链接:https://arxiv.org/abs/2003.12243 作者:Jin Chen, Xijun Wang, Zichao Guo, Xiangyu Zhang, ...
- DEKR 解构式人体关键点回归(三):损失函数
前言 损失函数是一项工作里很重要的部分,它意在每个训练阶段告诉模型有多"犯傻".离"正确答案"还有多远,然后基于损失反向传播回去使得各模型参数获得相应的梯度,于 ...
- CVPR 2023 | 微软提出RODIN:首个3D扩散模型高质量生成效果,换装改形象一句话搞定!...
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->[扩散模型]微信技术交流群 转载自:微软亚洲研究院 编者按:近日,由微软亚洲研究院提出的 ...
最新文章
- created不能异步_mpvue里created里异步请求结果,如何在beforeMount里获取到呢
- 真希望永远用不到这些代码
- 服务器机房 维护,服务器机房建设与管理维护.pdf
- 菜鸟学习笔记:Java提升篇2(容器2——Map、Set、迭代器)
- python必备基础代码-机器学习算法基础(使用Python代码)
- [NOI2018]你的名字(68pts)
- Js返回顶部实例代码
- Android开发环境的安装与配置(两种方法)
- 呼吸系统疾病病人的护理题库【2】
- JindoFS解析 - 云上大数据高性能数据湖存储方案
- imu使用与卡尔曼融合定位
- android立体3D效果_3D立体画手绘墙体彩绘
- stream filter 多条件筛选
- Java使用cookie和session管理用户状态
- 微信小程序悬浮球效果
- FutureTask源码解析二
- 手游代理平台有哪些,有没有好的游戏平台推荐?推荐云诚盒子
- CollapsingToolbarLayout折叠toolbar的使用说明
- 关于自制utau软件,widegt,动态更改控件长度等等经验
- 浮躁的社会浮躁的自己
热门文章
- LMS Virtual Lab对发动机噪声进行仿真的2种方法
- 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(6)--(计算共线矩阵T)
- 安装FFmpeg后,发现没有生成ffplay的解决办法
- Golang笔记——go使用Redis
- Personal Rank——个性化推荐召回算法python
- UML学习笔记--导航
- navicat存储过程返回值为空_Excel VBA解读(128):Function过程详解——枯燥的语法...
- html中如何设置几张图片在一个div里来回切换_从 B 站的秋季主题中学习 “图层组合动画”...
- java 并行_Java 中不同的并行实现的性能比较
- oracle11g 安装报告,[数据库]oracle11g的standby性能分析报告statpack安装_星空网