国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于K-CV優(yōu)化的PCA和SVM人臉識別算法

2020-09-01 01:55林志謀
關(guān)鍵詞:人臉人臉識別準(zhǔn)確率

林志謀

(廈門海洋職業(yè)技術(shù)學(xué)院 信息技術(shù)系, 福建 廈門 361012)

0 引 言

人臉識別在經(jīng)濟(jì)、 交通、 旅游和法律等行業(yè)有著廣泛的應(yīng)用, 國內(nèi)外學(xué)者對其進(jìn)行了深入的研究。目前人臉識別技術(shù)主要有3種類別: 基于幾何特征的方法[1]、 基于模板的方法[2]和基于模型的方法[3]。常規(guī)的PCA(Principal Component Analysis)和SVM(Support Vector Machines)人臉識別算法存在計(jì)算簡單, 通用性強(qiáng)等優(yōu)點(diǎn), 但SVM參數(shù)的取值制約著人臉識別算法的精度, 有些參數(shù)尋優(yōu)算法效率不高導(dǎo)致該人臉識別算法的實(shí)用價(jià)值不高。

筆者提出利用交叉驗(yàn)證方法(K-CV:K-fold Cross Validation), 同時(shí)使用改進(jìn)的網(wǎng)格搜索方法[4]改進(jìn)常規(guī)算法。其主要思路是先確定一個(gè)較大的范圍, 在此范圍內(nèi)用較大的步距, 確定一個(gè)較小的最優(yōu)參數(shù)區(qū)間, 然后在這個(gè)最優(yōu)區(qū)間范圍內(nèi), 再用小步距進(jìn)行精確搜索。對比常規(guī)的網(wǎng)格搜索的方法, 明顯減少了搜索SVM最優(yōu)參數(shù)的時(shí)間, 提高了搜索效率。再將樣本數(shù)據(jù)作為訓(xùn)練集, 盡可能消除由于個(gè)別樣本誤差對預(yù)測模型的影響, 同時(shí)聯(lián)合了PCA和SVM[5]的人臉識別算法, 使人臉識別算法更好地滿足實(shí)時(shí)性的要求, 解決了常規(guī)的PCA和SVM人臉識別算法性能不好的問題, 提高了人臉識別的準(zhǔn)確率。

1 識別算法原理

1.1 PCA算法主要原理

主成分分析方法(PCA)[6]主要用于圖像數(shù)據(jù)的降維。利用PCA算法可較大幅度地降低人臉數(shù)據(jù)特征的維數(shù), 減少圖像中冗余的信息和噪聲, 又能保留有效的識別信息[7]。

假設(shè)有n個(gè)d維空間中的樣本x1,x2,…,xn, 其中xi=(xi1,xi2,…,xid)T∈Rd, 假設(shè)X為這n個(gè)樣本構(gòu)成的數(shù)據(jù)矩陣, 即X=(x1,x2,…,xn)。假定需降到m維, PCA算法對數(shù)據(jù)降維處理流程如下:

3) 計(jì)算S的前m個(gè)最大特征值, 并按大小進(jìn)行排序, 即λ1≥λ2≥…≥λm,ψ1,ψ2,…,ψm,ψj(j=1,2,…,m)∈Rd為其對應(yīng)的特征向量, 構(gòu)成矩陣φm=(ψ1,ψ2,…,ψm);

利用PCA算法可降低人臉數(shù)據(jù)的維數(shù)及運(yùn)算的復(fù)雜度, 進(jìn)而可利用SVM算法,對提取得到的人臉數(shù)據(jù)進(jìn)行分類處理。

1.2 SVM算法主要原理

支持向量機(jī)(SVM)可支持線性和非線性的分類。其主要原理是把數(shù)據(jù)映射到一個(gè)高維空間上使數(shù)據(jù)變稀疏,比較容易找到一個(gè)分割面將數(shù)據(jù)分類,該高維分割面就是超平面。SVM算法的主要目的是找到一個(gè)使數(shù)據(jù)點(diǎn)離該超平面盡可能遠(yuǎn)的超平面, 通過該超平面進(jìn)行分類的效果較好。人臉識別是典型的非線性支持向量機(jī)分類問題,分類的主要流程如下[8]。

假設(shè)輸入的訓(xùn)練數(shù)據(jù)T={(x1,y1),(x2,y2),…,(xm,ym)}, 其中xi∈Rn,yi∈{-1,1},i=1,2,…,m。

1) 選擇核函數(shù)K(xi,yi)和懲罰參數(shù)C, 構(gòu)造并求解最優(yōu)化問題

使用二次規(guī)劃法, 求得最優(yōu)解

