论文:Face Alignment at 3000 FPS via Regressing Local Binary Features.pdf

实现:https://github.com/luoyetx/face-alignment-at-3000fps

摘要&介绍:

论文有两个新颖的点,一是采用局部二值特征,二是用局部性规则指导学习这些特征,最终的识别效果和实现速度俱佳。

论文首先夸赞了一番——形状回归(shape regression ),该方法已经被业内广泛认可,其高精度和强鲁棒性主要得益于三点:1)区分能力强;2)形变可控;3)能带得动大量数据训练。

形状回归方法遵循级连原则,假设其初始形状为S0,S通过在每一层预测一个增量∆S来不断修正其自身, ∆St表示在t层获得的增量,其公式的一般形式如下所示:

I表示输入图像,St-1 为上一层的结果,Φt  是一个特征映射函数,Wt是一个线性回归矩阵,采用的特征为shape-indexed。

Φt最开始用的是一些诸如SIFT等的设计好的特征,其取得了不错的表现,人们认为利用学习获得的Φt能够取得更佳的效果,然而并不是这样,之所以没有获得增强的原因有两点:一是选择整张图片训练输入数据会导致特征群过于庞大;二是过量的噪声同样带来大量的噪声,这会导致其过拟合,从而在测试集上准确率不高。

本篇论文的着手点就在 Φt上,针对上面提到的问题,作者提出了一种局部性原则,可以理解为如下两点:

1)对于确定某个关键点的最有用的信息往往集中于上一层预测的该关键点周围。

2)其他关键点的位置信息和该关键点的局部信息足以用于预测该关键点位置。

基于这一原则,我们可以将特征锁定于局部然后联合这些关键点确定最终形状。

这样,就可以将Φt分步到所有关键点上,对应每个关键点,都有一个φlt。通过这种做法,可以显著降低噪声,剔除非关键特征,降低计算复杂度。

对于每一个φlt,利用回归树诱导二值特征,所有二值特征来自于局部信息,当构建完所有φlt后组合为Φt,学习Wt回归整体形状。

训练过程:

训练分两步,先训练Φt,然后组织其结果用以训练Wt,其过程如下图所示。

1、训练Φt

目标函数:

其中i表示所有训练数据,l表示关键点,t表示训练层树,πl 表示提取 l 点。

公式的前半部分表示当前形状与实际形状的增量,后半部分表示当前形状与预测形状的增量。

引用自:http://blog.jobbole.com/85783/

Φ代表特征提取函数,论文中称Φ的输出为局部二值特征(LBF),W为线性回归参数矩阵,其实就是把提取出来的特征映射到一个二维的偏移量上,是一个2*lenth(特征空间维数)的变换矩阵。

首先讲Φ是怎么训练的:Φ其实就是一个随机森林。输入像素差特征(pixel-difference features),输出一个offest。训练的时候随机给每个根节点像素差特征中的一部分。非叶节点的分裂依据是从输入的pixel-difference features中找出能够做到最大的方差衰减的feature。在最后的叶子节点上写上落在叶子节点上的样本偏移量,这个偏移量在之前说到的fern里有用,但是在这里没啥用,因为作者最后不是用这个做回归的而是用LBF,详细的得往下看。如果有多个样本都落在这里,则求平均。这样训练出来的东西就是下面这个公式所表达的东西:

但是我只想要其中的Φ,于是这里给出了LBF(local binary feature)的定义,直接简单粗暴地统计所有树叶节点是否被该样本落入,如果落入了就记为1否则记为0,然后把所有的01串连起来就是LBF了。还是看图说话:

先看b,随机森林的三棵树,样本经过三棵树后分别落在了第1,2,3个叶子节点上,于是三棵树的LBF就是1000,0100,0010.连接起来就是100001000010.然后看a,把27个特征点的lbf都连接起来形成总的LBF就是Φ了。
接下来是训练w:之前已经得到了wΦ(I,S)以及Φ(I,S),现在想求w,这还不容易吗,直接算呀。不过作者又调皮了,他说他不想求w,而是想求一个总的大W=[w1,w2,w3,…,w27].怎么求呢?得做二次回归。至于为什么要这么做下面会介绍。目标函数:

后面加了个L2项,因为W是炒鸡sparse的,防止过拟合。做线性回归即可得到W。
现在解释一下为啥不直接用w1w2w3…而是要再回归出来一个W:原因有两个:
1. 再次回归W可以去除原先小wi叶子节点上的噪声,因为随机森林里的决策树都是弱分类器嘛噪声多多滴;
2.大W是全局回归(之前的一个一个小w也就是一个一个特征点单独的回归是local回归),全局回归可以有效地实施一个全局形状约束以减少局部误差以及模糊不清的局部表现。
这样一来,测试的时候每输入一张图片I,先用随机森林Φ求出它的LBF,然后在用W乘一下就得到了下一个stage的shape,然后迭代几次就得到了最终的shape。所以效率十分的快。

论文《Face Alignment at 3000 FPS via Regressing Local Binary Features》笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. pygame里面物体闪烁运动_教师资格【试讲示范】高中物理试讲答辩——《自由落体运动》试讲稿答辩...
  2. C语言实现拓扑排序topological sort算法(附完整源码)
  3. 市面上的hadoop书籍调研
  4. 江森系统设置服务器日期,江森自控METASYS操作手册
  5. openGL es实现小实例
  6. Odoo与浪潮合资研发PS Cloud之如何配置和运行调度程序
  7. ERROR: cuvid requested, but not all dependencies are satisfied: ffnvcodec
  8. jeDate 日期控件
  9. 为何中华武术不堪一击?武学大师临终前解密搏击格斗的残酷真相
  10. 3D产品建模为3D产品展示打下基础
  11. 2022年7月22日,记录我的第一篇博客
  12. 打不开计算机或文件夹,求助:我的电脑文件夹打不开了
  13. Failed to read artifact descriptor for xxx:jar的问题解决
  14. 如何开通企业付款到零钱||小程序红包功能
  15. HTML5 布局标签
  16. [含论文+源码等]SSM酒店管理系统旅店管理
  17. pc是指什么型号的计算机,pc_pc是什么意思-太平洋IT百科手机版
  18. 阿里云盘——多电脑实时同步文件的实现
  19. Auto.js UI 列表控件使用方法 数字题计算
  20. RAID5 磁盘阵列的故障以及修复要点

热门文章

  1. 任务间同步 | 信号量、互斥量和事件集
  2. 制作canal-adapter的docker镜像
  3. 看电影用这个小程序,爆米花钱肯定给你省出来!
  4. flash 调用 脚本_Flash脚本-DNA双螺旋
  5. 半导体行业十万级净化车间尘埃粒子监测
  6. 什么浏览器好用稳定速度快?
  7. 文本摘要常用数据集和方法研究综述
  8. 免费APP制作平台哪个好,我能自己制作APP吗?
  9. 计算机科学与探索期刊审稿周期,计算机科学与探索杂志
  10. shell 经典教程[大神之路]