梁 雁,劉廣峰
(江蘇科技大學(xué)蘇州理工學(xué)院,江蘇 蘇州 215600)
隨著科技的快速發(fā)展,人臉識(shí)別功能應(yīng)用于多個(gè)智能領(lǐng)域,這種通過計(jì)算機(jī)運(yùn)算快速、精準(zhǔn)識(shí)別一個(gè)人身份的科學(xué)依據(jù)就是每個(gè)人面部表情獨(dú)特性。早期有科學(xué)家指出,人的面部表情主要有高興、悲傷、憤怒、厭惡、驚奇、恐懼6種。通過計(jì)算機(jī)技術(shù)實(shí)現(xiàn)智能人臉識(shí)別的應(yīng)用前景十分廣闊,比如,利用智能人臉識(shí)別技術(shù)可以進(jìn)行人與機(jī)器人之間的“交流”;在醫(yī)學(xué)領(lǐng)域可以應(yīng)用于人面部癱瘓情況的診斷;在公安系統(tǒng)中可以利用犯罪分子的面部表情對其供詞的真實(shí)程度進(jìn)行監(jiān)控等。
現(xiàn)在用于支撐智能人臉識(shí)別技術(shù)的科學(xué)研究內(nèi)容主要包括基于幾何特征和代數(shù)特征的方法。隨著科學(xué)技術(shù)的不斷進(jìn)步,人工智能得到了極為廣泛的應(yīng)用,同時(shí),現(xiàn)階段下不斷精進(jìn)的機(jī)器學(xué)習(xí),以及逆向傳播(Back Propagation,BP)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)模型的應(yīng)用,使得人面部表情能夠獲得更加精準(zhǔn)、更加靈敏的識(shí)別,同時(shí)整個(gè)人臉識(shí)別系統(tǒng)的信息的可靠性和系統(tǒng)的穩(wěn)定性也獲得了極大提升[1]。但由于人的面部表情的多變、復(fù)雜,傳統(tǒng)模型在進(jìn)行運(yùn)算時(shí)往往負(fù)載過大,拖慢計(jì)算的速度且降低計(jì)算的精度,這是傳統(tǒng)模型存在的一個(gè)明顯不足。因此本文主要以CNN 算法模型對多種渠道收集到的人面部表情圖片進(jìn)行運(yùn)算,使用Opencv 捕捉人的面部表情,從而探討CNN 模型進(jìn)行人臉識(shí)別的準(zhǔn)確度與運(yùn)算速度問題。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是指一種特別的前饋神經(jīng)網(wǎng)絡(luò)(Feedforword Neural Network,F(xiàn)NN),它包含卷積計(jì)算且具有深度結(jié)構(gòu)。CNN 的基本結(jié)構(gòu)包括輸入層、隱含層和輸出層,而其中隱含層又包含卷積層、池化層和全連接層在內(nèi)[2]。
1.1.1 卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
輸入層:輸入層可以處理多維數(shù)據(jù),在輸入層中圖片的填充形式是矩陣。
卷積層:卷積神經(jīng)網(wǎng)絡(luò)的核心即為卷積層,其功能是對輸入數(shù)據(jù)進(jìn)行特征提取。卷積運(yùn)算即兩個(gè)函數(shù)之間的運(yùn)算,步驟為位于卷積層內(nèi)部的卷積核以固定步長乘以輸入矩陣的每一個(gè)元素。
池化層:圖片經(jīng)卷積層的特定特征提取后,繼續(xù)被傳遞到池化層,在池化層實(shí)現(xiàn)圖片的特征選擇以及信息過濾。池化層能夠?qū)⑻卣鲌D中展示的單個(gè)點(diǎn)替換為其相鄰區(qū)域的特征圖統(tǒng)計(jì)量,保留強(qiáng)度高的部分,濾除強(qiáng)度低的部分,將經(jīng)卷積運(yùn)算后的矩陣尺寸進(jìn)行壓縮,以保證全連接層擬合正常,對分類器質(zhì)量不造成影響。
全連接層:全連接層位于CNN 隱含層的最后,并且其信號傳遞具有特異性,只將信號傳遞到其他全連接層。而被傳遞到全連接層的特征圖在這里失去空間拓?fù)浣Y(jié)構(gòu),以向量的形式輸出,比如,根據(jù)本文中人面部的6種表情,全連接層的特征圖會(huì)以1×6的向量形式輸出。
輸出層:輸出層位于全連接層的下游。常見的三種輸出結(jié)果:一是在圖像分類上,輸出層使用邏輯函數(shù)或者歸一化指數(shù)函數(shù)對圖片分類標(biāo)簽輸出;二是在圖像語義分割中,直接輸出每個(gè)像素的分類結(jié)果;三是在物體識(shí)別上,可輸出物體的中心坐標(biāo)、大小和分類。
1.1.2 運(yùn)算函數(shù)
Softmax 函數(shù):Softmax 函數(shù)指歸一化指數(shù)函數(shù),主要起分類作用。它的功能是將多個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間范圍內(nèi),Softmax 函數(shù)將分類轉(zhuǎn)化為概率比較問題。
激活函數(shù):主要作用是引入非線性因素到神經(jīng)元,
從而使神經(jīng)網(wǎng)絡(luò)逼近任意非線性函數(shù)的能力獲得提升。但上層神經(jīng)元的輸出函數(shù)是線性函數(shù),且線性函數(shù)只能對線性可分的訓(xùn)練集進(jìn)行處理時(shí)才能達(dá)到較好的分類效果,因此需要對線性函數(shù)進(jìn)行非線性變換。Relu,Sigmoid,Tanh 等都是神經(jīng)網(wǎng)絡(luò)中常用的激活函數(shù)。
1.1.3 卷積神經(jīng)網(wǎng)絡(luò)的運(yùn)作過程
首先,圖片以矩陣的形式進(jìn)入輸入層,接著被傳遞到卷積層,在此處進(jìn)行卷積運(yùn)算后實(shí)現(xiàn)對圖片特征的提取,隨后進(jìn)入池化層,對圖片尺寸進(jìn)行壓縮,卷積神經(jīng)網(wǎng)絡(luò)重復(fù)若干次卷積層和池化層的操作進(jìn)行運(yùn)算,隨后進(jìn)入全連接層,對特征圖片進(jìn)行分類,最后進(jìn)入輸出層,轉(zhuǎn)化輸出相應(yīng)類別的值。
1.2.1 前向傳播
本研究中,x 為圖片的尺寸大小,y 為圖片x 對應(yīng)人面部表情的類別標(biāo)簽。首先,將x 輸入到卷積神經(jīng)網(wǎng)絡(luò)中,然后經(jīng)過卷積層和池化層的運(yùn)算、全連接層的分類進(jìn)入輸出層,輸出層是一個(gè)6維的向量,每一維表示一種表情的概率。
1.2.2 逆向誤差傳播
對y 向量值最小化均方誤差進(jìn)行輸出,并且對其反向逐層更新權(quán)值。本文使用梯度法實(shí)現(xiàn)逆向誤差傳播。
首先對訓(xùn)練集進(jìn)行預(yù)處理,根據(jù)輸出值與對應(yīng)類別標(biāo)簽值的誤差不斷迭代更新,提前設(shè)置好每次訓(xùn)練的固定次數(shù),每次完成這個(gè)次數(shù)后對測試集的數(shù)據(jù)進(jìn)行測試,觀察準(zhǔn)確值,直到觀察到的準(zhǔn)確值大于0.8且收斂即可停止訓(xùn)練,并保存訓(xùn)練好的模型。
人面部表情識(shí)別系統(tǒng)的對象是人的面部表情,使用Opencv 對收集到的圖片進(jìn)行人面部特征的提取。
由于真實(shí)情況下的人面部表情多種多樣,為了盡可能地符合實(shí)際,需要提取多樣化的人面部表情特征,對收集到的表情數(shù)據(jù)集進(jìn)行一系列的擴(kuò)展處理。為了提高人面部表情識(shí)別的精確度,需要使用大量多樣化訓(xùn)練數(shù)據(jù)對訓(xùn)練集進(jìn)行訓(xùn)練,同時(shí)可以通過鏡像、旋轉(zhuǎn)、噪聲干擾等方式進(jìn)行拓展。對人臉表情數(shù)據(jù)集進(jìn)行擴(kuò)庫,使得數(shù)據(jù)集的多樣性和可靠性增加。本研究中,對使用的人面部表情圖片進(jìn)行了鏡像和旋轉(zhuǎn)兩個(gè)操作,旋轉(zhuǎn)角度為5 ~15度。
本研究使用CK+人面部表情數(shù)據(jù)庫,并使用CNN模型進(jìn)行訓(xùn)練。Loss 率是指每進(jìn)行一次更新訓(xùn)練的結(jié)果與目標(biāo)值的誤差程度,Ess 指檢驗(yàn)的準(zhǔn)確度。
Loss 率訓(xùn)練跟蹤過程中,共計(jì)更新3,000次,前1,200次更新的Loss 率下降速度較快,后1,800次更新的Loss率的變化微小。
Ess 率訓(xùn)練跟蹤中,訓(xùn)練集的準(zhǔn)確率在1,800 次前后逐漸向1收斂,為了避免過擬合情況的發(fā)生,可以將Loss 率和準(zhǔn)確率的訓(xùn)練次數(shù)調(diào)整為1,800次前后。
本研究用K 近鄰法和BP 神經(jīng)網(wǎng)絡(luò)框架模型與CNN模型作比較。同樣對另外兩個(gè)訓(xùn)練模型分別進(jìn)行3,000次訓(xùn)練,訓(xùn)練到1,100次時(shí)三者開始出現(xiàn)明顯差距,CNN的Loss 率下降到0.5,BP 神經(jīng)網(wǎng)絡(luò)和K 近鄰只下降到約0.8;CNN 的Ess 率上升到0.8,BP 神經(jīng)網(wǎng)絡(luò)和K 近鄰只上升到0.5;CNN 的準(zhǔn)確率在1,500次首先收斂于1,BP 神經(jīng)網(wǎng)絡(luò)和K 近鄰分別在1700次和1,800次收斂。
由上可知,CNN 訓(xùn)練模型的準(zhǔn)確度更高,速度更快,BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型次之,K 近鄰模型的準(zhǔn)確度和速度都相對最差。
本研究通過將K 近鄰法和BP 神經(jīng)網(wǎng)絡(luò)框架模型與CNN 模型作比較,發(fā)現(xiàn)CNN 模型在進(jìn)行人面部表情識(shí)別時(shí)的準(zhǔn)確度最高、速度最快,因此CNN 模型訓(xùn)練在人面部表情識(shí)別系統(tǒng)中具有較高的應(yīng)用價(jià)值。
近些年來,隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展、互聯(lián)網(wǎng)的全面覆蓋,人工智能成為了科技領(lǐng)域中不斷深入發(fā)展的板塊。而在人工智能的發(fā)展中,人臉識(shí)別技術(shù)具有突破性的意義,它應(yīng)用領(lǐng)域廣泛,為人們的日常生活提供了極大的便利。本文基于卷積神經(jīng)網(wǎng)絡(luò)對人臉識(shí)別進(jìn)行研究,通過對CNN 模型的運(yùn)算原理進(jìn)行分析,并通過將K 近鄰法和BP 神經(jīng)網(wǎng)絡(luò)框架模型與CNN 模型作比較,實(shí)驗(yàn)驗(yàn)證了卷積神經(jīng)網(wǎng)絡(luò)在人臉識(shí)別系統(tǒng)應(yīng)用上的優(yōu)越性,具有較高的應(yīng)用價(jià)值。