天天看點

人臉識别方法

看到了DODO先生所寫的“人臉識别方法之個人見解”,感覺收益非淺。本文頗有高屋建瓴的意味,是以在沒有經過作者本人的同意下,貿然轉載于此,希望讀到本文的同仁能夠在PR領域多碰出些思想火花,對所從事的領域有所感悟!==================================

dodo:人臉識别方法個人見解(之一)

看到j.liu關于人臉識别的文章,萌發寫這個文章的念頭。沒有别的意思,就是想抛磚引玉,把問題說的全面一點,希望j.liu和回其文章的兄弟姐妹們不要介意。如有興趣,歡迎繼續讨論。在以下讨論中,

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的選”茸钣諾腜CA主元數目的選取要容易得多。當然這些都是小問題。

國内有人做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編輯過一個小書挺好的,可以通過下面的網站找到。

不過,我想談談規律性的東西。這其中涉及到的東西就是 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。這裡再多說幾句。