CVPR2018论文解读 Unsupervised Discovery of Object Landmarks as Structural Representations
MXNET实现:敬请期待!
备注:转载需说明出处~
------------------------------------------------
这篇论文是cvpr2018 oral,作者来自密歇根大学
有趣的是,我发现项目里面readme.txt文件里有一个小错误,给作者发邮件,作者改过来了
------------------------------------------------
CONTENTS:
1、Landmark detector
2、Soft constrain
3、Local latent descriptors
4、Landmark-based decoder
5、Loss
6、Result
主体框架
这是主体的网络架构,采用的是hourglass网络,这个网络是来自人体姿态估计中stacked hourglass 网络。左上角是进行特征点检测,为得到有效的特征点,提出了几个约束。左下角生成的潜在表示补充信息,每个特征点上添加一个低纬度的局部描述。最后图像生成也是用的这个网络。
quick-mode跑出的结果:
input Output:K+1 channels (K landmarks and 1 background)
1、Landmark detector
(1)特征点检测器,每一个特征点都有其对应的特征点检测器。Hourglass
获得原始检测分数图(raw detection score map)得到R:
raw detection score map
(2)因为这个原始分数是无界的,作者用softmax归一化成概率,得到检测置信度图D,Dk就是D的第K个channel,是weight map,Dk(u,v) 是第k个channel中坐标为(u,v)的值。
normalized detection confidence map
(3)加权平均坐标作为第 k个特征点的位置 (Xk,Yk),这个公式可以实现梯度反传:可以实现从下游神经网络通过特征点坐标向后传播梯度。因为Dk在实际中很少出现完全集中在单个像素中,或者完全均匀分布这种情况。
landmark coordinates:(Weighted coordinate mean)
2、Soft constrain
为了让得到的特征点有效,提出了几个软约束
(1)第一个浓度约束:简而言之就是使landmark尽可能地突出出来。计算两个坐标轴上坐标的方差,设计如图示loss是为了使方差尽可能小。det.u是沿着x轴的方差,det.v是沿着y轴的方差。这个损失就是各向同性高斯分布(每个分量的方差相同)的熵的指数。更低的熵值意味着peak处更多的分布,也就是使landmark尽可能地突出出来。
concentration constrain
(2)第二个分离约束:由于刚开始训练时候的输入的是random distribution,故可能导致加权的landmark的平均坐标聚集在中心周围,可能会导致separation效果不好,因此而落入local optima,故设计了该loss。将不同channel间的坐标做差值,使得不同landmark尽可能不重叠,理想情况下,自动编码器训练目标可以自动检测得到 K个特征点在不同局部区域分布,从而可以重建整个图像。
separation constraint
(3)第三个等变约束这个比较好理解,就是某一个landmard在另一个image中变换坐标时应该仍能够很好地定位,应的视觉语义仍然存在于变换后的图像中。g(,)是一个坐标转换,将(Xk,Yk)映射到g(Xk‘,Yk’)最理想的就是二者相等。作者用随机参数的薄板样条函数(TPS)来模拟g。我们使用随机平移,旋转和缩放来确定TPS
equivariance constrain
3、Local latent descriptors
要复原一个图像只有landmarks是不够的,需要一些其他的潜在表示作为补充信息。为了避免得到的潜在信息覆盖特征点反应的图像结构,作者在每个特征点上添加一个低纬度的局部描述符。
(1)还是通过hourglass获得特征图F,与检测置信度图D有相同的尺寸,F在所有的特征点共享的特征空间,它有 S个通道。
shared feature map
(2)在concentration costrain中,用一个高斯分布(Dk杠)来将该channel对应的landmark突出出来,在这里文章将它当做soft mask来用。用mask提取后再用一个linear operator(线性算子)来将这些feature map映射到一个更低维的空间。C < S
the latent descriptor for the k-th landmark
soft mask
4、Landmark-based decoder
(1)用以各个特征点为中心的各向同性高斯分布的概率密度来获得原始分数图,将背景通道设置为1(Rk+1杠=1)
raw score map (spatial gaussian)
(2)然后将R杠跨通道归一化以获得重构的检测置信度图
reconstructed detection confidence map (normalize)
(3)fk是对应的landmark描述符,通过操作符Wk杠和**函数(作者这里用的是Leaky-ReLU)将它转换成共享特征空间。
recover the feature map
(4)最后用hourglass重构图像
5、Loss
Loss函数由四部分组成,之前提到的三个约束加上图像重构损失。
完全loss
图像重构损失
被归一化为[0,1]
重构损失的权重,作者是先从小的值开始,慢慢增加。
在早期训练阶段,发现的landmark每次迭代都会发生明显变化,并且输入到解码器的landmark的潜在描述符变化也很大。如果重建损失权重很大,解码器的模型参数和梯度会变化很剧烈,这会影响(特征点检测器和基于特征点的图像解码器这两个)训练。增加λrecon两次,每次增大十倍。
6、Result
(1) Facial landmark discovery & its application to supervised tasks
a、本文和ICCV2017那篇对比结果(celebA数据集)可以看到本文的特征点更加稳定一致
图一:前额粉色的landmark太偏左
图二:下嘴唇橙色的landmark靠右
图三:嘴角红色的landmark标记在了前额上
前额粉色landmark标记太靠左
图四:右眼眉毛的landmark标记在了左边
图五:前额粉色landmark标记太靠左
b、特征点检测模型与线性回归器相结合,得到一个检测模型。
与完全监督的方法不同,这个模型可以用大量未标记的数 据进行训练,线性回归器可以在几分钟内使用相对少量的标记数据进行训练。在使用30个特征点的模型,仅使用1000 张带标注的面部图像用作线性回归训练。这个模型在MAFL 和 AFLW测试集上胜过以前的无监督方法和现有的预训练全监督模型。
c、本文还将得到的特征点坐标与属性识别任务的预训练的 FaceNet (InceptionV1)顶层(128-dim)和卷积层 (1792-dim)特征进行比较。大多数属性上本文只用了60纬检测的特征点比FaceNet顶层特征更胜一筹。和卷积层的特征相比各有高低,但有平均值83.2还是好与卷积层的82.4,而且卷积层纬度更高(1792纬)
如果结合本文的特征点坐标和 FaceNet的特征,可实现更高的精度。这表明检测到的特征点与对分类任务进行预训练的图像特征是互补的。
(2) Landmark discovery on cat heads, cars, shoes, and human bodies
在其他物体上自适应检测到的特征点。猫头,车,鞋子,人体等,可以看出特征点还是很稳定、一致
彩色十字:检测到的特征点
红点:标注的特征点
圆形:回归的特征点(圆圈颜色代表与标注特征点的距离。颜色越红即预测误差大)
和ICCV2017文章比较
猫头,汽车和人体上标注的特征点预测的平均误差,本文的方法也是好很多