2) 計(jì)算向量w*和截距b*,w*計(jì)算公式如下

b*可通過滿足

的樣本求得。

3) 獲得最優(yōu)分類面函數(shù)

f(x)=sgn{(w*·x)+b*}

筆者采用的核函數(shù)是目前應(yīng)用廣泛且效果良好的高斯徑向基核函數(shù), 該函數(shù)適用于小樣本或大樣本數(shù)據(jù)的情形, 也適用于高維或低維數(shù)據(jù)的情形, 其表示形式如下

K(xi·x)=exp(-g‖xi-xj‖2),g>0

其中g(shù)是核函數(shù)參數(shù)。

懲罰系數(shù)和核函數(shù)參數(shù)影響SVM分類器的性能。SVM算法用于人臉識別時(shí), 要得到滿意的結(jié)果, 需調(diào)整相關(guān)的參數(shù), 才可得到更高的人臉識別精度。采用CV(Cross Validation)的思想和改進(jìn)的網(wǎng)格搜索方法比隨機(jī)選擇參數(shù)訓(xùn)練SVM得到的模型在人臉識別精度上更高。

2 基于K-CV優(yōu)化算法對SVM參數(shù)尋優(yōu)

K-CV算法優(yōu)化SVM相關(guān)參數(shù), 其方法是將原始數(shù)據(jù)分成K組, 并將每個(gè)子集數(shù)據(jù)分別做一次驗(yàn)證集, 其余的K-1組子集數(shù)據(jù)作為訓(xùn)練集, 可得到K個(gè)模型, 用這K個(gè)模型最終的驗(yàn)證集的分類準(zhǔn)確率的平均數(shù)作為此K-CV算法下分類器的性能指標(biāo)。傳統(tǒng)的網(wǎng)格搜索方法每個(gè)網(wǎng)格都是均分的, 有計(jì)算量大的缺陷, 筆者提出了用改進(jìn)的網(wǎng)格搜索方法提高其性能。

改進(jìn)的網(wǎng)格搜索方法優(yōu)化SVM參數(shù)的方法如下: 懲罰系數(shù)參數(shù)c和核函數(shù)參數(shù)g先采用大步距大范圍的粗略搜索, 確定一個(gè)初始的最優(yōu)參數(shù)區(qū)間, 然后在這個(gè)最優(yōu)區(qū)間再小步距精確搜索, 最終得到最優(yōu)化的參數(shù), 這種方法減少了計(jì)算量。SVM參數(shù)尋優(yōu)算法主要流程圖如圖1所示。

圖1 參數(shù)搜索流程圖Fig.1 Parameter search flow chart

3 算法實(shí)現(xiàn)流程

為驗(yàn)證基于K-CV優(yōu)化的PCA和SVM人臉識別算法, 需利用Matlab軟件進(jìn)行仿真測試。Lin[9]開發(fā)設(shè)計(jì)的集成庫LIBSVM內(nèi)置了訓(xùn)練函數(shù)和預(yù)測函數(shù), 可用其實(shí)現(xiàn)SVM算法。筆者采用ORL(Olivetti Research Laboratory)人臉庫進(jìn)行算法驗(yàn)證, 其含有40人總共400張人臉的圖像樣本, 將其分成兩組, 用前8張人臉圖片作為SVM模型訓(xùn)練樣本, 后2張圖片作為SVM模型預(yù)測的樣本, 算法的主要流程如下:

1) 讀入ORL人臉庫所有的圖片, 分別用作訓(xùn)練樣本和預(yù)測樣本;

2) 對人臉數(shù)據(jù)庫的訓(xùn)練樣本用PCA算法降維, 并提取人臉圖像的特征向量;

3) 先確定最優(yōu)的分組數(shù)目K, 再采用基于K-CV算法和改進(jìn)的網(wǎng)格搜索方法尋找得到SVM參數(shù)的最優(yōu)解;

4) 將步驟2)得到的人臉圖像的特征向量和步驟3)得到的參數(shù)最優(yōu)解, 輸入到SVM分類器中進(jìn)行訓(xùn)練識別;

5) 對人臉數(shù)據(jù)庫的訓(xùn)練樣本用PCA算法降維, 提取人臉圖像的特征向量, 然后輸入SVM測試函數(shù)進(jìn)行預(yù)測;

6) 比較SVM測試函數(shù)產(chǎn)生的標(biāo)簽和預(yù)測樣本的人臉圖片的標(biāo)簽, 獲得人臉識別的準(zhǔn)確率。

算法的偽代碼表示如下:

%數(shù)據(jù)初始化

bestAccuracy=0;

bestc=0;

