




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、基于TensorFlow的人臉識別系統(tǒng)設(shè)計作者:李慧穎李薇邢艷芳何光威來源:計算機時代2020年第09期圖1OpenCVX作流程圖FPSI圖2運行結(jié)果圖摘要:介紹了基于TensorFlow的人臉識別系統(tǒng)的設(shè)計過程。該系統(tǒng)采用深度學(xué)習(xí)的理論以及Google開發(fā)的人工智能框架TensorFlow來實現(xiàn)人臉識別。系統(tǒng)調(diào)用OpenCV計算機視覺庫中的功能函數(shù)從一段離線視頻幀里截取人臉圖像幀,用MTCNN模型進行人臉檢測,再與通過數(shù)據(jù)集VGGface2里訓(xùn)練的Inception模型進行識別,輸出特征向量,并與選好的圖片庫內(nèi)圖片對比。結(jié)果表明,該系統(tǒng)可較好的實現(xiàn)人臉識別功能。關(guān)鍵詞:人臉識別;深度學(xué)習(xí);人
2、工智能;TensorFlow;OpenCV計算機視覺庫中圖分類號:TP311文獻標(biāo)識碼:A文章編號:1006-8228(2020)09-61-03DesignoffacerecognitionsystembasedonTensorFlowLiHuiying,LiWei.XingYanfang,HeGuangwei(Com,nun.icationUniversityofChina,Aranjing,Jiang.su211100.China)Abstract:DevelopedafacerecognitionsystembasedonTensorFlow.Thesystemusesdeeplear
3、ningtheoryandartificialintelligenceframeworkTensorFlowdevelopedbyGoogletorealizefacerecognition.ThesystemcallsthefunctionintheOpenCVcomputervisionlibrarytointerceptthefaceimageframefromanofflinevideoframe,usestheMTCNNmodelforfacedetection.andidentifiesthefacedetectedwiththeInceptionmodeltrainedinthe
4、datasetVGGface2,thenoutputsthefeaturevectorandcompareditwithpicturesselectedfromthegallery.Theresultsshowthatthesystemcanrealizethefacerecognitionfunction.Keywords:facerecognition;deeplearning;artificialintelligence;TensorFlow;OpenCVcomputervisionlibrary0引言許多早期普遍使用的身份驗證方法隨著時代演變已不具有完整的安全性,因為這類信息極易被偽造
5、。本文研究基于TensorFlow的人臉識別技術(shù),先應(yīng)用一種較好的MTCNN模型進行人臉檢測,它是一種既考慮面部關(guān)鍵點檢測又考慮面部邊界回歸深度的學(xué)習(xí)模型1。從OpenCV庫中調(diào)用函數(shù)進行面部檢測并識別被輸入圖像信息,并從視頻數(shù)據(jù)中截取圖像幀數(shù)據(jù)。然后程序從MTCNN網(wǎng)絡(luò)讀取截取的人臉圖像,并通過Inception框架對圖像進行識別和確認(rèn)。人臉檢測和識別過程使用TensorFlow來構(gòu)建網(wǎng)絡(luò)完成系統(tǒng)設(shè)計。1CNN的基本網(wǎng)絡(luò)結(jié)構(gòu)CNN的基本網(wǎng)絡(luò)結(jié)構(gòu)由卷積層、池化層、全連接層、Softmax層組成。而計算機所理解的輸入層就是由許多的輸入矩陣組成。在這一層上是跟DNN有很大相同點的。它的第一個網(wǎng)絡(luò)是
6、CNN結(jié)構(gòu)獨有的卷積層,其后是池化層,它也是CNN的獨特部分。卷積層和池化層的組合在結(jié)構(gòu)中出現(xiàn)多次。卷積層和池化層的組合模型可靈活使用所需的任意組合。在這些組合層后面出現(xiàn)的是有著DNN結(jié)構(gòu)的全連接層(FullyConnectedLayer,簡稱FC)。而輸出層主要是使用Softmax激活函數(shù)來做圖像識別的分類。2MTCNN的研究與應(yīng)用在執(zhí)行到人臉檢測和特征點定位的任務(wù)時,將會使用多任務(wù)級聯(lián)的卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)。該網(wǎng)絡(luò)是實現(xiàn)人臉檢測和五點校準(zhǔn)的模型,主要通過CNN模型級聯(lián)實現(xiàn)多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)。該模型利用檢測和對齊之間的通用關(guān)系來提高其性能,并且從細致任務(wù)到粗糙任務(wù)的替換基本上是由三階級聯(lián)卷
7、積神經(jīng)網(wǎng)絡(luò)完成的。這也是其特殊性能的體現(xiàn)。三階段可大致分為:(1)使用全卷積網(wǎng)絡(luò)(P-Net)快速發(fā)布一系列候選窗口;(2)通過使用更復(fù)雜的CNN網(wǎng)絡(luò)(R-Net)過濾掉大多數(shù)非面部候選窗口;(3)使用一個能力稍作加強的網(wǎng)絡(luò)(O-Net)監(jiān)測出人臉上面的五個標(biāo)記點。3TensorFlow系統(tǒng)結(jié)構(gòu)TensorFlow是一可以使用數(shù)值類計算的開源軟件庫,它可以穩(wěn)定在Python的語言環(huán)境中運行2。該程序在實施運行的基礎(chǔ)上,兼顧一定的準(zhǔn)確性和穩(wěn)定性。TensorFlow還具備完全開源性,可在智能手機或數(shù)據(jù)服務(wù)中心集群上運行,重要的是基于數(shù)據(jù)流圖(dataflowgraphs),并可以廣泛的應(yīng)用于語音
8、或圖像分類的機器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域3。TensorFlow代表將張量從流程圖的一個部分運動到另一端所需要進行的計算過程,分解來看就是Tensor表示著張量(由N維數(shù)組成),以及流表示了基于數(shù)據(jù)流程圖的運算。CAPI(ComputerAssistedPersonalInterviewing)即計算機輔助面訪,是作為本系統(tǒng)的界線,分出兩個子系統(tǒng):前端系統(tǒng)和后端系統(tǒng)。前端系統(tǒng)主要工作是負責(zé)構(gòu)造建成計算圖并為其提供實現(xiàn)編程所需要的模型;后端系統(tǒng)主要負責(zé)執(zhí)行(出計算圖)并在系統(tǒng)運行時提供穩(wěn)定的環(huán)境。本系統(tǒng)中需關(guān)注四個基本組件,因系統(tǒng)是采用分布式運行機制,那么這四個組件就是關(guān)鍵??蛻舳耸菢?gòu)成前端系統(tǒng)的重要
9、部分,該系統(tǒng)可以支持多語言的客戶端,不僅如此,還提供基于計算圖上的編程模型,可為用戶構(gòu)建造出各種類的計算圖而提供了便利,從而實現(xiàn)所需的模型沒計??蛻舳艘詴挒闃蛄哼B接后端的運行,同時啟動計算圖的運行過程。在分布式的運行環(huán)境中,分布式Master承擔(dān)從計算圖中找到最小子圖的責(zé)任,并將其分成多個子圖,以便在多種進程和設(shè)備上運行。TensorFlow將為每個不同的任務(wù)啟動相應(yīng)的工作者服務(wù)。WorkerService在計算圖的節(jié)點之間存在依賴關(guān)系的前提下完成圖的計算,然后在硬件環(huán)境(例如CPU/GPU)中移動OP內(nèi)核,并且還需要接受其他工人服務(wù)或工序的計算結(jié)果將結(jié)果發(fā)送到其他工人服務(wù)。OP(opera
10、tor)以特殊方式在硬件設(shè)備上實現(xiàn),以表示數(shù)據(jù)操作層。它負責(zé)執(zhí)行OP操作,每個OP都有一個優(yōu)化的內(nèi)核實現(xiàn),但要考慮設(shè)備的類型。4系統(tǒng)設(shè)計與分析獲取被識別人臉特征向量由于本設(shè)計并沒用到攝像頭獲取人臉圖像,而是自主構(gòu)建圖片庫。初次系統(tǒng)識別公眾人物周杰倫,建立出一個名為jaychou的文件夾。在該文件夾內(nèi)保存為獲取人臉特征向量進行對比而截取的三張圖片。為了與系統(tǒng)運行后從離線視頻端檢測到的人臉特征向量進行對比,首先要在圖片庫里已獲取的圖片上進行檢測,獲取特征向量。基于OpenCV讀取視頻該程序使用OpenCV截取視頻數(shù)據(jù)流中的圖像幀數(shù)據(jù)來提供輸入圖像以供之后的面部檢測和面部識別5。OpenCV,也就是
11、計算機視覺接口可以用在許多類型的操作系統(tǒng)上實現(xiàn)運行,例如更常用的Windows,MacOS和Linux。OpenCV是使用C+類與C函數(shù)構(gòu)成的,具有高效特性與輕量化優(yōu)勢,此外在架構(gòu)上還規(guī)劃了一些接口提供給Python、Ruby、MATLAB等使用。該程序調(diào)用OpenCV庫中的函數(shù)從離線視頻端截取到視頻幀,它內(nèi)部的視覺處理算法變化多端,且C語言編寫占用它的絕大多數(shù)功能,可以說在DSP系統(tǒng)包括ARM嵌入式系統(tǒng)中的運行代碼都會在OpenCV中簡略的重寫過,考慮其開源特性前提下處理穩(wěn)妥,不加額外的非內(nèi)部支持也是能完整的編譯鏈接并產(chǎn)生運行程序的,可以極其方便的做算法的移植。該步驟會影響后面程序?qū)θ四槞z測
12、的效果,所以必須嚴(yán)謹(jǐn),其實現(xiàn)流程圖如1所示。4.3MTCNN人臉檢測人臉檢測首先必須檢測圖片中是否含有人臉,這是其主要工作。其次,確定是否存在人臉邊界的關(guān)鍵點。該系統(tǒng)的面部檢測模塊是使用多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN)深度學(xué)習(xí)模型實現(xiàn)的,該模型專注于對面部框架回歸和面部關(guān)鍵點檢測。MTCNN主要存在三層網(wǎng)絡(luò),分別是P-Net層、R-Net層和O-Net層。首先P-Net用在初步確認(rèn)人臉的邊框范圍,使用R-Net層精準(zhǔn)的確定人臉邊框范圍,最后用O-Net層檢測并確認(rèn)五個人臉關(guān)鍵點。首先將12*12尺寸的圖像輸入到P-Net網(wǎng)絡(luò)層,然后使用在訓(xùn)練之前生成的訓(xùn)練數(shù)據(jù)將其轉(zhuǎn)換為12*12*3的結(jié)構(gòu)
13、。然后,R-Net可以更準(zhǔn)確地調(diào)整P-Net生成的邊界框的坐標(biāo)。由P-Net生成的回歸幀和由其生成的面部輪廓關(guān)鍵點構(gòu)成R-Net訓(xùn)練數(shù)據(jù),其中R-Net生成的回歸幀變?yōu)?4*24大小,其面部輪廓關(guān)鍵點所用生成數(shù)據(jù)的方法與P-Net相比沒有變化。在MTCNN中用作輸出的最后一個網(wǎng)絡(luò)是O-Net。與R-Net的訓(xùn)練數(shù)據(jù)生成方式相類似是O-Net網(wǎng)絡(luò)的特點,其中包含面部輪廓關(guān)鍵點數(shù)據(jù)和通過P-Net和R-Net后檢測出來的每個圖片中的boundingboxes。4.4Inception人臉識別人臉識別的步驟使用Inception模型,該模型在VGGface2數(shù)據(jù)集里進行了訓(xùn)練,在這里是形成了pb文件
14、,直接進行使用。人臉識別是檢測到人臉后的關(guān)鍵步驟,嵌入特征向量(embedding)是通過Inception網(wǎng)絡(luò)識別獲得的。獲得到人臉特征向量的代碼:embs=sess.run(embeddings,feed_dict=feed_dict)從pb文件中找到模型的入口輸入、出口輸出并加載,其工作代碼如下:images_placeholder=tf.get_default_graph().get_tensor_by_name(input:0)embeddings=tf.get_default_graph().get_tensor_by_name(embeddings:0)phase_train_p
15、laceholder=tf.get_default_graph().get_tensor_by_name(phase_train:0)4.5特征向量的比對以上步驟進行完,這時獲得了兩種人臉的特征向量,分別是自己創(chuàng)建的圖片庫里的人臉特征向量和離線視頻里截取到的人臉特征向量,比較這兩者,當(dāng)特征向量之間比對的余弦距離較大時,就可以識別出人臉6。4.6結(jié)果展示在確認(rèn)識別結(jié)果之后,用OpenCV畫框?qū)⒆R別人的名字打上去,顯示在視頻中。這樣,整個系統(tǒng)的操作完成。設(shè)計完成后,該系統(tǒng)的運行結(jié)果如圖2所示。這組圖片中,第一、二張為設(shè)計所需的結(jié)果,在視頻中識別周杰倫的臉,并顯示名字jaychou在畫框里。第三張為
16、對比顯示圖,其中,程序中獲得人臉特征向量的人物得到識別,而另一個人沒有獲取特征向量識別為unk無信息。最后一張也為未獲取特征向量的人物,故識別為unk。5結(jié)束語該系統(tǒng)設(shè)計的完成,具有一定的實用價值。系統(tǒng)依賴深度學(xué)習(xí)的發(fā)展,其在人臉識別技術(shù)上的運用,使得在短時間內(nèi)刷新了大眾對傳統(tǒng)識別方式的認(rèn)知7。但同時也存在著不可忽略的問題,如在完成度上由于缺少大量的訓(xùn)練,造成一些環(huán)境下存在識別誤差,這也是人臉識別技術(shù)未來需要攻克的難題。參考文獻(References):朱秀娟,盧琳,鐘洪發(fā),人臉識別技術(shù)在考試身份驗證中的應(yīng)用J.激光雜志,2016.37(6):90-932章敏敏,徐和平,王曉潔,等谷歌TensorFlow機器學(xué)習(xí)框架及應(yīng)用微型機與應(yīng)用J.2017,36(10):58-60.黃睿,陸許明,鄔依林基于TensorFlow深度學(xué)習(xí)手寫體數(shù)字識別及應(yīng)用J電子技術(shù)應(yīng)用,2018.44(10):6-10嚴(yán)嚴(yán),章毓晉基于視頻的人臉識別研究進展J.清華大學(xué)電子工程系計算機學(xué)報,2009.32(5):879-885方玫.OpenCV技術(shù)在數(shù)字圖像處理中的應(yīng)用J.北京教育學(xué)院學(xué)報(自然科學(xué)版),2011.6(1):7-11黃琳,蔣
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零信任框架下的電動汽車智能充電的訪問控制研究
- 保管采購合同范例
- 眾籌開店合同范例
- 別墅裝飾裝修合同范例
- Z銀行X支行績效管理優(yōu)化研究
- PP-PPOH共混鋰離子電池隔膜的制備及其性能研究
- 借款續(xù)簽合同范例
- 會議物料合同范例
- 債權(quán)出質(zhì)擔(dān)保合同范例
- 健身房合同范例
- 成都市2024屆高中畢業(yè)班第二次診斷性監(jiān)測-2024年全國各地高考語文模擬卷作文導(dǎo)寫講練
- 醫(yī)保統(tǒng)計信息管理制度
- 達格列凈治療心衰機制
- 2024年保育員(初級)證考試題庫及答案
- 40篇英語短文搞定3500個單詞 正文
- 2024年度《冠心病》全套課件(完整版)
- 正面吊安全操作規(guī)程培訓(xùn)
- 2023年臺州市中考科學(xué)(正卷)和答案
- 經(jīng)典美味的宮保雞丁
- 孤獨癥兒童心智解讀能力
- 2023-2024學(xué)年人教版(2019)必修 第三冊Unit 2 Morals and Virtues Reading and Thinking 課件(22張)
評論
0/150
提交評論