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

?

基于CNN的面部表情識(shí)別算法

2021-06-23 00:45:08靳顯智
關(guān)鍵詞:池化層卷積神經(jīng)網(wǎng)絡(luò)

靳顯智,林 霏,王 葉

齊魯工業(yè)大學(xué)(山東省科學(xué)院) 電氣工程與自動(dòng)化學(xué)院,濟(jì)南 250353

過(guò)去的面部表情識(shí)別方法主要依靠于人工設(shè)計(jì)的特征(比如邊和紋理描述量)和機(jī)器學(xué)習(xí)技術(shù)(如主成分分析、線性判別分析或支持向量機(jī))的結(jié)合。但是在無(wú)約束的環(huán)境中,人工設(shè)計(jì)對(duì)不同情況的特征提取是很困難的,同時(shí)容易受外來(lái)因素的干擾(光照、角度、復(fù)雜背景等),進(jìn)而導(dǎo)致識(shí)別率下降。深度學(xué)習(xí)方法的主要優(yōu)點(diǎn)在于它們可通過(guò)使用非常大的數(shù)據(jù)集進(jìn)行訓(xùn)練學(xué)習(xí)從而獲得表征這些數(shù)據(jù)的最佳功能。

劉諭奇等認(rèn)為基于深度學(xué)習(xí)的新方法可以改善面部表情分類任務(wù)[1-3],特別是ImageDataGenerator實(shí)現(xiàn)數(shù)據(jù)增強(qiáng),使的CNN達(dá)到了更大的突破。陳雄采用AAM模型對(duì)中性表情圖像進(jìn)行特征點(diǎn)定位,接著采用SVM算法訓(xùn)練分類器,進(jìn)行人臉表情運(yùn)動(dòng)單元分類[4]。李清霞等用AR-LGC算子對(duì)提取的Gabor特征進(jìn)行編碼,從而得到圖像的AR-LGGC復(fù)合特征,進(jìn)而進(jìn)行人臉識(shí)別[5-6]。韋堅(jiān)等依據(jù)神經(jīng)網(wǎng)絡(luò)算法的原理,設(shè)計(jì)出了修復(fù)數(shù)字電視故障的神經(jīng)網(wǎng)絡(luò)模型[7]。

本文主要研究如何利用卷積神經(jīng)系統(tǒng)設(shè)計(jì)一個(gè)人臉表情識(shí)別系統(tǒng),一個(gè)表情識(shí)別系統(tǒng)的核心便是網(wǎng)絡(luò)模型部分[1],在VGG模型的基礎(chǔ)上改動(dòng)了部分參數(shù)得到自己的網(wǎng)絡(luò)模型,并利用Fer2013數(shù)據(jù)集的訓(xùn)練集對(duì)其進(jìn)行訓(xùn)練,優(yōu)化,最終可以達(dá)到較準(zhǔn)確的識(shí)別圖片中人物表情的結(jié)果。

1 面部表情識(shí)別概述

1.1 面部表情識(shí)別框架

面部表情識(shí)別通??梢詣澐譃樗膫€(gè)進(jìn)程。包括圖像獲取,面部檢測(cè),圖像預(yù)處理和表情分類。其中,面部檢測(cè),臉部特征提取和面部表情分類是面部表情識(shí)別的三個(gè)關(guān)鍵環(huán)節(jié)[2]。面部表情識(shí)別的基本框架如圖1所示。

圖1 表情識(shí)別大致框架

首先是獲取圖像并執(zhí)行面部檢測(cè),然后提取僅具有面部的圖像部分。所提取的面部表情在比例和灰度上不均勻,因此有必要對(duì)面部特征區(qū)域進(jìn)行分割和歸一化,其中執(zhí)行歸一化主要是對(duì)面部光照和位置進(jìn)行統(tǒng)一處理,將圖像統(tǒng)一重塑為標(biāo)準(zhǔn)大小,如48×48像素的圖片,即圖像預(yù)處理[3]。然后對(duì)臉部圖像提取面部表情特征值,并進(jìn)行分類[4]。采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)完成特征提取和分類的任務(wù),因?yàn)镃NN是模仿人腦工作并建立卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)模型的著名模型,所以選擇卷積神經(jīng)網(wǎng)絡(luò)作為構(gòu)建模型體系結(jié)構(gòu)的基礎(chǔ),最后不斷訓(xùn)練,優(yōu)化,最后達(dá)到較準(zhǔn)確識(shí)別出面部表情的結(jié)果[5]。

