版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于tensorflow的人臉識別研究中文摘要人臉是重要的識別個體的生物特征,與之相關(guān)的人臉識別技術(shù)在公共安全領(lǐng)域發(fā)揮著重要作用?;趫D像處理的傳統(tǒng)人臉識別技術(shù),在特定場景下已經(jīng)達(dá)到高水平,但是在應(yīng)對光照、姿態(tài)、表情變化等條件下,表現(xiàn)有所不足。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,逐漸突破了傳統(tǒng)人臉識別技術(shù)的桎梏,復(fù)雜條件下的人臉識別準(zhǔn)確率得到較大提升。本文著重探討了基于TensorFlow框架的深度學(xué)習(xí)在人臉識別中應(yīng)用,并將相關(guān)技術(shù)應(yīng)用到人實時檢測、關(guān)系分析等公共安全場景。本文首先深入研究了基于tensorflow的人臉識別技術(shù)的原理以及其運行環(huán)境與方式,其次在已有的tensorflow人臉識別框架成功運行的基礎(chǔ)下對人臉識別的特定對象以及識別方式進(jìn)行實驗仿真。最后通過基于人臉識的嫌疑人警報器和基于人臉識別的人物關(guān)系分析實驗,驗證了基于tensorflow的人臉識別在特定場景下進(jìn)行識別的靈活性與優(yōu)越性。其創(chuàng)新點包括:1.利用Tensorflow框架設(shè)計了特定場景下基于人臉識別的報警裝置。該設(shè)計方案具有架構(gòu)簡單,輕量化的優(yōu)點,對于設(shè)計小場景下的人員安全控制有著借鑒意義。2.利用Tensorflow框架設(shè)計了特定場景下基于人臉識別的人物關(guān)系分析研究,對于在海量照片數(shù)據(jù)集下嫌疑人識別,以及特定人物關(guān)系分析的場景下提供了極具價值的思路和方法。關(guān)鍵詞:Tensorflow人臉識別人臉警報器人物關(guān)系分析AbstractFacesareimportantbiometricsforidentifyingindividuals,andrelatedfacerecognitiontechnologiesplayanimportantroleinthefieldofpublicsafety.Thetraditionalfacerecognitiontechnologybasedonimageprocessinghasreachedaveryhighlevelinspecificscenes,buttheperformanceisnotgoodenoughwhenthelighting,postureandexpressionchanges.Withthedevelopmentofdeeplearningtechnology,thelimitofthetraditionalfacerecognitiontechnologyhasgraduallybeenboughtthroughandtheaccuracyoffacerecognitionundercomplexconditionshasbeenimproved.ThisarticlefocusesontheapplicationofdeeplearningbasedonTensorFlowframeworkinfacerecognitionandappliesrelatedtechnologiestopublicsafetyscenariossuchasreal-timedetectionandrelationshipanalysis.Thispaperfirstdiscussedtheprincipleoffacerecognitiontechnologybasedontensorflowanditsoperatingenvironmentandmethods.Secondly,specificobjectsandrecognitionmethodsoffacerecognitionarechangedoncetheexistingtensorflowfacerecognitionframeworkissuccessfullyoperated.Finally,theflexibilityandsuperiorityoftensorflow-basedfacerecognitioninspecificscenariosaretestedthroughthesirenalarmandthecharacterrelationshipanalysisexperimentsbasedonthefacerecognition.Itsinnovationsinclude:1.UtilizingtheTensorflowframeworktodesignanalarmdevicebasedonfacerecognitioninspecificscenarios.Thedeviceisdesignedunderasimplestructureandisbothlightandportable.Therefore,thisdesigncanbereferredtotheschemeofpersonnelsecurityentryandexitinsmallscenarios.2.UsingTensorflowframeworktodesigntheanalysisofhumanrelationshipbasedonfacerecognitioninspecificscenes.Itprovidesvaluableideasandmethodsfortheidentificationofsuspectsinmassivephotodataandtheanalysisofspecificpersonrelationships.Keywords:tensorflow-basedfacerecognitiontechnologyidentificationFacesirenCharacterrelationshipanalysis緒論背景及意義人臉識別,是一種人臉面部特征的生物身份的確認(rèn)技術(shù)。隨著公安工作基礎(chǔ)信息化建設(shè)的不斷推進(jìn)以及視頻偵察系統(tǒng)的逐漸完備,大數(shù)據(jù)以及人工智能不斷發(fā)展的社會背景下,圖像與視頻在提供偵查線索,認(rèn)定犯罪事實,作為證據(jù)上扮演著越來越重要的角色。在此基礎(chǔ)上發(fā)展的計算機(jī)人臉識別技術(shù),與DNA,指紋等生物識別技術(shù)相比,具有成本低,易采集,方便操作等特點。因此在布控排查、犯罪嫌疑人人像識別、人像鑒定、重點場所安全門禁等公安實際工作中發(fā)揮著顯著的作用,成為最活躍的偵查手段之一。例如在春運期間,火車站以及高速公路口都布置有人臉識別的攝像槍進(jìn)行治安布控,金磚五國會議、珠海航展等大型活動都用到了高效的人臉識別系統(tǒng)進(jìn)行人員出入管控。進(jìn)行人臉識別的采集以及識別除了有傳統(tǒng)的攝像頭拍攝以外,還有近些年出現(xiàn)的3d點陣光源,紅外線等人臉檢測方法,雖然各有優(yōu)勢,但因其技術(shù)以及傳感器的昂貴,或設(shè)備的笨重,或技術(shù)不成熟,相對不那么可靠等原因,并沒有在公安工作中尤其是單警裝備以及基層全面普及。因此,基于傳統(tǒng)攝像頭的人臉識別以及采集方式依舊是當(dāng)前公安工作的方向。而針對傳統(tǒng)攝像頭的人臉識別技術(shù)中,對算法與框架的優(yōu)化對于公安工作的人臉識別技術(shù)既能起到節(jié)約成本的目的,又能提高其準(zhǔn)確性與效率,從而提高人臉識別技術(shù)的總體效能。神經(jīng)網(wǎng)絡(luò)還沒有流行之前,傳統(tǒng)的人臉識別一般根據(jù)人為設(shè)定的特征,例如人臉位置,大小,形狀,同時結(jié)合面部器官的大小,形狀以及相對位置,手工提取其特征信息,然后與已有的人臉數(shù)據(jù)庫進(jìn)行對比。但如此一來將會面臨兩個問題,一是手工提取特征信息會受提取者的操作水平等影響,第二,也是最重要的一點是人為設(shè)計的特征易受環(huán)境、設(shè)備,例如光照強(qiáng)度,攝像機(jī)分辨率以及成像質(zhì)量等影響,這些都會大大地降低人臉識別的精度和準(zhǔn)確性,使其難以應(yīng)對公安實際工作復(fù)雜多變的環(huán)境。神經(jīng)網(wǎng)絡(luò)人臉識別系統(tǒng)是基于純數(shù)據(jù)的驅(qū)動方法,直接從圖像中像素數(shù)據(jù)中去學(xué)習(xí),以此獲得在不同環(huán)境,照明等情況下的識別特征。目前,隨著計算機(jī)技術(shù)的不斷成熟,運算能力的不斷加強(qiáng),在神經(jīng)網(wǎng)絡(luò)的不斷優(yōu)化以及大數(shù)據(jù)的支持下,使得基于神經(jīng)網(wǎng)絡(luò)的人臉識別實用性已經(jīng)大大提高,已經(jīng)可以比較好解決傳統(tǒng)人臉識別的問題。現(xiàn)在已經(jīng)有許多良好的人臉識別的卷積神經(jīng)網(wǎng)絡(luò)可以達(dá)到非常高的識別率。在某種意義上說,神經(jīng)網(wǎng)絡(luò)的人臉識別已經(jīng)超過了人類。但是其所暴露的問題也是十分明顯的,首先是神經(jīng)網(wǎng)絡(luò)需要大規(guī)模的數(shù)據(jù)集提高其識別率,因此需要采集大量的人臉數(shù)據(jù)這需要消耗大量的人力與時間,甚至當(dāng)數(shù)據(jù)較少時還不如傳統(tǒng)的“算法+手動特征”的識別模式;其次對計算機(jī)的計算能力是極大的挑戰(zhàn),搭建訓(xùn)練一個模型往往需要計算機(jī)有強(qiáng)大的計算能力;最后是在算法上,神經(jīng)網(wǎng)絡(luò)的算法多變,編寫具有極大的難度。這三個問題使得神經(jīng)網(wǎng)絡(luò)的人臉識別具有很高的門檻。近些年隨著開源深度學(xué)習(xí)框架的興起,特別是tensorflow框架的崛起,使其在人臉識別領(lǐng)域畫上濃墨重彩的一筆。Tensroflow,作為開源的深度學(xué)習(xí)框架,降低了開發(fā)成本,我們不用從冗雜的神經(jīng)網(wǎng)絡(luò)開始編寫,而是根據(jù)需要或修改或拓展已有的成熟的模型。這極大的降低了難度的同時使我們能夠運用到神經(jīng)網(wǎng)絡(luò)這一強(qiáng)大的工具。然而在面臨移植困難,安裝步驟繁瑣,硬件環(huán)境要求高等問題之下,研究一款簡單有效的基于tensorflow人臉識別系統(tǒng)是十分有必要的。因此,本文主要圍繞基于tensorflow的框架的人臉識別技術(shù)進(jìn)行探討,嘗試研究其實現(xiàn)的環(huán)境,原理,改造對硬件以及環(huán)境依賴小的人臉識別系統(tǒng)并探討其在公安實際工作中的運用?;趖ensorflow的人臉識別的原理深度學(xué)習(xí)理論及其發(fā)展1.人工智能與機(jī)器學(xué)習(xí)人工智能是指機(jī)器能夠模擬人的意識和思維。人工智能之父AlanMathisonturing在1950年提出圖靈測試,若機(jī)器能通過圖靈測試則可稱之具有人工智能。隨著計算機(jī)的發(fā)展,目前,機(jī)器已經(jīng)具備迅速學(xué)寫陌生文字的創(chuàng)造能力。機(jī)器學(xué)習(xí)是一種統(tǒng)計學(xué)方法,利用已有數(shù)據(jù),得出某種模型,再利用此模型預(yù)測結(jié)果(如圖2.1所示)。機(jī)器學(xué)習(xí)離不開數(shù)據(jù)、算法以及這三個要素。與傳統(tǒng)的馮諾依曼計算機(jī)工作的原理即指令和數(shù)據(jù)都被預(yù)先儲存,然后按照指令先后順序逐條讀取并運行相比,機(jī)器學(xué)習(xí)會使得模型隨著數(shù)據(jù)的輸入而變得完善,形象的說類似于人類經(jīng)驗的增加。機(jī)器學(xué)習(xí)最基本扽應(yīng)用為兩點,一是對連續(xù)數(shù)據(jù)的預(yù)測,二是對離散數(shù)據(jù)的分類,隨著機(jī)器學(xué)習(xí)的發(fā)展其領(lǐng)域日趨廣泛,包括視覺,語音,自然語言。本文所談的人臉識別便是應(yīng)用最廣的計算機(jī)視覺領(lǐng)域的內(nèi)容。新數(shù)據(jù)新數(shù)據(jù)歷史數(shù)據(jù)結(jié)果模型輸入預(yù)測訓(xùn)練圖2.1機(jī)器學(xué)習(xí)基本模型2.神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)眾所周知,我們的感官,思維,意識等活動離不開大腦的活動,而大腦的活動離不開神經(jīng)元這一基本單位。隨著我們年齡的增長,不斷地學(xué)習(xí),我們的大腦不斷地發(fā)育,根據(jù)神經(jīng)腦科的統(tǒng)計,成年人的大腦大約有860億個神經(jīng)元。神經(jīng)元具有樹突,軸突,細(xì)胞核等機(jī)構(gòu),以K,Na離子的流動實現(xiàn)神經(jīng)細(xì)胞中電信號的傳遞,而神經(jīng)元之間依靠神經(jīng)遞質(zhì)進(jìn)行化學(xué)信號的傳播。這些神經(jīng)元形成了有機(jī)生命體的多層次的神經(jīng)網(wǎng)絡(luò)復(fù)雜函數(shù)擬合。同時我們要知道,隨著我們的認(rèn)知與學(xué)習(xí),大腦也在不斷建立新的非條件反射,從生理結(jié)構(gòu)上說便是伴隨著新的神經(jīng)突觸的建立。如今,已有研究團(tuán)隊用電路模擬人腦的神經(jīng)結(jié)構(gòu),在不久的將來有可能實現(xiàn)類腦芯片。其實,早在20世紀(jì)40年代就已經(jīng)有人提出設(shè)想,是否可以利用電腦程序模擬神經(jīng)元結(jié)構(gòu)呢?人們發(fā)現(xiàn),在信息處理時,神經(jīng)元無非有:多輸入單輸出;突觸兼有興奮和抑制兩種性能;對時間和空間有加權(quán);產(chǎn)生脈沖并傳遞;非線性這五個特點。因此根據(jù)對神經(jīng)元類似狀態(tài)的描述,1943年,美國心理學(xué)麥卡洛克(McCulloch)數(shù)學(xué)家皮特斯(Puts)和美國心理學(xué)麥卡洛克(McCulloch),就提出了簡稱MP模型的一種神經(jīng)元網(wǎng)絡(luò)模型(如圖2.2所示)。利用MP模型,我們可以搭建一層神經(jīng)網(wǎng)絡(luò),也稱之為感知器。這是一種利用神經(jīng)元網(wǎng)絡(luò)對信息處理的數(shù)學(xué)模型,從此人們便開始對神經(jīng)元網(wǎng)絡(luò)的研究。感知器只能解決簡單的線性分類問題。如果想要解決更復(fù)雜的問題,或是搭建更復(fù)雜的模型,這時候就需要建立更多層的神經(jīng)網(wǎng)絡(luò),即多層感知器,也叫前饋神經(jīng)網(wǎng)絡(luò)(feedforwardneuralnetwork)。簡單來說前饋神經(jīng)網(wǎng)絡(luò)相較感知器而言,在輸入和輸出之間還多了隱層,具體指輸入層和輸出層以外的其他層。顧名思義,隱層不直接接受和發(fā)送型號,隱藏在輸入層和輸出層之間,對外界來說看起來是一種隱藏狀態(tài)。除此之外,神經(jīng)網(wǎng)絡(luò)還離不開另外一個基礎(chǔ)算法即反向傳播算法,簡稱BP(BackPropagation)。在該算法中,輸出層通過不斷地將誤差反向傳播給隱層,并通過減少誤差進(jìn)行迭代求解,以獲取最優(yōu)的參數(shù)。MP,前饋神經(jīng)網(wǎng)絡(luò),BP構(gòu)成了神經(jīng)網(wǎng)絡(luò)最基礎(chǔ)的原理。深度學(xué)習(xí)起源于以BP感知器為基礎(chǔ)的人工神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)主要以無監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)為代表分為兩大類。監(jiān)督學(xué)習(xí)主要有卷積神經(jīng)網(wǎng)絡(luò)等。其中無監(jiān)督模型主要包括自動編碼器、受限玻爾茲曼機(jī)和深度信念網(wǎng)。軸突軸突細(xì)胞核樹突求和輸入1輸入3輸入2非線性函數(shù)輸出圖2.2神經(jīng)元模型Tnsorflow簡述1.tensorflowTensorFlow是一個深度學(xué)習(xí)框架,是Google在DIstbelief的基礎(chǔ)上進(jìn)行研發(fā)的,并于2015年11月9日發(fā)布第二代人工智能學(xué)習(xí)系統(tǒng)。深度學(xué)習(xí)框架簡單的來說就是幫助我們利用和學(xué)習(xí)深度學(xué)習(xí)的工具,如果比喻成樂高,那么就意味著可以在已有的“積木”根據(jù)自己的需要去搭建所需的東西。Tensorflow的命名源自其本身獨特的運行原理,也即“tensor張量”與“flow流動”。Tensor,也就是張量。張量是現(xiàn)代機(jī)器學(xué)習(xí)的基礎(chǔ),其核心實質(zhì)上類似于一個數(shù)據(jù)容器,用以儲存數(shù)據(jù)。在Python中,張量通常存儲在Nunpy數(shù)組,Numpy是在大部分的AI框架中使用頻率非常高的用于科學(xué)計算的數(shù)據(jù)包。對于人臉識別而言,在圖像中一般為四維張量,而在視屏中為五維張量?!癴low”是流動的意思,意味著基于數(shù)據(jù)流圖的計算。張量從一端流向另一端定向流動的計算過程,將其形象化,因此稱之為tensorflow。從其功能上說,Tensorflow是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)傳輸至人工智能神經(jīng)網(wǎng)中進(jìn)行分析和處理的系統(tǒng)。簡單來說,是一種可以訓(xùn)練計算機(jī)識別特征、趨勢,并進(jìn)行處理的算法和比較全面的工具集。2.2.2Tensorflow現(xiàn)狀Tensorflow由python進(jìn)行編寫,并由C/C++進(jìn)行引擎加速。在語言與系統(tǒng)支持上TensorFlow支持多種客戶端語言下的安裝和運行。截至版本1.12.0,綁定完成并支持版本兼容運行的語言有:C,Python,其它綁定完成的語言有:JavaScript、C++、Java、Go和Swift,依然處于開發(fā)階段的包括C#、Haskell、Julia、Ruby、Rust和Scala[5]。因此,可以在tensorflow的上層編寫,也可以利用C++在底層進(jìn)行優(yōu)化??稍诟鞣N平臺,系統(tǒng)甚至手機(jī)上運行tensorflow的模型。Tensorflow支持目前深度學(xué)習(xí)最為流行的網(wǎng)絡(luò)結(jié)構(gòu),例如圖像領(lǐng)域的CNN,語言領(lǐng)域的RNN以及自然處理領(lǐng)域的LSTM等。2.2.3人工智能、機(jī)器學(xué)習(xí)與tensorflow之間的關(guān)系機(jī)器學(xué)習(xí)是人工智能的子集,是實現(xiàn)人工智能的方法。Tensorflow為機(jī)器學(xué)習(xí)的子集,如圖2.3所示。圖2.3Tensorflow相關(guān)關(guān)系圖T圖2.3Tensorflow相關(guān)關(guān)系圖Tensorflow深度學(xué)習(xí)人工智能機(jī)器學(xué)習(xí)Tensotflow人臉識別原理1.基本框架利用tensorflow實現(xiàn)人臉識別主要包括特定人臉照片輸入與獲取,人臉特征值檢測與提取,TensorFlow神經(jīng)網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí),識別模型,指定照片人臉,輸出結(jié)果。其基本流程如圖2.4。這其中需要利用到opencv2數(shù)據(jù)庫,ntcnn,facenet等算法而tensorflow則是實現(xiàn)這些算法的工具。步驟二步驟二步驟一圖2.4人臉識別流程模型目標(biāo)照片或目標(biāo)視頻人臉識別模型輸出識別結(jié)果特定人相照片A人臉特征值檢測與提取Tensorflow人臉識別訓(xùn)練特定人相照片B特定人相照片C人臉特征值檢測與提取人臉特征值檢測與提取2.算法簡述本文采用Opencv2實現(xiàn)圖片以及視屏的讀取以及輸出。Opencv2是基于BSD許可開源發(fā)行的計算機(jī)視覺庫??稍诙嗖僮飨到y(tǒng)例如Linux,Windows,Android等上運行。同時提供python等語言接口。因其輕量且高效,因此將其作為視屏以及圖像讀取的算法。MTCNN(Multi-taskconvolutionalneuralnetworks)是多任務(wù)及連卷積神經(jīng)網(wǎng)絡(luò)神對學(xué)習(xí)模型,采用三階級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)思想。其優(yōu)點是,在訓(xùn)練的同時采用多任務(wù)使得算法結(jié)構(gòu)更為精細(xì),相比傳統(tǒng)的人臉檢測算法而言,具有速度快,檢測精確等特點。Mtcnn總體分為三層網(wǎng)絡(luò),分別是p-net層、r-net層、O-net層。其功能依次為初步確認(rèn)人臉邊框范圍,進(jìn)一步精確人臉范圍,認(rèn)定人臉關(guān)鍵點。本文利用已經(jīng)訓(xùn)練好且較為成熟的模型進(jìn)行試驗。Facenet用于人臉特征的識別。Facenet也是一種卷積神經(jīng)網(wǎng)絡(luò),主要思想是把人臉圖像映射到一個多維空間,通過空間距離表示人臉的相似度。同一個人臉圖像的空間距離比較小,不同人臉則較大,通過人臉圖像的空間映射可以實現(xiàn)人臉識別。因此,本文想實現(xiàn)特定對象的人臉識別需要在facenet的算法下對facenet進(jìn)行重新訓(xùn)練。基于tensorflow的人臉識別的優(yōu)勢Tensorflow含有具有多語言,豐富的算法庫,完善的文檔。具有以下特點:靈活性,高度可移植性。TensorFlow并不僅僅是一個深度學(xué)習(xí)庫,只要可以把你的計算過程表示稱一個數(shù)據(jù)流圖的過程,我們就可以使用TensorFlow來進(jìn)行計算。TensorFlow允許我們用計算圖的方式還建立計算網(wǎng)絡(luò),同時又可以很方便的對網(wǎng)絡(luò)進(jìn)行操作。TensorFlow可以在CPU和GPU上運行,可以在臺式機(jī),服務(wù)器,移動設(shè)備上運行。因此對于公安工作而言,可以自由地轉(zhuǎn)戰(zhàn)于辦公室電腦,警務(wù)通等平臺,人臉識別儀器。TensorFlow采用十分通俗的的python來構(gòu)建和執(zhí)行我們的計算圖。但同時也支持C++的語言??梢灾苯訉憄ython和C++的程序來執(zhí)行TensorFlow。因此,可以根據(jù)各種公安工作的實際進(jìn)行改寫,在上層設(shè)計出針對不同工作環(huán)境的人臉識別系統(tǒng)。與其他框架相比,在靈活性與多機(jī)分布與靈活性上有其特有的優(yōu)勢(見表1)。表1tensorflow與其他算法對比表框架編程語言主要場景維護(hù)方多gpu模型并行多機(jī)分布式靈活性Torch(py)luaCNN/RNN(中等)通用Facebook可以不行極好CaffePython,C++CNN圖像分類檢測分割BVLC不行不行不好TensorflowPythonCNN/RNN(best)通用Google可以可以極好由表一可見在場景TensorFlow上具有高等通用的好處,其次其在多gpu模型并行優(yōu)于Caffe,在多機(jī)分布上好于 Tourch與Caffe。而Tensorflow在靈活性上也占盡優(yōu)勢?;趖ensorflow人臉識別實驗試驗方案實驗?zāi)康模禾骄靠膳渲铆h(huán)境并能跑出例程。實驗內(nèi)容:首先選擇合適的操作系統(tǒng),在本文中由于對windows系統(tǒng)比較熟悉因此選擇其作為自己的操作系統(tǒng)。環(huán)境配置實驗主要分三個部分:1.安裝Anaconda配置合適的環(huán)境。2.搭建tensorflow的環(huán)境。3.進(jìn)行例程運行,驗證實驗環(huán)境是否搭建成功。(其具體實驗流程如圖3.1)。實驗中所遇到的問題以及改進(jìn):實驗初期使用VMware虛擬機(jī)用烏班圖系統(tǒng),但因為系統(tǒng)本身的網(wǎng)絡(luò)原因無法下載opencv,同時因為下載的tensorflow與所配置的環(huán)境會有沖突。因此在tensorflow更新并支持windows后更換使用Windows進(jìn)行實驗,一方面Windows的操作界面對于新手更為熟悉,另一方面其所用的不管是ananconda以及tensorflow都要更新,更利于當(dāng)前以及后續(xù)的實驗。在下載tensorflow本身時,若是利用pip命令下載,所下的tensorflow版本不支持vax指令集,運行將會報錯。解決的方法在于從論壇(/fo40225/tensorflow-windows-wheel/tree/master/1.4.0/py36/CPU/avx2)處先行下載,再切入所在文件夾后安裝。在構(gòu)建python3,7與tensorflow的環(huán)境時會出現(xiàn)網(wǎng)絡(luò)斷鏈的情況,根據(jù)以上問題,一方面可以重新運行一次程序,若還是不成功解決方法可(conda
config
--add
channels
/anaconda/pkgs/free/)添加清華源進(jìn)行下載。實驗結(jié)論:能成功運行例程,可見能成功檢測并框出人臉,能正確識別并標(biāo)注名字實驗環(huán)境搭建成功(見圖3.2)。打開打開ananconadaprompt下載anaconada3勾選勾選AddPATH并安裝創(chuàng)建一個python版本為3.6的,名為tensorflow的環(huán)境conda
create
-n
tensorflow
python=3.6(conda
config
--add
channels
/anaconda/pkgs/free/)成功建立環(huán)境失敗網(wǎng)絡(luò)包斷連成功配置環(huán)境tensorflow-1.4.0-cp36-cp36m-win_amd64opencv-python==7md64scikit-learn==0.22.1=0.22.1scipy==1.2.1numpy==1.16.2pillow-i用cd命令進(jìn)入例程所在文件夾,用python運行兩例程序程成功進(jìn)行人臉識別圖3.1環(huán)境搭建流程圖圖3.2正確識別人臉特定人臉目標(biāo)實驗實驗?zāi)康模涸诶淘械目蚣芘c基礎(chǔ)上更改識別對象,使其利用于進(jìn)一步的研究。實驗內(nèi)容:實驗環(huán)境為配置環(huán)境中所搭建的環(huán)境。首先用conda
activate
tensorflow啟動實驗一所搭建的環(huán)境。利用cd命令進(jìn)入實驗文件夾。而后實驗主要分為四部:1.準(zhǔn)備目標(biāo)對象照片,每個對象至少30張照片以上,且每個照片有且僅有目標(biāo)對象一張臉。2.執(zhí)行pythondate——preprocess.py程序,對照片進(jìn)行預(yù)處理,形成面部圖像。3.訓(xùn)練識別模型。4.更改例程識別對象,鎖定需要識別的照片,對目標(biāo)照片進(jìn)行人臉識別。其原理在于,在tensorflow所建立的環(huán)境下,先用MTCNN對目標(biāo)人物的照片進(jìn)行預(yù)處理,生成后續(xù)可識別可學(xué)習(xí)的面部人臉邊界與面部特征點,其信息保存于pre-img文件夾,以便用于后續(xù)建立模型。接著利用facenet對文件夾內(nèi)人臉進(jìn)行學(xué)習(xí),生成對應(yīng)人臉概率數(shù)據(jù)。后續(xù)利用opencv數(shù)據(jù)庫對目表照片進(jìn)行讀取識別后比對facenet所形成的人臉概率,后利用svc分類器進(jìn)行歸類,最后用opencv標(biāo)記目標(biāo)名稱后輸出(流程圖如圖3.3所示)。遇到的問題及解決方案:1.新照片的識別代碼位置。后經(jīng)過反復(fù)查校,在identify-face-image.py運行文件第十五行可找到識別照片的名字,修改后可識別新的照片。(如圖3.4)修改后可針對目標(biāo)圖片進(jìn)行識別。2.在對照片進(jìn)行人臉識別時,只能識別以及輸出黑白照片。因而,尋找解決方案。發(fā)現(xiàn)問題在運行文件identify-face-image.py上。原因在于原版是一灰度圖片的方式讀取的圖片原函數(shù)是frame=cv2.imread(img-path,0)。解決方法是加入flame1,重新把圖片讀取為彩圖,但存在彩圖之后不能進(jìn)行識別,因此仍然用flame識別人臉,而后在輸出時將位置和信息標(biāo)在彩圖frame1上。(如圖3.5)3.對象名字是中文時會出現(xiàn)識別不出或者亂碼等問題。問題出現(xiàn)在identify-face-image.py中,其原理是因為opencv不支持中文因此若是中文的話會變成亂碼。解決方案的話是在第一個函數(shù)里把opencv的圖片轉(zhuǎn)化成pil的圖片,再加上中文,在轉(zhuǎn)化為opencv圖片。(如圖3.6)實驗結(jié)果:如下圖所示(見圖片3.7)。使用使用訓(xùn)練成功處理后的人臉寫入處理放入清空train—img文件夾pre-img文件夾人物30張以上正臉照片(僅有一人且面部清晰)conda
activate
tensorflow啟動實驗一所搭建的環(huán)境Cd指令進(jìn)入實驗文件夾執(zhí)行pythondate—preprocess.py執(zhí)行pythontrain—main進(jìn)行人臉識別訓(xùn)練人臉識別模型更改運行文件識別目標(biāo)對象特定目標(biāo)人臉識別成功步驟一步驟二步驟三圖3.3特定對象識別流程圖圖3.5修改flame函數(shù)圖3.4修改識別對象圖3.5修改flame函數(shù)圖3.4修改識別對象圖3.6opencv與pil格式轉(zhuǎn)化圖3.6opencv與pil格式轉(zhuǎn)化圖3.7識別目標(biāo)人臉圖3.7識別目標(biāo)人臉如圖3.7所示。能成功檢測到目標(biāo)對象的人臉并框出人臉部分。能正確識別出人臉并標(biāo)出對應(yīng)姓名。實驗成功實。模擬場景實驗設(shè)計基于人臉識別的嫌疑人警報器設(shè)計目標(biāo):實現(xiàn)對時實視屏的人臉別,在此基礎(chǔ)上對目標(biāo)的實時加入報警器。以此在識別到嫌疑對象時,實現(xiàn)報警警示的目的。設(shè)計環(huán)境:總體上使用第三部分搭建的基于tensroflow的實驗環(huán)境,先實現(xiàn)對目標(biāo)視屏的人臉檢測,而后在其基礎(chǔ)上利用引入opencv數(shù)據(jù)包后調(diào)用筆記本電腦攝像頭,或外接攝像頭實現(xiàn)實時人臉檢測。設(shè)計內(nèi)容。第一部分:首先實現(xiàn)對視屏流以及實時視屏的人臉檢測。1.首先實現(xiàn)對一段視屏的內(nèi)容進(jìn)行人臉檢測。與固定照片識別不同處在于,先對視屏流數(shù)據(jù)的幀進(jìn)行解析,與照片相同同樣是利用opencv數(shù)據(jù)庫對視屏數(shù)據(jù)進(jìn)行截取。而后與固定照片原理類似利用facenet與svm識別出人臉后進(jìn)行人臉分類,后用opencv標(biāo)記,即識別出視屏人臉。如下圖所示。成功識別出視屏中人臉,如圖4.1。2.改動其調(diào)用對象為視屏本身為筆記本電腦前置攝像頭。如下圖所示,其15行為加載視屏,將其改為16行的input-video=0即為調(diào)用電腦攝像頭,如圖4.2。3.對實時人臉檢測器進(jìn)行測試。無人人臉場景可見其未檢測到人臉,如圖4.3。下面進(jìn)行人臉識別實驗,實驗環(huán)境為單人情況下。如下圖可見能正確捕捉并識別本人人臉,見方框標(biāo)記人臉,并正確標(biāo)注出人臉信息。實現(xiàn)對人臉的準(zhǔn)確識別與判斷,如圖4.4。圖4.1視屏人臉識別圖4.1視屏人臉識別圖4.2修改加載攝像頭代碼圖4.2修改加載攝像頭代碼圖4.3未檢測到人臉圖4.3未檢測到人臉圖4.4成功識別人臉圖4.4成功識別人臉第二部分:建立特定人臉的警報器。1.在實現(xiàn)對實時視頻流的識別以及人臉識別之后在此基礎(chǔ)上針對其加入兩大部分,首先是犯罪嫌疑人人臉姓名輸入。其次是在識別到疑似犯罪嫌疑人后的報警裝置。2.在video.py文件下改動,如圖4.5,增加輸入名字與警報的條件函數(shù)。后在target-name處修改名字即可對特定目標(biāo)進(jìn)行實時人臉檢測警報,修改處(如圖4.6)。圖4.5輸入名字與警報條件函數(shù)圖4.5輸入名字與警報條件函數(shù)圖4.6警報對象姓名修改處圖4.6警報對象姓名修改處設(shè)計結(jié)果:實現(xiàn)對特定犯罪嫌疑人的視屏流實時報警裝置。基于人臉識別的犯罪團(tuán)伙關(guān)系分析設(shè)計目標(biāo):在實現(xiàn)對照片的識別的基礎(chǔ)上,對目標(biāo)文件夾內(nèi)的含犯罪嫌疑人的照片進(jìn)行提取,進(jìn)而實現(xiàn)犯罪團(tuán)伙關(guān)系的分析。設(shè)計環(huán)境:總體上使用第三部分搭建的基于tensroflow的實驗環(huán)境,用python語言編寫查找器。設(shè)計內(nèi)容:1.實現(xiàn)人臉識別,本步驟在第三章的實驗部分已經(jīng)完成。2.編寫人物查找器。其大體思路為,將照片保存至本機(jī)的特定文件夾,運行程序,輸入特定目標(biāo)名字。找到特定人物照片后將其另存至目標(biāo)文件夾。如4.7所示依據(jù)上述思路編寫程序。在原先人臉識別的運行程序上是循環(huán)加載文件夾中圖片,然后調(diào)用之前的人臉識別,名字匹配就把圖片另存至標(biāo)定文件夾。。3.為實現(xiàn)人像照片的自動篩選分析犯罪團(tuán)伙關(guān)系,故進(jìn)行篩選時,帶有目標(biāo)照片所指示的人應(yīng)當(dāng)大于或等于兩人,因此此時在上面的篩查器上進(jìn)行改動,使其可以在面對多人的照片是時識別到目標(biāo)照片并篩選出來。其原理和上述基本一致,多了的步驟在于把識別到的人臉,全部存在people_list列表里返回,然后在這個列表里看有沒有跟目標(biāo)名匹配的,若有則將其復(fù)制到目標(biāo)文件夾中,如圖4.8所示。4.運行程序輸入識別庫中已有目標(biāo)對象的姓名即可對其照片進(jìn)行提取。如4.9,4.10所示。.圖4.7編寫總思路圖4.7編寫總思路圖4.8照片提取部分代碼圖4.8照片提取部分代碼圖4.9特定照片姓名輸入圖4.9特定照片姓名輸入圖4.10提取出目標(biāo)照片圖4.10提取出目標(biāo)照片實戰(zhàn)模擬:現(xiàn)假設(shè)涉黑犯罪團(tuán)伙A為六人,該團(tuán)伙帶有明顯的協(xié)同性質(zhì),之間經(jīng)常一起行動且均為好友關(guān)系。現(xiàn)已抓獲犯罪團(tuán)伙頭目張某與副頭目李某?,F(xiàn)將其人臉錄入數(shù)據(jù)庫,并提取其手機(jī)照片若干。現(xiàn)想理清兩個頭目與團(tuán)伙其余人的人物關(guān)系,假設(shè)用相片同框次數(shù)衡量其親密度。兩人在同一照片中出現(xiàn)次數(shù)越多,則反應(yīng)其任務(wù)關(guān)系越親密?,F(xiàn)分別對兩頭目手機(jī)相冊照片進(jìn)行提取,如圖4.11所示。圖4.11圖4.11根據(jù)以下照片,可進(jìn)行同框次數(shù)統(tǒng)計。如表1,表2所示。張某手機(jī)照片李某手機(jī)照片總數(shù)量3020無用數(shù)量2015有用數(shù)量105表1相關(guān)照片統(tǒng)計表表1相關(guān)照片統(tǒng)計表表二照片相關(guān)性示意圖表二照片相關(guān)性示意圖張某4李某31嫌疑人a1嫌疑人b1嫌疑人c1嫌疑人d根據(jù)統(tǒng)計數(shù)據(jù)用線條粗細(xì)來反映同框次數(shù)則可繪制如下人物關(guān)系圖4.12。李某李某犯罪嫌疑人b犯罪嫌疑人b犯罪嫌疑人c犯罪嫌疑人c犯罪嫌疑人a張某犯罪嫌疑人a張某犯罪嫌疑人c犯罪嫌疑人c圖4.12人物關(guān)系初步分析示意圖圖4.12人物關(guān)系初步分析示意圖設(shè)計結(jié)果:根據(jù)tensorflow的人臉識別系統(tǒng),可實現(xiàn)對照片的自動篩選。在面對提取的嫌疑人存儲設(shè)備如手機(jī),硬盤中的海量照片,可通過該篩查器迅速篩選出涉及嫌疑人的照片。這大大節(jié)約了人工手動篩選照片的時間,極大地大提高了工作效率。也為進(jìn)一步的人物關(guān)系分析圖提供了具有針對性的
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年工程價款支付與結(jié)算合同
- 個人云服務(wù)協(xié)議
- 2(2024版)某雨水收集利用項目涉及的房屋拆遷協(xié)議
- 2024年工廠倉庫租賃協(xié)議
- 2024食品配料操作員保密協(xié)議
- 2024年臨時戶外運動場地租用協(xié)議
- 2024年安置房買賣合同中的緊急維修服務(wù)
- 2024年城市軌道交通設(shè)施設(shè)備采購合同
- 2024年個人二手車買賣合同
- 2024年地下車庫租賃協(xié)議
- 期中測評試卷(1-4單元)(試題)-2024-2025學(xué)年人教版三年級數(shù)學(xué)上冊
- GB/T 15822.1-2024無損檢測磁粉檢測第1部分:總則
- 2023年全國中學(xué)生英語能力競賽初三年級組試題及答案
- 新質(zhì)生產(chǎn)力解讀課件
- 部編版道德與法治九年級上冊 8.2 共圓中國夢 教學(xué)設(shè)計
- 中國工商銀行個人貸款申請表版
- 泥塑校本課程
- 裝飾施工技術(shù)標(biāo)準(zhǔn)及要求
- 2018秋七年級虎外考試卷英語試卷
- 河洛擇日法[技巧]
- (完整版)室內(nèi)滿堂腳手架施工方案
評論
0/150
提交評論