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