邱文龍
(上海海事大學信息工程學院,上海 201306)
目前,人臉識別技術在公安系統的嫌犯身份識別、車站機場等公共監控場景中廣泛應用。傳統的人臉識別算法通常有局部二值模式[1](LBP)和幾何特征[2]方法、隱馬爾可夫模型[3]、特征臉方法[4]等,但實際應用中由于上述方法提取特征單一,容易受到光照、尺度、旋轉等因素影響,導致人臉識別準確率降低。卷積神經網絡因具有權值共享、局部感知等優點被廣泛用于人臉識別領域。Taigman等[5]提出了基于深度卷積神經網絡(DeepFace)的人臉驗證方法,用4000個人,每個人超過1000張人臉圖像的大數據進行訓練。Schroff等[6]提出了FaceNet算法利用三元組損失函數進行網絡訓練,將不同層級的特征進行融合來減少人臉識別網絡訓練時間。經典的卷積神經網絡通常采用深層次的網絡結構以獲取更多的人臉局部特征,但是其網絡結構計算量大,對硬件要求高,訓練耗時長。本文建立了一種簡化的卷積神經網絡結構,包含三個卷積層和三個最大池化層,采用一個全連接層和串聯的Softmax-SVM分類器,有效降低了網絡結構的深度,減少了訓練時長;串聯分類器相比Softmax分類器,明顯提高了人臉識別的準確率。
人臉識別卷積神經網絡(CNN)主要包括卷積層、池化層、全連接層和分類層,通過逐層處理的方式有效提取輸入圖像的特征。本文構建的卷積神經網絡包含三個卷積層、三個最大池化層和一個全連接層,分類層采用串聯Softmax-SVM分類器,如圖1所示。其中輸入圖像尺寸大小歸一化為224×224,卷積層1包括96個尺寸大小為7×7的卷積核,移動步長為2,經過初次卷積獲得96個尺寸為60×60的特征圖。池化層采用最大池化方法,池化尺寸為2×2。經過池化層1處理后的特征圖大小變為原來的1/4;卷積層2包括256個尺寸為5×5的卷積核,移動步長為1;卷積層3包括256個尺寸為3×3卷積核,移動步長為1;全連接層是將所有的二維特征映射轉化為全連接的一維向量;第8層采用改進的串聯Softmax-SVM分類器,進行特征分類。
卷積層通過卷積操作對輸入圖像進行特征提取,圖1中卷積層1設置了96個尺寸大小為7×7的卷積核,卷積計算如式(1)。


圖1 卷積神經網絡結構
式中:xl-1i代表l-1層神經元i的輸出,wlij是第l層神經元的第j個輸入對應的權值,Mj表示神經元j對應的卷積核,Bl是第l層的偏置。f是激活函數本文中采用修正線性單元(ReLU)進行非線性處理。每一卷積核卷積得到一個特征圖,結果輸出96個特征圖,尺寸大小為60×60。卷積層1提取的特征可視化輸出結果如圖2所示。
池化層主要將圖像中不同位置的特征進行聚合,利用圖像某區域的特定值表示該區域的整體特征以達到數據降維。本文采取最大池化,池化尺寸為2×2,移動步長為2,即在2×2大小的池化區域取其中最大值,其原理如式(2)所示:

經過池化操作后的圖像大小變為原來的1/4,池化層1的可視化結果如圖3所示。

圖2 卷積層1的可視化結果

圖3 池化層1的可視化結果
Softmax分類器是邏輯回歸二分類器泛化到多分類的分類器,其作用是使用互熵損失函數將得分映射到概率域其作用是最小化預測類別的概率分布。Soft?max分類器計算出了屬于每一類的概率,假設規定輸入數據x,輸出的類別y∈{1,2,…,k},總共有k類,其類標y=i的概率分布如式(3):

其中e表示自然對數的底數,表示待擬合的參θj數,上標T表示轉置P(y=i|x,θ)表示輸入數據x對應每一個標類i的概率,i可取1,2,…,k。對于k維輸出數據,其概率P(y=i|x,θ)的假設函數h0(x)的定義如式(4):

從上式可以看出假設函數h0(x)計算了給定輸入數據x的每一個對應的i=k的概率估計。參數θi是通過最大似然估計來確定的,對于有m個訓練輸入數據{x(i),y(i);i=1,…,m},其對數形式的似然函數為:

通過最大化函數L,可確定參數θi。
SVM分類器中定義一個多分類的支持向量機損失函數其思想是如果正確分類的得分應該比錯誤分類的得分高,而且至少應該高Δ。多分類的支持向量機損失函數的表達式如式(7):

神經網絡中的評分函數如式(8):

多分類的支持向量機損失函數可改寫式(9):

最后得出分類結果,本文結合Softmax分類器與SVM分類器的優點將二者串聯,提高人臉識別的效率和準確率。
為了驗證分類器對人臉識別準確率的影響,實驗中用單一Softmax分類器和SVM分類器分別進行試驗對比。實驗結果如圖(4)所示。圖中縱軸表示人臉識別中的錯誤率,橫軸表示訓練過程中的迭代次數。圖中abc分別是Softmax、SVM和Softmax-SVM分類器的錯誤率隨著迭代次數的變化曲線,Softmax最終錯誤率在3.4%,SVM最終錯誤率在2.0%,Softmax-SVM的最終錯誤率在1.2%。
本文算法描述如下:
(1)構建如圖1所示的卷積神經網絡結構;
(2)對人臉數據庫進行統一處理將圖像尺寸大小統一為224×224,同一人臉進行類別標定再進行網絡模型訓練;
(3)輸入卷積神經網絡,通過卷積層與池化層的交替處理提取人臉圖像的深層特征;
(4)在全連接層將所有特征圖像轉化成矩陣向量,并輸入Softmax-SVM分類層通過計算深度特征的余弦距離進行特征分類。
為了驗證本文算法的有效性,實驗在MATLAB 2015b環境下進行,計算機配置為2.5 GHz CPU和4 GB內存。實驗中選取CAS-PEAL人臉數據庫進行網絡模型訓練,CAS-PEAL人臉數據庫包含了1040位志愿者共99450幅人臉圖片,平均每人95幅圖片,涵蓋了姿態、表情、裝飾、光照、背景、距離和時間等特征變化。實驗中隨機選取數據庫中70%的的圖片作為訓練集進行網絡訓練,30%作為測試集來對網絡模型的識別準確率進行測試。
為了進一步驗證本文所提的卷積神經網絡的有效性和優越性,將該結構的實驗結果與其他識別方法在CAS-PEAL和LFW人臉數據庫上的實驗結果進行對比實驗結果如表(2)所示。從表中可以看出本文算法PCA算法與Facebook公司的DeepFace網絡識別準確率高,比FaceNet的網絡略低但是本文算法的網絡深度較淺,訓練耗時短。

表1 不同方法實驗結果對比
針對經典人臉識別卷積神經網絡中因網絡層次過深,導致訓練時間過長問題,設計了一種由三個卷積層、三個池化層、一個全連接層和一個分類層組成的網絡,大大降低了網絡的深度,減少了計算量。實驗中對Softmax類器和SVM進行了對比最后選擇將兩種分類器串聯,結果表明本文設計的網絡結構能夠有效地提取人臉特征,與經典的網絡結構相比大大降低了網絡的深度,并在特征分類過程中用Softmax-SVM分類器代替單一Softmax分類器降低了人臉識別的錯誤率。在CAS-PEAL人臉庫上測試,識別準確率達到98.80%。

圖4 不同分類器人臉識別錯誤率比較