車(chē) 娜,趙 劍*,史麗娟,王 柳,范秦寅
(1.長(zhǎng)春大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林 長(zhǎng)春 130022;2.長(zhǎng)春大學(xué) 電子信息工程學(xué)院,吉林 長(zhǎng)春 130022;3.大阪大學(xué) 機(jī)械科學(xué)部,日本 大阪 556670)
人的面部表情識(shí)別是人工智能的基本問(wèn)題,同時(shí)也是一個(gè)復(fù)雜的計(jì)算問(wèn)題,解決人類(lèi)面部表情識(shí)別問(wèn)題對(duì)于人機(jī)交互等高級(jí)應(yīng)用有著重要意義[1]。近些年來(lái)在表情識(shí)別方面有很多的優(yōu)秀成果,在相關(guān)研究方面積累了很多經(jīng)驗(yàn)教訓(xùn)。
心理學(xué)研究表明人類(lèi)的表情與味覺(jué)一樣,是幾種基本表情的混合,識(shí)別這些基本表情就成了早期表情識(shí)別的重要方向[2]。早期的研究主要是通過(guò)數(shù)據(jù)特征判斷表情和用時(shí)序分析判斷表情[3]等方法,這些方法的技術(shù)難度較高,但是最終得到程序的魯棒性較差。
近幾年來(lái)人工智能的再度興起使得很多人將研究重點(diǎn)轉(zhuǎn)移到使用深度學(xué)習(xí)方法進(jìn)行表情識(shí)別的方向上來(lái)[4]。在利用深度學(xué)習(xí)和卷積神經(jīng)網(wǎng)方面也有很多不錯(cuò)的工作[5]。
本文提出了一種基于卷積神經(jīng)網(wǎng)的機(jī)器學(xué)習(xí)方法來(lái)進(jìn)行人類(lèi)表情識(shí)別,并且詳細(xì)分析了影響表情識(shí)別的卷積神經(jīng)網(wǎng)各方面的參數(shù)。本文主要基于FER2013數(shù)據(jù)集和卷積神經(jīng)網(wǎng)模型進(jìn)行探索,最終給出一個(gè)基于實(shí)驗(yàn)的最優(yōu)的解決方案。
FER2013數(shù)據(jù)集合是表情數(shù)據(jù)庫(kù),它是由35 887張面部表情圖片構(gòu)成,在這些圖片中分別有訓(xùn)練集合、驗(yàn)證集合和測(cè)試集合。表情圖片都處理成了灰度圖片,并且是統(tǒng)一規(guī)格的,都是48×48像素的,如圖1所示。按照相關(guān)學(xué)科的理論,人的表情是7種基本表情的混合,也就是面無(wú)表情、生氣、厭惡、恐懼、開(kāi)心、驚訝、傷心這幾種表情,F(xiàn)ER2013中也將面部表情數(shù)據(jù)分成了這7類(lèi)。在FER2013中給出的文件是csv格式,本文為了訓(xùn)練方便將其轉(zhuǎn)換成了灰度圖片,如圖1所示。
本文采用了基本的CNN結(jié)構(gòu)來(lái)探討卷積神經(jīng)網(wǎng)在面部表情識(shí)別中的性能問(wèn)題,其結(jié)構(gòu)如圖2所示。
其中神經(jīng)網(wǎng)的INPUT為輸入層,F(xiàn)ER2013數(shù)據(jù)集合中28 709張訓(xùn)練圖片隨機(jī)亂序之后通過(guò)輸入層輸入到神經(jīng)網(wǎng)結(jié)構(gòu)中。在輸入層之后的C1是最開(kāi)始的卷積層,它有6組卷積核,設(shè)定每組局部感受野的尺寸為5×5,我們將滑動(dòng)窗口步長(zhǎng)設(shè)為1,在神經(jīng)網(wǎng)中對(duì)輸入圖像作局部卷積,可以得到6個(gè)(28-5+1)×(28-5+1)=24×24尺寸的特征圖。接下來(lái)的層S2為池化層,我們通過(guò)池化層對(duì)前面卷積層得到的特征圖進(jìn)行下采樣處理,這是卷積神經(jīng)網(wǎng)絡(luò)在保留訓(xùn)練數(shù)據(jù)同時(shí)降低維度的技術(shù),為了不重疊數(shù)據(jù),我們將池化層設(shè)為2×2,并且步長(zhǎng)設(shè)為2。通過(guò)卷積層和池化層之后的數(shù)據(jù)就是池化特征圖,這個(gè)特征圖的數(shù)據(jù)是每個(gè)輸入圖的1/4。后面的層C3同樣為卷積層,在這個(gè)層里有12個(gè)卷積核,這里的卷積窗口為5×5,滑動(dòng)步長(zhǎng)為1,在接下來(lái)的卷積層S2中需要尺寸為8×8的12個(gè)特征圖。在S2到C3的特征圖可以選擇全連接方式,就是C3中每個(gè)特征圖都由C2中的所有特征圖組合疊加而成。接下來(lái)的第S4層也是池化層,這里將采集窗口設(shè)為2×2,步長(zhǎng)設(shè)為2,用最大值下采樣,通過(guò)S3池化層可以得到對(duì)應(yīng)的前面的12個(gè)特征圖,其中每個(gè)圖為4×4的尺寸。后面的F5 是全連接層,S4則將每個(gè)圖轉(zhuǎn)換成16×1的向量,之后將其轉(zhuǎn)換為192×1的特征向量,再通過(guò)全連接的方式傳遞給F5層,F(xiàn)5層有120個(gè)節(jié)點(diǎn),這些節(jié)點(diǎn)與接下來(lái)的F6層全連接,F(xiàn)6設(shè)了84個(gè)節(jié)點(diǎn),F(xiàn)5與F6這樣的兩極全連接結(jié)構(gòu)能夠增強(qiáng)整個(gè)網(wǎng)絡(luò)的泛化效果。輸出層與F6相連,這里是為了區(qū)分7種基本表情,所以這里給出了7個(gè)節(jié)點(diǎn),分別表示為0~6,對(duì)應(yīng)表情“面無(wú)表情、生氣、厭惡、恐懼、開(kāi)心、驚訝、傷心”。
圖1 FER—2013集合的例子
圖2 經(jīng)典CNN模型結(jié)構(gòu)示意
通過(guò)經(jīng)典的卷積神經(jīng)網(wǎng)對(duì)FER2013的訓(xùn)練,我們將總共35 887張圖片中的28 709設(shè)為訓(xùn)練集,3 589設(shè)為驗(yàn)證集,3 589設(shè)為測(cè)試集。學(xué)習(xí)率設(shè)為1,當(dāng)神經(jīng)網(wǎng)迭代300次之后錯(cuò)誤率為2.45%,迭代1 000次之后錯(cuò)誤率為1.86%。
本文用經(jīng)典的卷積神經(jīng)網(wǎng)構(gòu)建了面部表情識(shí)別的系統(tǒng),接下來(lái)對(duì)卷積神經(jīng)網(wǎng)的主要參數(shù)進(jìn)行對(duì)比試驗(yàn),主要研究滑動(dòng)窗口大小以及池化方式這兩個(gè)方面對(duì)于在該具體問(wèn)題中的卷積神經(jīng)網(wǎng)影響,為進(jìn)一步的理論和實(shí)驗(yàn)研究做出指導(dǎo)。
在滑動(dòng)窗口方面,經(jīng)典的做法是固定滑動(dòng)窗口,這樣可以穩(wěn)定地掃描過(guò)全部的感受區(qū)域,利用神經(jīng)元與周?chē)袼氐年P(guān)系進(jìn)行神經(jīng)網(wǎng)訓(xùn)練。本文在第一個(gè)卷積層C1中設(shè)計(jì)了一系列的滑動(dòng)窗口尺寸試驗(yàn),使用不同的模型進(jìn)行測(cè)試,以發(fā)現(xiàn)相對(duì)較優(yōu)的滑動(dòng)窗口尺度。在下面的表1中,是我們對(duì)于1~9的窗口尺寸進(jìn)行測(cè)試的結(jié)果。
通過(guò)實(shí)驗(yàn)數(shù)據(jù),我們大概可以找到一個(gè)局部最優(yōu)解,顯然過(guò)大或者過(guò)小的滑動(dòng)窗口尺寸都會(huì)影響系統(tǒng)性能。通過(guò)表1得到的數(shù)據(jù)走向,以及系統(tǒng)中臨時(shí)特征圖的對(duì)比,我們最終將C1卷積層中的窗口尺寸設(shè)為5×5大小的?;瑒?dòng)窗口尺寸是根據(jù)實(shí)驗(yàn)結(jié)果和輸入數(shù)據(jù)尺寸決定的,相對(duì)較大的輸入數(shù)據(jù),如果采用小窗口會(huì)拉低實(shí)驗(yàn)性能,反之亦然。這是設(shè)計(jì)卷積神經(jīng)網(wǎng)的重要因素之一。
表1 C1層中不同窗口尺寸以及對(duì)應(yīng)的錯(cuò)誤率對(duì)照
卷積神經(jīng)網(wǎng)除了卷積層之外的重要設(shè)計(jì)內(nèi)容就是池化層了。池化層不同的設(shè)計(jì)對(duì)于整個(gè)卷積神經(jīng)網(wǎng)的性能有很大的影響,而且它也是神經(jīng)網(wǎng)魯棒性的來(lái)源之一,同樣的圖像如果有輕度噪音在池化層的處理下也能得到同樣的訓(xùn)練/識(shí)別效果。常用的池化策略是最大值池化、平均值池化和隨機(jī)值池化。
為了選擇最為適合的池化方式,本文將以上3種策略在表情識(shí)別系統(tǒng)中都實(shí)現(xiàn)了。這3個(gè)模型采用同樣的設(shè)計(jì),只有池化方式不同,同樣對(duì)于面部表情識(shí)庫(kù)FER2013進(jìn)行訓(xùn)練,得到的時(shí)間消耗如表2所示。為了排除單次實(shí)驗(yàn)的誤差,下表中的數(shù)據(jù)是10次實(shí)驗(yàn)取得的平均值。
在這個(gè)特定問(wèn)題中,我們能夠發(fā)現(xiàn)池化策略有不同的最優(yōu)表現(xiàn)。錯(cuò)誤率最低的策略是隨機(jī)方式,而效率最高的是最大化策略。按照統(tǒng)計(jì)結(jié)果表明,最大化策略在時(shí)間表現(xiàn)方面的顯著性水平要高于隨機(jī)化策略在提高錯(cuò)誤率方面的顯著性水平。所以我們認(rèn)為在這個(gè)具體問(wèn)題中采用最大化策略能夠更好地提高系統(tǒng)功效。
表2 3種池化方式的實(shí)驗(yàn)對(duì)比數(shù)據(jù)
本文通過(guò)實(shí)驗(yàn)修改經(jīng)典的卷積神經(jīng)網(wǎng)結(jié)構(gòu),以得到在實(shí)驗(yàn)中表現(xiàn)良好的參數(shù)配置,為面部表情識(shí)別工作做出了探索。在我們的實(shí)驗(yàn)中,針對(duì)面部表情識(shí)別問(wèn)題,得到了較好的卷積層窗口尺寸設(shè)置,以及表現(xiàn)優(yōu)秀的池化方案。得出的結(jié)論為,為了進(jìn)行更好的深度學(xué)習(xí),卷積核窗口的尺寸不宜過(guò)大也不宜過(guò)??;池化方案相對(duì)來(lái)說(shuō)采用最大化策略能夠改進(jìn)效率。