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

?

考場人臉識別系統(tǒng)研究與實(shí)現(xiàn)

2019-09-10 07:22:44衡友躍
關(guān)鍵詞:人臉識別

衡友躍

摘要:考場傳統(tǒng)的人工核驗(yàn)身份存在效率低、人為因素大等弊端,設(shè)計(jì)實(shí)現(xiàn)了一種考場人臉識別系統(tǒng),該系統(tǒng)基于PCA算法,在OpenCV中實(shí)現(xiàn),測試達(dá)到預(yù)期效果,為考試提供了有力支持.

關(guān)鍵詞:人臉識別;PCA;OpenCV

中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1673-260X(2019)03-0051-03

基于視頻的考生異常行為識別的第一步識別考生身份,傳統(tǒng)的人工核驗(yàn)身份證和準(zhǔn)考證效率低,出錯(cuò)率高.針對當(dāng)前現(xiàn)狀,本文設(shè)計(jì)了考場人臉識別系統(tǒng),為考生異常行為識別奠定基礎(chǔ).

1 考生臉部圖像獲取及處理

在考生人臉識別之前,需要先進(jìn)行考生面部圖像的獲取.為防止學(xué)生替考,要求用二代身份證核驗(yàn)身份,通過拍攝二代身份證上的照片提取面部圖像.拍照的角度,拍照時(shí)的光線強(qiáng)弱等因素都會帶來干擾,對照片有影響.加上JPEG格式壓縮的圖像,其本身也有一定程度的失真.給人臉識別增加難度.這些因素沒法改變,因此只能通過選擇合適的算法,并對其進(jìn)行優(yōu)化,在一定程度上消除不利因素.

人臉識別算法對照片中人臉的標(biāo)準(zhǔn)化要求很高,在進(jìn)行人臉識別之前,要對原始的照片進(jìn)行預(yù)處理.預(yù)處理之后的照片應(yīng)該大小一樣,人臉的位置也應(yīng)該保持一致.

預(yù)處理流程步驟:首先對照片進(jìn)行旋轉(zhuǎn),旋轉(zhuǎn)到兩個(gè)眼睛處在同一條水平線上即可.接著對照片進(jìn)行裁剪,根據(jù)人臉圖像的寬度是標(biāo)準(zhǔn)照片中兩個(gè)眼睛之間的距離的2倍進(jìn)行裁剪,兩個(gè)眼睛的位置確定下來,其他器官的位置也就跟著確定了,一張標(biāo)準(zhǔn)化的人臉圖像就生成了.接著對圖像進(jìn)行灰度歸一化處理,為了方便統(tǒng)一處理不同灰度值的圖像,圖像的灰度值和方差需要被設(shè)定到一個(gè)合理的范圍之內(nèi).

2 面部特征提取

目前面部特征提取方法有:基于幾何特征面部識別方法、基于BP神經(jīng)網(wǎng)絡(luò)面部識別方法、基于LBP的面部識別方法等[1].每種方法都各有適用場景及優(yōu)缺點(diǎn),考慮到平臺的兼容性,硬件資源配置低的因素,本文采用PCA(Principal Component Analysis)算法.

PCA即主成分分析,是一種常用的數(shù)據(jù)降維方法.它可以通過線性變換將面部原始數(shù)據(jù)變換為一組各維度線性無關(guān)表示,以此來提取數(shù)據(jù)的主要特征分量.PCA算法步驟[2,3]:

(1)將面部圖像采集到數(shù)據(jù)庫中.這一步先進(jìn)行圖像預(yù)處理,然后再將數(shù)據(jù)按列組成n*n矩陣X.

(2)求特征協(xié)方差矩陣.將X的每一行進(jìn)行零均值化處理,求出協(xié)方差矩陣C,進(jìn)而求出協(xié)方差矩陣C的特征值及對應(yīng)的特征向量.

(3)對面部特征進(jìn)行降維.將面部特征向量按照對應(yīng)特征值大小從上到下按行進(jìn)行排列成矩陣,取前k行組成矩陣P,Y=PX即為降維到k維后的特征向量.

3 面部特征識別

識別過程分為兩步,第一步訓(xùn)練,第二步識別.

訓(xùn)練步驟:

(1)準(zhǔn)備一組面部圖像.

(2)訓(xùn)練這些圖像,生成它們的特征臉,保存N個(gè)特征值相關(guān)的特征向量,并將其定義為一個(gè)“面部空間”.

(3)將訓(xùn)練集合中的面部圖像全部投影到“面部空間”上,計(jì)算出每一個(gè)人臉圖像在該N維空間上的相關(guān)分布系數(shù).

訓(xùn)練之后就可以識別了,識別步驟:

(1)將待識別的人臉圖像投影到N個(gè)特征臉上,計(jì)算其權(quán)值.

(2)將得到的權(quán)值和原始的人臉集合做對比,計(jì)算圖像之間的歐式距離,通過比較歐式距離和設(shè)置的閾值做比較,可以確認(rèn)該人臉是否是人臉庫中的人臉.

4 特征臉在OpenCV中實(shí)現(xiàn)

OpenCV是一個(gè)開源發(fā)行的跨平臺計(jì)算機(jī)視覺庫,可以運(yùn)行在Linux、Windows、Android、Mac OS操作系統(tǒng)上.它用C++編寫,但提供了大量的Python、Ruby等語言接口[4,5].

