国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度殘差網(wǎng)絡的人臉表情識別

2019-02-27 02:28盧官明朱海銳閆靜杰
數(shù)據(jù)采集與處理 2019年1期
關(guān)鍵詞:殘差卷積神經(jīng)網(wǎng)絡

盧官明 朱海銳 郝 強 閆靜杰

(南京郵電大學通信與信息工程學院,南京,210003)

引 言

在人類交流過程中,人臉表情不僅可以呈現(xiàn)交流者的情緒狀態(tài),更能傳遞交流者的情感信息。如何讓機器像人類一樣能夠理解和表達情感,從而實現(xiàn)人和機器的智能交互,是當前人工智能領(lǐng)域的重要研究課題。人臉表情識別作為情感計算的關(guān)鍵技術(shù),在患者情緒狀態(tài)分析、疲勞檢測、抑郁癥的嚴重程度和疼痛程度評估[1]等方面有著廣闊的應用前景。

在基于傳統(tǒng)機器學習的表情識別系統(tǒng)中,面部表情的特征提取與分類器設計是分離的,要想獲得好的識別性能,須要提取出具有良好鑒別能力的特征,同時又要設計合適的分類器。國內(nèi)外學者在這兩方面都進行了大量的研究,提出了基于Gabor小波變換[2]、方向梯度直方圖(Histogram of oriented gra?dients,HOG)[3]、局部二值模式(Local binary pattern,LBP)[4-5]、流形學習[6]的特征提取方法,以及基于支持向量機(Support vector machine,SVM)[7]的分類器等。由于人臉表情具有高維、非剛性、多尺度變化、易受光照和角度影響等特點,基于傳統(tǒng)機器學習的表情識別算法的性能依賴于人工提取特征的優(yōu)劣,人為干擾因素較大,算法的魯棒性和識別精度有待提高。

近年來,深度卷積神經(jīng)網(wǎng)絡(Deep convolutional neural network,DCNN)在圖像分類和識別等領(lǐng)域取得了突破性的進展[8]。2014年,牛津大學視覺幾何組(Visual Geometry group,VGG)提出的VGGNet模型[9]在ILSVRC比賽中將Top-5錯誤率降到了7.32%。Google團隊提出的GoogLeNet模型(又稱In?ception模型)及其后續(xù)版本[10-13],將ImageNet數(shù)據(jù)集上的Top-5錯誤率降低至4.8%。然而,隨著網(wǎng)絡深度的增加,訓練網(wǎng)絡時由于會出現(xiàn)梯度消失或梯度爆炸的問題而使訓練變得困難。為了解決上述問題,何愷明等人提出了深度殘差網(wǎng)絡ResNet[14]。該網(wǎng)絡采用殘差學習單元作為基本組成部分,在原始卷積層外部加入捷徑連接(Shortcut connections)支路構(gòu)成基本殘差學習單元,通過順序疊加殘差學習單元成功地緩解了DCNN難以訓練和性能退化問題,在2015年的ILSVRC比賽中奪得冠軍,將Top-5錯誤率降低至3.57%。在ResNet推出后不久,Google團隊就借鑒了ResNet的思想,提出了Inception V 4和Inception-ResNet-V 2兩種網(wǎng)絡模型[15],并通過融合這兩種網(wǎng)絡模型,在ILSVRC比賽中將Top-5錯誤率降到了3.08%??梢?,ResNet及其思想具有很強的推廣性。

DCNN在圖像分類和識別領(lǐng)域取得的突破性進展,也為研究表情識別提供了基礎(chǔ)與借鑒。盧官明等人[16]設計了一種用于人臉表情識別的卷積神經(jīng)網(wǎng)絡(CNN)模型,其中包括3層卷積層、2層池化層、1層全連接層和1層Softmax層,將表情特征提取和表情分類兩個步驟結(jié)合在一起,同時采取Dropout和數(shù)據(jù)集擴增策略緩解了網(wǎng)絡的過擬合問題,在擴充的Cohn-Kanade人臉表情數(shù)據(jù)集(The Extended Cohn-Kanade database,CK+)上進行了實驗,取得了84.55%的平均識別準確率。李勇等人[17]提出了一種跨連接LeNet-5卷積神經(jīng)網(wǎng)絡用于人臉表情識別,在CK+表情數(shù)據(jù)集上取得了83.74%的平均識別準確率。然而,目前大多數(shù)用于人臉表情識別的DCNN模型都是在CK+等表情數(shù)據(jù)集上訓練得到的,由于CK+表情數(shù)據(jù)集上的圖像都是正面拍攝的圖像,與實際應用場景中采集的人臉圖像有較大的差別,而且每類表情圖像的樣本數(shù)量有限,所以,在CK+表情數(shù)據(jù)集上訓練得到的模型容易產(chǎn)生過擬合現(xiàn)象,會導致模型的泛化能力很弱。為了提高網(wǎng)絡模型的泛化能力,本文從KDEF(Karolinska direct?ed emotional faces)和CK+兩種表情數(shù)據(jù)集上選取表情圖像樣本組成混合數(shù)據(jù)集以用于訓練網(wǎng)絡,提出了一種基于殘差學習單元的深度殘差網(wǎng)絡,探索提高人臉表情識別準確率和魯棒性的新途徑。

