儲 匯, 宋 陳, 汪晨燦
(安徽理工大學(xué) 機械工程學(xué)院, 安徽 淮南 232001)
隨著人工智能技術(shù)的發(fā)展,人們的社會生活發(fā)生了翻天覆地的變化,人臉識別技術(shù)也得到非常迅速的發(fā)展。人臉識別技術(shù)應(yīng)用場景十分廣泛,特別是在安防、移動支付等領(lǐng)域[1]。但是,隨著人臉識別應(yīng)用場景的不斷擴大,人們對人臉識別的準(zhǔn)確率要求越來越高,識別環(huán)境越來越多樣,識別樣本越來越復(fù)雜,這就給人臉識別的穩(wěn)定性和準(zhǔn)確性帶來了極大的挑戰(zhàn)。如何在復(fù)雜多變場景中穩(wěn)定、準(zhǔn)確地識別出人臉信息成為一個研究熱點,關(guān)于人臉識別抗干擾技術(shù)的研究則是人臉識別技術(shù)一個十分重要的方向[2]。影響人臉識別穩(wěn)定性的主要因素包括數(shù)據(jù)源的質(zhì)量、卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建、優(yōu)化器的選擇等,需要綜合考慮并權(quán)衡各種因素對識別結(jié)果的影響從而達到最佳識別率及穩(wěn)定性[3]。
在采集人臉數(shù)據(jù)時,利用基于Open CV的人臉檢測技術(shù)對攝像機所拍的人臉進行快速捕捉。但是在被捕捉人員面部快速移動的情況下,攝像機捕捉到光線強度的變化較快。傳統(tǒng)人臉檢測算法的穩(wěn)定性較差,有可能會導(dǎo)致捕捉的圖片出現(xiàn)非人臉圖像或者非完整人臉。這樣的不理想數(shù)據(jù)在模型訓(xùn)練和預(yù)測過程中會對結(jié)果會產(chǎn)生嚴(yán)重的不利影響,會導(dǎo)致系統(tǒng)有一定幾率出現(xiàn)對非人臉物體或非目標(biāo)人臉的檢測識別的情況[4]。
利用高階神經(jīng)網(wǎng)絡(luò)Keras進行卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建,主要網(wǎng)絡(luò)層級包括卷積層、池化層、Dropout層、平鋪層、全連接層、分類層(如圖1所示)。人臉識別模型在構(gòu)建時常常需要采用線性堆疊式網(wǎng)絡(luò)層,不同的層級構(gòu)建產(chǎn)生的訓(xùn)練量和效果是不同的[5]。在訓(xùn)練模型時,需要設(shè)置訓(xùn)練使用的優(yōu)化器,這使得優(yōu)化器的適應(yīng)性更強。Keras里面常用的優(yōu)化器有Adam、Adadelta、Adagrad、RM Sprop、SGD、Adamax、Nadam、Ftrl等。選擇不同的優(yōu)化器,對人臉識別穩(wěn)定性的優(yōu)化效果是至關(guān)重要的[6]。
影響人臉識別穩(wěn)定性的因素有很多(如圖1所示),每個因素在進行選擇時都要考慮對整個模型的影響程度,而且每種因素之間相互干擾,需要達到一種動態(tài)平衡,即在這種情況下系統(tǒng)穩(wěn)定性最好,識別準(zhǔn)確性最高[7]。
圖1 神經(jīng)網(wǎng)絡(luò)構(gòu)建
在數(shù)據(jù)源預(yù)處理階段增加人臉樣本數(shù)據(jù)的數(shù)量,對樣本中不合格的數(shù)據(jù),主要包括非人臉物體圖片和側(cè)臉幅度較大的人臉圖片及曝光量較差引起圖像清晰度較差的圖片進行二次糾正。否則,會對模型訓(xùn)練造成極大干擾,可能會出現(xiàn)識別圖像中非人臉部分的情況。采用Open CV進行人臉數(shù)據(jù)采集時,如果不對scale Factor參數(shù)進行設(shè)置,那么該參數(shù)的默認值為1.1。如果該參數(shù)設(shè)置較大,會導(dǎo)致計算機運算速度加快,極易丟失對某個人臉的檢測,對整個數(shù)據(jù)的人臉檢測結(jié)果造成影響,識別穩(wěn)定性將會降低,適當(dāng)降低該參數(shù)的值有利于抗干擾性能的提升。
使用SGD(Stochastic gradient descent)優(yōu)化器時,每次更新就對每個人臉圖片進行梯度更新,對于人臉數(shù)據(jù)集來說,一定會存在相似的樣本,采用SGD優(yōu)化器在進行梯度計算時一次只進行一次更新,這樣就不會冗余人臉樣本,計算速度快,并且還可以增加樣本,適合用于多種人臉數(shù)據(jù)訓(xùn)練。但是只采用SGD優(yōu)化器會在ravines(曲面的一個方向比另一個方向更陡)的情況下被局限住,這時的SGD優(yōu)化器會發(fā)生震蕩以至于無法接近極小值,識別的結(jié)果也會不穩(wěn)定。加入Momentum算法,可以加速SGD,使得在同梯度的維度上加速,在梯度方向發(fā)生變化的維度上的更新速度變慢,可以加快收斂并抑制震蕩。最終在預(yù)測人臉時顯示結(jié)果震蕩會減少,識別準(zhǔn)確率會變高。
采用Keras構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)如圖1所示。輸入層、隱藏層、輸出層都可以包括各種網(wǎng)絡(luò)層,以及激活函數(shù)、初始化方法、正則項、約束項。輸入的圖片數(shù)據(jù)經(jīng)過預(yù)處理后可以用于作為訓(xùn)練對象、驗證對象和預(yù)測對象[8]。
創(chuàng)建一個序列模型用于添加網(wǎng)絡(luò)層。每一層均可以包含一個或多個卷積、池化、Dropout、批量歸一以及非線性激活函數(shù)ReLU[9]。
3.2.1 卷積層
人臉圖片經(jīng)過預(yù)處理后,得到輸入圖片數(shù)據(jù)y1=(W1,H1,D)。其中:W1是圖片的寬,H1是圖片的高,D是通道數(shù)。如果圖片是RGB類型,則通道數(shù)為3,如果圖片是灰度圖,那么通道數(shù)為1。輸入圖片數(shù)據(jù)經(jīng)過卷積層操作后得到輸出圖片數(shù)據(jù)y2=(W2,H2,D)。其中:
(1)
(2)
式中:W2是輸出圖片的寬,H2是輸出圖片的高,卷積核寬高F1,每次卷積操作的步長S1,0填充數(shù)P。
3.2.2 池化層
池化操作分為均值池化和最大池化,常用的是最大池化,其目的是減少空間信息,提高運算效率,防止過擬合。輸入圖片數(shù)據(jù)為卷積操作后的數(shù)據(jù)y2,池化操作后的輸出圖片數(shù)據(jù)為y3=(W3,H3,D)。其中:
(3)
(4)
式中:W3是輸出圖片的寬,H3是輸出圖片的高,池化核寬高F2,每次池化操作的步長S2。
3.2.3 Dropout層
Dropout層可以有效地緩解過擬合的發(fā)生,在一定程度上達到正則化的效果。Dropout層網(wǎng)絡(luò)計算公式為
r~Bernoulli(p)
(5)
(6)
3.2.4 平鋪層
3.2.5 全連接層
經(jīng)過以上層的分析,得到的一維數(shù)據(jù)作為全連接層的輸入數(shù)據(jù),通過對一維數(shù)據(jù)進行加權(quán)操作和偏移量處理,最后得到輸出數(shù)據(jù)
y5=wy4+b
(7)
其中:y5表示輸出數(shù)據(jù),w表示權(quán)重,y4表示輸入數(shù)據(jù),b表示偏移量。
3.2.6 分類層
softmax分類函數(shù),又稱為歸一化指數(shù)函數(shù),它是二分類函數(shù)sigmoid在多分類的推廣,適用于多人臉的識別,其目的是返回分類結(jié)果的各個概率值。
(8)
在模型中應(yīng)用損失函數(shù)和優(yōu)化器,由于實驗的圖片標(biāo)簽采用one-hot編碼,所以損失函數(shù)選擇categorical_crossentropy,分類層激活函數(shù)選擇softmax,此種選擇適合多類別分類的人臉識別。優(yōu)化器選擇SGD+Momentum的優(yōu)化器后,調(diào)用compile()進行編譯。
通過調(diào)用fit()函數(shù)對數(shù)據(jù)模型進行訓(xùn)練。
在模型訓(xùn)練完后,使用新的數(shù)據(jù)生成預(yù)測結(jié)果,通過調(diào)用evaluate()和predict()來完成。
一般來說,多人臉識別的數(shù)據(jù)量是十分龐大的,如果手動去調(diào)整工作量會變得十分龐大且效率低下,而采集人臉圖片的超參數(shù)則決定了數(shù)據(jù)的質(zhì)量。利用Open CV進行人臉檢測時,會使用Haar級聯(lián)分類器,在不同尺度下的輸入圖像中檢測對象。detectMultiScale()函數(shù)的scale Factor參數(shù)表示一個比率,即每層圖像金字塔所獲得的圖像與上一場的比率[10]。參數(shù)越小,圖像金字塔的層級便越多,計算越慢,計算量越大,在某種程度上會獲得更準(zhǔn)確的結(jié)果,但是隨著檢測量變大,有時實際錯誤檢測率也會提高[11]。scale Factor取值在1.10~1.20之間,人臉檢測準(zhǔn)確率較高,在1.10之后準(zhǔn)確率開始驟降,如表1所示。
表1 超參數(shù)調(diào)整
選擇SGD+Momentum的優(yōu)化器與常用的Adam優(yōu)化器做對比實驗,一般Momentum的超參數(shù)取值為0.9,動量公式:
vt+1=μvt-ε?f(θt)
(9)
θt+1=θt+vt+1
(10)
其中:ε>0為系統(tǒng)學(xué)習(xí)率,μ∈[0,1],?f(θt)是θt的梯度曲線,v為矢量速度。
兩種識別器的對比結(jié)果如表2所示。由表2可知,SGD+Momentum優(yōu)化器相較于Adam優(yōu)化器能夠在訓(xùn)練輪數(shù)較少的情況下更快速、更穩(wěn)定地達到較高的準(zhǔn)確率,而且兩種優(yōu)化器的準(zhǔn)確率數(shù)值基本保持不變。最終經(jīng)過30輪訓(xùn)練,多人臉識別準(zhǔn)確率、驗證準(zhǔn)確率、損失率、驗證損失率隨訓(xùn)練輪數(shù)的折線圖如圖2、圖3所示。
表2 優(yōu)化器對比
圖2 準(zhǔn)確率和驗證準(zhǔn)確率
圖3 損失率和驗證損失率
通過對數(shù)據(jù)源的糾正、卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建的調(diào)整、優(yōu)化器的選擇以及超參數(shù)的調(diào)整,最終模型訓(xùn)練準(zhǔn)確率最高可達99.98%,驗證準(zhǔn)確率最高可達99.73%。