1.2 圖像預(yù)處理

采用多普勒擴(kuò)展法的幾何歸一化分為兩個(gè)主要步驟:面部校正和面部修剪。主要目的是將圖像轉(zhuǎn)化為統(tǒng)一大小。具體步驟如下:

1)找到特征點(diǎn)并對(duì)其進(jìn)行標(biāo)記,首先選取兩眼和鼻子作為三個(gè)特征點(diǎn)并采用一個(gè)函數(shù)對(duì)其進(jìn)行標(biāo)記,這里選擇的函數(shù)是[x,y]=ginput(3)。這里重要的一點(diǎn)是獲得特征點(diǎn)的坐標(biāo)值,可以用鼠標(biāo)進(jìn)行調(diào)整。

2)兩眼的坐標(biāo)值可以看作參考點(diǎn),將兩眼之間的距離設(shè)置為d,找到兩眼間的中點(diǎn)并標(biāo)記為O,然后根據(jù)參考點(diǎn)對(duì)圖像進(jìn)行旋轉(zhuǎn),這步操作是為了保證將人臉圖像調(diào)到一致。

3)接下來(lái)以選定的O為基準(zhǔn),分別向左右兩個(gè)方向各剪切距離為d的區(qū)域,在垂直方向剪切0.5d和1.5d的區(qū)域,這樣就可以根據(jù)面部特征點(diǎn)和幾何模型對(duì)特征區(qū)域進(jìn)行確定。如圖2所示。

圖2 剪切的特征區(qū)域

4)為了更好的對(duì)表情進(jìn)行提取,本文的做法是將表情的子區(qū)域圖像裁剪成統(tǒng)一的48×48尺寸。

2 基于CNN的人臉面部表情識(shí)別算法

2.1 卷積神經(jīng)網(wǎng)絡(luò)概述

卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),它包括卷積計(jì)算并具有較深的結(jié)構(gòu),因此是深度學(xué)習(xí)的代表性算法之一。隨著科技的不斷進(jìn)步人們?cè)谘芯咳四X組織時(shí)受啟發(fā)創(chuàng)立了神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)由很多相互聯(lián)系的神經(jīng)元組成并且可以在不同的神經(jīng)元之間通過(guò)調(diào)整傳遞彼此之間聯(lián)系的權(quán)重系數(shù)x來(lái)增強(qiáng)或抑制信號(hào)[6]。

標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò)通常由輸入層、卷積層、池化層、全連接層和輸出層組成,如圖3所示。

圖3 標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò)

其中圖3中第一層為輸入層,大小為28×28,然后通過(guò)20×24×24的卷積層,得到的結(jié)果再輸入池化層中,最后再通過(guò)圖中第四層既全連接層,直到最后輸出。

圖4為本文所采用的網(wǎng)絡(luò)模型。其中包括4個(gè)卷積層,3個(gè)池化層,池化層的大小為3×3,最終再通過(guò)兩個(gè)全連接層到達(dá)輸出層。網(wǎng)絡(luò)模型中的輸入層一般是一個(gè)矩陣,卷積層,池化層和全連接層可以當(dāng)作隱藏層,這些層通常具有不同的計(jì)算方法,需要學(xué)習(xí)權(quán)重以找到最佳值。

圖4 實(shí)驗(yàn)網(wǎng)絡(luò)模型

2.2 卷積神經(jīng)網(wǎng)絡(luò)各層結(jié)構(gòu)與功能

通過(guò)研究發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)類似于生物視覺神經(jīng)系統(tǒng)網(wǎng)絡(luò),具有分層特征。從圖3可以看出,標(biāo)準(zhǔn)卷積神經(jīng)網(wǎng)絡(luò)除了輸入和輸出外,還主要具有三種類型:池化層,全連接層和卷積層。這三個(gè)層次是卷積神經(jīng)網(wǎng)絡(luò)的核心部分[8]。