1 殘差學習的基本思想

從在ILSVRC比賽中取得的成績來看,卷積神經(jīng)網(wǎng)絡在圖像分類識別任務上的性能在很大程度上得益于較深的網(wǎng)絡模型。那么,是否可以簡單地通過增加卷積層數(shù)就能提高卷積神經(jīng)網(wǎng)絡的特征學習能力和分類識別性能?文獻[18]指出如果單純地通過堆疊卷積層來增加網(wǎng)絡深度,那么當卷積層數(shù)增加到某個值后,分類識別的準確率反而會下降。為了解決隨卷積層數(shù)的增加而引起的性能退化問題,文獻[14]提出一種深度殘差學習框架,其基本思想是在構(gòu)建卷積神經(jīng)網(wǎng)絡時通過加入捷徑連接(Short?cut connections)支路構(gòu)成基本殘差學習單元,利用堆疊的非線性卷積層來擬合一個殘差映射。假設期望的網(wǎng)絡層映射為H(x),殘差映射R(x):=H(x)-x,其中,x 為輸入信號,則H(x)=R(x)+x,即期望得到的實際映射H(x)不是傳統(tǒng)神經(jīng)網(wǎng)絡中的輸入的映射,而是輸入的映射(即殘差映射R(x))和輸入x的相加。通過殘差學習單元將卷積層對H(x)的學習轉(zhuǎn)化為對R(x)的學習。這里假設對殘差映射R(x)進行學習可能會比直接對期望的實際映射H(x)進行學習更加容易。

殘差學習單元的結(jié)構(gòu)示意圖如圖1所示。圖1中的捷徑連接執(zhí)行一個簡單的恒等映射(Identity mapping),既沒有引入新的參數(shù),也沒有增加計算復雜度。將殘差學習單元應用于深度卷積神經(jīng)網(wǎng)絡可以有效緩解網(wǎng)絡模型訓練時反向傳播中的梯度消失問題,進而解決了深層網(wǎng)絡難以訓練和性能退化的問題。

圖1 殘差學習單元的結(jié)構(gòu)示意圖Fig.1 Building block for residual learning

2 深度殘差網(wǎng)絡的結(jié)構(gòu)

本文提出的深度殘差網(wǎng)絡的結(jié)構(gòu)如圖2所示,包括依次相連的卷積層、批歸一化(Batch normalization)層、修正線性單元(Rectified linear unit,ReLU)激活函數(shù)層、殘差學習模塊1、殘差學習模塊2、殘差學習模塊3、全局池化層、全連接層和Softmax分類層。輸入圖像首先經(jīng)過4個3×3的卷積核進行卷積操作,步長為1,填充為1。全局池化層在32×32窗口內(nèi)進行平均池化操作,步長為1。全連接層的輸出神經(jīng)元數(shù)設為7,對應7種不同的表情類別,輸出1個7維向量。最后通過Softmax分類器輸出分類結(jié)果。

殘差學習模塊1的結(jié)構(gòu)如圖3所示,包括若干個依次相連的具有相同結(jié)構(gòu)的殘差學習單元A。

殘差學習模塊2的結(jié)構(gòu)如圖4所示,包括1個殘差學習單元B和若干個依次相連的具有相同結(jié)構(gòu)的殘差學習單元A。

殘差學習模塊3的結(jié)構(gòu)如圖5所示,包括1個殘差學習單元B和若干個個依次相連的具有相同結(jié)構(gòu)的殘差學習單元A。

3個不同殘差學習模塊中的殘差學習單元A的結(jié)構(gòu)都相同,如圖6所示,其區(qū)別在于殘差學習單元A中卷積層所用的卷積核的數(shù)量有所不同。

