王衛(wèi)民 唐 洋 張 健 張軼秋
(江蘇科技大學(xué)計算機(jī)學(xué)院 鎮(zhèn)江 212003)
在過去的幾年中,CNN模型取得了巨大的突破。2012年,AlexNet[1]問世,提出了 RELU非線性函數(shù)和Dropout,并使用多GPU來加速,使CNN模型可以處理大數(shù)據(jù)量和區(qū)分復(fù)雜物體。2014年,VGG[2]通過降低filter的大小(VGG的filter大小為3*3)和加深網(wǎng)絡(luò)層(網(wǎng)絡(luò)層深度提高到了16、19層)來取得更好的效果。同年,GoogleNet[3]將層級提升到22層,并提出新的結(jié)構(gòu)Inception,主要思路是用密集成分來近似最優(yōu)的局部稀疏結(jié)構(gòu)。隨著模型深度增加,SGD的優(yōu)化變得更加困難,針對此問題,ResNet[4]將層級提到了 152 層,提出了用于學(xué)習(xí)殘差函數(shù)的Residual結(jié)構(gòu),在沒有增加參數(shù)和計算量的前提下提高了模型的訓(xùn)練速度和訓(xùn)練效果,并改善了退化的問題。為了達(dá)到更好的識別精度,本文將上述模型提取到的特征進(jìn)行融合。并將融合后的特征應(yīng)用到人臉識別中。
在 2004 年,Sanderson 和 Pailwal[5]總結(jié)了特征融合思想,他們根據(jù)信息融合發(fā)生在分類器(classi-fier)處理前后把信息融合劃分為先映射融合(pre-mapping fusion)和后映射融合(post-mapping fusion)。通常數(shù)據(jù)級融合(data level fusion)和特征級融合(feature level fusion)被稱之為先映射融合,如袁海聰[6]等把Gabor小波特征、局部二值圖特征和像素特征融合成最終特征進(jìn)行人臉欺詐檢測。分值級融合(score level fusion)和決策級融合(decision level fusion)被稱之為后映射融合,如梁銳[7]等利用加權(quán)平均等特征融合算法進(jìn)行深度視頻的自然語言描述。
深度學(xué)習(xí)的特征融合思想在卷積神經(jīng)網(wǎng)絡(luò)中運(yùn)用十分普遍[8,15]??臻g特征融合算法[9]可以對多個卷積層輸出的特征進(jìn)行融合,從而把多個卷積神經(jīng)網(wǎng)絡(luò)模型連接在一起。融合函數(shù)定義為
其中:xa和xb表示圖片分別經(jīng)過不同卷積神經(jīng)網(wǎng)絡(luò)得到的特征。y表示融合后的特征。xa、xb和y∈RH×W×D,H、W和D分別表示特征向量的長度、寬度和通道數(shù)。
空間特征融合算法的幾種融合函數(shù):
1)加性融合函數(shù)。
加性融合函數(shù)是對兩個特征向量對應(yīng)位置元素的值進(jìn)行相加,公式為
2)最大融合函數(shù)。
最大融合函數(shù)是將兩個特征向量對應(yīng)位置元素最大的值作為融合后的值。
3)級聯(lián)融合函數(shù)。
級聯(lián)融合函數(shù)保留了兩個特征圖的結(jié)果,并將融合后的特征圖的通道數(shù)變?yōu)樵继卣鲌D的兩倍。
其中 y∈RH×W×2D。
基于這些理論,本文對現(xiàn)有的多種CNN模型提取特征,并構(gòu)建新的模型把提取的單特征融合并進(jìn)行訓(xùn)練,使多種CNN模型提取出的單特征融合,從而形成新的融合特征。
不同模型提取出的圖片特征具有互補(bǔ)性[10],因此,融合不同模型提取出的圖片特征可以提高對圖片的識別精度[19~20]。據(jù)此,本文提出兩種多CNN特征融合方法,包括算法1多CNN特征融合算法和算法2多CNN特征降維融合算法。本文采用的三種CNN模型VGG19、IceptionV3和 ResNet,在數(shù)據(jù)集(在6.1節(jié)介紹)上都迭代訓(xùn)練1000次,訓(xùn)練出網(wǎng)絡(luò)參數(shù)。
多CNN特征融合算法是把三種預(yù)訓(xùn)練CNN模型在數(shù)據(jù)集上去除最后的分類層,提取出圖片的單特征向量,然后進(jìn)行特征融合。VGG19、IceptionV3和ResNet提取出的特征向量分別記為FV∈R512、FI∈R2048和 FR∈R2048。融合函數(shù)選用 concatenate函數(shù),因?yàn)閏oncatenate函數(shù)能將單特征的全部信息保留并融合。接著用Dense層把融合特征降維成長度為128的特征向量,其過程見算法1。其中Dense層的參數(shù)針對不同問題構(gòu)建具體神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。
算法1:多CNN特征融合過程
輸入:單張圖片image
輸出:融合特征fuse_feature
步驟:
用VGG19提取image特征記為FV∈R512
用IceptionV3提取image特征記為FI∈R2048
用ResNet提取image特征記為FR∈R2048
CF=concatenate(FV,F(xiàn)I,F(xiàn)R)∈R4608
fuse_feature=Dense(CF)∈R128
算法2在提取出單特征后,先用Dense層對三種不同特征進(jìn)行降維處理,再用融合函數(shù)融合,最后用Dense層把融合特征降維成長度為128的特征向量,其過程見算法2。同樣,構(gòu)建具體模型運(yùn)用上述算法訓(xùn)練出Dense層的參數(shù)。
算法2:多CNN特征降維融合過程
輸入:單張圖片image
輸出:融合特征fuse_feature
步驟:
用VGG19提取image特征記為FV∈R512
用IceptionV3提取image特征記為FI∈R2048
用ResNet提取image特征記為FR∈R2048
DFV=Dense(FV)∈R128
DFI=Dense(FI)∈ R128
DFR=Dense(FR)∈R128
CF=Concatenate(DFV,DFI,DFR)∈R384
fuse_feature=Dense(CF)∈R128
特征融合在人臉識別中也有廣泛應(yīng)用[16~18],但大多基于人工提取的特征如LBP(局部二值圖)特征,HOG梯度方向直方圖特征和DCT(離散余弦變換)特征等再進(jìn)行特征融合[11~12]。本文的兩種特征融合算法基于三種卷積神經(jīng)網(wǎng)絡(luò)模型,自動提取圖片特征并應(yīng)用于人臉識別中。
在特征融合算法使用過程中,需要用VGG19、InceptionV3和ResNet模型提取圖片的特征,這一環(huán)節(jié)耗時長,資源利用率低。本文利用上述模型線下提取單特征然后進(jìn)行特征融合,此步驟對算法結(jié)果沒有影響,但是提高了特征的復(fù)用性,縮短了訓(xùn)練時間,節(jié)約了計算資源,其過程見算法3。
算法3:線下特征提取過程
輸入:人臉數(shù)據(jù)集Images{Image1,Image2,Image3… Imagen}
輸出:FSV,F(xiàn)SI,F(xiàn)SR
初始化:創(chuàng)建特征文件 FSV,F(xiàn)SI,F(xiàn)SR
For each Image∈Images do
For each i∈Image do
face=detection(i)
//用Dlib庫中訓(xùn)練好的人臉關(guān)鍵點(diǎn)檢測器從圖片中檢測出人臉
FSV=save(VGG19(face))
FSI=save(IceptionV3(face))
FSR=save(ResNet(face))
//用 VGG19、IceptionV3和ResNet提取 i特征向量記為FVi∈R512、FIi∈R2048和 FRi∈R2048并保存。
End for
End for
用Keras建??蚣馨讯郈NN特征融合方法建模并用數(shù)據(jù)集訓(xùn)練。得到的融合特征用于人臉識別的對比。多CNN特征融合算法人臉識別模型如圖1所示。
圖1 多CNN特征融合算法人臉識別模型
相比于多CNN特征融合算法人臉識別模型,多CNN特征降維融合算法人臉識別模型層數(shù)增加,參數(shù)更多。最終由實(shí)驗(yàn)得出的識別精度也更高,模型如圖2。
圖2 多CNN特征降維融合算法人臉識別模型
人臉識別模型的訓(xùn)練過程是把線下提取好的三種特征作為輸入X1、X2和X3,把對應(yīng)人名的詞典下標(biāo)作為輸入Y,并設(shè)標(biāo)簽L為1。再用算法1或算法2把多個特征向量融合;接著和Embedding層降維的輸入Y連接起來,然后用Dense層降維融合特征,最后用sigmoid激活函數(shù)得出最終結(jié)果P。用數(shù)據(jù)集通過迭代訓(xùn)練從而把多特征融合模型中的參數(shù)訓(xùn)練出來。
輸入兩張人臉圖像記為image1、image2,用特征融合模型預(yù)測后,提取多CNN特征融合算法結(jié)構(gòu)中最后一層Dense層輸出作為融合特征,函數(shù)記為get_feature;dist為計算兩個特征在歐式空間上的距離記為D(精確到小數(shù)點(diǎn)后三位);由閾值λ(在第5節(jié)介紹)判斷出預(yù)測值。若兩張人臉圖片為同一人則記為1,否則為0。過程見算法4。
算法4:人臉識別過程
輸入:測試人臉圖片image1,測試人臉圖片image2
輸出:0或1
步驟:
Face1=detection(image1)
Face2=detection(image2)
F1=get_feature(Face1)
F2=get_feature(Face2)
D=dist(F1,F(xiàn)2)
If D <λ then
return 1
Else
return 0
end if
人臉識別模型訓(xùn)練完成后,隨機(jī)從測試數(shù)據(jù)集中抽取兩張人臉圖像進(jìn)行預(yù)測,得兩張人臉圖片融合特征的歐式距離記為x,真實(shí)值為y(相同人的人臉圖片真實(shí)值記為1,不同的記為0)。重復(fù)此過程n次,則測試數(shù)據(jù)結(jié)果可表示為
滿足:
1)xi∈[0,1](1≤i≤n)
2)yi=0 or 1(1≤i≤n)
則閾值λ的求取過程可形式化為以下問題:
在閾值算法計算中,精度P初始值為1000,abs函數(shù)是用來計算絕對值(歐式空間距離),過程見算法5。
算法5:閾值計算
輸入:(X,Y),P
輸出:λ
初始化:sum1=P,sum2=0,z=0
For each(xi,yi)∈(X,Y)do
xi=xi×P
yi=yi×P
end for
//把每一個歐氏距離xi,和真實(shí)值yi都乘以精度P,使得xi∈
[0,1000],yi=0 or 1000。
For each i∈[0,1000]do
For each(xi,yi)∈(X,Y)do
If xi>i:
z=1000
Else:
z=0
T=abs(z-yi)
sum2=sum2+T
end if
end for
if sum2<sum1then
sum1=sum2
λ=i
end if
end for
//i從0開始遍歷到1000,求出定義1函數(shù)F(λ)的最小值,同時也求出閾值λ
本文實(shí)驗(yàn)采用LFW(Labeled Faces in the Wild)數(shù)據(jù)庫來評估本文算法的性能。硬件配置為:Intel(R)Core(TM)i7-7700HQ CPU@2.80GHz,16.00GB內(nèi)存,1050顯卡。
LFW數(shù)據(jù)庫用于研究非受限情形下的人臉識別問題。圖像大小為250×250像素,其中有5749人,共計13233張圖片。本文的實(shí)驗(yàn)節(jié)選其中部分?jǐn)?shù)據(jù):1496人,共4108張圖像。具體圖片如圖3所示。
圖3 LFW人臉圖像數(shù)據(jù)
人臉存放在文件夾Images中代表訓(xùn)練集,其中:
Images中包含多個文件夾 Image1,Image2,Image3…Imagen。
imagei代表:第i個人的人名,其中:
imagei中包含文件imagei1,imagei2,…imageim;
imageij代表第i個人的第j張圖。
從全部數(shù)據(jù)4108張圖片中取出3108張作為訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練;1000張作為測試數(shù)據(jù)。
模型訓(xùn)練完成后,各現(xiàn)有的神經(jīng)網(wǎng)絡(luò)模型及本文的兩種融合特征神經(jīng)網(wǎng)絡(luò)模型(迭代訓(xùn)練1000次)在測試數(shù)據(jù)集上測試1000次。各模型識別精度比較如表1所示。可以看出,本文的兩種融合特征神經(jīng)網(wǎng)絡(luò)模型在識別精度上有一定的提升。
表1 不同模型識別精度比較
本文還對比了訓(xùn)練的迭代次數(shù),實(shí)驗(yàn)結(jié)果如圖4。多CNN特征降維融合模型在精度上略好于多CNN特征融合模型,而隨著迭代次數(shù)的提高,兩個模型的測試精度都有提升。
圖4 模型迭代次數(shù)識別精度圖
本文的模型都用訓(xùn)練集迭代1000次。由表2可以看出本文的兩種模型識別精度都高于傳統(tǒng)的特征融合算法,見文獻(xiàn)[13~14]。
表2 與現(xiàn)有特征融合算法比較
本文在現(xiàn)有的多個CNN模型基礎(chǔ)上,進(jìn)行特征融合并設(shè)閾值來提高人臉識別精度。以上技術(shù)的運(yùn)用使得本文算法具有較強(qiáng)的泛化能力和優(yōu)異的性能。本文的主要貢獻(xiàn)是用現(xiàn)有的多種CNN模型提取特征,融合出更具有鑒別性的特征,閾值的設(shè)置使人臉識別精度進(jìn)一步提高。其在數(shù)據(jù)集上的測試結(jié)果也證明了本文方法的有效性。在下一步的工作中我們將融合特征運(yùn)用于視頻中人臉的識別,期望取得較好的表現(xiàn)。