2.2.1 卷積層

卷積層是卷積神經(jīng)網(wǎng)絡(luò)的第一層,由幾個(gè)卷積單元組成。每個(gè)卷積單元的參數(shù)可以通過(guò)反向傳播算法進(jìn)行優(yōu)化,其目的是提取輸入的各種特征,但是卷積層的第一層只能提取低級(jí)特征,例如邊、線和角[7]。更多層的可以提取更高級(jí)的特征,利用卷積層對(duì)人臉面部圖像進(jìn)行特征提取。

一般卷積層結(jié)構(gòu)如下圖5,卷積層可以包含多個(gè)卷積面,并且每個(gè)卷積面都與一個(gè)卷積核相關(guān)聯(lián)。

圖5 卷積層機(jī)構(gòu)

h1,α和W1,α分別表示H1的第α個(gè)卷積面和第α個(gè)卷積核,x 表示輸入的人臉面部圖像矩陣;b1,α表示偏置,f表示卷積層函數(shù)。通過(guò)圖3至圖5可以看到,h1,α就是通過(guò)輸入的人臉面部圖像矩陣x和W1,α進(jìn)行內(nèi)卷積運(yùn)算然后加上偏置b1,α得到的,如式1所示。

h1,α=f(u1,a)=f(C1,α+b1,α)=f(x·W1,α)。

(1)

由式(1)可以看出,每次執(zhí)行卷積層計(jì)算時(shí),都會(huì)生成與之相關(guān)的多個(gè)權(quán)重參數(shù),這些權(quán)重參數(shù)的數(shù)量與卷積層的數(shù)量相關(guān),即與卷積層所用的函數(shù)有直接的關(guān)系。

2.2.2 池化層

在卷積神經(jīng)網(wǎng)絡(luò)中第二個(gè)隱藏層便是池化層,在卷積神經(jīng)網(wǎng)絡(luò)中,池化層通常會(huì)在卷積層之間,由此對(duì)于縮小參數(shù)矩陣的尺寸有很大幫助,也可以大幅減少全連接層中的參數(shù)數(shù)量[9]。此外池化層在加快計(jì)算速度和防止過(guò)擬合方面也有很大的作用[10]。

在識(shí)別圖像的過(guò)程中,有時(shí)會(huì)遇到較大的圖像,此時(shí)希望減少訓(xùn)練參數(shù)的數(shù)量,這時(shí)需要引入池化層。池化的唯一目的是減小圖像空間的大小。常用的有mean-pooling和max-pooling。

mean-pooling 即對(duì)一小塊區(qū)域取平均值,假設(shè)pooling窗的大小是2×2,那么就是在前面卷積層的輸出的不重疊地進(jìn)行2×2的取平均值降采樣,就得到mean-pooling的值。如圖6所示。

圖6 不重疊的4個(gè)2×2區(qū)域分別mean-pooling

max-pooling 即對(duì)一小塊區(qū)域取最大值,假設(shè)pooling的窗大小是2×2,就是在前面卷積層的輸出的不重疊地進(jìn)行2×2的取最大值降采樣,就得到max-pooling的值。如圖7所示。

圖7 不重疊的4個(gè)2×2區(qū)域分別max-pooling

2.2.3 全連接層

卷積神經(jīng)網(wǎng)絡(luò)中的最后一個(gè)隱藏層是全連接層。該層的角色與之前的隱藏層完全不同。卷積層和池化層的功能均用于面部圖像的特征提取,而全連接層的主要功能就是對(duì)圖像的特征矩陣進(jìn)行分類[11]。根據(jù)不同的狀況,它可以是一層或多層。

通過(guò)該層的圖片可以高度濃縮為一個(gè)數(shù)。由此全連接層的輸出就是高度提純的特征了,便于移交給最后的分類器或者回歸。

2.3 網(wǎng)絡(luò)的訓(xùn)練

