目前在人体姿态估计任务中,广泛采用heatmap作为训练目标,heatmap的编码和解码都遵从固定范式,却从未被深入探究。
不同于大量对网络结构的创新,CVPR 2020 中出现了两篇文章对heatmap提出了新的理解,并引入了无偏的编码/解码方式。这也揭示了一个全新的研究方向。
一、回顾heatmap的传统编解码方式
heatmap是keypoints的概率分布图,通常建模成围绕每个keypoint的高斯分布的叠加。
编码(encoding):原始图像 --> ground truth heatmap
解码(decoding):predicted heatmap --> 原始图像中的keypoint坐标
受限于计算开销,原始图像通常需要进行下采样,再输入网络中;预测出来的heatmap中的坐标信息也需要恢复到原始图像尺度。在这个过程中,就引入了sub-pixel的系统量化误差。
传统的编码过程包括:
- 下采样
g ′ = ( u ′ , v ′ ) = g λ = ( u λ , v λ ) \boldsymbol{g}^{\prime}=\left(u^{\prime}, v^{\prime}\right)=\frac{\boldsymbol{g}}{\lambda}=\left(\frac{u}{\lambda}, \frac{v}{\lambda}\right) g′=(u′,v′)=λg=(λu,λv) - 量化
g ′ ′ = ( u ′ ′ , v ′ ′ ) = quantise ( g ′ ) = quantise ( u λ , v λ ) \boldsymbol{g}^{\prime \prime}=\left(u^{\prime \prime}, v^{\prime \prime}\right)=\text { quantise }\left(\boldsymbol{g}^{\prime}\right)=\text { quantise }\left(\frac{u}{\lambda}, \frac{v}{\lambda}\right) g′′=(u′′,v′′)= quantise (g′)= quantise (λu,λv) - 高斯分布生成
G ( x , y ; g ′ ′ ) = 1 2 π σ 2 exp ( − ( x − u ′