爱笑的小姐姐 · 8月4日 · 北京市

CAL:低分辨率姿态估计

image.png

论文名称:Low-resolution Human Pose Estimation

论文地址:https://arxiv.org/pdf/2109.09090v1.pdf

今天无意中刷到的一篇论文,感觉整体的思想有点接近于RLE,但是提出的方法和取得的效果又不如RLE,所以大致上算一个低配版RLE吧,不过也因此比RLE容易理解一些,我感觉可以结合RLE进行对比介绍。另一方面,本文的实验重心放在了低分辨率姿态估计的分析上,我觉得有一些有意思的东西,所以分享一下。

因为内容比较简单,而且我一贯的风格是喜欢用自己的话来转述,所以这篇笔记就随意一点了~感觉总结下来一句话:低分辨率和轻量化场景的关键点定位任务,提点主要看概率分布的拟合。

0. 背景介绍

在姿态估计任务中,Heatmap-based方法的精度很大程度上受输入图片尺寸的影响,用专业术语来说叫量化误差(quantization error),简单来说就是,输入图片越大,最终输出的Heatmap就越大(因为模型的下采样率是固定的),那么argmax操作能够获得的坐标数值就越大(argmax返回的是整数),因此放大还原到输入尺寸下的误差就越小。

以上如果还不好理解的话,我给一个极端的例子:假如输入图片尺寸为64x64,经过网络32倍下采样,输出的heatmap尺寸就会是2x2,那么argmax能得到的结果就只有0和1,在这样一张图上模型拟合得再好也没用。

尽管Heatmap-based方法有量化误差带来的弊端,但它实在太香了,训练收敛快、精度高,所以大家还是想用它,于是提出了很多改进方案,而本文作者认为最有效的方案是offset-based方法。

那么,作者为什么认为offset-based方法最好呢?

1. Why offset-based methods?

作者在Heatmap-based方法上做了一个实验,对比了输入图片尺寸变化,对不同Heatmap-based方法的影响,结果如下:

image.png
可以看到尽管随着输入尺寸变小,所有方法都在掉点,但是UDP方法能显著缓解这个问题,换句话说,UDP在低分辨率图片上表现更好。

用UDP作者介绍的原话来说,UDP包含两个主要的思想:一是在数据处理的时候,使用单位长度去度量图像的大小,而非像素的多少。二是引入一种在理想情况下无统计误差的编码解码方法。

关于UDP我打算之后专门写一篇笔记,这里暂时可以理解为UDP通过对偏移进行建模,解决了数据处理过程中向下取整引入的数值误差。

由于UDP在低分辨率上优秀的表现,作者认为对offset进行建模的方法对低分辨率姿态估计是好用的。

2. Offset-based Methods

image.png

所谓offset-based方法,简单来说就是先用heatmap-based方法预测一个粗略的位置,然后再用regression-based方法预测粗略位置的一个偏移,用粗略位置加偏移得到最终的预测结果。

这种思路可以总结为一种“检测+回归”的方法,也可以说是“定位+偏移”,很直观也很简单,在目标检测中也普遍用到:检测目标中心点,然后回归得到物体的长宽。

本文指出,传统的offset-based方法是有局限性的:训练和测试不一致

在训练时,监督是逐像素的,模型预测的Heatmap会跟渲染出的Target Heatmap进行逐像素的比较,要求每个像素都能预测出正确的概率值,换句话说,每个像素同样重要,是平等对待的。

但是在测试阶段,我们的argmax操作其实只关注最大值点,至于其他部分的预测准确与否我们根本不care,这是不一致的体现其一

其二是,在网络结构上,Heatmap和offset的预测分属于两个不同的头部,在结构上它们是解耦的。换句话说,训练时模型在解决两个独立的任务,但在测试时却要把二者的结果加起来作为最终预测。这样的不一致很容易导致,模型对两个任务的优化程度不同,使得最终的结果不是最优的。

这里我个人提一嘴,目标检测中其实也存在这种不一致问题,目标的分类质量预测和bbox预测也是两个独立的头部和任务在进行优化,但最终进行分数评估时却会把两个分数合并。在GFLv2中指出了这个问题,并通过一个基于bbox表征的统计量回归权重,加权到分类分支上,使得两个独立的任务建立了关联。

而本文解决不一致问题的方案称为Confidence-Aware Learning(CAL)。

3. Confidence-Aware Learning

简单来说,CAL的做法也是将两个独立的头部建立关联,而建立关联的思想非常简单:既然我们只关心最大值点的位置正确与否,那么在训练时,越靠近目标点的像素,学习权重是不是应该越高?

说起来,这个地方有点套娃的嫌疑。因为Heatmap-based方法本身其实也是基于类似的先验假设设计出来的,我们认为越靠近目标点的像素,概率值应该越大,所以才用高斯分布渲染Target Heatmap来进行监督。

而本文更进一步指出,监督信息上的确是越近的像素数值越高了,但每个像素的重要性不一样啊,所以我们还得给每个像素的损失加个权,越靠近目标点的像素,损失权重也得越大

