基于矩陣乘法的快速動(dòng)作單元識(shí)別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于計(jì)算機(jī)視覺(jué)技術(shù)領(lǐng)域,具體涉及快速動(dòng)作單元識(shí)別方法。
【背景技術(shù)】
[0002] 面部動(dòng)作編碼系統(tǒng)(Facial Action Coding System,簡(jiǎn)稱FACS),F(xiàn)ACS理論于 1969 年由心理學(xué)家提出,其目的是為了客觀刻畫人的面部表情。該理論使用一組編碼描述表 情,每個(gè)編碼稱為一個(gè)動(dòng)作單元(Action Unit)。FACS把人的面部表情用一系列動(dòng)作單元 (Action Unit)表示,每個(gè)動(dòng)作單元用一個(gè)預(yù)先規(guī)定的編號(hào)表示。例如,一個(gè)驚訝的表情包 括眉毛內(nèi)側(cè)上揚(yáng)、外側(cè)眉毛上揚(yáng)、上眼瞼上揚(yáng)、下顎張開(kāi),這些動(dòng)作對(duì)應(yīng)的動(dòng)作單元編號(hào)分 別是1、2、5和26。因此,可以用這組編碼描述該驚訝的表情。動(dòng)作單元識(shí)別可以客觀描述 人的面部動(dòng)作,也可以用來(lái)分析表情對(duì)應(yīng)的情緒狀態(tài)。
[0003] 現(xiàn)有識(shí)別算法通常提取通用的計(jì)算機(jī)視覺(jué)特征,對(duì)每個(gè)動(dòng)作單元獨(dú)立建模,并建 立一個(gè)二分類器來(lái)識(shí)別該動(dòng)作單元是否在圖像或圖像序列中出現(xiàn);再將識(shí)別的結(jié)果組合, 得到完整的動(dòng)作單元組合。這樣的方法忽略了動(dòng)作單元之間的關(guān)系,如某些動(dòng)作單元是互 斥的,而有些動(dòng)作單元傾向于同時(shí)發(fā)生,這在傳統(tǒng)框架中都無(wú)法對(duì)這些現(xiàn)象加以鼓勵(lì)或者 懲罰。同時(shí),現(xiàn)有方法使用的視覺(jué)特征通常涉及非線性操作,比較耗時(shí)。
[0004] 該領(lǐng)域已經(jīng)有不少前人工作,參見(jiàn)文獻(xiàn):【1】--【7】
[0005] 其中,在[4]中研究人員使用受限局部模型(Constrained Local Model,簡(jiǎn) 稱CLM)定位人臉的關(guān)鍵點(diǎn);針對(duì)每個(gè)動(dòng)作單元,選擇與其高度相關(guān)的關(guān)鍵點(diǎn),在這些關(guān) 鍵點(diǎn)周圍選擇圖像塊作為識(shí)別依據(jù);具體地,使用非負(fù)矩陣分解(Non-negative Matrix Factorization,簡(jiǎn)稱NMF)對(duì)每個(gè)圖像塊提取特征;對(duì)每個(gè)動(dòng)作編碼訓(xùn)練一個(gè)支持向量回 歸(Support Vector Regression,簡(jiǎn)稱SVR)。該方法可以估計(jì)每個(gè)動(dòng)作單元的強(qiáng)度。但是 根據(jù)動(dòng)作單元選擇關(guān)鍵點(diǎn)通常需要領(lǐng)域知識(shí),后者在一定程度上取決于選擇者的經(jīng)驗(yàn)。
[0006] 另一種方法則不需要特定的領(lǐng)域知識(shí)。在[5]中研究人員抽取面部圖像的加伯 (Gabor)特征,對(duì)每個(gè)動(dòng)作單元訓(xùn)練一個(gè)二分類的支持向量機(jī)(Support Vector Machine, 簡(jiǎn)稱SVM)進(jìn)行對(duì)應(yīng)動(dòng)作單元的檢測(cè)。為了降低加伯特征的維度,該方法針對(duì)每個(gè)動(dòng)作單 元,使用Adaboost選擇最優(yōu)特征,并將所有動(dòng)作單元對(duì)應(yīng)特征的合集作為最后使用的特 征。
[0007] 另一種方法不使用高維度的加伯特征,如[3]中研究人員使用局部二值模式 (Local Binary Pattern,簡(jiǎn)稱LBP)作為特征,對(duì)每個(gè)動(dòng)作單元訓(xùn)練二分類的支持向量機(jī), 用于識(shí)別對(duì)應(yīng)的動(dòng)作單元。
[0008] 然而使用這些計(jì)算機(jī)視覺(jué)特征并不能對(duì)表情提供可解釋性;同時(shí),對(duì)每個(gè)動(dòng)作單 元單獨(dú)建模,忽略了動(dòng)作單元之間的關(guān)系:如動(dòng)作單元24是嘴唇抿緊(lip presser),動(dòng)作 單元25是嘴唇分開(kāi)(lip apart),這兩個(gè)動(dòng)作單元是互斥的,這在獨(dú)立建模的框架下可能 被同時(shí)誤檢測(cè)到。此外,由于計(jì)算特征和使用支持向量機(jī)的過(guò)程中牽涉到大量非線性操作, 時(shí)間性能并不理想。
[0009] 因此,本發(fā)明提出一種簡(jiǎn)潔的識(shí)別方法。它僅對(duì)面部圖像進(jìn)行矩陣乘法,對(duì)得到的 響應(yīng)進(jìn)行分析作為檢測(cè)的依據(jù);同時(shí)對(duì)所有動(dòng)作單元協(xié)同建模,規(guī)避了獨(dú)立建模的弊端。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的在于提出一種識(shí)別速度快,準(zhǔn)確性高的動(dòng)作單元識(shí)別方法。
[0011] 本發(fā)明提出的動(dòng)作單元識(shí)別方法,并不顯式提取特征,而是使用一種基于矩陣乘 法的識(shí)別方法,兼?zhèn)涮卣魈崛『蛣?dòng)作單元識(shí)別的作用,能極大提升識(shí)別速度。同時(shí),該方法 對(duì)所有動(dòng)作單元統(tǒng)一建模,該模型可以刻畫動(dòng)作單元之間的分布關(guān)系。圖1為本發(fā)明識(shí)別 方法的流程圖示。其過(guò)程為:
[0012] 首先,通過(guò)事先訓(xùn)練,可得到針對(duì)每個(gè)動(dòng)作單元的模型矩陣:
[0013] M1, M2,…,Ml,其中 Mi € 臟?1n
[0014] L是動(dòng)作單元的數(shù)量,m和η分別是訓(xùn)練圖像的長(zhǎng)和寬。每個(gè)矩陣與訓(xùn)練圖像的尺 寸是相同的。對(duì)于待檢測(cè)的人臉圖像,首先將其縮放至與訓(xùn)練圖像相同尺寸,然后與每個(gè)模 型矩陣進(jìn)行點(diǎn)乘,得到的響應(yīng)對(duì)應(yīng)該動(dòng)作單元;將得到的所有動(dòng)作單元對(duì)應(yīng)的響應(yīng)歸一化, 然后進(jìn)行離散化,即得到該動(dòng)作單元存在與否。具體地,本發(fā)明方法的具體步驟為:
[0015] (1)使用預(yù)先訓(xùn)練,得到模型矩陣陣列:
[0017] (2)對(duì)于一幅面部圖像,對(duì)其進(jìn)行人臉檢測(cè)和切割,并縮放成尺寸為mXn的圖像, 將人臉圖像向量化,得到人臉圖像向量:X € HTnrS
[0018] (3)計(jì)算模型M對(duì)于人臉圖像X的響應(yīng):
[0019] R = XtM (2)
[0020] (4)計(jì)算歸一化的響應(yīng):
[0022] 此步驟將所有相應(yīng)歸一化到[0, 1]之間,方便設(shè)定有意義的閥值;
[0023] (5)識(shí)別:找出對(duì)應(yīng)R>0. 5的位置,則這些位置對(duì)應(yīng)的動(dòng)作單元在表情圖像X中出 現(xiàn),其他的動(dòng)作單元沒(méi)有出現(xiàn)。
[0024] 其中,模型訓(xùn)練過(guò)程見(jiàn)圖2所示,具體步驟為:
[0025] 對(duì)數(shù)據(jù)集中圖像進(jìn)行人臉檢測(cè),得到人臉圖像向量:馬€ ?mH:,i=l,2, ··%為 了用M直觀地預(yù)測(cè)動(dòng)作單元,需進(jìn)行優(yōu)化處理:
[0027] 其中,1^是X ;對(duì)應(yīng)的動(dòng)作單元組合,U {〇, 1} \ L是動(dòng)作單元的數(shù)量,1表示該 動(dòng)作單元出現(xiàn),〇表示不出現(xiàn)。例如,Uit1= 〇表示第^個(gè)動(dòng)作單元在第i個(gè)樣例中不出 現(xiàn),Uit2 = 1表示第、個(gè)動(dòng)作單元在第i個(gè)樣例中出現(xiàn)。N是樣本個(gè)數(shù)。
[0028] 但是通常一個(gè)表情涉及到的動(dòng)作單元數(shù)量非常少,因此U1是非常稀疏的,亦即大 多數(shù)情況下Ult= 0,這容易導(dǎo)致正例被錯(cuò)誤劃分為負(fù)例;因此,本發(fā)明假定數(shù)據(jù)集中給出的 U(即U1組成的矩陣)是由完整的動(dòng)作單元標(biāo)簽經(jīng)由一定的損失得到的,即每個(gè)樣例的每個(gè) 動(dòng)作單元都有一定概率丟失(無(wú)論原先值為0或者1,一律被置為0);并試圖用一個(gè)擴(kuò)充矩 陣B對(duì)U進(jìn)行擴(kuò)充,得到完整的動(dòng)作單元標(biāo)簽。
[0029] 然而,由于我們對(duì)完整的動(dòng)作單元標(biāo)簽U并不知道,因此,我們對(duì)現(xiàn)有的動(dòng)作單元 標(biāo)簽進(jìn)行損失,并通過(guò)B將損失后的標(biāo)簽擴(kuò)充得到現(xiàn)有標(biāo)簽。其公式為:
[0031] 其中,O1是U1經(jīng)過(guò)一定概率變換得來(lái)的,具體地:
[0033] 即動(dòng)作單元組合中的每個(gè)動(dòng)作單元以p的概率置為0。
[0034] 則可以計(jì)算重建誤差期望:
[0038] 其中:
[0039] S = (l-p)UUT (9)
[0040] T = (l-p2)UUT+p(l_p) δ (UUt) (10)。
[0041] 由此,得到一個(gè)帶有兩項(xiàng)未知數(shù)的優(yōu)化方程:
[0043] 其中,α,β,γ是各自對(duì)應(yīng)項(xiàng)的權(quán)重,在模型訓(xùn)練時(shí)取若干值比較分類效果,得到 合理的權(quán)重組合。
[0044] 優(yōu)化算法
[0045] 由于優(yōu)化方程包含兩個(gè)變量,無(wú)法直接優(yōu)化。本發(fā)明使用坐標(biāo)下降法(coordinate descent),循環(huán)地優(yōu)化兩個(gè)變量。具體地,給定B的情況下,對(duì)M求導(dǎo)數(shù),并令之為0 :
[0046] M = (BUXt-β ) (ΧΧτ+Να I) (12)
[0047] 在給定M的情況下,對(duì)B求導(dǎo)數(shù),并令之為0 :
[0048] B = ( γ S+MXUT) ( γ T+UUT) 1 (13)
[0049] 其中,α,β,γ與(11)式中相同。上述算法并不能保證收斂到全局最優(yōu)值,因此 B的初值選擇很重要。因?yàn)樗葍r(jià)于給定了動(dòng)作單元標(biāo)簽到完整動(dòng)作單元標(biāo)簽的條件分布, 在對(duì)完整標(biāo)簽并不了解的情況下,我們應(yīng)當(dāng)不做特殊假設(shè),將B初始化為一個(gè)單位陣。
[0050] 具體地,我們有如下算法:
[0051] (1)將B初始化為單位陣;
[0052] (2)求解 M:
[0053] M = (BUXt- β ) (ΧΧΤ+Ν α I)
[0054] (3)求解 Β:
[0055] B = ( γ S+MXUT) ( γ T+UUT) 1
[0056] (4)重復(fù)步驟(2)-(3)直到M收斂或超出最大步數(shù)限制。
[0057] 時(shí)間性能
[0058] 本發(fā)明的核心優(yōu)勢(shì)在于識(shí)別速度,由于只涉及矩陣乘法,因此速度非??臁1?比 較了幾種算法的操作數(shù)量。假設(shè)考慮L的動(dòng)作單元,圖像尺寸都是mXn的。
[0059] 局部二值模式(Local Binary Pattern,簡(jiǎn)稱LBP)需要比較像素與周圍(通常是 8個(gè))像素的大小關(guān)系,并對(duì)L個(gè)動(dòng)作單元進(jìn)行二分類。因此包含Smn次比較和L次二分 類;
[0060] 離散余弦變換(Discrete Cosine Transformation,簡(jiǎn)稱DCT)包含mn次余弦計(jì) 算,L次二分類;
[0061] 加伯特征涉及維數(shù)約簡(jiǎn),假設(shè)對(duì)每個(gè)動(dòng)作單元抽取κ個(gè)特征,不同動(dòng)作單元的特 征選擇存在可能的交集,總操作數(shù)需要O(KL)次指數(shù)計(jì)算和L次二分類,其中κ是每個(gè)動(dòng) 作單元對(duì)應(yīng)選擇的特征數(shù)量。
[0062] 本發(fā)明只需要做1次矩陣乘法,具體可以分解為L(zhǎng)次向量乘法,1次歸一化操作。
[0063] 下面進(jìn)一步介紹本方法在實(shí)驗(yàn)數(shù)據(jù)集上的識(shí)別效果。我們采用了四個(gè)數(shù)據(jù)集。
[0064] CK+(Cohn-Kanade+)是一個(gè)灰度圖像數(shù)據(jù)集,包含了來(lái)自123個(gè)參與者的593段人 臉圖像序列,總共10708張圖像。圖3展示了 CK+的一些示例圖像。由于每個(gè)圖像序列僅 有一張圖像被明確標(biāo)注,因此只采用被明確標(biāo)注的圖像作為訓(xùn)練和測(cè)試的數(shù)據(jù)集,即數(shù)據(jù) 集包括593個(gè)樣例。由于樣例數(shù)量較少,采用留一驗(yàn)證,即每次跳出一張圖像作為測(cè)試集, 其余用作訓(xùn)練。
[0065] FERA(Facial Expression Recognition and Analysis)也是一個(gè)灰度圖像數(shù)據(jù) 集,原先用作表情識(shí)別的競(jìng)賽。由于測(cè)試集的標(biāo)注已經(jīng)無(wú)法獲取,只采用訓(xùn)練集,分割訓(xùn)練 和測(cè)試數(shù)據(jù)集。其中包括66個(gè)人臉圖像序列,總共3900幀圖像。由于使用協(xié)議的限制, FERA的圖像不能展示。
[0066] 在上述兩個(gè)數(shù)據(jù)集的基礎(chǔ)上,構(gòu)建了 FERA&CK+數(shù)據(jù)集,即把FERA和CK+的數(shù)據(jù)混 合,這樣的實(shí)驗(yàn)是為了測(cè)試本發(fā)明在多種數(shù)據(jù)源的分布下的泛化能力。
[0067] BOSPHORUS是一個(gè)深度圖像的表情數(shù)據(jù)集,包含了 4666個(gè)樣例。這里選擇了其中 2690張無(wú)遮擋的正臉圖像用做實(shí)驗(yàn)。圖4是BOSPHORUS的一些樣例。
[0068] 上述數(shù)據(jù)集中,除了 CK+使用留一驗(yàn)證,其余都適用10折的交叉驗(yàn)證。即把所有 樣例平均分為10份,每次取其中9份作為訓(xùn)練數(shù)據(jù)集,1份作為測(cè)試數(shù)據(jù)集。
[0069] 作為比較方法,我們實(shí)現(xiàn)了基于加伯特征的方法,并使用Adaboost進(jìn)行特征選 擇。
[0070] 實(shí)驗(yàn)使用Fl分?jǐn)?shù)作為性能指標(biāo),其定義是這樣的:
CN 105117703 A 明 Ti 5/9 頁(yè)
[0074] 在上述定義中,tp表示正確分類的正例,tn表示正確分類的負(fù)例,fp表示錯(cuò)誤分 為正例的負(fù)例,fn表示錯(cuò)誤分為負(fù)例的正例。
[0075] 實(shí)驗(yàn)1,表2、表3、表4、表5展示了四個(gè)數(shù)據(jù)集上本發(fā)明和基于加伯特征的方 法的比較??梢钥吹奖景l(fā)明和基于加伯特征的方法的性能是接近的,在深度圖像數(shù)據(jù)集 BOSPHORUS上,本發(fā)明的識(shí)別率超過(guò)了基于加伯特征的方法。
[0076] 實(shí)驗(yàn)2,圖5、圖6分別展示了從CK+和BOSPHORUS上學(xué)習(xí)得到的動(dòng)作單元模型。 CK