侯楚焓 陸麟鑫
【關(guān)鍵詞】卷積神經(jīng)網(wǎng)絡(luò);神經(jīng)元;卷積核
中圖分類號(hào):TN92? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? DOI:10.12246/j.issn.1673-0348.2021.013..031
1. 引言
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種帶有卷積結(jié)構(gòu)的有監(jiān)督深度神經(jīng)網(wǎng)絡(luò)模型,借助卷積層的應(yīng)用減小了深層網(wǎng)絡(luò)占有的內(nèi)存量,通過讓卷積核提取圖像特征來實(shí)現(xiàn)對(duì)圖像的識(shí)別分類。表情識(shí)別是指從靜態(tài)照片或視頻序列中選擇出表情狀態(tài),從而確定對(duì)人物的情緒與心理變化。在人類社會(huì)中,最常見的行為便是人與人之間的交流,而交流的方式不僅僅只局限于言語,有時(shí)能傳達(dá)情感的往往是臉上浮現(xiàn)的表情,人的表情大致可分為七種:生氣、厭惡、恐懼、高興、難過、驚訝和無表情,隨著網(wǎng)絡(luò)的飛速發(fā)展,人臉表情識(shí)別也走上了新的研究方向,也是人機(jī)交互的一個(gè)重要方面。
2. 數(shù)據(jù)集描述
數(shù)據(jù)集train.csv大小為28710行X2305列,每一行包含有l(wèi)abel,feature兩部分。其中l(wèi)abel為圖片標(biāo)簽,取值范圍為0~6,分別代表了七種表情:(0)生氣,(1)厭惡,(2)恐懼,(3)高興,(4)難過,(5)驚訝和(6)中立(無表情)。feature部分包含2304個(gè)數(shù)值,代表48X48(分辨率)的人臉圖片像素值,其中每個(gè)像素值的取值范圍為0~255。
3. 算法總體流程
3.1 數(shù)據(jù)預(yù)處理
本次采用的數(shù)據(jù)集共有28000多張圖片,形式為.csv文件,如圖1:
其中l(wèi)abel代表圖片的表情類別,分別有0(生氣),1(厭惡),2(恐懼),3(高興),4(難過),5(驚訝)和6(無表情);
feature代表人臉圖片像素值即人臉信息。
我們利用數(shù)據(jù)處理庫pandas進(jìn)行數(shù)據(jù)分離,利用read_csv()函數(shù)將csv文件以DataFrame的數(shù)據(jù)類型讀取出來,進(jìn)行缺失值的值填充,之后將label與feature標(biāo)簽進(jìn)行拆分,分別保存為label.csv和data.csv兩個(gè)文件,借助openCV庫進(jìn)行圖片還原保存。我們?nèi)∏?4000張圖片作為訓(xùn)練集,其他圖片作為驗(yàn)證集。新建文件夾train和val,將0.jpg到23999.jpg放進(jìn)文件夾train_data,將其他圖片放進(jìn)文件夾test_data;
部分代碼如下:
然后創(chuàng)建data-label對(duì)照表,用于正確對(duì)應(yīng)每一張圖片和類別,防止出現(xiàn)因儲(chǔ)存順序混亂而導(dǎo)致的類別不匹配。在train_data和test_data文件夾下各生成一個(gè)名為dataset.csv的data-label對(duì)照表。
部分代碼如下:
3.2 搭建卷積神經(jīng)網(wǎng)絡(luò)
3.2.1 重寫dataset類
Dataset是一個(gè)包裝類,用來將數(shù)據(jù)包裝為Dataset類,然后傳入DataLoader中,我們?cè)偈褂肈ataLoader這個(gè)類來更加快捷的對(duì)數(shù)據(jù)進(jìn)行操作。在訓(xùn)練模型時(shí)使用到此函數(shù),用來把訓(xùn)練數(shù)據(jù)分成多個(gè)小組,此函數(shù)每次拋出一組數(shù)據(jù)。直至把所有的數(shù)據(jù)都拋出。就是做一個(gè)數(shù)據(jù)的初始化。
在我們自己的模型訓(xùn)練中,常常需要使用非官方自制的數(shù)據(jù)集。我們可以通過改寫torch.utils.data.Dataset中的getitem和len來載入我們自己的數(shù)據(jù)集。
getitem:獲取數(shù)據(jù)集中的數(shù)據(jù)
len:獲取整個(gè)數(shù)據(jù)集的長(zhǎng)度(即個(gè)數(shù))
部分代碼如下:
3.2.2 網(wǎng)絡(luò)模型搭建
本代碼模型由三層卷積和三層全連接層以及softmax層構(gòu)成。
我們輸入圖片大小為為48X48X1(48X48像素,灰度單通道),經(jīng)過一個(gè)3X3X64卷積核的卷積操作,再進(jìn)行一次2X2的池化,得到一個(gè)24X24X64的feature map1(以上卷積和池化操作的步長(zhǎng)均為1,每次卷積前的padding為1,下同)。將feature map 1經(jīng)過一個(gè)3X3X128卷積核的卷積操作,再進(jìn)行一次2X2的池化,得到一個(gè)12X12X128的feature map 2。將feature map 2經(jīng)過一個(gè)3X3X256卷積核的卷積操作,再進(jìn)行一次2X2的池化,得到一個(gè)6X6X256的feature map 3。卷積完畢,數(shù)據(jù)即將進(jìn)入全連接層。進(jìn)入全連接層之前,要進(jìn)行數(shù)據(jù)扁平化,將feature map 3拉一個(gè)成長(zhǎng)度為6X6X256=9216的一維tensor。隨后數(shù)據(jù)經(jīng)過dropout后被送進(jìn)一層含有4096個(gè)神經(jīng)元的隱層,再次經(jīng)過dropout后被送進(jìn)一層含有1024個(gè)神經(jīng)元的隱層,之后經(jīng)過一層含256個(gè)神經(jīng)元的隱層,最終經(jīng)過含有7個(gè)神經(jīng)元的輸出層。一般再輸出層后都會(huì)加上softmax層,取概率最高的類別為分類結(jié)果。
部分代碼如下:
3.3 訓(xùn)練模型
在本次項(xiàng)目中,我們采用的優(yōu)化器是隨機(jī)梯度下降,其中參數(shù)weight_decay為正則項(xiàng)系數(shù)(使用結(jié)構(gòu)化風(fēng)險(xiǎn)函數(shù),考慮到模型復(fù)雜度可以減輕過擬合);損失函數(shù)采用的是交叉熵函數(shù);可以選擇是否使用學(xué)習(xí)率衰減。設(shè)置好后就可以通過數(shù)據(jù)的前向傳播和誤差的反向傳播來訓(xùn)練模型了。其中,我們?cè)O(shè)置每四輪訓(xùn)練完就測(cè)試訓(xùn)練集和測(cè)試集的準(zhǔn)確率。
部分代碼如下:
主函數(shù)中我們?cè)O(shè)置批大小為128,訓(xùn)練17輪,學(xué)習(xí)率為0.1,正則項(xiàng)系數(shù)為0。
部分代碼如下:
3.4 運(yùn)行結(jié)果
經(jīng)過17輪訓(xùn)練后,結(jié)果如下:
4. 結(jié)果分析
從運(yùn)行結(jié)果看,損失函數(shù)值呈下降趨勢(shì),從第一輪的1.45下降到了第17輪的0.42;訓(xùn)練集和測(cè)試集的準(zhǔn)確率逐步上升,其中訓(xùn)練集從0.41上升到0.70,測(cè)試集從0.41上升到0.57。
以上可以看出,模型訓(xùn)練是有成效的,但準(zhǔn)確率提升并不算很大。經(jīng)過我們分析可能有兩個(gè)原因,一是訓(xùn)練輪數(shù)太少,提高訓(xùn)練輪數(shù)可以進(jìn)一步提升準(zhǔn)確率;二是參數(shù)調(diào)節(jié)不恰當(dāng),以學(xué)習(xí)率為例,如果學(xué)習(xí)率太大,就可能會(huì)直接錯(cuò)過最低點(diǎn)。如果學(xué)習(xí)率太小,就可能學(xué)得太慢,同樣也不可取。解決方法是嘗試適當(dāng)提高學(xué)習(xí)率以尋得更優(yōu)的結(jié)果。
參考文獻(xiàn):
[1]徐琳琳,張樹美,趙俊莉.基于圖像的面部表情識(shí)別方法綜述[J].計(jì)算機(jī)應(yīng)用,2017(12):171-178+208.
[2]梁瑞奇,基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別.電子制作,2018,10.
[3]M.Suwaetal.,In:Proc.4thInt.JointConf.PatternRecognition,1978,pp.408~410.
[4]K.Mase,IEICETrans,SpecialIssueonComputerVisionanditsApplication,1991,E74(10).
[5]TIANYL,KANADET,COHNJF.Recognizingactionunitsforfacialexpressionanalysis[J].IEEETransactionsonPatternAnalysis&MachineIntelligence,2001,23(2):97-115.
[6]LITTLEWORTG,BARTLETTMS,F(xiàn)ASELI,etal.Dynamicsoffacialexpressionextractedautomaticallyfromvideo[J].Image&VisionComputing,2006,24(6):615-625.
[7]王曉霞,李振龍,辛樂.基于混合特征和分層最近鄰法的人臉表情識(shí)別,計(jì)算機(jī)工程,2011,08,171-173+176.