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