圖2 深度殘差網(wǎng)絡的結(jié)構(gòu)示意圖Fig.2 A block diagram of the deep residual network

圖3 殘差學習模塊1的結(jié)構(gòu)示意圖Fig.3 A block diagram of the module-1 for residual learning

圖4 殘差學習模塊2的結(jié)構(gòu)示意圖Fig.4 A block diagram of the mod?ule-2 for residual learning

圖5 殘差學習模塊3的結(jié)構(gòu)示意圖Fig.5 A block diagram of the mod?ule-3 for residual learning

圖6 殘差學習單元A的結(jié)構(gòu)示意圖Fig.6 A building block-A for residual learning

圖7 殘差學習單元B的結(jié)構(gòu)示意圖Fig.7 A building block-B for residual learning

同樣,殘差學習模塊2和殘差學習模塊3中的殘差學習單元B的結(jié)構(gòu)是相同的,如圖7所示,其區(qū)別在于殘差學習單元B中卷積層所用的卷積核的數(shù)量有所不同。

例如,當殘差學習模塊1、殘差學習模塊2和殘差學習模塊3分別包含6個殘差學習單元時,殘差網(wǎng)絡的深度為38層;當殘差學習模塊1、殘差學習模塊2和殘差學習模塊3分別包含12個殘差學習單元時,殘差網(wǎng)絡的深度為74層。這里所指的殘差網(wǎng)絡的深度是指卷積神經(jīng)網(wǎng)絡中不考慮捷徑連接支路所包含的卷積層和全連接層的總層數(shù)。

3 深度殘差網(wǎng)絡模型的參數(shù)初始化和訓練

3.1 網(wǎng)絡模型參數(shù)的初始化

網(wǎng)絡模型參數(shù)的初始化是一件很重要的事情。傳統(tǒng)的固定方差的高斯分布初始化,是使權(quán)重初始值滿足給定均值和標準差的高斯分布,但網(wǎng)絡層數(shù)增加使模型很難收斂。Xavier初始化方法[19]是為了讓網(wǎng)絡前向傳播和反向傳播時每一層方差盡量一致的一種方法,在推導的時候假設激活函數(shù)是線性的。而本文的深度殘差網(wǎng)絡采用ReLU非線性激活函數(shù),因此,優(yōu)先考慮采用基于ReLU設計的msra初始化方法[20]。msra初始化方法讓每個卷積層的權(quán)重初始值滿足均值為0、標準差為 2/Nl高斯分布,其中Nl是第l層輸入的個數(shù)。全連接層中所有權(quán)重初始值為0。

3.2 網(wǎng)絡模型參數(shù)的訓練和優(yōu)化

CNN本質(zhì)上實現(xiàn)一種輸入到輸出的映射關(guān)系,能夠?qū)W習大量輸入與輸出之間的映射關(guān)系,不需要任何輸入和輸出之間的精確數(shù)學表達式,只要用已知的模式對CNN加以訓練,就可以使網(wǎng)絡具有輸入輸出之間的映射能力。CNN執(zhí)行的是有監(jiān)督訓練,訓練過程分為前向傳播和反向傳播兩個階段,其中前向傳播階段就是利用隱層提取特征的過程,主要是卷積和池化操作;反向傳播階段采用反向傳播(BP)算法傳遞誤差,更新權(quán)重參數(shù)。

(1)前向傳播階段。從訓練集中隨機選取24個小批量(Mini-batch)樣本,同時輸入到網(wǎng)絡,逐層傳播下去,最后Softmax分類層輸出24個7維向量,向量中的每個元素分別代表輸入樣本被分到對應表情類別的概率。

(2)反向傳播階段,也稱為誤差傳播階段。首先根據(jù)交叉熵(Cross-entropy)損失函數(shù)計算出損失值,然后使用文獻[21]的算法更新網(wǎng)絡中每個可訓練的權(quán)重參數(shù)使得損失值最小化,以優(yōu)化整個網(wǎng)絡。

4 實驗結(jié)果與分析

本文實驗是在開源深度學習框架Caffe上完成的。實驗硬件平臺為Intel(R)Core(TM)i5-6500 CPU,主頻為 3.2 GHz,內(nèi)存為 8 GB,操作系統(tǒng)為Ubuntu16.04 LTS版本,搭載Linux內(nèi)核,同時借助NVIDIA GTX 1080TIGPU進行加速處理。

