版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于神經(jīng)網(wǎng)絡(luò)的人臉表情識別系統(tǒng)的設(shè)計實(shí)現(xiàn)目錄TOC\o"1-2"\h\z\u摘要 摘要:表情識別是一個基于人臉識別的一項(xiàng)技術(shù),本文采用Python作為開發(fā)語言,以pycharm作為開發(fā)平臺,設(shè)計并實(shí)現(xiàn)了一種人臉表情識別系統(tǒng)。本系統(tǒng)主要對人臉進(jìn)行檢測和定位,完成表情識別并輸出識別結(jié)果。該系統(tǒng)具有簡便可行,自動識別面部表情,準(zhǔn)確率高的特點(diǎn),可以被廣泛應(yīng)用到各種場合。關(guān)鍵詞:神經(jīng)網(wǎng)絡(luò);卷積神經(jīng)網(wǎng)絡(luò);人臉表情識別引言表情是展現(xiàn)情緒的一種非語言信號,通過仔細(xì)觀察可分析出人的性情、氣質(zhì)和心理狀態(tài)等。美國心理學(xué)家梅拉賓(Mehrabian)[1]曾提出人類在表達(dá)其情感時,通過表情所傳達(dá)的信息占據(jù)了高達(dá)57%的比例,是人際交往的重要信息。1971年,Ekman等[2]首次將表情劃分為悲傷,恐懼,高興,厭惡,驚訝和憤怒六個基本表情標(biāo)簽,這對后續(xù)研究表情識別奠定了一定的基礎(chǔ)。因人臉面部表情變化細(xì)微且多變,使得表情識別更具有難度,早期僅用于心理學(xué)領(lǐng)域與指紋識別,與人臉識別等其他生物識別技術(shù)相比,發(fā)展相對緩慢,應(yīng)用還不廣泛。然而表情識別是情感理解的基礎(chǔ),準(zhǔn)確而高效地識別面部表情,可以使計算機(jī)和機(jī)器人擁有理解和表達(dá)情感的能力,從而能夠達(dá)到更好的人機(jī)交互,有著重要的價值。到目前為止,雖然表情識別還處于探索階段,但國內(nèi)外許多學(xué)者和專家都致力于這方面的研究。同時,隨著計算機(jī)與人工智能的不斷發(fā)展,表情識別技術(shù)也取得了良好的效果,在心理學(xué),生理學(xué),認(rèn)知學(xué)和醫(yī)學(xué)等各個領(lǐng)域都得到了推廣。1.課題研究的目的與意義1.1研究目的表情識別技術(shù)為當(dāng)今模式識別和人工智能研究的主流趨勢,涉及到心理學(xué),機(jī)器視覺,圖像學(xué)等多個學(xué)科[3],研究起來相對復(fù)雜。原因是人臉表情隱藏了多種信息,具有很大的研究價值,讀懂表情就能大部分實(shí)現(xiàn)“透過現(xiàn)象看本質(zhì)”,理解一個人內(nèi)心的真實(shí)想法,而真正做到是很困難的。而此項(xiàng)技術(shù)的目的是為了使計算機(jī)能夠讀懂人類的表情,了解人的心理狀態(tài),理解人的情感。如果計算機(jī)能夠像人類一樣主動適應(yīng)周圍環(huán)境,觀察,理解并產(chǎn)生“情感”,將從根本上改變?nèi)伺c計算機(jī)的關(guān)系,而后實(shí)現(xiàn)更為自然的人機(jī)交互[4],使得計算機(jī)能夠更好,更全面地為人類服務(wù)。1.2研究意義有研究者19世紀(jì)開始就對人臉表情做了研究。直至現(xiàn)在,人臉表情識別已經(jīng)達(dá)到了一個相對成熟的高度。眾多研究者在不斷地進(jìn)行發(fā)掘,完善,為的是能將此項(xiàng)技術(shù)投入使用到現(xiàn)實(shí)生活中,推動社會的發(fā)展。目前表情識別技術(shù)在以下領(lǐng)域中有所應(yīng)用:安全駕駛、教學(xué)評價[5]、個性化推薦[6]、醫(yī)療監(jiān)護(hù)等領(lǐng)域。表情識別技術(shù)涉及的領(lǐng)域不僅于此,在虛擬現(xiàn)實(shí)及身份認(rèn)證[7]等領(lǐng)域界都很大的潛在應(yīng)用價值。2.相關(guān)知識簡介2.1人工神經(jīng)網(wǎng)絡(luò)人工神經(jīng)網(wǎng)絡(luò)(ArtificialNeuralNetworks,ANN)是不同于動物大腦的生物神經(jīng)網(wǎng)絡(luò)的運(yùn)算模型。它是通過許多節(jié)點(diǎn)相互連接,每個節(jié)點(diǎn)即代表一個人工神經(jīng)元,這些節(jié)點(diǎn)試圖模擬大腦神經(jīng)系統(tǒng)處理和記憶信息的方式,通過調(diào)整大量節(jié)點(diǎn)之間的連接關(guān)系,從而達(dá)到處理信息的目的,具有很強(qiáng)的自學(xué)習(xí)能力。2.2卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetworks,CNN),是一種人工神經(jīng)網(wǎng)絡(luò)。該網(wǎng)絡(luò)具有權(quán)值共享,局部感知,多卷積核等一般特性[8]。卷積神經(jīng)網(wǎng)絡(luò)包含五個層級結(jié)構(gòu),分別是數(shù)據(jù)輸入層,卷積計算層,激活函數(shù)層,池化層,全連接層。卷積計算層是卷積神經(jīng)網(wǎng)絡(luò)的重要組成部分,通過多個卷積核的運(yùn)算,不僅減少了參數(shù)的量,同時降低了參數(shù)選擇的復(fù)雜性,避免了傳統(tǒng)方法中復(fù)雜的特征提取過程[9]。而激活函數(shù)則是用來增強(qiáng)神經(jīng)網(wǎng)絡(luò)模型的表達(dá)能力,進(jìn)而提高神經(jīng)網(wǎng)絡(luò)的分類精確度[10]。2.3表情識別理論人臉表情識別的過程主要有三個步驟,分別是人臉檢測與定位,表情特征提取和人臉表情分類。首先建立一個人臉表情識別系統(tǒng),利用人臉檢測算法對輸入的人臉圖像進(jìn)行檢測和定位,而后考慮到光照,背景等因素會造成干擾,因此就有了圖像處理環(huán)節(jié),增加了表情預(yù)處理,對采集的圖像進(jìn)行歸一化,灰度化,去除光照等更詳細(xì)處理,盡可能避免外界環(huán)境對檢測結(jié)果產(chǎn)生影響。表情特征提取,這是表情識別系統(tǒng)的一個重要的部分,主要通過從圖像中提取可表征面部表情特征的信息,去除干擾信息,這樣可提高圖像信息的利用率。大量研究表明:有效的特征提取工作可提高系統(tǒng)的工作效率,提高識別率[11]。人臉表情分類,對第二步進(jìn)行的特征提取信息進(jìn)行分類。建立適當(dāng)?shù)姆诸悪C(jī)制對表情進(jìn)行識別并分類。分類器的合理選擇對表情識別系統(tǒng)能否達(dá)到較高的識別率一定影響。3.表情識別系統(tǒng)的分析與設(shè)計3.1表情識別系統(tǒng)的分析目前表情識別系統(tǒng)的發(fā)展及應(yīng)用可以更好地實(shí)現(xiàn)智能技術(shù)與人類的交流,通過識別靜態(tài)圖像或動態(tài)圖像序列中特定的表情狀態(tài),可以識別被識別對象的情緒狀態(tài),計算機(jī)可以理解與識別面部表情。本系統(tǒng)可以通過打開攝像頭拍攝圖像或者手動獲取已保存下載的人臉圖像,自動框出人臉并進(jìn)行表情識別,頁面中還可顯示七種表情類別的比例,得出識別結(jié)果。3.2表情識別系統(tǒng)的設(shè)計系統(tǒng)的設(shè)計目標(biāo)是:通過對圖片的預(yù)處理,構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)模型并訓(xùn)練,將訓(xùn)練結(jié)果加入到表情識別系統(tǒng)中去,使系統(tǒng)可以識別人臉面部表情,并輸出結(jié)果。3.2.1圖片預(yù)處理表情識別系統(tǒng)的第一個步驟就是要對輸入圖像中的人臉進(jìn)行檢測與定位,本系統(tǒng)主要使用OpenCV中自帶的人臉檢測模塊haarcascade_frontalface_default.xml為模型,用cv2.CascadeClassifier()分類器函數(shù)構(gòu)建級聯(lián)分類器、detectMultiScale()人臉檢測算法來檢測出人臉的存在以及cv2.Rectangle()函數(shù)并繪出圖像框,之后對檢測到的人臉進(jìn)行灰度歸一化,尺度歸一化等操作,進(jìn)而達(dá)到對輸入圖像的預(yù)處理工作。3.2.2構(gòu)建模型對照片進(jìn)行預(yù)處理后,要構(gòu)建一個卷積神經(jīng)網(wǎng)絡(luò)模型,其模型框圖如圖1所示:
圖1模型框圖3.2.3模型訓(xùn)練有了模型,就可以對其進(jìn)行訓(xùn)練了。在訓(xùn)練之前,要先對訓(xùn)練輪數(shù),優(yōu)化器,損失函數(shù),學(xué)習(xí)率等超參數(shù)進(jìn)行定義。在本系統(tǒng)中,采用的優(yōu)化器是adam,損失函數(shù)為categorical_crossentropy交叉熵函數(shù)。首先載入FER2013數(shù)據(jù)集,進(jìn)行歸一化,利用ImageDataGenerator()作為圖片生成器,對添加的樣本數(shù)據(jù)進(jìn)行增強(qiáng),擴(kuò)充數(shù)據(jù)集,增強(qiáng)模型的泛化能力。最后使用callbacks函數(shù)回調(diào),觀察訓(xùn)練過程中損失函數(shù)和準(zhǔn)確率的每輪運(yùn)行信息,數(shù)據(jù)提升或標(biāo)準(zhǔn)化后生成批處理數(shù)據(jù),并無限返回批處理數(shù)據(jù)。3.2.4識別人臉表情準(zhǔn)確識別人臉表情是系統(tǒng)的最終目標(biāo),在此先定義一個預(yù)測函數(shù)predict(),里面包含兩個for循環(huán)一個為用來識別人臉并加以處理,一個用來獲取最大概率的下標(biāo),使用numpy.squeeze(),cv2.resize()等函數(shù)對輸入圖像進(jìn)行處理,最后在預(yù)測函數(shù)里對cv2識別的人臉進(jìn)行對比并存入數(shù)組中輸出,而后用max()函數(shù)找出最大概率,再用一個for循環(huán)遍歷整個數(shù)組得到最大概率下標(biāo)并獲得標(biāo)簽,最后輸出識別結(jié)果。4.表情識別系統(tǒng)的實(shí)現(xiàn)4.1表情識別數(shù)據(jù)集目前公開的人臉數(shù)據(jù)集不多,較為廣泛應(yīng)用的人臉表情數(shù)據(jù)集有CK+[12],F(xiàn)ER2013[13]等。本系統(tǒng)主要是選取FER2013訓(xùn)練和測試模型。FER2013數(shù)據(jù)集,總共包含35887張人臉表情圖像,其中28709張測試圖,驗(yàn)證數(shù)據(jù)集和測試集各有3589張,包含七種表情標(biāo)簽:生氣,厭惡,恐懼,開心,傷心,驚訝和中性。由于該數(shù)據(jù)集在2013年Kaggle舉行的表情識別挑戰(zhàn)賽中使用的,因此更完整,更符合實(shí)際生活場景。對數(shù)據(jù)集進(jìn)行如下處理:將FER2013數(shù)據(jù)集文件載入放入內(nèi)存中,每張圖片都是48*48像素使用pandas.read.csv()函數(shù)讀取文件因pixels是人臉表情數(shù)據(jù),將它轉(zhuǎn)為列表用一個for循環(huán),使用OpenCV將圖像轉(zhuǎn)換為numpy數(shù)組,并使用pandas輸出表情分類。而后是將它進(jìn)行數(shù)據(jù)歸一化并劃分為訓(xùn)練集和驗(yàn)證集,分出的驗(yàn)證比例為0.2,最后在系統(tǒng)程序中調(diào)用。4.2搭建表情識別的模型本文搭建的是mini-Xception模型,是當(dāng)下較為流行的一種卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)主要包含11個卷積,其中3個常規(guī)卷積和8個深度可分離卷積,采用的皆為1*1或3*3的卷積核來遍歷輸入特征圖,且在每層的基礎(chǔ)上卷積核的個數(shù)不斷增加,最后一個深度可分離卷積使用多達(dá)128個卷積核,每個卷積之后都有一個BN和Relu激活函數(shù),每兩個深度可分離卷積之后又一個最大池化,且使用全零填充,為的是保障輸入圖與輸出圖的像素相同,最后增加了一個全局平均池化層,在softmax激活函數(shù)之后輸出一個7維特征向量,代表了七種不同的表情標(biāo)簽。4.3數(shù)據(jù)增強(qiáng)的批量訓(xùn)練由于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練需要大量數(shù)據(jù),若是樣本多樣性不足,則會使模型缺乏在廣泛場景的應(yīng)用能力,難以滿足實(shí)際應(yīng)用需要[14]。FER2013數(shù)據(jù)集的數(shù)據(jù)量雖達(dá)三萬多,但不排除有遮擋,角度等外界干擾,因此對FER2013數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),使得數(shù)據(jù)集的得到有效擴(kuò)充,泛化能力有所增強(qiáng)。其中利用ImageDataGenerator類對此來進(jìn)行實(shí)現(xiàn),將圖片進(jìn)行去中心化,標(biāo)準(zhǔn)化,翻轉(zhuǎn)及給圖片轉(zhuǎn)動的角度,水平偏移和數(shù)值偏移,隨機(jī)縮放的幅度賦予參數(shù),以達(dá)到數(shù)據(jù)提升的效果。利用callbacks函數(shù)進(jìn)行調(diào)用,從而達(dá)到批量訓(xùn)練的效果,在一個無限循環(huán)中,數(shù)據(jù)提升或標(biāo)準(zhǔn)化后,接收到的numpy數(shù)組和標(biāo)簽被用作參數(shù)來生成和返回批處理數(shù)據(jù),主要使用了以下四個函數(shù):ModelCheckpoint()函數(shù),該函數(shù)主要是搭建模型時,若設(shè)置參數(shù)save_best_only=True,verbose=1,則會在每個訓(xùn)練周期之后保存最佳模型且保證它不被新一輪模型所覆蓋,以hdf5文件展示并保存在根目錄utils中。CSVLogger()函數(shù),該函數(shù)是為了將訓(xùn)練輪的數(shù)據(jù)結(jié)果流到CSV的文件中,參數(shù)append=False覆蓋存在的文件,待訓(xùn)練結(jié)束后所有結(jié)果包括訓(xùn)練輪數(shù),訓(xùn)練集和測試集分別生成的損失值和準(zhǔn)確率都保存在日志文件中。ReduceLROnPlateau()函數(shù),該函數(shù)是在標(biāo)準(zhǔn)評估停止提升時,即測試集的正確率不再提升時,降低學(xué)習(xí)率,使得更快更準(zhǔn)確的獲得最優(yōu)模型。EarlyStopping()函數(shù),當(dāng)被檢測的數(shù)量不再提升,也沒有進(jìn)步的訓(xùn)練輪數(shù)時就停止訓(xùn)練。4.4表情識別的實(shí)現(xiàn)創(chuàng)建一個預(yù)測函數(shù)defpredict(image_path),第一步對人臉進(jìn)行檢測并獲取坐標(biāo)和參數(shù),具體代碼如下所示:faces=detect_faces(face_detection,gray_image)#檢測人臉的存在forface_coordinatesinfaces:x1,x2,y1,y2=apply_offsets(face_coordinates,emotion_offsets)#擴(kuò)充gray_face=gray_image[y1:y2,x1:x2]#灰度化try:gray_face=cv2.resize(gray_face,(emotion_target_size))#重新塑形except:continue在輸出最后比對后的數(shù)組,之后獲取到數(shù)組中最大的概率,再用一個for循環(huán)取最大概率的下標(biāo):foriinrange(len(out)):ifout[i]==maxProbability:maxIndex=i預(yù)測函數(shù)的最終結(jié)果是獲得表情標(biāo)簽,在后臺單獨(dú)運(yùn)行此文件,系統(tǒng)運(yùn)行之后取最大概率下標(biāo)對應(yīng)標(biāo)簽的值最后輸出表情識別結(jié)果。4.5UI界面的實(shí)現(xiàn)以下系統(tǒng)基本完成,接下來就需要界面來進(jìn)行實(shí)現(xiàn),這里采用PyQt5來進(jìn)行設(shè)計GUI界面,本系統(tǒng)含有選擇圖片和拍攝圖片兩個控制按鈕,當(dāng)獲取圖像信息后,顯示標(biāo)記的人臉位置并且輸出表情識別的結(jié)果標(biāo)簽,及每個標(biāo)簽所占比例。如圖2所示:圖2系統(tǒng)界面若是按選擇圖片按鈕,將進(jìn)入已構(gòu)建好且保存圖片的文件夾中,可自主選擇圖片,然后進(jìn)行表情識別;若是選擇拍攝圖片,只需再按一次拍攝圖片按鈕,獲取圖像,最后同理進(jìn)行表情識別,系統(tǒng)也將顯示每個標(biāo)簽所占有的概率。運(yùn)行結(jié)果如圖3所示:圖3效果展示圖5.總結(jié)表情識別是一個極具挑戰(zhàn)性的課題,經(jīng)過查閱文獻(xiàn),資料及老師的幫助完成了此次畢業(yè)設(shè)計,在設(shè)計過程中,讓我對于Python這門語言、神經(jīng)網(wǎng)絡(luò)以及表情識別技術(shù)有了更深層次的了解。本次系統(tǒng)主要目的就是準(zhǔn)確而實(shí)時地識別人臉表情結(jié)果,設(shè)計比較基礎(chǔ),還有許多不足的地方需要改進(jìn),如不能識別多人的表情;只能識別靜態(tài)圖像,而不能在視頻動態(tài)中實(shí)時地進(jìn)行識別。在以后的學(xué)習(xí)過程中,我將針對不足努力改進(jìn)和完善。參考文獻(xiàn)[1]MehrabianA.Communicationwithoutwords[J].PsychologicalToday,1968,2(4):53-55.[2]EKMANP,FRIESONWV.Constantsacrossculturesinthefaceandemotion[J].JournalofPersonalityandSocialPsychology,1971,17:124?129.[3]葉繼華,祝錦泰,江愛文,李漢曦,左家莉.人臉表情識別綜述[J].數(shù)據(jù)采集與處理,2020,35(01):21-34.[4]楊曉龍,閆河,張楊.人臉表情識別綜述[J].數(shù)字技術(shù)與應(yīng)用,2018,36(02):213-214+216.[5]唐康.人臉檢測和表情識別研究及其在課堂教學(xué)評價中的應(yīng)用[D].重慶:重慶師范大學(xué),2019.[6]周濤.基于卷積神經(jīng)網(wǎng)絡(luò)的靜態(tài)圖像人臉表情分類技術(shù)研究[D].包頭:內(nèi)蒙古科技大學(xué),2020.[7]張俞晴,何寧,魏潤辰.基于卷積神經(jīng)網(wǎng)絡(luò)融合SIFT特征的人臉表情識別[J].計算機(jī)應(yīng)用與軟件,2019,36(11):161-167.[8]翟蒙鎖.人臉表情特征提取與識別算法研究[D].蕪湖:安徽工程大學(xué),2019.[9]陸嘉慧,張樹美,趙俊莉.基于CNN集成的面部表情識別[J].
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四川省綿陽市梓潼縣2026屆九年級上學(xué)期1月期末考試物理試卷答案
- 衛(wèi)生檢查題目及答案
- 網(wǎng)格員考試題及答案
- 六年級樂趣作文300字4篇
- 二十屆四中全會考試測試卷及答案
- 電纜敷設(shè)施工技術(shù)要領(lǐng)
- 2026屆山東省淄博市高三上學(xué)期期末考試(摸底質(zhì)量檢測)歷史試題(含答案)
- 社群運(yùn)營管理實(shí)操考試題及答案
- 社會實(shí)踐考試試題及答案
- 青霉素過敏考試題及答案
- 刑法思考題答案
- 防水煤柱的留設(shè)
- s-舒更葡糖鈉注射液說明書
- 正等軸測圖課程學(xué)習(xí)
- GB/T 11322.1-2013射頻電纜第0部分:詳細(xì)規(guī)范設(shè)計指南第1篇同軸電纜
- 專利挖掘與交底書課件
- 三年級下期語文考試雙向細(xì)目表
- 企業(yè)安全安全生產(chǎn)雙重預(yù)防機(jī)制建設(shè)規(guī)范
- 新托業(yè)聽力必背19天(中英文已校對打印版)匯總
- 醫(yī)院機(jī)電工程運(yùn)行保障服務(wù)方案
- JJF 1935-2021 自動氣象站杯式風(fēng)速傳感器校準(zhǔn)規(guī)范
評論
0/150
提交評論