神經(jīng)網(wǎng)絡(luò)通過(guò)自學(xué)習(xí)的方式可以獲得高度抽象的,手工特征無(wú)法達(dá)到的特征,在計(jì)算機(jī)視覺領(lǐng)域已經(jīng)取得了革命性的突破[12]。被廣泛的應(yīng)用于生活中的各方面。而要想讓神經(jīng)網(wǎng)絡(luò)智能化,必須對(duì)它進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中一個(gè)重要的算法就是反向傳播算法。反向傳播算法主要是不斷調(diào)整網(wǎng)絡(luò)的權(quán)重和閾值,以得到最小化網(wǎng)絡(luò)的平方誤差之和,然后可以輸出想要的結(jié)果。

設(shè)誤差函數(shù)為公式(2)

(2)

y為實(shí)際結(jié)果,o為預(yù)測(cè)結(jié)果。所以此時(shí)要求的就是J最小的時(shí)候wi的值。α是變化的速率。wi的計(jì)算方法如以下(3),(4)兩式。

(3)

=(y-o)×f(∑wixi)(1-f(∑wixi))×xi。

(4)

由此方法便可以計(jì)算出最好的wi值,讓最終的輸出結(jié)果更貼近想要的結(jié)果。

3 人臉面部表情識(shí)別實(shí)驗(yàn)與結(jié)果

3.1 實(shí)驗(yàn)環(huán)境

本次實(shí)驗(yàn)是在Win10環(huán)境下進(jìn)行的,為了少出錯(cuò)誤,方便起見,查閱資料后決定利用Anaconda3搭建tensorflow。

3.2 實(shí)驗(yàn)過(guò)程與結(jié)果

3.2.1 數(shù)據(jù)集介紹

圖8為部分?jǐn)?shù)據(jù)庫(kù)圖像。本文中使用的Fer2013數(shù)據(jù)庫(kù)是一個(gè)常用于面部表情識(shí)別的數(shù)據(jù)庫(kù),2013年舉辦了面部表情識(shí)別挑戰(zhàn)賽,在此次比賽中,kaggle引入Fer2013數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)中的圖片已經(jīng)進(jìn)行標(biāo)注,根據(jù)圖片中人物的表情標(biāo)注為六個(gè)基本表情和一個(gè)中性表情。

圖8 數(shù)據(jù)庫(kù)圖像

3.2.2 實(shí)驗(yàn)過(guò)程

搭建卷積神經(jīng)網(wǎng)絡(luò)模型:本次實(shí)驗(yàn)根據(jù)VGG網(wǎng)絡(luò)的想法,嘗試將5×5網(wǎng)絡(luò)拆分為兩層3×3但最后效果并不理想,在多次嘗試了多種不同的模型并不斷調(diào)整之后最終自己定義了一個(gè)模型。如圖4所示。

訓(xùn)練模型:在訓(xùn)練的過(guò)程中使用了ImageDataGenerator實(shí)現(xiàn)數(shù)據(jù)增強(qiáng),并通過(guò)flow_from_directory根據(jù)文件名劃分label,優(yōu)化算法選擇了SGD,而激活函數(shù)選擇了硬飽和的ReLU。因?yàn)閠anh和sigmoid在訓(xùn)練后期,產(chǎn)生了因沒(méi)有進(jìn)行歸一化而梯度消失訓(xùn)練困難的問(wèn)題。如圖9所示。

圖9 梯度下降

在訓(xùn)練好表情識(shí)別模型之后,選用了部分?jǐn)?shù)據(jù)集以及自己的圖片作測(cè)試,數(shù)據(jù)集中的圖片大都是歸一化之后的黑白圖片,所以識(shí)別結(jié)果較自己的圖片更為準(zhǔn)確。下面為測(cè)試集中圖片的識(shí)別結(jié)果,結(jié)果如圖10所示。

圖10 測(cè)試集識(shí)別結(jié)果

