这是一篇CVPR2020的文章,性能目前仍居前列,故分享一下
论文链接.
MERL-RAV Dataset.
介绍
目前存在的人脸关键点检测算法在多数情况下表现足够好,但是也存在一些问题。当前主流的SOTA方法只是简单的输出了关键点的位置信息,并没有对关键点位置的不确定度进行评估,这样会导致下游任务在使用时不能确定能否相信这些预测的关键点位置。
为了解决这个问题,这篇文章提出了一种同时估计关键点位置和用参数化概率分布表示估计位置不确定度的方法。模型同时能顾估计关键点的可见性,即关键点是否被遮挡。
作者发现计算均值和协方差的方法非常关键。对于关键点位置的计算使用热力图而不是坐标回归。为了能够可微,并没有使用argmax(这是一个不可微的运算)这个常见的从热力图中提取坐标的方法。而是使用关键点对应热力图内正元素的空间平均的方法计算关键点坐标(这个地方文字解释比较绕, 具体计算其实挺简单的,下面会详细解释)。不确定性分布参数的计算最好采用直接回归的方法而不是从热力图回归方法(这样选择的原因在后面实验部分会解释)。为了估计预测位置的不确定程度,作者添加了一个CEN分支来估计多元高斯分布或者拉普拉斯分布的协方差矩阵,这个分支的全称是Cholesky Estimator Network,Cholesky是指矩阵分解中的Cholesky分解。为了估计每个关键点的可见性,作者添加了一个VEN分支,全称是Visibility Estimator Network。重点来了,作者设计了一个联合损失函数LUVLi将上述分支结合,起名Location Uncertaiinty and Visibility Likelihood ,这是一个似然函数的形式。作者的首要目标是设计这些来估计关键点检测的不确定程度,但是却在多个数据集上达到了SOTA的关键点定位精度, 算是意外之喜 ?haha,属实凡尔赛了。
现在摆在面前的事实是每幅图像每个关键点仅有一个ground-truth label location, 如何估计不确定程度看起来相当困难,但也不是不可能。如何做呢?作者在文中是这样讲的,We train a neural network to estimate the parameters of the model for each landmark of each input face image so as to maximize the likelihood under the model of the groundtruth location of that landmark ,简单来说,对每一幅人脸图像的每一个关键点我们都预测一个参数化的概率分布模型,比如,假设关键点为服从一个均值为 μ \mu μ,方差为 Σ \Sigma Σ的二元高斯分布(这个均值 μ \mu μ以及方差 Σ \Sigma Σ 都是通过神经网络预测得来的),对于关键点对应的真实标签,就可以看成从这个参数化的高斯分布中采样得来的,那么,为啥会采样得到这样一个gt值?可以认为gt值出现的概率比较高,。所以就可以最大化高斯分布在这个gt值的概率来优化这个参数(也就是似然函数),这就是极大似然估计的思想。这是这篇文章的核心思想,通过极大似然估计将关键点位置,关键点的不确定程度,关键点可见性三者巧妙结合到一起。
作者主要的工作如下:
- 在人脸对齐领域首次引入参数化的不确定性估计的概念。
- 提出端到端可训练的模型用于联合估计关键点位置,不确定性和可见性的似然函数,以混合随机变量建模(既包含连续随机变量,也包含离散随机变量)。
- 模型在多个数据集上得到准确的不确定型估计和SOTA的关键点定位性能。
- 开放新数据集 包含19000张人脸图像,每张包含68个关键点,每个关键点都有可见性类别的标注(三类)。
相关工作
Face Alignment
传统的方法略
目前基于深度学习的方法主要分为两大阵营:坐标回归和热力图回归。个人觉得,目前热力图回归稍占上风,不过随时都有可能被坐标回归反超。SOTA的方法包括 stacked hourglass networks(堆叠的沙漏网络,目前好多方法的backbone都是这个)和densely connected U-nets等等。这几种方法都是使用 L 2 L_2 L2损失来监督预测热力图和真实热力图的偏差。真实热力图普遍使用在热力图上放置一个固定 σ \sigma σ的高斯核(对称的高斯分布)来进行软标注。有的文献中采用在Hourglass的前几个阶段用大的高斯核( σ \sigma σ比较大),在后面的阶段采用较小的高斯核,等等。基于热力图方法关键点的位置是预测热力图最大值对应的位置。
热力图方法的缺点。主要有两个缺点,首先真实的热力图都是一个固定且对称的高斯分布,你不能指望预测热力图能够学习到关于不确定性的东西。就是说关键点的坐标往任意方向偏移都是等可能的,而且偏移的距离也是一样的,这与我们的初衷不符,我们的目标是希望看到不同的方向的偏移程度是不一样的,这是对应于实际情况的,举个例子,对于面部轮廓线上的关键点,如果我们手动标注,首先能够确定他一定是在轮廓线上(因为轮廓线法线方向不确定性较小),进而根据旁边的点确定他是在轮廓线上哪个位置(轮廓线切线方向不确定性较大)这是符合我们认知的,在实际中,我们对不确定性较大的也有较高的容忍度,这也是作者想要解决的问题)。第二个确定是量化误差的问题,这个问题是比较严重的问题,热力图分辨率一般是原图经过多次下采样获得的,而在下采样系数较大的情况下通过热力图坐标获得原始图像的坐标,这个偏移量是很大的,有文献指出,量化误差高达总误差的三分之一,这也是热力图回归方法的性能瓶颈。
提出的方法