说白了,我们只关心最大值点的偏移修正,其他位置上的修正因为用不到,所以需要抑制这部分的损失值的干扰。

那么这个权重怎么得来呢?网络本身干的活是啥,就是预测高斯分布嘛,现成的结果,我加权我自己,有点自注意力内味了。

4. Gaussian offset weighing

别急,以上思路虽然说得通,但需要注意的是,不同像素上offset的分布是什么样,是需要实验验证的。

本文作者设计了一个实验,统计Heatmap粗略预测的坐标,跟GT的偏差值范围的分布:

image.png

根据偏差值的大小进行了分段统计,最终得出了一个我们都能预料到的结论:这个偏差值果然符合高斯分布。

但是需要注意的是,这个高斯分布跟我们网络预测的Heatmap的目标高斯分布并不是一回事(或者说,这两个高斯分布的mu和sigma并不一定相同),所以我们不能直接用网络预测的Heatmap来“我加权我自己”。

本文采用的是一种更加数学的方法:通过高斯混合模型(GMM)来预测offset权重。

简单来说,我们的训练数据只是对真是数据分布的一个采样,采样数据的分布跟真实数据分布总是存在差异的。要想得到靠谱的真实数据分布,我们可以通过训练高斯混合模型来拟合真实分布,具体而言,就是用每次粗略预测的坐标值跟GT计算offset,用offset作为采样点来训练一个初始高斯混合模型,然后用高斯混合模型预测的概率值作为权重来进行损失加权。

到了这里,“对offset进行建模得到真实数据分布”这个思想,有没有觉得很有RLE的感觉?RLE中是建模数据真实分布跟简单分布之间的误差的分布,这里是建模粗略预测跟真实GT分布之间的误差的分布。

不过差异也很明显,RLE中flow模型学到的分布可是任意的,相当于在简单的高斯分布或拉普拉斯分布基础上叠加一个差异分布,以拟合真实分布;而本文的方法都是建立在高斯分布的假设基础上,认为预测值跟真实分布的差异也是一个高斯分布,这会导致最终拟合的“真实分布”准确性上就输了一筹。

但好处是这个方法很简单容易理解,处理流程如下图所示:

image.png

即,先用网络输出的Heatmap作为粗略预测值,跟GT计算offset,然后把offset送进GMM,用EM算法迭代拟合,然后基于GMM得出的归一化高斯分布值偏移到图像坐标系下进行加权。

5. 训练与测试

由于设计思想上不如RLE,最终本文的方法在操作上也更繁琐一些。首先比较让人不happy的是,本文的方法是二阶段的。

这是非常无可奈何的,因为GMM拟合的前提是,粗略预测的关键点需要正确,而在训练的初期,模型预测的结果是不可靠的,并不能用于训练GMM。

在RLE中同样存在类似的问题,即在训练初期flow模型的预测不准确,不能直接作为学习目标进行回归,于是作者设计出了残差结构,让flow模型在初期预测不准的影响大大减弱。

在本文的方法中,第一阶段模型先训练Heatmap分支和offset分支:

image.png

6. 实验结果

最后卖一下结果:

image.png

在低分辨率输入的情况下,CAL方法能取得比UDP更好的结果。

而这种加权方式的改进带来的收益有多少呢:

image.png

其实说实话也不是很高,只能说还不错吧。

本文还实验了一个有意思的东西,用超分模型来对低分辨率图片提高分辨率,从64x48提升到256x192:

image.png

从结果来看,超分模型的确能带来还不错的提升,不过生成出来的也还是比不上原装的图片精度高。并且CAL方法由于是基于概率分布的预测,直接使用低分辨率图片依然取得了更好的结果。

本文同时也探索了GMM拟合时设置的高斯分布数量对结果的影响:
image.png

其实我感觉多个高斯分布拟合带来的提升非常有限,还是用单个就足够好了,多个反而有过拟合的嫌疑。

image.png

相比之下,在高分辨率输入时CAL能带来的提升就比较有限了,虽然还是能带来些许提升,但总体而言,本方法还是更适用于低分辨率场景。

7. 结语

本文提出的方法在我看来虽然不是最优的,但对offset-based方法做了一个比较详细的介绍,并指出了heatmap方法监督上的一个局限,我觉得这是一个可以学习的点。

相比于RLE激进地直接回归,这种“检测+回归”的范式很大程度上其实降低了回归任务的难度,在直觉上我感觉是有机会超越纯RLE方法的,我们也可以很容易地将RLE迁移到本文的方法中,用flow模型预测的概率分布作为权重来替换GMM。后续有时间的话也许我会实验一下。

那么以上就是这篇笔记的全部内容了,感谢阅读~如果觉得让你有所收获的话,欢迎点个赞~

文章来源:镜子的掌纹
作者: 镜子的掌纹

推荐阅读

更多嵌入式AI相关技术干货请关注嵌入式AI专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
2 阅读 126
推荐阅读
关注数
14757
内容数
770
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息