4.1 表情數(shù)據(jù)集

本文采用KDEF(The Karolinska Directed Emotional Faces)[22]和CK+(The extended Cohn-Kanade Dataset)[23]兩個表情數(shù)據(jù)集。KDEF表情數(shù)據(jù)集包含了20歲至30歲年齡段的70位業(yè)余演員(35位女性和35位男性)的7類表情圖像,共有4 900幅,其中,有表情類別標簽的圖像有4 898幅,每類表情圖像的數(shù)量如表1所示。拍攝角度包括左側(cè)面(Full left profile)、半左側(cè)面(Half left profile)、正面(Straight)、半右側(cè)面(Half right profile)、右側(cè)面(Full right profile)。

CK+表情數(shù)據(jù)集包括了123位受試者的593個視頻序列,其中有327個視頻序列的最后一幀標記了表情的標簽,每類表情圖像的數(shù)量如表2所示。

由于CK+和KDEF表情數(shù)據(jù)集中的表情類別不完全一致,實驗中我們從CK+表情數(shù)據(jù)集中舍棄了類別標簽為輕蔑的18幀表情圖像,從KDEF和CK+表情數(shù)據(jù)集中選取了7類表情共5170幅表情圖像,其中每類表情圖像的數(shù)量如表3所示。

表1 KDEF表情數(shù)據(jù)集中每類表情圖像的數(shù)量Tab.1 The number of images for each expression clas?sification on the KDEF dataset

表2 CK+表情數(shù)據(jù)集中每類表情圖像的數(shù)量Tab.2 The number of images for each expression clas?sification on the CK+dataset

表3 實驗中使用的每類表情圖像的數(shù)量Tab.3 The number of used images for each expres?sion classification in experiment

實驗中先將所有圖像剪裁成128像素×128像素大小,如圖8所示,并對像素值進行歸一化操作。為了提高識別結(jié)果的可靠性,實驗中采用十折(10-fold)交叉驗證方法,即將每類表情圖像平均分成10份,每次實驗使用其中的1份用作測試樣本集,其余的9份用作訓練樣本集,并采用鏡像翻轉(zhuǎn)的方式對訓練樣本進行擴充,將訓練樣本數(shù)擴充1倍,即共有9 306幅圖像。這樣的識別實驗重復10次,最后取10次的平均識別率。

圖8 實驗中使用的7類表情圖像的樣例Fig.8 Samples of seven classifications of facial expression images used in the experiment

4.2 實驗結(jié)果與分析

為了比較帶有殘差學習單元的深度殘差網(wǎng)絡(ResNet)與不帶殘差學習單元的DCNN以及不同網(wǎng)絡深度所具有的表情識別性能,實驗對比了20,38,56,74層帶有殘差學習單元的ResNet與相同深度但不帶殘差學習單元的DCNN的識別準確率,其結(jié)果如圖9所示。其中,74層ResNet的表情識別混淆矩陣如表4所示。在對比實驗中,所謂的不帶殘差學習單元的DCNN,是指僅僅把帶有殘差學習單元的深度殘差網(wǎng)絡中的捷徑連接支路刪除后的堆疊DCNN,其他各層的操作都是一樣的。

由圖9可知,當采用不帶殘差學習單元的普通堆疊DCNN時,隨著網(wǎng)絡深度從20層增加到38層,表情識別準確率相應地從87.02%增加到87.20%,提升不明顯;但隨著網(wǎng)絡深度從38層進一步增加到56,74層時,表情識別準確率并不會隨著層數(shù)的增加而增加,反而從87.20%降低到86.71%、86.23%,出現(xiàn)了識別性能的退化現(xiàn)象,收斂性較差。反之,當采用帶有殘差學習單元的ResNet時,隨著網(wǎng)絡深度從20層增加到38層、56層、74層,表情識別準確率相應地從86.77%增加到88.97%、89.48%、90.79%,沒有出現(xiàn)識別性能的退化現(xiàn)象,收斂性較好。實驗結(jié)果表明采用殘差單元構(gòu)建的深度卷積神經(jīng)網(wǎng)絡可以解決網(wǎng)絡深度和模型收斂性之間的矛盾,隨著網(wǎng)絡深度的加深,能夠?qū)W習到鑒別能力更強的表情特征,可提升表情識別的準確率和魯棒性。

