您当前的位置: 首页 > 

暂无认证

  • 1浏览

    0关注

    98320博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

告别Heatmap!人体姿态估计表征新方法SimDR

发布时间:2022-01-10 07:00:00 ,浏览量:1

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

7e2ddb7ddff7e39551d396313a0f3965.png

作者丨Tau

编辑丨极市平台

导读

 

本文提出了一种姿态估计的解耦坐标表征:SimDR,将关键点坐标(x, y)用两条独立的、长度等于或高于原图片尺寸的一维向量进行表征,在CNN-based和Transformer-based人体姿态估计模型上均取得了更好的表现。

6c8a921e08a4fedccca072396c59b6cc.png

论文链接:https://arxiv.org/pdf/2107.03332.pdf

代码链接:https://github.com/leeyegy/SimDR

2D Heatmap-based方法由于其优秀的精度表现,过去多年中都是姿态估计领域的主宰,不过今年以来,陆续出现了很多优秀的工作,都在尝试丢弃用Heatmap进行特征表示:前有基于transformer的Tokenpose狂刷时髦值,后有用flow model重铸Regression荣光的RLE怒砍ICCV Oral。这两篇优秀的工作我都有做过详细的介绍,感兴趣的同学可以看这里:

论文笔记及思考:Human Pose Regression with Residual Log-likelihood Estimation(ICCV 2021 Oral) 

https://zhuanlan.zhihu.com/p/395521994

论文笔记TokenPose: Learning Keypoint Tokens for Human Pose Estimation(附pytorch导出onnx说明)

https://zhuanlan.zhihu.com/p/443243421

终于,在最近我刷到了这样一篇论文,发出了大家共同的一个问题:对于姿态估计任务而言,2D高斯热图形式的特征表示真的是必要的吗?

1. 简介

首先本文列举了Heatmap-based方法饱受诟病的几大罪状:

  1. 在低分辨率图片上掉点严重:对于HRNet-W48,当输入分辨率从256x256降到64x64,AP会从75.1掉到48.5

  2. 为了提升精度,需要多个上采样层来将特征图分辨率由低向高进行恢复:通常来说上采样会使用转置卷积来获得更好的性能,但相应的计算量也更大,骨干网络输出的特征图原本通道数就已经很高了,再上采样带来的开销是非常庞大的

  3. 需要额外的后处理来减小尺度下降带来的量化误差:如DARK修正高斯分布,用argmax获取平面上的极值点坐标等

因此,本文发出疑问:用2D高斯热图表征来联合编码横纵坐标真的是维持高精度必要的吗?

在过去一年中,Transformer模型在CV领域兴起,涌现了一批不错的在姿态估计任务上的工作,如Tokenpose。尽管Tokenpose模型最终的输出依然是heatmap形式,但在模型中间的特征表示却是一维向量的形式(用一个token表征一个关键点,具体细节可以看我之前的文章),最终通过一个MLP把一维向量映射到HxW维再reshape成2D,并没有像传统FCN那样,在整个pipeline中维持2D特征图结构。这些工作说明,带有显式空间结构的高斯热图表征可能并不是编码位置信息所必需的。

于是,为了探索更高效的关键点表征方式,本文提出了一种姿态估计的解耦坐标表征,Simple Disentagled coordinate Representation(SimDR),将关键点坐标(x, y)用两条独立的、长度等于或高于原图片尺寸的一维向量进行表征,在CNN-based和Transformer-based人体姿态估计模型上均取得了更好的表现。

f9a40faf00d8907e718d00ec32192245.png 2. SimDR

传统的Heatmap-based方法通过2D高斯分布生成高斯热图作为标签,监督模型输出,通过L2 loss来进行优化。而这种方法下得到的Heatmap尺寸往往是小于图片原尺寸的,因而最后通过argmax得到的坐标放大回原图,会承受不可避免的量化误差。

坐标编码

在本文提出的方法中,关键点的x和y坐标通过两条独立的一维向量来进行表征,通过一个缩放因子k(>=1),得到的一维向量长度也将大于等于图片边长。对于第p个关键点,其编码后的坐标将表示为:

缩放因子k的作用是将定位精度增强到比单个像素更小的级别

坐标解码

假设模型输出两条一维向量,很自然地,预测点的坐标计算方法为:

即,一维向量上最大值点所在位置除以缩放因子还原到图片尺度。

经历了lambda次下采样的高斯热图,量化误差级别为[0, lambda/2),而本文的方法级别为[0, 1/2k)。

网络结构 04cdfb3f9864d0b4a80c44828ee091f9.png