bestg=0;

%讀取訓(xùn)練用的人臉數(shù)據(jù)

[train_X train_label]=read_face_data();

%對人臉數(shù)據(jù)PCA降維

[train_data train_S]=pca_face_feature(train_X, train_label);

%對c和g劃分網(wǎng)格搜索

for c=2^(cmin): 2^(cmax)

for g=2^(gmin): 2^(gmax)

利用K-CV算法, 將訓(xùn)練數(shù)據(jù)平均分成K組, 設(shè)為train_data(1), train_data(2)…train_data(K); 將訓(xùn)練標(biāo)簽也平均分成K組, 設(shè)為train_label(1),train_label(2)…train_label(K)

for time=1:K

讓train_data(time)作為訓(xùn)練集, 其他作為驗(yàn)證集

記錄本次的驗(yàn)證準(zhǔn)確率為acc(time)

libsvm_svmtrain()

end

cv=(acc(1)+ acc(2)+…+acc(K))K;

if(cv>bestAccuracy)

bestAccuracy=cv;bestc=c;bestg=g;%記錄最佳的c和g

end

end

end

%讀取測試用的人臉數(shù)據(jù)

[test_X test_label]=read_face_data();

%對人臉數(shù)據(jù)PCA降維

[test_data test_S]=pca_face_feature(test_X test_label);

%把得到的最佳參數(shù)輸入SVM測試函數(shù)進(jìn)行預(yù)測, 并獲得人臉識別的準(zhǔn)確率

libsvm_svmpredict();

算法中的cmin,cmax,gmin,gmax,K事先給定, bestc和bestg記錄最佳的SVM參數(shù), bestAccuracy記錄最高的精度。

4 實(shí)驗(yàn)結(jié)果和分析

4.1 確定最優(yōu)的分組數(shù)目K

首先讀入ORL人臉庫用作訓(xùn)練樣本的人臉圖片, 采用PCA算法對訓(xùn)練樣本降維并提取人臉圖像的特征向量, 結(jié)合K-CV算法對SVM模型參數(shù)進(jìn)行優(yōu)化, 得到人臉識別精度隨K值的變化如表1所示。由表1可見,K≥6時(shí), 人臉識別準(zhǔn)確率達(dá)到最大值97.812 5%, 為降低運(yùn)算復(fù)雜度, 筆者選擇K=6。

表1 識別準(zhǔn)確率隨K值的變化結(jié)果

4.2 確定懲罰系數(shù)c和核函數(shù)參數(shù)g

筆者采用K-CV算法和改進(jìn)的網(wǎng)格搜索方法確定最優(yōu)化SVM參數(shù)。圖2是采用大步距粗略搜索的等高線圖, 橫坐標(biāo)和縱坐標(biāo)分別代表參數(shù)c和g取以2為底的對數(shù)后的取值范圍, 等高線代表取相應(yīng)的c和g后對應(yīng)的K-CV算法的人臉識別準(zhǔn)確率。圖3是采用大步距粗略搜索的3D視圖, 其中c和g的范圍都設(shè)置為[2-20,220], 步距設(shè)置為0.8, 得最優(yōu)的懲罰系數(shù)c=3.031 4, 核函數(shù)參數(shù)g=0.002 243 6, 最佳的人臉識別準(zhǔn)確率為97.812 5%。由圖2可見,c的范圍可縮小到[2-5,23],g的范圍可縮小到[2-10,20], 步距設(shè)置為0.1。在上面粗略選擇的基礎(chǔ)上可再進(jìn)一步利用SVM訓(xùn)練函數(shù)進(jìn)行精細(xì)的參數(shù)選擇, 以減少大量不必要的計(jì)算, 節(jié)約時(shí)間; 反之, 如果一開始就采用小步距搜索, 將耗費(fèi)很多時(shí)間。小步距參數(shù)選擇等高線圖如圖4所示, 其3D視圖如圖5所示。由圖4和圖5可見, 經(jīng)過小步距的精細(xì)參數(shù)選擇后, 得最優(yōu)的懲罰系數(shù)c=2.639, 核函數(shù)參數(shù)g=0.002 577 2, 最佳的人臉識別準(zhǔn)確率是98.125%。

圖2 大步距參數(shù)選擇等高線圖 圖3 大步距參數(shù)選擇3D視圖 Fig.2 Big step parameter selection contour map Fig.3 Big step parameter selection 3D view

圖4 小步距參數(shù)選擇等高線圖 圖5 小步距參數(shù)選擇3D視圖 Fig.4 Small step parameter selection contour map Fig.5 Small step parameter selection 3D view

