SimCC: a Simple Coordinate Classification Perspective for Human Pose Estimation
SimCC(ECCV'22):基于坐标分类计算关键点,即计算每个关键点在x轴、y轴上的概率。
代码仓库
注:笔者不熟悉姿态估计相关领域的方法,仅记录自己的理解。
动机
以往基于一维和二维热图(heatmap)的方法消耗(cost)大,且需要后处理。而本文基于坐标分类的方法则消耗少且不需要后处理。
方法
假定预测目标为\(n\)个关键点\(\{(o^i_x,o^i_y)\}_{i=1}^n\)的坐标,则首先通过网络预测得到各个关键点的表示\(\{K_i\}_{i=1}^n\),再通过两个分类器分别计算每个关键点在坐标轴上的概率。此处关键点的表示通过将特征图展开为一维得到,可以避免池化操作导致的空间信息丢失。
假设图片大小为\((H,W)\),则关键点的坐标类别设置为\(c_x\in[1,N_x]\)及\(c_y\in[1,N_y]\)。其中,类别通过一个缩放因子\(k \geq 1\)对长宽进行放大,即\(N_x=H \times k\)且\(N_y=W \times k\),从而实现子像素(sub-pixel)级别的精度。相较于使用下采样的热图方法,减少了量化误差。
若直接套用分类损失,则坐标所在类别之外的部分损失是平等的。而在本文坐标分类的场景下,模型预测的位置越靠近真实值损失越低才更合理,因此通过Laplace / Gaussian Label Smoothing对标签进行了平滑。根据网上博客的内容,这里作者是对one-hot编码的标签加了高斯分布,再通过KL散度进行监督。
实验
性能达到SOTA水平,由于不需要上采样等耗时的操作,因此减少了57.3%的GFLOPs,并提高了23.5%的速度。
总结
根据本文的描述,相较于之前基于热图的方法,SimCC由于直接对特征向量分类,因此省去了许多步骤,其中就包括消耗大的上采样、热图后处理,并通过控制坐标离散化程度实现自定义的量化精度。总结如下:
优势:
- 形式较为优雅,规避了许多由于上下采样带来的弊端。
- 不需要上采样等一系列计算,计算效率更高。
不足:
- 关键点表示的维度与输入图像的长宽有关,因此可能需要固定输入图片大小。
- 依然需要通过高斯分布等手段对one-hot向量进行平滑,某种程度上相当于把热图转移到了坐标轴上。
总而言之,本文方法给出了一种姿态估计的新框架,虽然受限于一些实现细节的问题对输入输出有一些限制,但避免了原有热图方法带来的各种麻烦。