陳坤林,胡德鋒,陳楠楠
(南京審計大學(xué)計算機學(xué)院,江蘇 南京 211815)
近些年來,抑郁癥逐漸走進(jìn)人們的視野,該疾病是一種患病率高、臨床治愈率高的精神障礙疾病。然而大多數(shù)人對于此病的認(rèn)知較低,導(dǎo)致堅持接受正規(guī)治療的患者較少,另一方面,對于該類疾病的診斷仍處于簡單的初級階段。據(jù)世界衛(wèi)生組織[1]數(shù)據(jù)顯示,全球抑郁癥患者數(shù)量超過3.5 億,預(yù)計在2030 年將成為常見疾病之一。抑郁癥對于個人、家庭以及社會都產(chǎn)生了巨大的困擾,因此,結(jié)合當(dāng)前計算機技術(shù)提升抑郁癥的診斷水平成為了研究的重點/熱點問題之一。
對于抑郁癥的識別,眾多研究者做了相關(guān)的研究。余濤[2]等提出了一種基于機器學(xué)習(xí)檢測抑郁癥患者自殺意圖的方法,通過K 最近鄰(KNN)、一般線性模型(GLM)、隨機森林(RF)等傳統(tǒng)機器學(xué)習(xí)方法構(gòu)建模型,預(yù)測以及預(yù)防抑郁癥患者自殺等不良行為。辛逸男[3]等人提出了一種基于語音特征的抑郁癥診斷方法,該方法根據(jù)語音信號作為特征區(qū)分抑郁癥患者和正常人群。王萌[4]等結(jié)合深度學(xué)習(xí)技術(shù)設(shè)計了一種抑郁癥患者表情識別系統(tǒng),利用卷積神經(jīng)網(wǎng)絡(luò)(CNN),構(gòu)建模型,提取患者表情特征,實現(xiàn)表情識別。
深度學(xué)習(xí)作為當(dāng)今熱門技術(shù)之一,在計算機視覺領(lǐng)域和自然語言處理領(lǐng)域都發(fā)揮著重要的作用,因此,將該類技術(shù)應(yīng)用于抑郁癥預(yù)防具有良好的可行性。抑郁癥患者常有失望等負(fù)面面部表情且長期處于負(fù)面情緒階段,而對患者面部表情的數(shù)據(jù)采集具有成本低、效率高等優(yōu)點。故本文提出一種基于面部表情分析的抑郁癥識別方法。通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)建立模型并訓(xùn)練得到抑郁癥患者的各類表情參數(shù),其中表情參數(shù)包括憤怒、厭惡、恐懼、開心、傷心、驚訝、中性、蔑視,最后從數(shù)據(jù)集中選取百分之三十的數(shù)據(jù)作為測試集并檢測其正確率。
本文所采用的數(shù)據(jù)集是包含抑郁癥患者的音頻和面部掃描視頻的中文抑郁庫數(shù)據(jù)集EATD,該數(shù)據(jù)集由接受咨詢的212 名志愿者的視頻組成,其中包含80 名抑郁癥患者。卷積神經(jīng)網(wǎng)絡(luò)(CNN)[5]是一種帶有卷積結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),如圖1所示,其主要結(jié)構(gòu)包含輸入層、卷積層、池化層、全連接層和輸出層,其中輸入層接受輸入的訓(xùn)練數(shù)據(jù),卷積層可以為多層且主要作用為使用卷積核進(jìn)行特征提取和特征映射,池化層與卷積層可任意搭配并同樣存在多層,其作用是下采樣降維,最后由全連接層在尾部進(jìn)行擬合,減少特征信息的損失,由輸出層輸出數(shù)據(jù)。
圖1 抑郁癥識別模型結(jié)構(gòu)圖
在訓(xùn)練數(shù)據(jù)之前,由于獲取的數(shù)據(jù)集是以視頻的形式存在,我們需要對該數(shù)據(jù)集進(jìn)行一定的預(yù)處理,過程如下。
⑴圖片截?。何覀儗τ跀?shù)據(jù)集中每個視頻按10秒間隔截取一張照片且大小為320×240,處理完的圖片格式統(tǒng)一為.png。
⑵濾波去噪:采用Pyhton中blur函數(shù)對于圖片進(jìn)行濾波去噪處理,該函數(shù)使用歸一化框過濾器模糊圖像,計算每個像素中對應(yīng)核的平均值,對輸入的圖像進(jìn)行均值濾波后用目標(biāo)圖像輸出。
⑶特征點標(biāo)定:特征點是指在其他相似的圖像或目標(biāo)中,以相同或相似的不變形式表示的點,我們可以在不同圖像之間建立幾何或統(tǒng)計關(guān)系,實現(xiàn)輸入人臉圖片的識別。在本文中采用HOG特征基礎(chǔ),通過尋找數(shù)據(jù)集中人臉照片的68 個標(biāo)定點,遍歷所有點,打印出其坐標(biāo)作為特征點標(biāo)定。
如圖1 所示,本文所搭建網(wǎng)絡(luò)結(jié)構(gòu)包含5 層卷積層和2 層池化層,我們從高斯分布中隨機采樣權(quán)重且這些隨機初始化的權(quán)重將在網(wǎng)絡(luò)的訓(xùn)練過程中逐漸調(diào)整以適應(yīng)任務(wù),除了權(quán)重,每個卷積層和全連接層還包含一個偏置(bias)項,偏置的初始化為隨機最小值。其中卷積層的卷積核大小和池化層大小、向量維度、步長和填充參數(shù)如表1 所示,在卷積層中我們使用Relu函數(shù)取代Sigmoid函數(shù),其作為激活函數(shù),能夠有效地避免飽和問題且對抗梯度消失等情況。另一方面,該函數(shù)使用了簡單的閾值化,具有很高的計算效率,能夠降低本文實驗對算力的要求。
表1 網(wǎng)絡(luò)初始化參數(shù)表
Relu函數(shù)和Sigmoid函數(shù)定義為公式⑴和公式⑵,在全連接層中的激活函數(shù),我們?nèi)允褂肦elu函數(shù)。
本文中輸入層采用三維張量(H,W,C),其中H表示圖像的垂直維度大小,即圖像的行數(shù);W 表示圖像的水平維度大小,即圖像的列數(shù)。C 指的是圖像的顏色通道數(shù)量。本文數(shù)據(jù)集圖片為彩色圖像,因此采用三原色通道(RGB通道)。經(jīng)過數(shù)據(jù)預(yù)處理后,我們將每張圖片轉(zhuǎn)換為(48,48,3)的三維張量作為輸入層的輸入。
在卷積過程中,卷積核的權(quán)重起到了特征提取的作用,通過多次訓(xùn)練學(xué)習(xí)得到適合任務(wù)的卷積核權(quán)重,從而幫助模型提取數(shù)據(jù)中有效特征。卷積計算公式如公式⑶,其中l(wèi)-1 為卷積層,采樣大小為a*a,g(x)將x中a*a 的大小中像素值進(jìn)行求和并乘以權(quán)重系數(shù)w,然后加上偏置項b,最后做Sigmoid函數(shù)運算。公式⑷、公式⑸為每一層卷積層的長度與寬度的計算法則,Hi、Wi分別為上一層長度和寬度,F(xiàn)為卷積核大小,S為步長,P為邊界填充參數(shù)。
池化層用于減小特征圖尺寸從而實現(xiàn)降維作用并且有效緩解過擬合問題,在該層中卷積核個數(shù)不給予改變。如圖1 所示,池化層特征提取維度為(2,2),我們采用圖2中最大匯聚(Max Pooling),從每個2*2的特征數(shù)據(jù)中提取最大的數(shù)作為新的特征數(shù)據(jù),公式⑹、公式⑺為池化層中長度與寬度的計算公式。
圖2 Max Pooling
在經(jīng)過卷積層和池化層處理之后,我們通過全連接層將數(shù)據(jù)轉(zhuǎn)換為一維張量,本文中使用Flatten 層和兩層Dense 層構(gòu)建全連接層。在該層中,如圖3 所示,采用Dropout 機制降低過擬合能力,該機制隨機選取部分神經(jīng)元不參與計算,這樣一來可以減少神經(jīng)元之間的依賴,權(quán)值的更新不再依賴固有關(guān)系的隱含節(jié)點的共同作用,從而提高模型學(xué)習(xí)的魯棒性。
圖3 Dropout機制
從圖1可以看出,從界面中輸入測試圖片后,圖片經(jīng)訓(xùn)練過的抑郁癥檢測模型處理,輸出每個表情的得分概率值,將該數(shù)據(jù)與抑郁癥患者數(shù)據(jù)進(jìn)行對比,從而預(yù)測測試者患抑郁癥的幾率。在輸出層,soft max函數(shù)計算各表情的概率值,公式如下:
其中,P 表示每個表情的概率值,eak表示所有表情的得分值。
本文采用64 位操作系統(tǒng)Windows 10,處理器為AMD Ryzen5-4500U with Radeon Graphics 2.38 GHz,RAM 16.00GB,程序編寫以及運行環(huán)境為Python 3.10。
為了方便觀察抑郁癥患者各個表情元素的占比,本文通過Python 中PyQt5 設(shè)計了可視化界面,如圖4所示,我們在該界面中輸入一張抑郁癥患者的圖片,并通過直方圖顯示了各類表情的概率值,其中傷心和中性情緒占比最高,其次是害怕和憤怒??傮w而言,該患者的負(fù)面情緒占比較高,本文所采用模型識別效果符合患者情況。
圖4 基于面部表情分析的抑郁癥識別系統(tǒng)
我們將數(shù)據(jù)集劃分為訓(xùn)練集和測試集,比例為7:3,通過訓(xùn)練集中訓(xùn)練出抑郁癥識別的模型并并將測試集進(jìn)行檢測。由于數(shù)據(jù)集是以視頻的形式,因此我們按照上述10秒間隔截取一張患者照片,每個視頻各截取15 張照片。我們從中隨機抽取了5 個抑郁癥患者進(jìn)行檢測并給出了每個患者各類感情因素的平均占比率,如表2所示。
表2 患者各類情緒因素的平均占比表
從表2 中數(shù)據(jù)可以得出檢測的5 名患者傷心情緒比例最大,其次是中性表情,總體上來看,這些檢測者的負(fù)面情緒比較多,抑郁癥者個人很難保持開心的狀態(tài),因此我們對于患者應(yīng)該著重關(guān)注他們的情緒心態(tài)等問題。另一方面,抑郁癥是一種長期困擾患者的精神類疾病,因此單次對于患者的檢測并不能完全體現(xiàn)其準(zhǔn)確性,為提高實驗有效性,我們對于檢測者進(jìn)行了持續(xù)一周的不定期檢測,并抽取了一名患者一周內(nèi)情緒的變化,其數(shù)據(jù)如表3所示。
表3 某患者一周內(nèi)各類情緒因素的平局占比表
從表3可以看出,該患者長期處于低落狀態(tài),這很符合抑郁癥患者的情緒狀態(tài);他們偶爾會出現(xiàn)恐懼的心態(tài),這說明患者個人情緒不僅長期處于負(fù)面情緒狀態(tài),而且會出現(xiàn)情緒變化幅度大且不穩(wěn)定的情況。
最后,我們采用抑郁庫數(shù)據(jù)集EATD 中30%數(shù)據(jù)作為測試數(shù)據(jù),采用本文模型進(jìn)行檢測,當(dāng)檢測出負(fù)面情緒占比大的測試者符合患者自身情況,則視為正確的數(shù)據(jù),反之則視為錯誤數(shù)據(jù)。本文檢測的正確率為71.3%,該方案對于識別抑郁癥具有較高的準(zhǔn)確性,并且詳細(xì)的分析了這些患者情緒變化情況。
本文結(jié)合深度學(xué)習(xí)技術(shù)提出了一種基于人臉面部表情分析的抑郁癥識別方法,該方法通過循環(huán)神經(jīng)網(wǎng)絡(luò)建立模型,以面部表情為分析因素,實現(xiàn)抑郁癥識別。根據(jù)上述實驗結(jié)果可知,該方案能夠較好的識別出測試者的個人情緒變化是否符合抑郁癥的癥狀,且測試集檢測的正確率良好。通過分析面部表情,我們能夠更好地預(yù)測和診斷抑郁癥,為患者提供早期干預(yù)和治療的機會。此外,該方案還具有良好的可行性和合理性,可為抑郁癥的診斷提供一種新的非侵入性方法。
本方案可應(yīng)用于輔助抑郁癥的診斷和預(yù)防。對于方案的改進(jìn)與完善有以下考慮:①患者的日常行為和言語也會影響到抑郁癥識別,應(yīng)考慮這部分因素;②隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,研究者對于神經(jīng)網(wǎng)絡(luò)的研究可以更全面和深入,可以繼續(xù)探討將其他模型應(yīng)用到該問題上,進(jìn)一步提升識別效率。