在清楚了原理后,SimDR的头部结构也就非常直观了,n个关键点对应n个embedding,也就是网络输出n条一维向量,再通过线性投影(MLP等)为n个SimDR表征。

具体地讲,对于CNN-based模型,可以将输出的特征图拉直为d维的一维向量,再通过线性投影把d维升高到W*k维和H*k维。而对于Transformer-based模型,输出则已经是一维向量,同样地进行投影即可。

训练target和目标函数

很自然地可以发现,本文的方法将关键点定位问题转化为了分类问题,因而目标函数可以使用相较于L2(MSE) Loss 性质更优的分类loss,简单起见本文使用了交叉熵。

一点私货:将定位问题转化为分类问题其实之前已经有大量的工作,比如Generalized Focal Loss工作中提出的Distribution Focal Loss,便是利用向量分布来表征bbox坐标点的位置,在轻量和精度上均取得了优异的成绩,也衍生出了有名的开源项目Nanodet。

更进一步

上面所述的SimDR存在一个问题,即作为分类问题标签是one-hot的,除了正确的那一个点外其他错误坐标是平等,会受到同等的惩罚,但实际上模型预测的位置越接近正确坐标,受到的惩罚应该越低才更合理。因此,本文进一步提出了升级版SimDR,通过1D高斯分布来生成监督信号,使用KL散度作为损失函数,计算目标向量和预测向量的KL散度进行训练:

e5d8c158bcf90d73be63b84f14784361.png 3. 实验 28ea94275da14aaa3e45952c9f5453f4.png

在COCO数据集上的实验对比可以看到,在小尺度(64x64)图片输入上Heatmap方法出现严重的掉点问题,哪怕是强如HRNet-W48作为backbone也难逃AP掉到50以下的厄运,而SimDR方法在更低计算量的情况下多了10.6个点的提升。

另一个值得注意的点是,Tokenpose作为Transformer-based方法,也是唯一一个在64x64图片输入上AP高于50的网络,由此可见Transformer的强大。而且这里的实验中使用的是Tokenpose-S网络,其特征提取层只由几层卷积构成,我有理由相信,如果换成Tokenpose-L等用HRNet做特征提取的结果会更加爆炸。

BTW,到这个时候我才注意到Tokenpose也是本文作者的工作,难怪如此紧跟时髦hhhh

3526cd8ea741f912fd62b9cc4ab0bb0d.png

加强版SimDR的对比实验中可以看到,在较大尺度的图片输入上,SimDR也还有不错的表现,但随着图片变大,Heatmap的收益也越来越高,在大尺度384x288上甚至超越了普通版SimDR。作者分析其中的原因在于,足够大的输入图片会导致全连接层参数量过高,又因为对错误的惩罚一样,因而模型出现了过拟合,因此采用加强版SimDR来训练是更好的选择。

作者同时也表示,更加仔细地设计损失函数和监督信号能将SimDR的性能边界进一步推进。看到这一句时我瞬间想到了Tokenpose和RLE,跟这篇文章三者可以很轻松的结合起来,RLE+HRNetW48在COCO test-dev上取得的成绩为75.5AP,而本文使用加强版SimDR达到了76AP,之后我会实验一下三者的结合。

而在延迟方面,一维表征带来的提升是巨大的,在中小尺度输入上均能取得参数和精度上的优势,同时免去了Heatmap-based方法所需要的繁琐后处理和上采样开销,这些优点对于轻量级模型和需要落地部署的实时应用都是极其有利的,也是我一直以来关注的重点。

k值的选择 cdd800963b9bf3d80650041c285b6960.png

在两个CNN-based模型上验证了不同k取值的表现,总体而言k取2或3是足够优秀的,更大的k带来的收益几乎可以忽略不计了,并且为了避免过拟合的风险,越大的输入图片应该用越小的k。不过作为对超参数更敏感的Transformer,本文并没有做相关的实验,也许作为Tokenpose的作者可以也跑一下实验。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码) 3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进 4.国内首个面向工业级实战的点云处理课程 5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解 6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦 7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化 8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

11.自动驾驶中的深度学习模型部署实战

12.相机模型与标定(单目+双目+鱼眼)

13.重磅!四旋翼飞行器:算法与实战

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉、CV&深度学习、SLAM、三维重建、点云后处理、自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

2bc14db8d05e7816809f3b64a05452b5.png

▲长按加微信群或投稿

ffb1a1b4cd0e90a1771ccaac93b4a830.png

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM、自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

6c3e91434868a924d72a40514591e896.png

 圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.3329s