这篇文章是接着《dodo:人脸识别方法个人见解》,之所以没有用《dodo:人脸识别方法个人见解 II》,仅仅是因为prfans显示的标题较短,为了使大家便与区别,就用了一个醒目的短标题。
这个帖子主要是谈谈在上一篇中没有谈到或是一带而过的问题。和上一篇一样,还是就方法论方法。
1,kernel methods
a. KPCA及其相关
kernel席卷PAMI领域的趋势还在加强。原因很简单,绝大多数的问题都能和kernel挂上钩。在人脸识别里,KPCA和KFA的影响力远不及 PCA和LDA。就应用领域来说,KPCA也远没有PCA应用的广泛。YANG Jian在PAMI上的那个KPCA plus LDA就是子空间和kernel结合的典型论文。如果用作一般性的降维KPCA确实会比PCA效果好,特别是你用的feature空间不是一般的欧式空间的时候更为明显。所以,把LDA用在KPCA变换的空间里自然会比用在PCA变换的空间里效果好。
但是就降维来说,KPCA有一个严重的缺点,就是由它不能得到一个可表示的子空间,比如PCA也可以得到一组正交基作为表示基。当然,这也是kernel 方法的本质属性导致的。这样就会限制kernel方法的应该范围。举个简单的例子,有人做过用PCA来给SIFT特征降维的方法,也就是那个SIFT+ PCA,但他们没有用KPCA+SIFT。就原理上来说,KPCA更适合给SIFT降维,但是在实际应用中,对于SIFT来说,如果需要降维的话,用来降维的东西必须事先学好,PCA就可以事先通过大量的自然图片来学习一个子空间。但是,KPCA做不到。虽然有out-of-sample的方法,但是这种方法有明显的缺点:如果训练样本过大,KPCA的kernel矩阵就很大,这样就很不方便应用,如果过小,效果又不好。其实这也是这类kernel方法的通病(不是一般)。
b. regression
regression也是分类常用的一种方法。CVPR'07就有一篇Kernel ridge regression。
regression用来分类的原理很简单,但是他和传统的LDA等类似的方法有着明显的区别。就ridge regression来说,它就是要找一个变换,使样本在变换后的空间里和他们本身的label尽量接近,那末这个学到的变换就在最小二乘意义下尽量好的刻画了样本空间的类结构。一般的,对变换函数(离散就是向量或是矩阵)做一个l2范数上的限制,美其名曰保证函数的smooth(这个下面还会再谈)。这样就可以得到一个形式上较为美的闭解。其实根本不用kernelizaton,regression本身就可以和kernel直接挂上钩,因为求出来变换矩阵在一定限制下就可以看成kernel矩阵(YE Jieping CVPR‘07的metric learning中就用到了类似的思想)。这个和用graph Laplacian做ranking的方法非常相似。Laplacian(或是其简单变形)的逆矩阵如果是正定的,那末就把这个逆看作kernel矩阵。那末和kernel直接相关的方法和思路就用上来了,特别是learning中,种类繁杂。
把ridge regression核化的全部技术含量就在计算的trick上。由于把样本映射到Hilbert空间中只是一个虚的表示,在出现内积的情况下才能写成现实的表达式,所以对于kernel方法来说,计算上的trick要求就比较高。但是,往往这类trick都是在统计和矩阵早已被解决的问题,所以大部分工作就是怎样用好而已。
像这样“借壳还魂”的做法,在很多理论的研究上都非常重要。我们要达到我们的目的,但是这个东西又不是直接可表达的,那末就可以把它放到一定的空间中,按照这个空间中的基本原理来计算,最后到达一个可以表达的形式,而且是按照你的idea来推导的。这种东西一旦做出来,质量还不低。
2,regularization
虽然名字叫regularization,其实就想谈谈优化目标和优化约束问题。
如果你看了ICML'07,CVPR'07和即将出炉的ICCV'07,你就会发现07年是个不平凡的一年,降维领域有点混乱。或者说自从97年以来一直就没有平静过,都是Fisherfaces惹的祸:)
还记得knato回帖中斗胆列出的排列组合吗?如果不记得暂且去温习一下,因为我要用一把。把knato列出的不同排列组合加上如下regression一个的一个优化
||Y-W'X||^2,
就可以概括所有今年的和这类相关论文的思想。然后,如果你愿意,你还可以衍生出很多。优化目标确定以后,所不同的就是求解方法。你可以带着这个观点再去看一下今年的论文,了然于胸。
由此,线性降维的混乱过程经历了一个小小的转折————从子空间组合到优化目标和优化约束的组合。子空间主要集中在1998--2005(当然还不会消失),后一种在今年可以说是达到一个小小的高潮。如果再加上应用算法的策略,就形成了乱世中的三足鼎立局面。特别是后一种,往往穿插出现,而且有待加强。这其中的代表人物 TANG Xiaoou, YANG Jian, YE Jieping, HE Xiaofei,YAN Shuicheng。导致这一变更的主要因素来源于非线性方法的应用,特别kernel和manifold learning的线性化应用,这其中LPP起了很大的刺激作用。
如果你能站在一个高度(一定范围内)看待这些东西,那末当你面临毕业出国压力时,你就可以“察若水三千,得一瓢饮”来缓解压力。而且还可以尽量饮得好水。(再次郑重声明:这不是发这个帖子的原意。)
3,子空间方法中常用的计算技巧
a.
关于这一块的东西,Stan Z. Li编辑过一个小书挺好的,可以通过下面的网站找到。
http://www.face-rec.org/不过,我想谈谈规律性的东西。这其中涉及到的东西就是 column (range) space, null space, generalized inverse。这些东西都和QR分解,SVD或是GSVD相关。遇到这些东西,就想起他们准没错。如果你有兴趣,可以看看YE Jieping和Haesun Park关于子空间的论文,都是一个模式。
b. 正交化
从发表的论文来看,对于广义特征值问题,如果求解一组相互正交的基,比B-orthogonal效果要好很多。代表作就是CAI Deng的orthogonal LPP和YE Jieping的 orthogonal LDA。
CAI Deng做了一个orthogonal LPP发在TIP上。他用的就是88年发在TPAMI上的方法,原理一模一样。YE Jieping用的是同时对角化三个矩阵。风格不同,各有长短。个人还是倾向于CAI Deng用的那个方法。
4,Tensor revisited
在上一篇中,我谈了tensor的方法,主要说了tensorfaces和NTF。这里再多说几句。
最近在tensor方面功夫最多的是YAN Shuicheng,最近的TPAMI, TIP, 和 CVPR'07都有他与此相关的文章。这对于发扬和推广tensor的思想和方法确实是个好事情,我是赞同探讨的。
另外,HE Xiaofei和CAI Deng也做过tensor subspace。准确地说,他们只是借用了tensor的概念,他们的方法可以和2D PCA, 2D LDA归为一类。
其实做这一块东西最早的是YANG Jian的一个大师兄,在90年代PR上的工作,后来YANG Jian把它发扬光大,最初的结果就是PR和TPAMI上各一篇短文(2DPCA)。
最早把这类东西以tensor形式呈现的是CV中的大牛Amnon Shashua在01年CVPR上的论文,有兴趣可以看看。不过,大牛终究是大牛,当他听说了NMF以后,NTF立马横空出世(ICML'05)。这个中间的变化是质的跨越,能做出前面那种方法的可以说非常之多,能做出后面那种方法的真是寥寥。这是值得我们好好学习的。
(B.T.W.,Amnon此人并不只是学术了得,其妻子是以色列小姐
,again,也值得大家学习的榜样
,特别是整天闷头做科研的我们)
在这里要强调的是,我们不能完全否定一些简单的东西,上轨道的或是正宗有深度的方法往往就是这样慢慢做出来的。
5,其它
关于kernel的方法我就是点到而止。在上一个帖子中有人提出说说SVM和Boosting,如果谁有兴趣,可以谈谈。
另外也有人说在上一个贴中我漏掉了Bayesianfaces,实际这个就是我在参数模型中提到的Probabilistic Subspaces方法。有兴趣可以看看。
结束语
纵观PAMI领域困扰纷争,虽然我们达不到“跳出三界外,不在五行中”的境界,但是至少我们可以更好的看清楚这个领域的情况。如果你能站在一个高度看待这些东西,你就有可能认清你自己认为有希望的方向在哪儿,从而更准确地找到自己的目标而少走弯路,或是更好地给自己定位。
写这些东西,就是想帮助了解这一领域的人能全面准确地了解这一块的东西,少走弯路。另外,对于已经谙熟于心的人,激发一个讨论的话题。在上一篇贴子中,看贴的人多,回帖的人少,这个现象可不好。欢迎大家踊跃发言,良性讨论,这样才会带来更多益处,千万不要担心自己是新手,越是新手越需要发言。
俗话说:“乱世出英雄”,当今在PAMI领域正是需要英雄的时机,就是我在I中说的“我们正处在一个大有可为的时代”,希望下次力挽狂澜的是华人的名字。
以上尽是一家之言,欢迎大家批评指正、主动参与讨论。
最后用王羲之的《兰亭序》中的两段话来抒情吧:)
夫人之相与,俯仰一世,或取诸怀抱,晤言一室之内;或因寄所托,放浪形骸之外。虽取舍万殊,静躁不同,当其欣于所遇,暂得于己,快然自足,不知老之将至,及其所之既倦,情随事迁,感慨系之矣。向之,所欣俯仰之间,以为陈迹犹不能不以之兴怀。况修短随化,终期于尽。古人云:死生亦大矣。岂不痛哉!
每览昔人兴感之由,若合一契,未尝不临文嗟悼,不能喻之于怀。固知一死生为虚诞,齐彭殇为妄作。后之视今,亦犹今之视昔。悲夫!故列叙时人,录其所述,虽世殊事异,所以兴怀其致一也。后之览者,亦将有感于斯文。
相关推荐
人脸识别检测opencv简单java实现要不是毕业好几年我都不舍得分享出来!!! CTRL+D收藏一下或者关注走一波-有你所需!不断更新! 其他相关下载,配套代码以及PPT。稳妥的小老弟 ...加载本地的OpenCV库,这样就可以用它...
开发一个纯Matlab下的...然而目前互联网上大多采用OpenCV+C++编译Matlab API的方法进行Matlab人脸识别,我觉得这是完全没有意义的。因此,我选择理解Viola-Jones提出的人脸识别算法,并仅用Matlab进行编程(转载)
PCA,即主成分分析(Principal Component Analysis),是统计学中常用的一种..."PCA_faceRec_V2"可能是一个实际应用案例,通过阅读和理解这个项目的代码和文档,我们可以深入了解PCA在人脸识别中的具体实现细节和效果。
使用最小距离进行人脸识别,显示准确率 二、运行方法 贝叶斯分类 MATLAB中直接运行\Bayes\exp1.m脚本文件 运行时间可能需要几分钟。默认为GIRLdatas数据集。如需查看其它数据集,请自行更改路径和数据集名称。 ...
转载中科院计算机所山世光老师的开源免费人脸识别库seetaface,下载分够的去看下 转载http://blog.csdn.net/hust_bochu_xuchao/article/details/53608540
6. 实时分析:现代视频监控系统往往具备智能分析功能,如人脸识别、行为识别等。这部分源码可能涉及深度学习模型,如TensorFlow、PyTorch等,用于训练和部署算法。 7. 安全性:源码中可能包括对数据加密、权限管理...
对手掌静脉识别的欺骗攻击 这个包提供了运行在论文发表的实验的源代码。...人脸识别实验依赖于开源信号处理和机器学习工具箱Bob 。 要安装Bob ,请访问http://www.idiap.ch/software/bob并按照安装说
硬件组件: Arduino UNO和Genuino UNO× 1 摄像头× 1 9V 1A开关墙壁电源× 1 MG-90s伺服系统× 2 2.1 * 5.5mm插头× 1 线性稳压器(7805)× 1 M2 * 10mm螺钉× 15 ...电路城原创内容,未经同意,不得转载!
同时对机器视觉进行了前导性的探究,重点介绍了3种目前在工程技术领域非常流行的分类技术——人工神经网络(ANN)、支持向量机(SVM)和AdaBoost,并在配套给出的识别案例中直击光学字符识别(OCR)、人脸识别和性别分类等...
图片审核包括公众人物人脸识别和不良有害画面识别。3.可信信源稿件检索全部稿件均为新华网已收录的可信稿件,引用和转载更安全放心。4.多渠道发布一键将内容发布到微博、微信等平台,可实时预览发布效果。5.智能融...
例如,可以利用开源项目`Douyin-Bot`来抓取和分析抖音用户的头像,结合腾讯的AI平台进行人脸识别,从而筛选出潜在的匹配对象。此外,GitHub上还有一些专门的交友信息交换项目,如`awesome-lover`,程序员可以在这样...
它不知道的仅仅是汽车和人脸都是 样的。深度学习网络能够识别的许多特性可能都和手头的任务无关,但是其中有一些特 性却是和手头任务高度相关的。 辛顿解释道:"训练这些特性检测器时,每次训练一层,这一层都试图在...