上图为网络的主体结构。输入的RGB人脸图像首先经过DU-Net结构,在每个U-Net上添加了三个额外的分支。第一个分支为mean estimator,通过相应热力图加权的空间正值元素的均值来计算每个关键点的位置。第二个和第三个分别是CEN和VEN, 分别从每个U-Net的bottleneck layer获得。CEN 用来估计每个关键点位置协方差矩阵的Cholesky系数。VEN用来估计图像中每个关键点的可见性的概率,1表示可见,0表示不可见。对于第 i i i个U-Net结构的第 j j j个关键点, 关键点的位置估计 μ i j \mu_{ij} μij,估计的协方差矩阵 Σ i j \Sigma_{ij} Σij,以及估计的可见性 v ^ i j \hat{v}_{ij} v^ij由损失函数 L i j L_{ij} Lij相结合,这样可以实现端到端的优化。
Mean Estimator
令 H i j ( x , y ) H_{ij}(x,y) Hij(x,y)表示第 i i i个U-net结构第 j j j个关键点热力图处于像素位置 ( x , y ) (x,y) (x,y)的值。关键点估计的位置为 μ i j = [ μ i j x , μ i j y ] T \mu_{ij}=[\mu_{ijx},\mu_{ijy}]^T μij=[μijx,μijy]T, 平均位置的计算首先是热力图 H i j H_{ij} Hij使用 σ \sigma σ函数后处理,然后空间加权平均。具体算法如下:
μ i j = ∑ x , y σ ( H i j ( x , y ) ) [ x y ] ∑ x , y σ ( H i j ( x , y ) ) \mu_{ij} = \frac{\sum\limits_{x,y}\sigma(H_{ij}(x,y))\begin{bmatrix}x\\y\end{bmatrix}}{\sum\limits_{x,y}\sigma(H_{ij}(x,y))} μij=x,y∑σ(Hij(x,y))x,y∑σ(Hij(x,y))[xy]
这其中的考虑了三种不同的 σ \sigma σ函数:ReLU函数,softargmax 以及温度控制的softargmax(实际上是对softargmax加了一个控制参数,可以动态调节), 这三种都是可微的操作,在消融实验中发现选择ReLU函数的性能更好。
LUVLI Loss
文章主要思想是使用混合型随机变量建模关键点位置的概率分布。对于图像中的每个关键点 j j j, 使用二值随机变量 v j ∈ { 0 , 1 } v_j \in \{0,1\} vj∈{ 0,1}表示真实标签的可见性,这里1表示可见,0表示不可见。 p j p_j pj表示真实位置,如果关键点不可见( v j = 0 v_j = 0 vj=0),这是 p j = ∅ p_j=\emptyset pj=∅ 这个符号表示不存在。 p j p_j pj和 v j v_j v<

本文介绍了LUVLi方法,它在人脸关键点检测中引入了位置不确定性及可见性估计。通过估计关键点的参数化概率分布和不确定性,解决了现有方法的局限性。LUVLi利用Cholesky Estimator Network(CEN)和Visibility Estimator Network(VEN)估计协方差矩阵和可见性,并采用联合损失函数LUVLi优化模型。实验证明,该模型在不确定性估计和关键点定位上表现出色。
最低0.47元/天 解锁文章

3364

被折叠的 条评论
为什么被折叠?