圖9 不同結(jié)構(gòu)神經(jīng)網(wǎng)絡的表情識別準確率比較Fig.9 Comparison among different neural networks in term of expression recognition accuracy

表4 74層ResNet的表情識別混淆矩陣Tab.4 Confusion matrix for ResNet with 74 layers%

由表4可知,當采用74層的ResNet時,中性和高興這兩類表情的識別準確率分別達到96.14%和97.89%,憤怒、厭惡、悲傷和驚訝4類表情的識別準確率也分別達到了88.92%、90.93%、86.39%和92.69%。害怕和驚訝兩種表情容易被混淆,驚訝表情被誤判為害怕表情的概率為5.77%,而害怕表情被誤判為驚訝表情的概率為5.56%。另外,憤怒表情也容易被誤判為厭惡表情,誤判概率為5.00%。

5 結(jié)束語

深度卷積神經(jīng)網(wǎng)絡通過組合多層神經(jīng)元,提取不同層次的特征,不斷迭代組合成更高層次的抽象特征,相比傳統(tǒng)的人工設計特征具有更強的特征表達能力和泛化能力。但是,隨著卷積神經(jīng)網(wǎng)絡深度的加深,一方面由于在訓練網(wǎng)絡時會出現(xiàn)梯度消失或梯度爆炸的問題而使訓練變得困難,另一方面由于網(wǎng)絡模型結(jié)構(gòu)越來越復雜,隨之帶來的不利因素就是更大的計算量和更高的內(nèi)存需求,這會極大地影響模型對輸入圖像的處理速度。針對深度卷積神經(jīng)網(wǎng)絡隨著卷積層數(shù)增加而導致網(wǎng)絡模型難以訓練和性能退化等問題,本文提出了一種基于深度殘差網(wǎng)絡的人臉表情識別方法。實驗結(jié)果驗證了所提出的方法的有效性,但仍然存在有待進一步研究之處。一方面,深度神經(jīng)網(wǎng)絡是一種數(shù)據(jù)驅(qū)動的監(jiān)督學習模型,需要從海量樣本數(shù)據(jù)中學習數(shù)據(jù)特征,只有通過大量的有標簽樣本數(shù)據(jù)訓練后才會獲得理想的識別效果;而目前本文所用的表情數(shù)據(jù)集還不夠充足,當網(wǎng)絡深度進一步加深時,需要學習的權(quán)重參數(shù)過多會導致過擬合等問題。另一方面,本文對所提出的深度殘差網(wǎng)絡采用基于端到端的訓練,訓練過程復雜,在計算能力有限的實驗平臺條件下,再增加網(wǎng)絡深度有一定難度。然而,有研究表明,基于遷移學習(Transfer learning)的方法可以將從某一任務中學習到的特征遷移到新任務中,比如在Ima?geNet等大規(guī)模數(shù)據(jù)集上預先訓練學習到的特征,在其他很多圖像識別任務中也取得了很好的結(jié)果。因此,下一步的研究工作將嘗試使用預先訓練的深度殘差網(wǎng)絡ResNet-101、ResNet-152作為特征提取器,以解決因訓練樣本數(shù)量不足而導致網(wǎng)絡模型出現(xiàn)過擬合問題。

猜你喜歡
殘差卷積神經(jīng)網(wǎng)絡
基于雙向GRU與殘差擬合的車輛跟馳建模
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
基于殘差學習的自適應無人機目標跟蹤算法
卷積神經(jīng)網(wǎng)絡的分析與設計
神經(jīng)網(wǎng)絡抑制無線通信干擾探究
基于遞歸殘差網(wǎng)絡的圖像超分辨率重建
從濾波器理解卷積
基于神經(jīng)網(wǎng)絡的中小學生情感分析
基于傅里葉域卷積表示的目標跟蹤算法
基于神經(jīng)網(wǎng)絡的拉矯機控制模型建立
山阴县| 阿图什市| 郧西县| 昌宁县| 凤庆县| 内江市| 德清县| 古丈县| 侯马市| 团风县| 棋牌| 孝感市| 吴旗县| 五台县| 新野县| 周至县| 报价| 文成县| 华宁县| 丰台区| 江华| 谢通门县| 台湾省| 上蔡县| 大宁县| 昌吉市| 康定县| 涪陵区| 临邑县| 宜兰市| 宣恩县| 兴安盟| 德庆县| 原平市| 乐昌市| 双辽市| 兴山县| 萨迦县| 大厂| 房产| 札达县|