人脸识别方法个人见解
dodo:人臉識別方法個人見解(之一)
TPAMI = IEEE Transactions on PAMI 這個雜志
PAMI? 是指 pattern analysis and machine intelligence這兩個領域
1)PCA和LDA及其相關方法
Eigenfaces和Fisherfaces無疑是人臉識別中里程碑式的工作。就使用的方法而言,PCA和LDA都不是新方法,但是他們都是被第一次十分明確的用在人臉識別中的方法。之所以說"十分明確",是因為就發表的時間來看,這兩個論文都不是首次把這兩個方法用在PAMI相關的分類識別中。這給我們一個小小的啟示:一個新的方法專注于解決一個具體的問題可能會帶來更大的影響,雖然這個方法具有一般性。
在現在人臉識別的方法中,這兩個方法也是follow的人最多的。究其原因,除了其有效性之外,簡單是其最大的特點。縱觀PAMI歷史風云,能經受住時間考驗而流傳下來的方法,除了有效之外一般都有兩個特點其一:1)簡單 (PCA, LDA, K-Means, Normalized Cuts etc.);2)復雜 ,但是解決一個具有一般性而且很難被解決的問題 (在AAM、3d morphable model有深刻影響的Lucas-Kanade算法)。所以如果你的方法一般人都有能力做得到,那就盡量把你的方法做的簡單明確。這就是外國人推崇備至的所謂的Ockham's Razor原理(就個人情感而言,我十分討厭這個名詞)。在這里我要強調一點是,這里說的簡單并不是說原理簡單,Normalized Cuts就方法本身來說簡單,但是原理并不簡單;微分幾何中的Gauss-Bonnet定理形式非常簡單,內涵何其豐富。
在此我想多提兩句。由于國內有諸多發論文的方法論,其中一個流傳下來的一句話就是:系統做的越簡單越好,理論做的越復雜越好。不可否認,這句話有它有道理的地方,但是如果用這句話教育后人,誤人子弟矣。
后來出現了許多新的與之類似的方法,就TPAMI上發表的來看,比較有代表性就是 HE Xiaofei 的LPP和 YAN Shuicheng 的MFA。關于這兩個方法的評論大家可參看j.liu貼中knato的回帖。
在這里我想談談我的個人見解。首先這兩個方法的出現有它們的意義。LPP是流形學習中Laplacian Eigenmaps線性化,這樣無疑會帶動其它流形學習方法在識別問題中的嘗試,一個為解決問題找到一個思路,二個為進入寒冬的流形學習找到新的用武之地,雖然這兩個都不是上檔次的思路,但是潛在影響還是有的。后來 YANG Jian 的UDP就是在LPP號召下在TPAMI上的產物。LPP是非監督方法,所以它的識別性能比LDA好的概率極其微弱。
MFA是基于局部數據關系的監督鑒別方法。它有兩個最近臨近點數量的參數要調。這兩個參數是這個方法雙刃劍。參數調的好,MFA會比LDA效果好,調的不好則不行。這樣MFA用起來比LDA復雜,這樣如果MFA的性能比LDA好的有限,而用起來復雜得多的話,它終將被歷史所拋棄。
另外就像j.Liu在他的帖子中說出的一樣,這些方法有一定的投機性,比如這兩篇文章的試驗,他們都把Fisherfaces(PCA+LDA)設為c- 1,雖然這是按照原始論文的取法,但是是做過這方面工作的人都知道PCA的主元數目如果取得太大,PCA+LDA的性能會顯著降低,在WANG Xiaogang的IJCV上的Random sampling LDA中清楚地給出了圖形說明。所以他們論文中給出的實驗比較不具可信性。
?LPP, UDP, MFA都是我們中國人(至少這些方法發表時還都是)為第一作者發表的方法,個人認為其存在有一定的價值,但它們將是PAMI研究發展中的過眼煙云,無法與PCA,LDA相媲美。
2)LDA奇異性問題
眾所周知,LDA是基于求解廣義特征值問題(Sb*u=Alpha*Sw*u),所以在實際應用時遇到奇異性的問題,就是Sw矩陣不可逆。在人臉識別中解決這一問題的論文“浩如煙海”。這也說明了LDA的影響力之大。在這一類方法中,也有風格之分。
o. PCA 降維
在Fisherfaces中采用的就是先用PCA降維,再用LDA,這也是現在處理這一問題的一般方法。這里有個比較諷刺的事情。Belhumeur在他的論文里說:PCA actually smears the classes together。那末既然smears the classes together,既然PCA破壞類的結構,那為什莫還要用PCA降維?而且事實證明,即使在Sw可逆的情況下,用PCA features也會增強LDA在人臉識別中的性能。這里只能說明,PCA的作用或是PCA features并不是Belhumeur和其以后follow這樣說法的人敘述的那樣。PCA雖然簡單,但是人們應該對它有個正確的認識,這個以后如果有機會再談。
a. RDA
至今影響最大最實用的還是基于regularization思想的RDA。其實這個問題不僅僅在人臉識別中才被注意到。很早在統計中就被解決過,RDA發表于1989的Journal of the Americal Statistical Association雜志上,可見其久遠。在Sw上加一個擾動項也是解決這一問題的最簡單方法。
b.子空間投影
論文最多的也就在這一塊。應用knato類似的排列組合方法,令image(Sw)和null(Sw)分別表示Sw的列(像)空間和零空間,則我們可很容易的就列出如下組合方法 (強調:這里卻不是提供給大家發論文的方法論,而是以較形象的方式敘述!)
把樣本投影到
aa. image(Sb), bb. null(Sw), cc. image(Sw), dd. image(Sw)+null(Sw), ee. image(Sb)+null(Sw) 可并列可串行, ff. image(St)+null(Sw)
以上每一種組合就代表不止一篇論文,在此就不詳細列舉了。另外,你還可以把random sampling技術加進來,這樣就可以不止翻倍。還有,你還可以把同樣的技術用到KPCA KLDA (kFA)上,這樣又可翻倍。更進一步,你還可以把ICA,LBP, Gabor features等諸如此類的東西和以上子空間混合,...,子子孫孫無窮盡焉。
把這個東西做到極致的是國內的 YANG Jian。另外香港中文大學的 TANG Xiaoou 和他以前的學生 WANG Xiaogang 也做這相關的工作,但是他們做一個idea就是一個,沒有灌水之嫌。YANG Jian的工作可以用他在TPAMI上的 KPCA plus LDA 這篇文章來概括,雖然他灌水無數,但就子空間方法而言,他這篇文章還有他發表在國內自動化學報上的那篇長文還是有東西的。如果你想做這一塊的工作,值得看一看,是個較為全面的總結。TANG Xiaoou在子空間方面的代表工作(開山之作)就是dual spaces LDA, random sampling (and bagging) LDA, unified subspaces。(在此之后他還有學生一直在做,就不詳細列舉了。)
我建議想做這一塊工作的同學們,要把TANG and YANG的工作爛熟于心,取長補短,相互學習,取其精華,這樣可以較為快速而全面地掌握。
c. QR分解
矩陣和數值功底比較好的人,能做得更像模像樣。Cheong Hee Park 和 YE Jieping 無疑是這方面的高手。去看看他們在TPAMI,JMLR, 和SIAM的J. Matrix Anal. & Appl上發表的論文可知一二。
d. 相關性
如果Sw可逆,則Sb*u=Alpha*Sw*u可以轉化為 inv(Sw)*Sb*u=Alpha*u。那末就可以考察Sw的子空間和Sb子空間的相關性。這方面的代表工作就是Aleix M. Martinez在TPAMI上長文的那個工作。
e. 變商為差
變u'*Sb*u/(u'*Sw*u)為u'*(Sb-Sw)*u。
3)基于圖像局部結構的方法
這一類獲得廣泛認可的方法有Gabor和LBP,另外還有可能有用的SIFT和differential features。
Gabor應用比較早有影響力的代表作就是EBGM。Gabor也是提取用來識別的visual feature的最常用手段。
有無數人因為LBP的極其簡單而懷疑它的性能,但是有趣的是最近Ahonen在TPAMI上的短文,就是把LBP應用在人臉識別上,沒有任何新的改進,這也說明Reviewer們和editor對這類方法的肯定和鼓勵。在非監督feature extraction中,LBP有明顯的優勢,但是絕對沒有達到作者在論文顯示的那個水平。在他的論文中,LBP特別weighted LBP效果非常好,這和他們應用的FERET人臉庫的人臉crop形式有關。他們應用CSU的橢圓模板來crop人臉,如果應用正方形的模板 weighted LBP提高很有限。特別在FRGC Version 2上測試,LBP絕對沒有一般監督性的識別方法好。另外這也給我們一個小小啟示,就是加個weight其識別性能就能大大提高,這說明什莫問題呢?
另外我不敢茍同j.liu在他文章說的LBP對image blocks大小不敏感是個美麗謊言的說法。首先,有一定的敏感性,這個是要承認的。但是LBP有一個性能穩定的image blocks,并不是人們認為的histogram要符合一定的統計性等等。這個block size的選取比最優的PCA主元數目的選取要容易得多。當然這些都是小問題。
國內有人做Gabor和LBP的結合。當然是值得探索的,但是我個人認為不應該在這兩種方法結合上花費太多精力。完全可以用類似形式考慮別的思路。
4) Sparse representation
NMF和NTF都屬于sparse representation的方法,都曾被應用在人臉識別中,但效果都非常有限。特別是NTF,屬于數學理論上非常優美,但是實際效果很勉強的典型。
另外,Sparse representation (coding) 是一個很有趣也是很有前途的方法,Sparse representation 有很多方式,關鍵要看你怎莫用、解決怎樣的問題。過段時間我們還有機會再談。
5)Tensor方法
Tensor在人臉識別中至少到現在為止,還非常得不成功。最典型的就是M. Alex O.Vasilescu在ECCV'02上的tensorfaces。他們對于問題的分析和tensor的對應天衣無縫,非常有道理,數學實現上也同樣簡單,但是自從那個方法發表出來以后基本無人follow。究其原因,個人認為就是把本來簡單的問題復雜化,最重要的就是復雜化以后并沒有帶來該有的益處。
?
Alex對tensor的應用是flattening high-way tensor。這是一種常見的處理tensor的方法,這樣做的好處就是使tensor好處理易于計算。two-way tensorfaces就是我們理解的Eigenfaces。但是同樣是tensor,這種tensor和Amnon Shashua的NTF有著本質的區別。NTF是純正的tensor思想。但是它實現起來過于復雜,又加上原理比Alex的tensor更復雜,所以無人問津。但是不可否認,它們都是數學上十分優美的方法。如果你想學習tensor而又不想枯燥,我推薦你去看這三篇論文(Shashua兩篇)。
6)參數模型
參數模型的應用也多種多樣,比如HMM, GMM等。這兩個都是一般性的建模方法,所以應用也很龐雜,而且在人臉識別中的應用大多是從speech recognition中的方法轉化而來,在此就不多談。有興趣的同學們可以參看H. Othman在PAMI上的論文和Conrad Sanderson在PR上的論文。
但是在此其中,最簡單的是Baback Moghaddam在TPAMI上那個Probabilistic Subspaces的文章,這個文章也是WANG Xiaogang的unified spaces的參考原本。
7) 3D 模型
代表作是Volker Blanz在TPAMI上的那個文章。不過個人十分不看好。
8)Personal Perspectives
a. 基于子空間的方法很難在實際應用中有所用處
b. 基于找圖像局部結構的方法更有希望。像EBGM, LBP, SIFT之類可以給我們很多有益的啟示。這點和j.liu的觀點一致。
c. 把人臉識別中的方法推廣開來,應用到一般的分類和統計問題中,這也是人臉識別衍生出來的一大作用。
d. 由于我們國內的特殊研究環境,大家一般都喜歡做簡易快的工作,所以人臉識別這一領域出現有華人名字的論文為數可觀。其實在某些壓力之下這也無可厚非,但是還是希望我們國人在有條件的情況下,不要以發論文為主,多關注于解決問題本身、盡量向推動理論發展的方向努力。我們絕對有這個能力。君不見,NIPS ‘06兩篇Best student paper被在國外留學的中國人獲得,CVPR'07更是又傳來喜訊:Best student paper由清華學生獲得,這些都是跡象。我們正處于一個意氣風發、大有可為的時代。就本人學術水平和資歷來說,絕沒有資格來說這些話,這只不過是個人的一點心愿和號召而已,同時更是勉勵自己。
以上均是dodo個人拙見,囿于本人才疏學淺,難免出現掛一漏萬和觀點偏頗的情況,還請大家及時批評指正,以免曲彼誤人。謝謝
===========================================
dodo: 人臉識別 (之二)
這篇文章是接著《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中說的“我們正處在一個大有可為的時代”,希望下次力挽狂瀾的是華人的名字。
以上盡是一家之言,歡迎大家批評指正、主動參與討論。
===============================
link
總結
以上是生活随笔為你收集整理的人脸识别方法个人见解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转载]模糊系统:挑战与机遇并存——十年
- 下一篇: Fuzzy c-means (FCM)聚