人脸特征点检测——Tweaked CNN(TCNN)

《Facial Landmark Detection with Tweaked Convolutional Neural Networks》

论文链接:https://talhassner.github.io/home/publication/2017_TPAMI_2

开源参考项目:

                       https://github.com/cooparation/VanillaCNN_faceLandmark

                       https://github.com/flyingzhao/mxnet_VanillaCNN

综合原文链接:https://blog.csdn.net/qq_28618765/article/details/78044098

概述

     如我前面所说,人脸特征点检测是一个回归问题,这个问题需要关注两个方面:一是人脸特征表示,二是回归方法。这次解析的论文是使用深度学习的方法来做特征点检测,它的方法也不会脱离这个框架的。

这篇论文的脸部标记点检测训练使用的网络是Vanilla CNN,我们先来了解一下Vanilla CNN的设计。

Vanilla CNN

其实这篇论文的网络结构和前面的TCDCN网络结构是一样的,就不一一细说了。

TCDCN: 

TCDCN

Vanilla CNN: 

Vanilla CNN

 

          其中红色弧标记的地方就是TCNN进行改进的地方。和TCDCN不一样的地方在于:去掉多任务学习而且使用彩色图像。损失函数也不一样,这里使用的损失函数使用了两眼间距离进行标准化:

它使用的激活函数是双曲正切函数,并且在经过双曲正切函数之后进行了绝对值整流处理;最后损失函数使用双目距离进行标准化:

至此,本文中使用Vanilla CNN人脸特征点检测结束了。

 

网络特征分析


      随后作者对这个模型提出了一些思考,由此引出了下面的TCNN。这个问题就是,网络到底学习到了什么样特征?

       作者对网络不同层的特征进行使用GMM进行聚类分析,发现网络进行的是层次的,由粗到精(hierarchical, coarse to fine)的特征定位,越深的网络特征越能反应出特征点的位置。

      作者对FC5的输入进行了分析,也就是网络示意图中红色圆圈部分,将这些特征使用了GMM聚成64类,并显示出每一个聚类中心(相同类别脸的平均):

显然,这些特征展示出了人脸的不同姿势,还可以看出不同的人脸属性,比如表情和性别,作者认为这是因为人脸特征点的位置常常和人脸的属性相关联。
 

The Tweaked CNN model

为了提高精度,在最后的网络层次中进行了微调:每一层仅使用类似的中间层网络特征代表的图像来进行训练;因为相似的特征代表相似的特征点,这被认为可以让网络能在特定的姿势和表情中有针对性一点。

为了防止过拟合,也为了能提高上述调整的效率,用来一个Alignment-sensitive data augmentation的方法来解决训练不足数据的问题。

1、Tweaking by fine-tuning

如下图所示便是TCNN的网络结构:

       在全连接层之前,网络结构和Vanilla CNN是一致的,也就是说,在刚开始的时候,训练Vanilla CNN来进行脸部标记点回归。在训练完成之后,便从前面训练的结果中抽离出特征,将其作为FC5的输入。微调最后一层FC5,使用具有相似特征的图片训练对应的回归器。

        对网络不同层的特征使用GMM进行聚类分析,发现网络进行的是层次的,由粗到精(hierarchical,coarse to fine)的特征定位,越深的网络特征越能反应出特征点的位置,将这些特征使用GMM聚合成K个类,并显示每一个聚类中心(相同类别脸的平均)。接下来微调权重,对于每一个聚类,只使用其图像集进行微调。这里还是用了early stopping来微调每一个子网;它的作用就是,在50个周期里,如果验证损失没有提升的话,就停止微调该簇。

2、Alignment-sensitive data augmentation

         当数据集不同的时候,一般为防止过拟合,都会通过增加数据量来减少误差。最流行的方法包括有过采样,实质上就是通过裁剪不同偏移量的输入图片来增加训练数据,有的也通过镜像图片获得。但是如果应用到这里的话却不能成功,因为每个调整好的微调网络是在来自一个相同的簇的代表上进行训练的。过采样和镜像都会引入不对其的图片到每一个簇中,会增加标记点位置的变异性从而破坏了我们微调的目标。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值