參考文献:

Zhang J, Kan M, Shan S, et al. Leveraging Datasets With Varying Annotations for Face Alignment via Deep Regression Network[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 3801-3809.

简单介绍

眼下网上发布的人脸关键点的数据集非常多,但标注标准却往往不统一、标定点数也不尽同样。将这些数据合并起来非常重要,可是训练一个统一的模型却比較困难。ICCV 2015的这篇文章提出了一种基于深度回归网络(deep regression network)和稀疏形状回归方法,可以在不同点数的数据集上训练一个统一的关键点检測模型。同一时候可以取得比单个训练集更好的结果。

算法介绍

1. 算法总流程

算法流程如图所看到的:

如果有若干不同点数、不同图片的人脸关键点数据集。(1)H 表示稀疏形状回归模型,它能将预计每一个数据集中相对于全部数据集关键点类型总和的未标注的关键点; (2)将每一个数据集的关键点个数通过 H 补齐后, F 表示深度回归网络,训练和检測图片中全部的关键点的检測模型。(1)(2)过程是一个重复迭代更新的过程。

通过这种一个训练过程,就能训练一个可以合并全部不同数据集的人脸关键点检測模型。

如果有 n 个人脸关键点数据集{D1,D2,...,Dn},每一个数据集包括了不同点数pi的关键点 Si∈Rpi×2。作者目标是建立一个深度回归网络 F,可以检測全部关键点类型的合集 S=S1∪S2∪...∪Sn。这样就须要依据ground truth和初始化形状 S¯,求解满足下面公式的 F:

F∗=argmin F∑I∈D||S−(F(ϕ(I,S¯))+S¯)||22

当中 I 为数据集D D 中的人脸图片,ϕ 为特征提取函数。

数据集 Di 仅仅有第 i类型的关键点,其他类型的关键点并不存在。可是可以依据不同类型关键点之间的相关性。使用其他数据集的关键点来预计当前数据集的关键点。

作者使用了稀疏表达模型 H 来预计这些并不存在的关键点,因此以上公式就演变为:

{F∗,H∗}=argminF∑I∈D||SH(I)−(F(ϕ(I,S¯))+S¯)||22

当 I∈Di时,H 第 i 种类型的关键点是已经标注好的,而其他 n−1 种类型的关键点则使用 H 预计生成。

2. 方法流程细节

2.1 深度回归模型

与 SDM/LBF相似,作者也使用了回归方法训练和測试图像特征到关键点位置的映射。差别是使用深度回归网络从初始形状開始回归 (深度学习已经占据各领域,不能被落下呀):

ΔS=F(I)=(fl(fl−1(...f1(ϕ(I,S¯)))))

当中 fl 为深度回归网络的第l 层隐层。

2.2 稀疏回归模型

尽管各个数据集 Di的关键点定义并不同样,可是之间有着非常强的关联,作者使用了稀疏矩阵依据其他数据集的关键点类型来预计当前数据集上未标记的关键点, H=[Sˆ1;Sˆ2;⋅⋅⋅;Sˆi−1;Si;Sˆi+1;⋅⋅⋅;Sˆn]∈Rp×2:

Sjˆ=Hij∗Si

当中 Hij∈Rpj×pi是 一个 预计 Di 数据集中未标记的关键点 Sj^∈Rpj×2 的稀疏矩阵。

这样总流程的公式,可以写为还有一种形式:

{F∗,H∗}=argminF,H∑ni=1∑I∈Di||Hi∗Si(I)−(F(ϕ(I,S¯))+S¯)||22

2.3 训练模型

上述公式有两个模型參数须要训练,作者採用了固定一个參数,训练还有一个的迭代循环直到收敛的方法来求最优解。

每次迭代过程,作者採用了 L-BFGS 方法 (On optimization methods for deep learning,这个以后细看)解决。

与以往算法的不同

(1)“Collaborative facial landmark localization for transferring annotations across datasets”论文中提到的算法。须要依据训练集和測试集全部图片的关系预计映射关系。再对測试集全部图片进行关键点检測,并且训练过程中,也是针对各个数据集分别训练不同的模型。

而本论文算法是将全部的数据集整合进行统一关键点数模型的训练,终于得到一个检測模型,可以方便地对一张图片进行单独检測。

(2)“Transferring landmark annotations for cross-dataset face alignment”论文中的算法 transductive alignment method (TCR)须要不同数据集的关键点的交集作为相互关联,并且在预计未标记的关键点之后,不会再有更新。而本文则不须要关键点的交集作为关联,并且在模型參数训练的过程中。预计的关键点在每次迭代过程中都会随着模型的变化而更新,因而也更加准确。

实验结果

1、作者将不同的数据集相整合进行模型训练。比基于不同的训练集单独训练的模型的精度有所提高,但比真实的数据略差些(这也在情理之中):

2、作者将DRN和SSR方法相结合,进一步提高了DRN的准确率:

3、作者又将DRN-SSR与之前的SDM、RCPR进行了比較。实验结果均优于这些算法:

总结

作者通过 DRN和SSR将多类人脸关键点数据融合。取得了比单个数据集训练模型更好的结果。终于的模型也较为有用(可为我所用。毕竟手头数据多。如何整合一直比較头疼)。

PS

前一段时间因为操作失误,将这篇博客不小心删除(同一时候小吐槽下csdn的博客设置)。我这里没有备份,准备重写时无意发现网络上有人转载了我这篇文章(当然没有写明出处,公式也是乱码),我就拿过来回笼了一篇。

这也算是盗版给原作者的贡献了,哈哈。

【论文笔记】Leveraging Datasets with Varying Annotations for Face Alignment via Deep Regression Network的更多相关文章

  1. 论文笔记(6):Weakly-and Semi-Supervised Learning of a Deep Convolutional Network for Semantic Image Segmentation

    这篇文章的主要贡献点在于: 1.实验证明仅仅利用图像整体的弱标签很难训练出很好的分割模型: 2.可以利用bounding box来进行训练,并且得到了较好的结果,这样可以代替用pixel-level训 ...

  2. 论文笔记:SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks

    SiamRPN++: Evolution of Siamese Visual Tracking with Very Deep Networks 2019-04-02 12:44:36 Paper:ht ...

  3. 论文笔记:Visual Object Tracking based on Adaptive Siamese and Motion Estimation Network

    Visual Object Tracking based on Adaptive Siamese and Motion Estimation 本文提出一种利用上一帧目标位置坐标,在本帧中找出目标可能出 ...

  4. 论文笔记之:Natural Language Object Retrieval

    论文笔记之:Natural Language Object Retrieval 2017-07-10  16:50:43   本文旨在通过给定的文本描述,在图像中去实现物体的定位和识别.大致流程图如下 ...

  5. 【论文笔记系列】AutoML:A Survey of State-of-the-art (下)

    [论文笔记系列]AutoML:A Survey of State-of-the-art (上) 上一篇文章介绍了Data preparation,Feature Engineering,Model S ...

  6. 【论文笔记】SamWalker: Social Recommendation with Informative Sampling Strategy

    SamWalker: Social Recommendation with Informative Sampling Strategy Authors: Jiawei Chen, Can Wang, ...

  7. 【论文笔记】用反事实推断方法缓解标题党内容对推荐系统的影响 Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue

    Click can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue Authors: 王文杰,冯福利 ...

  8. Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现(转)

    Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文, ...

  9. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

随机推荐

  1. 洛谷P2657 [SCOI2009]windy数 [数位DP,记忆化搜索]

    题目传送门 windy数 题目描述 windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数. windy想知道, 在A和B之间,包括A和B,总共有多少个win ...

  2. Python并发编程-进程池及异步方式

    进程池的基本概念 为什么有进程池的概念 效率问题 每次开启进程,都需要开启属于这个进程的内存空间 寄存器,堆栈 进程过多,操作系统的调度 进程池 python中的 先创建一个属于进程的池子 这个池子指 ...

  3. redis实现分布式锁工具类 灰常好用

    public interface RedisDistributionLock { /** * 加锁成功,返回加锁时间 * @param lockKey * @param threadName * @r ...

  4. Poj1741/洛谷P4718 Tree(点分治)

    题面 有多组数据:Poj 无多组数据:洛谷 题解 点分治板子题,\(calc\)的时候搞一个\(two\ pointers\)扫一下统计答案就行了. #include <cmath> #i ...

  5. urllib2 调用salt restapi

    1获取token #_*_coding:utf8_*_ import urllib2 import json def get_token(): url='http://10.20.32.86:8000 ...

  6. 【BZOJ】2653: middle

    2653: middle Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2381  Solved: 1340[Submit][Status][Disc ...

  7. 通过wifi上网,桥接模式下virtualBox虚拟机无法连上网的解决办法

    https://jingyan.baidu.com/article/948f59242e601dd80ff5f929.html

  8. 集成学习中的 stacking 以及python实现

    集成学习 Ensemble learning 中文名叫做集成学习,它并不是一个单独的机器学习算法,而是将很多的机器学习算法结合在一起,我们把组成集成学习的算法叫做“个体学习器”.在集成学习器当中,个体 ...

  9. Redis-Linux安装

    简介 redis是一个开源项目,一种基于hash存储于内存的nosql数据库.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的value类型相对更多,包括string. ...

  10. VS2012项目中使用CocoStudio相关文件的设置

    开发环境说明: win7  vs2012  coco2d-x 3.0 alpha1 cocos2d-x 3.0 alpha 1搭配CocoStudio使用,效果更佳.CocoStudio包含了游戏开发 ...