Many efforts have been made in recent years to tackle the unconstrained face recognition challenge. For the benchmark of this challenge, the Labeled Faces in the Wild (LFW[2] database has been widely used. However, the standard LFW protocol is very limited:

  1. Only 3,000 genuine and 3,000 impostor matches for classification.
  2. Today a 97% accuracy can be achieved with this benchmark, remaining a very limited room for algorithm development. However, we argue that this accuracy may be too optimistic because the underlying false accept rate (FAR) may still be high (e.g. 3%).
  3. Performance evaluation at low FARs is not statistically sound by the standard protocol due to the limited number of impostor matches.

Thereby we develop a new benchmark protocol to fully exploit all the 13,233 LFW face images for large-scale unconstrained face recognition evaluation. The new benchmark protocol, called BLUFR, contains both verification and open-set identification scenarios, with a focus at low FARs. There are 10 trials of experiments, with each trial containing about 156,915 genuine matching scores and 46,960,863 impostor matching scores on average for performance evaluation.

We provide a benchmark tool here to further advance research in this field. For more information, please read our IJCB paper and the README files in the benchmark tookit.

Download:

The benchmark tookit:BLUFR.zipThe basic feature files: lfw.mat   frgc.matOther available features: HighDimLBP   LE   --Thanks to Dong Chen

Contact:

Shengcai Liao,   scliao@nlpr.ia.ac.cn

National Laboratory of Pattern Recognition, Institute of Automation, Chinese Academy of Sciences.

Results:

Rank Method VR (%) @FAR=0.1% DIR (%) @FAR=1%,Rank=1
1 HighDimLBP + JointBayes [1] 41.66 18.07
2 HighDimLBP + LDA [1] 36.12 14.94
3 HighDimLBP + KISSME [1] 25.35 11.34
4 LE + JointBayes [1] 23.31 11.26
5 HighDimLBP + LMNN [1] 22.68 9.53
6 LE + LDA [1] 18.12 9.38
7 HighDimLBP + ITML [1] 17.32 8.59
8 LE + KISSME [1] 16.12 6.83
9 LBP + JointBayes [1] 14.18 8.82
10 LE + LMNN [1] 13.57 4.66

Notes:

(1) Algorithms are ranked by VR @FAR=0.1%.

(2) Performances are measured in (μ - σ) of 10 trials.

(3) The citations indicate where the results are from.

Download the result files and demo code for performance plot: Results.zip

Please contribute your algorithm's performance so that we can keep a track of the state of the art for large-scale unconstrained face recognition.

References:

[1] Shengcai Liao, Zhen Lei, Dong Yi, Stan Z. Li, "A Benchmark Study of Large-scale Unconstrained Face Recognition." In IAPR/IEEE International Joint Conference on Biometrics, Sep. 29 - Oct. 2, Clearwater, Florida, USA, 2014. [pdf] [slides]

[2] G. B. Huang, M. Ramesh, T. Berg, and E. Learned-Miller. Labeled faces in the wild: A database for studying face recognition in unconstrained environments. Technical Report 07-49, University of Massachusetts, Amherst, October 2007.

https://blog.csdn.net/keyanxiaocaicai/article/details/51005221

现在已知的算法是lfw 有6000对,3000 对正样本,3000 对负样本,利用十重交叉验证的方式来计算识别率。

虽然在现在的lfw 数据集上已经可以达到99% 但是并不能保证在真实的场景下有比较好的性能。

作者提出了一种新的方法,主要是扩展了原来基础上只有6000 对正负样本的计算。

现在作者把lfw 数据集分成一部分训练集,一部分测试集,训练集的样本平均在3400 多张左右,训练集的选取和测试集的选取都基于一些规则(比如要求训练集有1500 个人,其中包含至少437人有2个以上的人脸,因为总共有5749 个人,所以测试集包含其余的(5729-1500)个人,大概是1243 个人有2个以上的人脸,经过测试里面含有2个人以上的人是 1680个,跟paper 里面讲的是吻合的)。

训练集对于我们的作用目前在我看来是用来求主成分分析的W 矩阵,本文要求的时候降维之后为400.

作者把原来的verfication 的任务扩展为 更接近于实际场景的verfication +DIR

verfication 任务是只校验两个人脸是不是一个人。

以第一轮为例:

作者训练部分的样本为:2952  那么相应的测试部分的样本为(13233-2952)=10281

对于测试样本经过pca 之后是降低维度之后的样本,先求norm,(如果不求norm 会对结果有什么影响)

10281 个样本之间两两求相似度.(作者采用的trick是求一个下三角的方式)

这样得到是所有10281 之间样本的相似度。 我们还可以得到这些样本之间那些是一类的,那些不是一类的

我们可以得到不是一个人的总的个数和他们的计算分值。(10281*10281-10281)/2 所有对的个数

其中负样本对的个数为:52612506  正样本对的个数为:231834

我们把这些负样本的score 从大往小排,根据:

thresholds(~isZeroFAR & ~isOneFAR) = impScore( falseAlarms(~isZeroFAR & ~isOneFAR) );

这样我们得到每个falseAlarms 点处的阈值:

FAR  false accept ratio (是将其他人看做你的概率)

计算方法是:非同人分数>T/非同人比较次数

我的理解为:因为负样本为52612506 个,如果FAR 为0.0001 那么允许错分的样本数目为 52612506*0.0001=5261.2506个,那么由于负样本的score 是从上往下排的,所以只允许上面得分高的被错分掉,

那么阈值要设置为0.8293

那么我们可以计算 VR 就是正样本里面score>0.8293 的值, 与全部正样本的比值。

对DIR 我现在的理解为:

DIR 是把测试集分成三部分:一部分是gallay set G(only one image per subject was selected),由于测试集包含1242 个人, 那么除了gallay 以外的其他的人脸组成PG, 其他的人脸组成PN, 平均下来,PG 大概有4350 张图片,PN 有3249 个人的4357 张图片。(互斥的关系)

以第五轮为例: PG 有4417 个, PN 有4053 个样本

FAR 的选取方式跟VR 的方式是一样的。阈值的选取方式。

对于PN 里面的样本,都是负样本,那么我们在每一行找一个与gallay 里面的图片相似度最高的得到一个列向量。

把这些元素降序排列,

对于face verification 这个任务,我们采用ROC 曲线来刻画。

对于DIR 这个任务,采用CMC 曲线来刻画


Benchmark of Large-scale Unconstrained Face Recognition-blufr 算法的理解的更多相关文章

  1. face recognition[翻译][深度学习理解人脸]

    本文译自<Deep learning for understanding faces: Machines may be just as good, or better, than humans& ...

  2. 大规模视觉识别挑战赛ILSVRC2015各团队结果和方法 Large Scale Visual Recognition Challenge 2015

    Large Scale Visual Recognition Challenge 2015 (ILSVRC2015) Legend: Yellow background = winner in thi ...

  3. Computer Vision_33_SIFT:Improving Bag-of-Features for Large Scale Image Search——2010

    此部分是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  4. 论文笔记之:Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation

    Large Scale Distributed Semi-Supervised Learning Using Streaming Approximation Google  2016.10.06 官方 ...

  5. 快速高分辨率图像的立体匹配方法Effective large scale stereo matching

    <Effective large scale stereo matching> In this paper we propose a novel approach to binocular ...

  6. Introducing DataFrames in Apache Spark for Large Scale Data Science(中英双语)

    文章标题 Introducing DataFrames in Apache Spark for Large Scale Data Science 一个用于大规模数据科学的API——DataFrame ...

  7. Lessons learned developing a practical large scale machine learning system

    原文:http://googleresearch.blogspot.jp/2010/04/lessons-learned-developing-practical.html Lessons learn ...

  8. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 17—Large Scale Machine Learning 大规模机器学习

    Lecture17 Large Scale Machine Learning大规模机器学习 17.1 大型数据集的学习 Learning With Large Datasets 如果有一个低方差的模型 ...

  9. [C12] 大规模机器学习(Large Scale Machine Learning)

    大规模机器学习(Large Scale Machine Learning) 大型数据集的学习(Learning With Large Datasets) 如果你回顾一下最近5年或10年的机器学习历史. ...

随机推荐

  1. 拾遗:Go 基础

    这 Go,越看越像是 C 和 Python 的混合体--! gofmt 用于格式化代码,缩进使用 tab,而不是空格:Python 官方则建议使用空格,而不是 tab package Go 惯例,使用 ...

  2. 20140613 Opencv重新编译 word小技巧

    1.OPENCVGPU重新编译+自己的文件 注意点: 1.生成OPENCV.sln解决方案后,在ALL_build的属性中,添加相应目录: ALL_BUILD中的Debug和Release上的Micr ...

  3. js基本包装类型

    基本包装类型   3种特殊的引用类型 为了便于操作基本类型值,es还提供了3种特殊的引用类型: Boolean,Number,String. 每当读取一个基本类型值的时候,后台就会创建一个对应的基本包 ...

  4. D-Ubuntu中修改MySQL的默认数据集(client和server)

    Ubuntu16.04,MySQL5.7 1, sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 使用vim编辑MySQL的配置文件,不同版本的MySQL配置文件 ...

  5. Unity3D中画拉选框(绘制多选框)

    问题分析: 需要根据鼠标事件,摁下鼠标开始绘制选择框,抬起鼠标结束绘制. 实现思路: 该需求是屏幕画线,Unity内置了GL类  封装了OpenGL,可以通过GL类来实现一些简单的画图操作,这里也是使 ...

  6. pytest--fixture---自动应用

    import pytest@pytest.fixture(autouse=True)-----加上auto=True,每个方法执行前都会自动登陆def login_r(open_browser): p ...

  7. linux安装lolcat实现彩色文字输出信息

    [root@localhost ~]# mount /dev/sr0 /media/[root@localhost ~]# rpm -ivh epel-release-latest-7.noarch. ...

  8. 使用js 判断当前运行环境实在浏览器还是在手机

    转: 在跨平台,各种浏览器,移动设备兼容的时候,经常要根据设备.浏览器做特定调整,所以判断设备和浏览器的工作,经常会用到,这里做一下总结. 有关浏览器类型的信息都藏在USER-AGENT里面,首先读取 ...

  9. dvaJs使用注意事项

    项目参考地址 dva-yicha 1. 使用路由跳转的方式 (1)所有的路由跳转功能都放到 dva/router 里面的 import { routerRedux } from 'dva/router ...

  10. NX二次开发-创建图纸尺寸表达式抑制UF_DRF_add_controlling_exp

    #include <uf.h> #include <uf_modl.h> #include <uf_drf.h> #include <uf_obj.h> ...