4.3 與傳統(tǒng)網(wǎng)格算法尋優(yōu)時(shí)間比較

在最優(yōu)的分組數(shù)目K=6的條件下,c的范圍都設(shè)置為[2-3,23],g的范圍都設(shè)置為[2-10,2-7], 步距都設(shè)為0.1, 針對傳統(tǒng)網(wǎng)格算法和改進(jìn)的網(wǎng)格算法, 分別做5次實(shí)驗(yàn), 求出平均尋優(yōu)時(shí)間, 如表2所示。由表2可見, 在相同識別準(zhǔn)確率的情況下, 改進(jìn)的網(wǎng)格搜索算法明顯優(yōu)于傳統(tǒng)的網(wǎng)格搜索算法。

表2 與傳統(tǒng)網(wǎng)格算法尋優(yōu)時(shí)間比較

4.4 與其他人臉識別算法比較

利用得到最優(yōu)懲罰系數(shù)c和核函數(shù)參數(shù)g, 對SVM進(jìn)行訓(xùn)練和分類預(yù)測。將人臉圖像測試集的實(shí)際分類和預(yù)測分類結(jié)果進(jìn)行比較, 在測試集的40人共80幅人臉圖像中, 預(yù)測錯(cuò)誤的有3幅圖像, 人臉識別的準(zhǔn)確率為96.25%(見圖6)。

圖6 人臉圖像測試集的實(shí)際分類和預(yù)測分類圖Fig.6 Face picture classification chart

分別采用由英國劍橋的Olivetti研究實(shí)驗(yàn)室創(chuàng)建的ORL人臉庫和耶魯大學(xué)創(chuàng)建的Yale人臉數(shù)據(jù)庫驗(yàn)證算法效果。筆者算法(K-CV+PCA+SVM)與其他算法精度比較如表3所示。在ORL人臉庫上, 常規(guī)的PCA+SVM算法識別準(zhǔn)確率是93.5%; 文獻(xiàn)[10]采用KICA+SVM算法的準(zhǔn)確率為93%; 文獻(xiàn)[11]采用Gabor+SVM算法的準(zhǔn)確率為88.02%。與這些算法比較, 筆者提出的算法識別精度達(dá)到了96.25%, 明顯優(yōu)于其他算法。在YALE人臉庫上, 常規(guī)的PCA+SVM算法識準(zhǔn)確率是81.25%; 文獻(xiàn)[10]采用KICA+SVM算法的準(zhǔn)確率為83.66%; 文獻(xiàn)[11]采用Gabor+SVM算法準(zhǔn)確率為88.78%。與這些算法比較, 筆者提出的算法精度略高。

表3 人臉識別算法精度比較

5 結(jié) 語

筆者提出利用交叉驗(yàn)證方法同時(shí)使用以改進(jìn)網(wǎng)格搜索方法對SVM參數(shù)尋優(yōu), 并聯(lián)合了PCA和SVM的人臉識別算法, 具有較高的準(zhǔn)確率,明顯優(yōu)于常規(guī)的PCA和SVM聯(lián)合的算法。運(yùn)用Matlab進(jìn)行驗(yàn)證的結(jié)果表明, 此算法提高了模型在人臉識別上的精度,減少了SVM最優(yōu)參數(shù)的搜索時(shí)間,具有較好的實(shí)際使用價(jià)值。

猜你喜歡
人臉人臉識別準(zhǔn)確率
人臉識別 等
有特點(diǎn)的人臉
一起學(xué)畫人臉
乳腺超聲檢查診斷乳腺腫瘤的特異度及準(zhǔn)確率分析
不同序列磁共振成像診斷脊柱損傷的臨床準(zhǔn)確率比較探討
2015—2017 年寧夏各天氣預(yù)報(bào)參考產(chǎn)品質(zhì)量檢驗(yàn)分析
揭開人臉識別的神秘面紗
人臉識別技術(shù)的基本原理與應(yīng)用
三國漫——人臉解鎖
高速公路車牌識別標(biāo)識站準(zhǔn)確率驗(yàn)證法
昌平区| 赫章县| 南昌县| 义马市| 汉川市| 沁水县| 锦屏县| 桦甸市| 内黄县| 运城市| 嘉黎县| 湖口县| 江门市| 澄迈县| 赤壁市| 湖南省| 仪陇县| 玉龙| 军事| 木里| 仲巴县| 东安县| 天台县| 和顺县| 措美县| 峨眉山市| 荆门市| 曲沃县| 娄底市| 汽车| 云霄县| 富川| 开化县| 黔江区| 太原市| 仙桃市| 易门县| 通州区| 靖州| 马关县| 县级市|