在OpenVCV2.4以后,加入了新的類FaceRecognizer.通過它可以方便快捷的進(jìn)行人臉識別.首先輸入人臉圖像訓(xùn)練樣本,F(xiàn)aceRecognizer類調(diào)用train方法對其進(jìn)行訓(xùn)練,訓(xùn)練的結(jié)果通過調(diào)用save方法保存到FaceRecognizer對象中.接著進(jìn)行識別工作,先通過load方法加載之前訓(xùn)練好的特征文件,然后FaceRecognizer調(diào)用predict方法進(jìn)行人臉識別[6].整個(gè)識別過程在OpenCV中的實(shí)現(xiàn)過程如圖1所示.

5 Android人臉識別軟件設(shè)計(jì)

5.1 開發(fā)環(huán)境準(zhǔn)備

(1)從opencv官網(wǎng)上下載sdk,本項(xiàng)目選擇3.3.3版本.

(2)新建一個(gè)Android項(xiàng)目,導(dǎo)入opencvLibrary.

(3)復(fù)制sample/face-detection/src到app項(xiàng)目的src下.

(4)導(dǎo)入res文件.

(5)復(fù)制jni/detectionBasedTracker_ini.cpp和

jni/detectionBased Tracker_ini.h到cpp目錄下.

(6)新建main/jniLibs/armeabi-v7a目錄,復(fù)制sdk/native/libs/armeabi-v7a/libopencv_java3.so到新建目錄下.

(7)復(fù)制sdk/native/jni/include/*.*

到main/jniLibs/目錄下.

(8)修改CMakeList.txt文件.

(9)在build-gradle文件中加入要支持的armeabi-v7a架構(gòu).

(10)加入啟動頁面,運(yùn)行.

5.2 人臉檢測與識別

OpenCV有一個(gè)org.opencv.android.JavaCameraView自定義控件,它不停地從攝像頭抓取數(shù)據(jù),在回調(diào)方法中,我們能得到Mat數(shù)據(jù),然后通過調(diào)用OpenCV的Native方法,檢測當(dāng)前是否是人臉,我們會獲得一個(gè)Rect數(shù)組,里面都是人臉數(shù)據(jù),最后將人臉畫在屏幕上.

人臉識別用到了JavaCV,JavaCV是一款開源的視覺處理庫,封裝了OpenCV等計(jì)算機(jī)視覺編程常用接口,在Android平臺上調(diào)用方便[7].

人臉檢測階段檢測到人臉之后,把人臉部分截取出來,接著預(yù)處理原始數(shù)據(jù),然后將特征值跟人臉空間特征值做比對,達(dá)到一定相似度即識別出來.

5.3 軟件測試

本次App測試過程中,主要測試軟件的識別率,測試組選取四位志愿者.首先訓(xùn)練樣本,四位志愿者每人拍攝5張圖片作為訓(xùn)練樣本,如圖2所示.

每位志愿者采集的面部圖像的神態(tài)、表情都稍微有些變化,圖中的人臉圖像都是經(jīng)過預(yù)處理之后的.在樣本訓(xùn)練結(jié)束之后,進(jìn)行人臉識別,識別結(jié)果如圖3所示.

經(jīng)過軟件測試,當(dāng)測試人數(shù)為4人時(shí),軟件識別率達(dá)到100%.

6 結(jié)束語

本文首先詳細(xì)介紹了PCA人臉識別算法,然后配置Android開發(fā)環(huán)境,使用OpenCV開發(fā)實(shí)現(xiàn)了人臉識別軟件,測試結(jié)果達(dá)到預(yù)期效果.

參考文獻(xiàn):

〔1〕江琨,鄭祿,帖軍.基于LBP和PCA算法的智能人臉識別[J].計(jì)算機(jī)與數(shù)字工程,2016,44(10):2048-2051+2056.

〔2〕趙鑫,汪維家,曾雅云等.改進(jìn)的模塊PCA人臉識別新算法[J].計(jì)算機(jī)工程與應(yīng)用,2015(02):161 -164+176.

〔3〕張曉璐.基于PCA的人臉識別技術(shù)的研究[J].遼寧科技學(xué)院學(xué)報(bào),2014(04):38-39+42.

〔4〕林啟亮.基于OpenCV2.X的車牌識別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廈門大學(xué),2013.6-7.

〔5〕王艷紅.基于OpenCV的運(yùn)動目標(biāo)檢測與跟蹤算法的研究[D].杭州電子科技大學(xué),2014.5-6.

〔6〕劉海建.基于OpenCV的人臉辨識算法研究與實(shí)現(xiàn)[D].集美大學(xué),2014.10-12.

〔7〕曾健平,邵艷潔.Android系統(tǒng)架構(gòu)及應(yīng)用程序開發(fā)研究[J].微計(jì)算機(jī)信息,2011(09):1-3.

猜你喜歡
人臉識別
人臉識別 等
揭開人臉識別的神秘面紗
基于類獨(dú)立核稀疏表示的魯棒人臉識別
基于K-L變換和平均近鄰法的人臉識別
虎林市| 陇南市| 吉水县| 宁阳县| 海门市| 广平县| 宾阳县| 武夷山市| 阳原县| 屯昌县| 额尔古纳市| 资阳市| 绥棱县| 江津市| 景东| 石家庄市| 枣庄市| 柳江县| 含山县| 太仓市| 平顺县| 威宁| 墨竹工卡县| 潜山县| 射阳县| 静海县| 大关县| 深圳市| 横峰县| 盖州市| 兴海县| 山东省| 象州县| 黔南| 林口县| 四川省| 洪洞县| 商都县| 精河县| 和政县| 桃江县|