魏江平, 林家駿, 陳 寧
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
說謊是人類通過虛假陳述、扭曲事實(shí)和遺漏等形式誤導(dǎo)別人的一種特殊行為。自動(dòng)檢測說謊是計(jì)算機(jī)語言學(xué)、心理學(xué)、軍事、情報(bào)機(jī)構(gòu)等各學(xué)科研究的重要領(lǐng)域。由于人類檢測說謊的能力幾乎為隨機(jī)猜測,因此需要科學(xué)、可靠的自動(dòng)化方法檢測說謊。自動(dòng)檢測說謊技術(shù)通過自動(dòng)分析人們的行為、語言、以及各種生理指標(biāo)對人們是否說謊作出判斷,其在刑事案件處理、醫(yī)療以及司法等職業(yè)中起著至關(guān)重要的作用,具有廣闊的應(yīng)用場景。
目前的說謊檢測方法大致分為兩大類:一是基于言語線索的檢測方法;二是基于非言語線索的檢測方法。基于言語線索的檢測方法主要是通過分析語法以及詞性等特征來檢測真話和假話[1]。文獻(xiàn)[2]提出了基于語言探究和字?jǐn)?shù)統(tǒng)計(jì)詞典的心理語言學(xué)特征用于測謊。Newman 等[3]發(fā)現(xiàn)說謊者使用更多的負(fù)面情緒詞。還有人提出不同的語言特征(字?jǐn)?shù)、詞性和句子統(tǒng)計(jì)特征)[4-5]以及文本句法復(fù)雜性等都與說謊存在聯(lián)系[6]。Pérez-Rosas 等[7]基于語詞計(jì)量文本分析工具LIWC(Linguistic Word Count)發(fā)現(xiàn)說謊者在講述過程中比講真話者更加自信。
基于非言語線索的檢測方法雖沒有基于言語線索檢測方法多,但在檢測說謊方面也取得了很大成功,主要分為3 類:基于生理、視覺和聲音線索。基于生理的檢測方法包括使用測謊儀[8]、熱成像方法測量面部血流量和面部皮膚溫度[9-11]以及使用腦功能磁共振成像 (Functional Magnetic Resonance Imaging,F(xiàn)MRI)測量腦血流量等[12]。這些方法都需要測試者配合且設(shè)備昂貴,另外操作人員需具備專業(yè)知識?;诼曇舻臋z測方法包括利用聲壓分析器(Voice Stress Analysis,VSA)和分層聲音分析技術(shù)兩種商業(yè)產(chǎn)品對人體聲帶進(jìn)行操作來測謊[1]。有相關(guān)研究表明,音高、持續(xù)時(shí)間、能量以及說話過程中的停頓[13-16]可表明說謊信息?;谝曨l的檢測方法近年來也越來越受到關(guān)注。Depaulo 等[17]發(fā)現(xiàn)瞳孔擴(kuò)張是一種表明說謊的行為。面部微表情如嘴唇突出翹起以及一些標(biāo)志性手勢也被認(rèn)為是說謊的一類標(biāo)志[7,18-21]。
多模態(tài)測謊也不斷受到關(guān)注。Pérez-Rosas 等[7]引入了一個(gè)新的說謊數(shù)據(jù)庫,包含法庭審判的真實(shí)審判場景視頻,并且通過提取文本、手勢和面部動(dòng)作等特征,評估了不同模態(tài)特征對測謊的重要性。文獻(xiàn)[19, 22-24]結(jié)合聲學(xué)、視覺、文本模態(tài)提出了不同的多模態(tài)模型來檢測說謊,其中文獻(xiàn)[19]除通過Glove 對文本進(jìn)行詞編碼來獲取文本的詞向量表示以及提取了音頻MFCC 等基本特征外,還主要關(guān)注了可表明說謊信息的動(dòng)態(tài)運(yùn)動(dòng)特征等;文獻(xiàn)[23]除提取了音頻、視頻、文本模態(tài)的基本特征外,還采用了人工標(biāo)注的微表情特征。文獻(xiàn)[24]采用CNN 和LSTM 深度學(xué)習(xí)模型來提取音頻和視頻特征。這些模型結(jié)構(gòu)相對比較復(fù)雜,且在實(shí)際場景中不可能采用由人工標(biāo)注的微表情特征,模型的分類準(zhǔn)確率并不理想。文獻(xiàn)[25-27]提出心率變化與說謊有關(guān),可較好地反映說話者內(nèi)心情緒的變化,但心率等生理特征通常都是通過電子儀器設(shè)備這種接觸式的方法來獲得。實(shí)際的應(yīng)用場合往往不允許接觸式測謊,因此開發(fā)一種易于部署的非接觸式測謊系統(tǒng)成為必然。
本文提出了一種基于視頻、心率、文本三模態(tài)融合的非接觸式測謊模型,采用線性支持向量機(jī)(Linear Support Vector Machines,L-SVM)作為分類器。該多模態(tài)模型未使用人工標(biāo)注特征,且引入了心率進(jìn)行非接觸式說謊檢測,在降低模型復(fù)雜度的同時(shí)提高測謊的準(zhǔn)確率,實(shí)驗(yàn)結(jié)果表明本文模型相較于其他模型有效地提高了測謊準(zhǔn)確率。
早期的研究工作中,將心率用于測謊時(shí)都是通過生理傳感器來測量心率,這種接觸式方法會(huì)讓測試者存在防備心理。本文采用非接觸式PPG 技術(shù)從視頻圖像的局部區(qū)域中提取心率值,其中正常環(huán)境光作為光源[25]。其原理是血液比周圍組織吸收更多的光,血液體積的變化影響著入射光和反射光。面部血管擴(kuò)張,入射光路徑長度增加,反射光強(qiáng)度也隨著變化,即血容量的變化通過反射光亮度值的變化體現(xiàn)出來,反射光強(qiáng)度的變化反映在圖像像素值的變化上。
與2D-CNN 相比,3D-CNN 更容易檢測出視頻圖像中的微妙表情或者肢體動(dòng)作。2D-CNN 一般是通過分析視頻的每一幀信號進(jìn)行識別,沒有考慮時(shí)間維度上的幀間動(dòng)作信息。而3D-CNN 通過3D 卷積操作,可同時(shí)獲取空間和時(shí)間維度上的特征,捕獲
由Google 公司提出的Word2Vec 模型在獲取詞向量工作方面取得了很大的成功,它的主要優(yōu)勢是可使語義相接近的詞語或短語之間的距離更小,可較好地度量詞與詞之間的相似度。Word2Vec 主要包含Skip-Gram 與CBOW 兩種模型。Skip-Gram 模型的輸入是一個(gè)句子中的某個(gè)詞語,然后預(yù)測該詞語的上下文。CBOW 模型則相反,輸入的是句子中某個(gè)詞語的上下文,然后根據(jù)上下文來預(yù)測出目標(biāo)單詞。本文采用基于CBOW 的Word2Vec 模型進(jìn)行詞向量映射。Word2Vec 模型是在Google News 數(shù)據(jù)集上預(yù)訓(xùn)練好的,該數(shù)據(jù)集包含一百多萬個(gè)英文的短語和詞語。利用Word2Vec 模型的訓(xùn)練結(jié)果可得到每個(gè)詞語的詞向量,將文本中每個(gè)詞語映射到維度一定的向量空間中,保存樣本單詞之間的語義信息。
2.1.1 心率提取 心率反映了測謊者內(nèi)心情緒的變化,對于測謊有很大的幫助。非接觸式PPG 技術(shù)首先通過讀取AVI 格式的視頻信號,使用面部自動(dòng)跟蹤器檢測視頻幀內(nèi)的人臉并定位到感興趣的測量區(qū)域 (Regions of Interest,ROI)。借助圖像處理工具包Opencv 庫和具有類似Haar 數(shù)字圖像特征的級聯(lián)增強(qiáng)分類器來獲取ROI 的坐標(biāo)以及高度、寬度。對ROI 區(qū)域中R、G、B 3 個(gè)通道的像素值分別進(jìn)行空間平均[26]以提高信噪比。計(jì)算ROI 區(qū)域中R、G、B 3 個(gè)通道的像素均值,將每個(gè)圖像幀的畫面信息轉(zhuǎn)變成點(diǎn)信息,得到3 個(gè)通道的脈動(dòng)信號。假設(shè)在時(shí)刻t,脈動(dòng)信號中R、G、B 3 個(gè)通道的信號幅度分別為s1(t)、s2(t)、s3(t)(感興趣測量區(qū)域像素值的平均值),則脈動(dòng)信號如式(2)所示。
其中:aj代表每個(gè)通道的權(quán)重。G 通道具有最強(qiáng)的體積描記信號[26],則G 通道權(quán)重值最大。本文僅對G 通道信號取灰度均值,然后進(jìn)行快速傅里葉變換以獲得脈動(dòng)信號的功率譜密度。功率譜中最高功率對應(yīng)的頻率則代表了脈沖頻率,即可得到每一幀視頻信號對應(yīng)的心率值。假設(shè)得到的頻率值為f,則根據(jù)式(3)可得到每一幀視頻信號的心率值(頻率表示的是1 s 內(nèi)完成周期性變化的次數(shù),心率是指每分鐘心跳的次數(shù))。
文獻(xiàn)[27]證明了在整個(gè)面部、前額、眼角周圍這3 個(gè)區(qū)域中,前額區(qū)域提供了更為豐富的信息,所以本文選擇前額區(qū)域?yàn)镽OI。在檢測到人臉后定位額頭,借助非接觸式PPG 技術(shù)得到每一幀視頻信號的心率值,將每一幀信號的心率值拼接組合成一維向量,此一維向量包含了一個(gè)視頻樣本所有幀的心率值。為防止人臉檢測錯(cuò)誤影響算法性能,若當(dāng)前幀沒有檢測到人臉額頭,則將前一幀的額頭坐標(biāo)返回。若檢測到多個(gè)面部和額頭,則選擇最接近前一幀的額頭坐標(biāo)返回,且為了能更準(zhǔn)確地獲取心率值,只有當(dāng)視頻幀長大于10 幀時(shí)才開始獲取心率值。
2.1.2 心率特征提取 通過PPG 技術(shù)獲得了每個(gè)樣本的心率值向量后,為獲得心率變化特征,采用全連接網(wǎng)絡(luò)來獲取反映心率變化情況的心率特征。全連接網(wǎng)絡(luò)包括1 個(gè)輸入層,4 個(gè)隱藏層以及1 個(gè)輸出層。將獲取的心率值向量作為輸入,然后經(jīng)過隱藏層。4 個(gè)隱藏層分別具有1 024、1 024、512、300 個(gè)神經(jīng)元,都采用ReLU 作為激活函數(shù),且每一層都采取Dropout 為0.5 的措施以防止過擬合。采用隨機(jī)梯度下降優(yōu)化算法訓(xùn)練模型,訓(xùn)練損失函數(shù)為最小交叉熵。將訓(xùn)練好的模型的最后一個(gè)隱藏層的輸出作為心率特征,最終得到的心率特征是長度為300 的一維特征向量。
3D-CNN 模型的輸入由一系列圖像幀組成,在輸入圖像幀之間生成多個(gè)通道信息,最終的視頻特征由所有通道信息組合得到。3D-CNN 網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。首先,以原始視頻圖像作為輸入,輸入的視頻維度為(C,N,H,W),其中C表示信道數(shù),實(shí)驗(yàn)中輸入的是彩色圖像幀,有R,G,B 3 個(gè)通道,C=3;N表示一次輸入的圖像幀數(shù),取值30;H和W分別表示輸入的每一幀圖像的高度和寬度,取值均為96。輸入的圖像幀首先通過一個(gè)硬連線層得到5 種不同的特征,分別是灰度、X方向的光流、Y方向的光流、X方向的梯度、Y方向的梯度,即形成5 個(gè)不同的通道。硬連線層使用一個(gè)固定Hardwired 核對輸入幀進(jìn)行處理,獲得多個(gè)通道信息。光流和梯度分別表明物體運(yùn)動(dòng)趨勢和圖像邊沿分布,3D-CNN 模型正是通過獲取光流和梯度這兩種信息來識別視頻行為。硬連線層的輸出經(jīng)過一個(gè)卷積層對5 個(gè)通道的特征分別進(jìn)行卷積操作,卷積核的大小為(M,C,L,F(xiàn)h,F(xiàn)w),產(chǎn)生一個(gè)維度為(M,C,N-L+1,H-Fh+1,W-Fw+1)的輸出。其中M表示特征映射的數(shù)量,L表示執(zhí)行一次3D 卷積操作的圖像幀數(shù),F(xiàn)h,F(xiàn)w分別表示卷積核的高度和寬度,實(shí)驗(yàn)中采用的卷積核大小為(32,3,5,5,5)。卷積層的輸出經(jīng)過一個(gè)窗口大小為3×3×3 的最大池化層,然后經(jīng)過一個(gè)具有300 個(gè)神經(jīng)元且激活函數(shù)為Softmax 的全連接層,全連接層的輸出即為提取出的視頻特征。最終得到的視頻特征是長度為300 的一維向量。
圖1 3D-CNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of 3D-CNN
早期的研究工作已經(jīng)證明了文本含有豐富的語義信息,對于測謊很有幫助,因此可以用來測謊[2-5]。受到文獻(xiàn)[23]啟發(fā),本文采用圖2 所示的模型對文本進(jìn)行分析,提取其語義特征。首先以文本作為輸入,通過Word2Vec 模型對原始文本進(jìn)行詞向量映射,得到文本中每個(gè)單詞的詞向量;然后將這些詞向量進(jìn)行拼接得到每個(gè)樣本的詞向量矩陣;最后使用CNN 模型進(jìn)一步提取詞向量矩陣上下文的語義相關(guān)性信息。假設(shè)一個(gè)樣本包含了N個(gè)單詞,經(jīng)過Word2Vec模型進(jìn)行詞向量表示后得到詞向量矩陣M∈RN×L,L表示詞嵌入維度,取值300。mj∈M為文本中第j個(gè)單詞的向量表示,即矩陣M的第j行。由于CNN 模型的輸入要求是固定大小的矩陣,所以實(shí)驗(yàn)中以具有最多單詞數(shù)的樣本為基準(zhǔn),單詞數(shù)不足的樣本采取補(bǔ)零措施,使得每個(gè)樣本得到的詞向量矩陣M大小相同。將矩陣M作為CNN 模型的輸入,通過卷積層、最大池化層以及全連接層獲取語義特征向量。其中卷積層使用了3 種不同尺寸大小的卷積核,分別為3×3、5×5、8×8,卷積核個(gè)數(shù)都為20。將卷積層的輸出經(jīng)過窗口大小為2×2 的最大池化層;然后通過Flatten 將池化層的輸出融合成一維向量。將3 種卷積池化層的輸出直接拼接成一維長向量,該向量經(jīng)過具有300 個(gè)神經(jīng)元且激活函數(shù)為ReLU 的全連接網(wǎng)絡(luò)層。將全連接網(wǎng)絡(luò)層的輸出表示為文本語義特征,即得到的文本語義特征是長度為300 的一維向量。
圖2 Word2Vec+CNN 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Network structure of Word2Vec+CNN
本文采取兩種不同的融合方法將各個(gè)模態(tài)的特征進(jìn)行融合,得到特征融合向量FC或FH+C,不同模態(tài)之間通過信息互補(bǔ)能更好地檢測說謊。
心率、視頻、文本3 個(gè)模態(tài)中每一個(gè)樣本的特征向量都是長度為300 的一維向量,分別表示為Fh、Fv、Ft。受到文獻(xiàn)[23]啟發(fā),實(shí)驗(yàn)采用了兩種傳統(tǒng)的特征融合方式:一種是直接拼接,通過直接拼接得到的特征向量是長度為900 的一維向量,可表示為Fc=[Fh,F(xiàn)v,F(xiàn)t],采用這種融合方式的模型稱為LSVMC;另一種融合方式是哈達(dá)瑪積,該方法可降低特征長度,融合得到的特征向量FH+C如式(4)所示。
通過哈達(dá)瑪積融合方法最終得到的特征向量是長度為300 的一維向量,采用這種融合方式的模型稱為L-SVMH+C。
CNN 作為分類器一般需要較多的訓(xùn)練樣本,其優(yōu)勢在于多分類問題。本文采用CNN 模型和L-SVM模型對三模態(tài)融合向量FH+C進(jìn)行實(shí)驗(yàn)比較。從表1的實(shí)驗(yàn)結(jié)果中可以看出,采用L-SVM 可達(dá)到更高的精確度。圖3 示出了本文提出的多模態(tài)模型框架圖。
表1 不同分類模型對測試集的客觀評價(jià)指標(biāo)對比Table 1 Comparison of objective evaluation indicators of different classification models on test sets
圖3 多模態(tài)模型框架圖Fig.3 Framework of multi-modal model
實(shí)驗(yàn)采用文獻(xiàn)[7]中由真實(shí)法庭審判視頻組成的Real-life Trial 數(shù)據(jù)集,該數(shù)據(jù)集由121 個(gè)法庭審判視頻剪輯組成,其中包含61 個(gè)說謊視頻、60 個(gè)說真話視頻。數(shù)據(jù)集中視頻的平均長度為28.0 s,說謊話和說真話的視頻平均長度分別為27.7 s 和28.3 s。將mp4 格式的視頻數(shù)據(jù)轉(zhuǎn)換成WAV 格式的音頻數(shù)據(jù),即得到音頻數(shù)據(jù)集;文本數(shù)據(jù)集由音頻信號的手工轉(zhuǎn)錄得到。實(shí)驗(yàn)中對數(shù)據(jù)集的劃分采用以下3 種方式:
(1)留一法交叉驗(yàn)證[7]。假設(shè)共有D個(gè)樣本,每次取出一個(gè)樣本作為測試集,剩余樣本作為訓(xùn)練集,直到每個(gè)樣本都作過測試集,總共計(jì)算D次,然后將D次測試結(jié)果求平均值作為最終實(shí)驗(yàn)結(jié)果。留一法雖然計(jì)算復(fù)雜,但其不受隨機(jī)樣本劃分的影響,樣本利用率較高,適合小樣本的分類問題。
(2)隨機(jī)抽取10 個(gè)樣本作為測試集,剩余樣本作為訓(xùn)練集,進(jìn)行10 次劃分,然后取10 次實(shí)驗(yàn)結(jié)果的平均值作為最終實(shí)驗(yàn)結(jié)果[24]。
(3)該數(shù)據(jù)集由不同的測試者組成,為防止同一個(gè)測試者對應(yīng)的樣本同時(shí)被分到訓(xùn)練集和測試集中,實(shí)驗(yàn)中劃分訓(xùn)練集和測試集時(shí),采用了對測試者進(jìn)行10 折交叉驗(yàn)證而不是對樣本進(jìn)行交叉驗(yàn)證,每次將9/10 測試者對應(yīng)的樣本作為訓(xùn)練集,1/10 測試者對應(yīng)的樣本作為測試集,進(jìn)行10 次實(shí)驗(yàn),然后取10 次實(shí)驗(yàn)結(jié)果的平均值作為最終實(shí)驗(yàn)結(jié)果。
采用測試分類準(zhǔn)確度以及AUC 值作為客觀評價(jià)指標(biāo)。
為評估不同模態(tài)的特征組合對測謊模型性能的改善,使用各個(gè)模態(tài)的特征組合進(jìn)行實(shí)驗(yàn),并將其與其他多模態(tài)模型[7,19,23-24]進(jìn)行比較。文獻(xiàn)[7]、文獻(xiàn)[19, 23]、文獻(xiàn)[24]分別采用3.1 節(jié)中的3 種數(shù)據(jù)集劃分方式。表2、表3、表4 給出了3 種數(shù)據(jù)集劃分方式的實(shí)驗(yàn)結(jié)果對比。表中L-SVMC表示采用直接拼接特征融合方法的模型,L-SVMH+C表示采用哈達(dá)瑪積特征融合方法的模型。針對第3 種數(shù)據(jù)集劃分方式,本文給出了不同模態(tài)特征組合矩陣相乘后的ROC(Receiver Operating Characteristic)圖,如圖4 所示。相比之下,本文提出的多模態(tài)測謊模型的測試準(zhǔn)確率與AUC 值相對較高。
表2 留一法的客觀評價(jià)指標(biāo)對比Table 2 Comparison of objective evaluation indicators of leaveone-out cross-validation
實(shí)驗(yàn)結(jié)果表明,在L-SVMH+C模型基礎(chǔ)上,本文三模態(tài)模型相較于雙模態(tài)以及文獻(xiàn)[7, 19, 23-24]模型的預(yù)測精度明顯提升,具有更高的測試精確度以及AUC 值。其中文本與心率模態(tài)組合的測試精確度為96.89%~97.70%,比文獻(xiàn)[23]的靜態(tài)模型以及文獻(xiàn)[7, 19, 24]的模型高6%~22%,同時(shí)AUC 值達(dá)到了0.968 3;在第3 種數(shù)據(jù)集劃分方式的基礎(chǔ)上,文本、視頻、心率模態(tài)的組合取得了98.88%的測試精確度及0.988 3 的AUC 值。實(shí)驗(yàn)結(jié)果表明,三模態(tài)模型都表現(xiàn)出了更好的性能,比文獻(xiàn)[23]的動(dòng)態(tài)模型以及文獻(xiàn)[7, 19, 24]模態(tài)的測試精度高出了3%~23.3%。從ROC 曲線圖中也可以看出,3 個(gè)模態(tài)的特征組合明顯改善了模型性能,心率、文本、視頻特征組合ROC 曲線同時(shí)包含了心率和文本的特征組合ROC 曲線以及心率和視頻特征組合ROC 曲線。實(shí)驗(yàn)結(jié)果表明本文提出的多模態(tài)模型可有效提高測試準(zhǔn)確率,可更好地檢測說謊。
表3 隨機(jī)抽取方式的客觀評價(jià)指標(biāo)對比Table 3 Comparison of objective evaluation indicators of random extraction method
表4 10 折交叉驗(yàn)證方式的客觀評價(jià)指標(biāo)對比Table 4 Comparison of objective evaluation indicators of ten-fold cross-validation method
圖4 不同模態(tài)特征組合的ROC 圖Fig.4 ROC diagram of combination of different modal features
本文提出了一種新的多模態(tài)非接觸式測謊模型,通過整合心率、視頻和文本特征來檢測說謊。實(shí)驗(yàn)結(jié)果表明從中提取的心率特征和文本特征可能是檢測說謊的顯著指標(biāo)。此外,整合不同的特征來檢測說謊可以顯著提高檢測性能,特別是心率和文本特征的組合取得了很高的精確度。與其他對數(shù)據(jù)敏感的檢測模型一樣,該模型也存在局限性。使用更有效的檢測特征,收集更大規(guī)模的說謊人場景數(shù)據(jù)庫以進(jìn)一步提高模型的檢測精度與泛化能力是未來的研究方向。