首先識(shí)別了兩張表情不明顯的圖片,識(shí)別結(jié)果如圖10 a)和b)所示。因?yàn)槠叻N表情里面neutral概率最大,所以最后輸出Emotion:neutral,從圖片中可以看出人物是笑著的,由于背景以及貼紙的遮擋導(dǎo)致了不準(zhǔn)確性。同理檢測(cè)圖10 b)圖片時(shí)輸出概率最大的仍為中性,所以最終輸出結(jié)果為neutral,觀察可知,此張圖片識(shí)別結(jié)果正確。對(duì)表情比較明顯的圖片(圖10 c)至g))進(jìn)行識(shí)別,得出結(jié)果準(zhǔn)確,系統(tǒng)識(shí)別輸出的結(jié)果都與圖片面部表情相符。

3.3 實(shí)驗(yàn)結(jié)果分析

表1為上述幾種表情對(duì)應(yīng)的分類結(jié)果數(shù)據(jù),可以看出,相比傳統(tǒng)的識(shí)別算法,此處采用的算法其分類正確率還是較高的。不足之處是本文中采用的Fer2013數(shù)據(jù)集中的部分圖片進(jìn)行訓(xùn)練,由于圖片分辨率低,存在錯(cuò)誤標(biāo)簽等原因,導(dǎo)致最終的識(shí)別率并不理想。但是構(gòu)建網(wǎng)絡(luò)模型,對(duì)數(shù)據(jù)進(jìn)行訓(xùn)練,并不斷更改參數(shù),減少錯(cuò)誤率,經(jīng)過(guò)嘗試之后,用上述所示的網(wǎng)絡(luò)模型最終識(shí)別率明顯得到很大的提高,但是對(duì)于表情不是特別明顯的多人圖片,表情識(shí)別的準(zhǔn)確度還有待提高。

表1 表情的分類結(jié)果

4 總結(jié)與展望

本文在無(wú)約束條件的情況下,提出了基于集成卷積神經(jīng)網(wǎng)絡(luò)的面部表情分類方法,主要研究的是如何利用卷積神經(jīng)系統(tǒng)設(shè)計(jì)一個(gè)人臉表情識(shí)別系統(tǒng),一個(gè)表情識(shí)別系統(tǒng)的核心便是網(wǎng)絡(luò)模型部分,在VGG模型的基礎(chǔ)上改動(dòng)了部分參數(shù)得到自己的網(wǎng)絡(luò)模型,并利用Fer2013數(shù)據(jù)集的訓(xùn)練集對(duì)其進(jìn)行訓(xùn)練,優(yōu)化,提高了分類的識(shí)別率,具有識(shí)別率高,泛化能力強(qiáng)、穩(wěn)健性好等優(yōu)點(diǎn),最終可以達(dá)到較準(zhǔn)確的識(shí)別圖片中人物表情的結(jié)果。

猜你喜歡
池化層卷積神經(jīng)網(wǎng)絡(luò)
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
卷積神經(jīng)網(wǎng)絡(luò)模型研究分析*
基于卷積神經(jīng)網(wǎng)絡(luò)的紙幣分類與點(diǎn)鈔
基于深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的人體行為識(shí)別研究
科技傳播(2020年6期)2020-05-25 11:07:46
神經(jīng)網(wǎng)絡(luò)抑制無(wú)線通信干擾探究
電子制作(2019年19期)2019-11-23 08:42:00
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
基于全卷積神經(jīng)網(wǎng)絡(luò)的SAR圖像目標(biāo)分類*
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
基于神經(jīng)網(wǎng)絡(luò)的拉矯機(jī)控制模型建立
復(fù)數(shù)神經(jīng)網(wǎng)絡(luò)在基于WiFi的室內(nèi)LBS應(yīng)用
通渭县| 西畴县| 安平县| 定州市| 额济纳旗| 冀州市| 邻水| 桦甸市| 视频| 汝南县| 临潭县| 株洲市| 车致| 黎平县| 呼伦贝尔市| 周至县| 太湖县| 利津县| 环江| 广安市| 自治县| 河北省| 科尔| 三亚市| 衡阳市| 桦甸市| 于田县| 香格里拉县| 南汇区| 博乐市| 洪湖市| 黔东| 济阳县| 安国市| 即墨市| 子长县| 沂水县| 铜梁县| 印江| 安龙县| 中宁县|