基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)_第1頁(yè)
基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)_第2頁(yè)
基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)_第3頁(yè)
基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)_第4頁(yè)
基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Python的人臉識(shí)別系統(tǒng)的設(shè)計(jì)DesignoffacerecognitionsystembasedonPython內(nèi)容摘要人臉識(shí)別是本世紀(jì)的一個(gè)熱門技術(shù)話題之一。隨著科技飛速發(fā)展。人臉識(shí)別技術(shù)已滲透進(jìn)社會(huì)中的各個(gè)領(lǐng)域,例如:軍事、醫(yī)療、教育、娛樂(lè)等。類似于人臉識(shí)別支付、人臉識(shí)別登陸、人臉識(shí)別認(rèn)證等功能,我們幾乎每天都在使用。本設(shè)計(jì)主要運(yùn)用Python語(yǔ)言、Opencv(計(jì)算機(jī)視覺(jué)庫(kù))、Tkinter(Python的TkGUI工具包)制作的一個(gè)含有人臉識(shí)別的一個(gè)信息系統(tǒng)。其工作原理為:以含有人臉的圖片為素材,從圖片中提取人臉數(shù)據(jù)的特征值作為識(shí)別的標(biāo)準(zhǔn)后,與人臉系統(tǒng)庫(kù)中人臉比對(duì),從而識(shí)別出圖片中的人物,并執(zhí)行與該人物相關(guān)的一系列功能。關(guān)鍵詞:人臉識(shí)別OpencvGUI檢測(cè)AbstractFacerecognitionisoneofthehottechnicaltopicsinthiscentury.Withtherapiddevelopmentoftechnology,Facerecognitiontechnologyhasbeeninvariousfieldsinsociety,suchasmilitary,medical,education,entertainment,etc.Similartofacerecognitionpayment,facerecognitionlogin,facerecognitionauthenticationandotherfunctions,weuseitalmosteveryday.ThisdesignmainlyusesthePythonlanguage,Opencv(Thevisionlibraryofcomputer),andTkinter(PythonTkGUItoolkit)todesignaninformationsystemcontainingfacerecognition. Workingprinciple:Itusesthepicturecontainingthefaceasthematerial,extractsthefeaturevalueofthefacedatainthepictureastherecognitionstandard,andthencomparesitwiththefaceinthefacesystemlibrary.Thus,thepersoninthepictureisrecognized,andperformaseriesoffunctionsrelatedtothecharacter.□□Keywords:FacerecognitionOpencvGUIDetection廣東東軟學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)目錄TOC\o"1-3"\h\u第一章緒言 第一章緒言1.1選題目的與意義如今時(shí)代發(fā)展飛速,從汽車到火車,再?gòu)娘w機(jī)到火箭,科技的進(jìn)步令人瞠目結(jié)舌。從農(nóng)耕社會(huì)到現(xiàn)在的信息社會(huì),我們的生活也逐步邁向小康。但凡事都有其兩面性。在科技進(jìn)步下,帶來(lái)了信息化的社會(huì),但就是在這個(gè)信息化的社會(huì)下,防止信息的泄露也演變成了國(guó)際性的難題之一。據(jù)不完全統(tǒng)計(jì),全世界80%以上的人,他們的個(gè)人信息都保存在服務(wù)器中;92%以上的企業(yè)信息都保存在服務(wù)器主機(jī)內(nèi)。出于安全性的考慮,國(guó)家機(jī)密資料更是有很大一部分都需要用加密硬盤進(jìn)行保存。這些數(shù)據(jù)可充分體現(xiàn)出人們對(duì)信息安全性的重視。如今,人們都喜歡使用電子設(shè)備存儲(chǔ)信息。第一、現(xiàn)在的電子設(shè)備越來(lái)越小巧,可隨身攜帶;第二、電子設(shè)備體積雖小卻能裝載下大容量的東西;第三、電子設(shè)備不僅存儲(chǔ)空間大,其存儲(chǔ)的內(nèi)容更是多種多樣,不但可以存儲(chǔ)文本、圖片、視頻,還可以存儲(chǔ)三維模型、軟件等。真因?yàn)殡娮釉O(shè)備的存在,同時(shí)也大大提高了信息在人與人之間傳遞的速率。從另一個(gè)方位思考,可發(fā)現(xiàn)這些信息同時(shí)也蘊(yùn)含了極高的價(jià)值,例如個(gè)人的隱私信息、公司的機(jī)密信息、國(guó)家的機(jī)密信息等,所以,人們都很希望這些信息得到嚴(yán)密的保護(hù),希望信息能夠?qū)訉蛹用?,就像是保險(xiǎn)箱一樣。也正因人們的需求太大,大大促進(jìn)了如今的信息技術(shù)行業(yè)。如今的加密方式的種類也很多,我們使用得最多的就是密碼加密,這是利用了混淆技術(shù)原理[8],把一些可識(shí)別的信息經(jīng)過(guò)某些手段處理后,變成無(wú)法識(shí)別的信息。這種密碼加密方式僅適用于一些使用率較少的秘密信息,對(duì)于一些使用率較高的秘密就顯得不太合適,因?yàn)檫@些秘密每天都要被使用,所以這樣每天反復(fù)的輸入密碼,會(huì)顯得十分繁瑣,同時(shí)還加劇密碼泄露風(fēng)險(xiǎn)。總而言之,類似于密碼保護(hù)等身份識(shí)別工具已經(jīng)無(wú)法滿足社會(huì)的要求[15],研究新的身份識(shí)別工具是一個(gè)必然的趨勢(shì)。本次畢業(yè)設(shè)計(jì)選擇了人臉識(shí)別,以保證用戶的真實(shí)性,從而進(jìn)一步提高管理效率以及管理水平。人臉識(shí)別技術(shù)早在20世紀(jì)60年代已有很多科學(xué)家在研究了。但是礙于當(dāng)時(shí)的計(jì)算機(jī)處理速度,人臉識(shí)別這一技術(shù)才沒(méi)辦法發(fā)揮它的真正的“實(shí)力”。在80年代后,計(jì)算機(jī)的硬件方面大大提高,其處理速度方面也大大提升,人臉識(shí)別技術(shù)又被廣大科學(xué)家重新研究,因此,人臉識(shí)別有了重大突破,進(jìn)入真正的自動(dòng)識(shí)別階段。這一技術(shù)經(jīng)過(guò)一段時(shí)間的成長(zhǎng)后,在90年代后期,便涉及到各個(gè)領(lǐng)域,例如軍事、教育、醫(yī)學(xué)等。從人臉識(shí)別的發(fā)展歷程上可以看出,人臉識(shí)別技術(shù)的發(fā)展飽經(jīng)風(fēng)雨,但是也影響不了它飛速發(fā)展的速度。從20世紀(jì)60年代至今不過(guò)就是幾十年的時(shí)間,人臉識(shí)別技術(shù)已從簡(jiǎn)單的二維平面模型識(shí)別到現(xiàn)在的三維立體模型識(shí)別、多姿態(tài)識(shí)別等。人臉識(shí)別技術(shù)在學(xué)術(shù)上的解釋是:人臉識(shí)別是基于人的臉部特征信息進(jìn)行身份識(shí)別的一種生物識(shí)別技術(shù)。為什么能通過(guò)人臉識(shí)別某個(gè)人的身份呢?是因?yàn)槊總€(gè)人臉都有一個(gè)共性——都是由眼、鼻、口組成,并且它們的大致位置是不變的。但是在這些共性中又存在許多的不同點(diǎn)。例如:有些人是雙眼皮有些人,是單眼皮;每個(gè)人的瞳距不一樣;每個(gè)人嘴巴大小不一樣;每個(gè)人鼻子的大小不一樣等。就算是雙胞胎都是會(huì)存在些許差別。人臉識(shí)別技術(shù)就是根據(jù)這些共性與差異辨別出身份的。1.2研究現(xiàn)狀人臉識(shí)別是基于人的臉部特征信息進(jìn)行身份識(shí)別的一種生物識(shí)別技術(shù)[16]。并且已涉及生活的各個(gè)領(lǐng)域,例如:軍事、教育、購(gòu)物等。其發(fā)展具有很大的潛力,就算在這個(gè)技術(shù)還未成熟的時(shí)候,在一些科技電影中就對(duì)這一項(xiàng)技術(shù)描述得淋漓盡致,也對(duì)其進(jìn)行“華麗的預(yù)言”。正因這一技術(shù)的潛力極大,所以,我國(guó)也出臺(tái)了許多相關(guān)政策支持這一技術(shù)的研發(fā)。2015年以來(lái),我國(guó)相繼出臺(tái)了《安全防范視頻監(jiān)控人臉識(shí)別系統(tǒng)技術(shù)要求》、《信息安全技術(shù)網(wǎng)絡(luò)人臉識(shí)別認(rèn)證系統(tǒng)安全技術(shù)要求》等法律法規(guī),為人臉識(shí)別技術(shù)在社會(huì)的發(fā)展,以及在各個(gè)領(lǐng)域的普及奠定了非常重要的基礎(chǔ)[1]。在2017年的人工智能被寫入全國(guó)政府報(bào)告的同年7月,國(guó)務(wù)院發(fā)布了《新一代人工智能發(fā)展規(guī)劃》,同年的12月,工信部出臺(tái)了《促進(jìn)新一代人工智能產(chǎn)業(yè)發(fā)展三年行動(dòng)計(jì)劃(2018-2020年)》[1]。由于人臉識(shí)別也屬于人工智能的一部分,所以在這幾個(gè)出臺(tái)的規(guī)劃中,也對(duì)人臉識(shí)別的有效檢出率以及正確識(shí)別率作出了一些標(biāo)準(zhǔn)規(guī)定。顯而易見(jiàn),人臉識(shí)別的發(fā)展是必然的,是這個(gè)時(shí)代的選擇。人臉識(shí)別最早在20世紀(jì)60年代就已有科學(xué)家在研究了,只不過(guò)是受制于當(dāng)時(shí)的科技技術(shù)不夠先進(jìn),計(jì)算機(jī)處理速度緩慢,才導(dǎo)致人臉識(shí)別這一技術(shù)遲遲無(wú)法面向社會(huì)。后來(lái)計(jì)算機(jī)的發(fā)展?jié)u漸有了起色,人類也因此進(jìn)入了計(jì)算機(jī)的信息時(shí)代,計(jì)算機(jī)的各個(gè)方面都突飛猛進(jìn)地增長(zhǎng),有了良好的硬件基礎(chǔ)后,人臉識(shí)別這一技術(shù)也伴隨著計(jì)算機(jī)的增長(zhǎng)而逐漸走向成熟。人臉識(shí)別的整個(gè)發(fā)展過(guò)程可以分為五個(gè)階段,它們分別是機(jī)械識(shí)別階段、半自動(dòng)化識(shí)別階段、非接觸式識(shí)別階段及互聯(lián)網(wǎng)應(yīng)用階段。與其他生物識(shí)別方式相比,人臉識(shí)別優(yōu)勢(shì)在于更具有自然性、具有不被察覺(jué)性等特點(diǎn)[16]。但與此同時(shí)人臉識(shí)別的研究難度也會(huì)比其它生物識(shí)別方式高。第一、人的臉部異變性比較大,換句話說(shuō)就是外形的容易變化,容易影響識(shí)別的準(zhǔn)確率。第二、環(huán)境的光度也會(huì)影響識(shí)別的準(zhǔn)確率,由于如今的人臉識(shí)別大多數(shù)還是使用圖像處理的方式識(shí)別,光的角度對(duì)于圖像人臉的識(shí)別精確度的會(huì)有一定的影響。第三、人臉包含了許多姿態(tài),例如開心、難過(guò)、憔悴、笑等,也給人臉識(shí)別造成了更大的研究難度。人臉識(shí)別其優(yōu)勢(shì)雖明顯,未來(lái)必將會(huì)成為生物識(shí)別的主導(dǎo)技術(shù)之一,但其對(duì)于技術(shù)的要求也非常高。如果人臉識(shí)別在精度問(wèn)題上能夠得到有力的解決的話,人臉識(shí)別估計(jì)會(huì)替代指紋識(shí)別,成為市場(chǎng)應(yīng)用規(guī)模最大的生物識(shí)別技術(shù)之一。從申請(qǐng)專利數(shù)量來(lái)看,2007-2017年,我國(guó)人臉識(shí)別專利申請(qǐng)數(shù)量總體上呈上升的趨勢(shì),尤其是2014年后,計(jì)算機(jī)人臉識(shí)別專利申請(qǐng)數(shù)量大幅增多,到2017年,人臉識(shí)別專利申請(qǐng)數(shù)量達(dá)到2847項(xiàng)。從公開專利數(shù)量來(lái)看,2007-2017年,我國(guó)人臉識(shí)別專利公開數(shù)量總體上呈穩(wěn)定趨勢(shì)。2017年,我國(guó)人臉識(shí)別專利公開數(shù)量為2698項(xiàng),達(dá)到近年來(lái)最大值;截至2018年7月,專利公開數(shù)量為2163項(xiàng)。從專利數(shù)據(jù)上可知,人臉識(shí)別技術(shù)的發(fā)展趨勢(shì)一直在快速增長(zhǎng)。同時(shí)也說(shuō)明了,人臉識(shí)別技術(shù)還可能繼續(xù)成為下一個(gè)世紀(jì)的熱門技術(shù)之一。在市面上的與人臉識(shí)別技術(shù)相關(guān)的書籍、文獻(xiàn)、資料也不少,所以當(dāng)前人臉識(shí)別技術(shù)的研究現(xiàn)狀是非常不錯(cuò)的。1.3主要內(nèi)容本文將以設(shè)計(jì)人臉識(shí)別系統(tǒng)為主,對(duì)人臉識(shí)別技術(shù)進(jìn)行深度的研究、學(xué)習(xí)。在設(shè)計(jì)開展之前,首先介紹一下人臉識(shí)別的相關(guān)知識(shí)、具體原理、以及算法知識(shí)。人臉識(shí)別算法有許多種,本文將不一一具體說(shuō)明。在人臉識(shí)別算法知識(shí)中,會(huì)以闡述幾何特征人臉識(shí)別算法為主。幾何特征人臉識(shí)別算法也是本次設(shè)計(jì)的核心。除此之外,本文還會(huì)著重對(duì)以下幾點(diǎn)進(jìn)行了較為深入的探討:(1)采集人臉圖像過(guò)程(2)人臉檢測(cè)過(guò)程(3)人臉信息對(duì)比過(guò)程第二章人臉識(shí)別的相關(guān)理論和技術(shù)2.1臉部識(shí)別原理計(jì)算機(jī)識(shí)別人臉與人識(shí)別人臉的方式存在很大的差異。人是通過(guò)肉眼的視覺(jué)影像獲取到這個(gè)人物的臉部信息,進(jìn)而識(shí)別出這個(gè)人的身份信息。如果是個(gè)雙胞胎的話,還可以通過(guò)這個(gè)人的肢體動(dòng)作感知來(lái)區(qū)分。但對(duì)于計(jì)算機(jī)而言,就會(huì)顯得相對(duì)困難,因?yàn)橛?jì)算機(jī)不像人一樣有感知,計(jì)算機(jī)需要將這些信息轉(zhuǎn)化成數(shù)據(jù),再對(duì)這些數(shù)據(jù)進(jìn)行一系列的處理后,才能達(dá)到識(shí)別的效果。所以,人臉識(shí)別會(huì)涉及許多領(lǐng)域的知識(shí)點(diǎn),其中最主要的就是圖像處理。計(jì)算機(jī)需要通過(guò)大量數(shù)據(jù)才能識(shí)別出一個(gè)人臉。在這個(gè)地球上一共有70多億人,因此一個(gè)精確的人臉識(shí)別背后需要大數(shù)據(jù)的支撐。在人臉識(shí)別算法中,有一個(gè)基于卷積神經(jīng)網(wǎng)絡(luò)人臉上識(shí)別算法,它擁有極其龐大的人臉庫(kù),涉及到大數(shù)據(jù)、深度學(xué)習(xí)、以及人工智能等相關(guān)知識(shí)。經(jīng)過(guò)多重考察后,最后選用了Opencv作為設(shè)計(jì)的工具。因?yàn)槔肙pencv對(duì)圖像操作非常方便。Opencv可對(duì)圖像進(jìn)行剪輯、加載、拷貝等操作,還可以對(duì)圖像進(jìn)行基本的處理、例如去噪點(diǎn)、色彩處理等。不僅如此Opencv里還有攝像頭的功能,方便本次設(shè)計(jì)制作以視頻流為基準(zhǔn)的人臉識(shí)別。而且OpenCV還可以進(jìn)行一些線性代數(shù)上的計(jì)算,以內(nèi)置函數(shù)模塊實(shí)現(xiàn)計(jì)算特征值、特征向量、特征矩陣等。OpenCV還提供了圖像連通域、霍夫變換、圖像輪廓處理、連通分支的分析、多項(xiàng)式的逼近、圖像的模板匹配、曲線擬合、狄勞尼三角化等目標(biāo)識(shí)別,以及多種特征提取方法、HMM模型[4]。人臉識(shí)別的過(guò)程主要分為采集人臉圖像、人臉檢測(cè)、人臉信息比對(duì)三個(gè)過(guò)程。2.1.1采集人臉圖像采集人臉圖像的渠道有很多種(下面列舉三種常用的):①利用電子機(jī)器攝像頭拍攝②互相網(wǎng)上的人臉識(shí)別庫(kù)③掃描儀采集對(duì)象是一些含有人臉的2D圖像、3D圖像、視頻等。不同的類型的圖像,識(shí)別的方式也會(huì)有所不同。例如:3D人臉圖像識(shí)別就有兩種,一種是在三維的基礎(chǔ)上,另一種則是在2D圖像的基礎(chǔ)上。3D圖像識(shí)別之所以可以在2D圖像識(shí)別的基礎(chǔ)上識(shí)別,是因?yàn)?D圖像只是比2D多出一個(gè)維度的數(shù)據(jù),所以可以通過(guò)處理2D圖像再加上一個(gè)深度數(shù)據(jù)的方式來(lái)識(shí)別3D的人臉圖像。以目前的調(diào)查數(shù)據(jù)顯示,3D的人臉識(shí)別準(zhǔn)確度會(huì)比2D的人臉識(shí)別準(zhǔn)確度會(huì)更精準(zhǔn)。

2.1.2人臉檢測(cè)人臉檢測(cè)是人臉識(shí)別的前提和基礎(chǔ)[12]。這個(gè)過(guò)程主要檢測(cè)的是圖像中是否含有人臉。由于人的臉部器官之間大致位置關(guān)系是固定的,并且這些臉部器官也會(huì)有所差異,例如瞳距、大小、角度等??梢酝ㄟ^(guò)這些共性與非共性的集合,在人臉圖像尋找出一個(gè)特征點(diǎn),通過(guò)這些能夠標(biāo)識(shí)人臉的的特征點(diǎn)數(shù)據(jù)追蹤到人臉圖像中的人臉位置,人臉圖像是由多個(gè)像素點(diǎn)組合而成,計(jì)算機(jī)一般會(huì)用數(shù)據(jù)去記錄每個(gè)像素點(diǎn),對(duì)這些像素點(diǎn)進(jìn)行分析之后就可以得到人臉數(shù)據(jù)特征矩陣,從而得到特征值與特征向量等數(shù)據(jù)。如今的人臉識(shí)別技術(shù)已成熟,所以市面上已有不少人臉檢測(cè)工具,Opencv就是其中之一,在人臉檢測(cè)這一模塊可以使用OpenCV中的人臉模型去定位人臉位置之后再對(duì)人臉進(jìn)行進(jìn)一步的解析。但需要注意,在圖像檢測(cè)中,一般會(huì)先使用灰度處理過(guò)圖像后,再進(jìn)行人臉檢測(cè),因?yàn)檫@樣能夠提高人臉識(shí)別的性能。當(dāng)然,彩色也是可以的。本次設(shè)計(jì)將使用的是灰度處理過(guò)的圖像進(jìn)行識(shí)別。人臉檢測(cè)這一部分主要有圖像的預(yù)處理、特征提取與選擇兩部分。①預(yù)處理影響圖像的因素會(huì)有很多,例如:光線亮度、拍攝角度等。當(dāng)圖像被影響了之后就容易產(chǎn)生許多噪點(diǎn),這些噪點(diǎn)會(huì)影響我們?nèi)四樧R(shí)別的各種檢測(cè)。所以圖像處理是很有必要的。一般是把圖像中的噪點(diǎn)去除掉,還有把圖像灰度化。②特征提取特征提取是整個(gè)人臉識(shí)別里面很關(guān)鍵的一部分。很多識(shí)別方法都是以特征點(diǎn)為參照的基準(zhǔn)才能達(dá)到檢測(cè)/識(shí)別的效果。在OpenCV里,含有許多器官的特征值,利用這些特征值可以定位出圖像中是否含有人臉,如果含有人臉的話,就會(huì)返回給系統(tǒng)其上下左右四個(gè)點(diǎn)的位置。再利用這四個(gè)點(diǎn)就找出人臉的具體位置了。2.1.3人臉信息對(duì)比(人臉識(shí)別)僅僅識(shí)別出人臉還不夠,還需要識(shí)別出具體的人物。所以就需要人臉信息對(duì)比。人臉識(shí)別肯定離不開臉部識(shí)別算法。在開發(fā)設(shè)計(jì)過(guò)程中,可以自己去設(shè)計(jì)屬于自己的人臉識(shí)別算法,但這樣設(shè)計(jì)難度也會(huì)隨之增加,也可以利用開源的人臉識(shí)別庫(kù),調(diào)用其中的臉部算法函數(shù),這樣會(huì)方便自己的初次學(xué)習(xí),而且自己寫的臉部識(shí)別算法還可能不如別人的算法好,導(dǎo)致系統(tǒng)設(shè)計(jì)缺陷多。而且人臉識(shí)別的算法質(zhì)量對(duì)人臉識(shí)別的準(zhǔn)確率會(huì)有一定的影響。人臉識(shí)別的算法有很多,主要的就是幾何特征識(shí)別、以統(tǒng)計(jì)學(xué)為原理的PCA識(shí)別算法、神經(jīng)網(wǎng)絡(luò)識(shí)別算法、局部特征算法、彈性匹配算法等。本次人臉識(shí)別設(shè)計(jì)采用的算法是幾何特征識(shí)別算法,利用OpenCV與face_recognition的結(jié)合制作的人臉識(shí)別系統(tǒng)。這部分主要檢測(cè)圖像中的人臉到底是誰(shuí)。如果要應(yīng)用在市場(chǎng)應(yīng)用上,在這個(gè)過(guò)程中需要建立一個(gè)人臉數(shù)據(jù)庫(kù)。在圖像檢測(cè)完畢后,將圖像中的人臉與人臉數(shù)據(jù)庫(kù)的人臉進(jìn)行比對(duì),從而識(shí)別出這個(gè)人臉。一般人臉信息相似度不會(huì)設(shè)置為百分之100,臉部表情也會(huì)影響人的臉部的相似度,一般設(shè)置相似度為60%左右。2.2人臉識(shí)別算法在眾多人臉識(shí)別算法中,特征分析也是人臉識(shí)別的核心之一。經(jīng)過(guò)多個(gè)的人臉模型的訓(xùn)練后,所有的特征點(diǎn)組合起來(lái)后就能建立出人的臉部模型。通過(guò)這個(gè)臉部模型就可以定位到人臉圖像中的人臉位置。但是還不能識(shí)別出這個(gè)人臉到底屬于誰(shuí),還需要對(duì)識(shí)別出來(lái)的人臉作進(jìn)一步再分析,以某一相似值為標(biāo)準(zhǔn),與人臉庫(kù)中的人臉信息作對(duì)比。其中,主要的識(shí)別算法有:幾何特征識(shí)別法、局部特征識(shí)別法、特征臉識(shí)別法(PCA)、神經(jīng)網(wǎng)絡(luò)識(shí)別法(CNN)、彈性匹配識(shí)別方法、線段Hausdorff距離(LHD)識(shí)別法、支持向量機(jī)(SVM)的識(shí)別法[2]。2.2.1幾何特征識(shí)別法基于幾何特征的提取方法主要是人臉的主要器官進(jìn)行定位[3]。由于臉部器官的結(jié)構(gòu)、大小等的不同,所以可以對(duì)臉部以幾何進(jìn)行描述,構(gòu)成臉部的幾何特征。這些幾何特征主要包括特征點(diǎn)的位置、特征點(diǎn)之間的距離、特征點(diǎn)之間的角度等[3]。通過(guò)對(duì)這些特征點(diǎn)進(jìn)行解析,利用特征點(diǎn)與特征點(diǎn)之間的距離構(gòu)造出特征向量[16],再利用該特征向量進(jìn)行人臉識(shí)別[11][15]。本次設(shè)計(jì)的特征值提取是基于灰度圖像的一個(gè)特征值提取。假設(shè)輸入的圖像g(x,y),其大小為e*f。圖像g在點(diǎn)(x,y)的灰度值I(x,y)。那么,該圖像的V(x)垂直積分投影函數(shù),H(y)平積分投影函數(shù)如下[5]:(公式2-1)(公式2-2)垂直積分投影函數(shù)是指輸入圖像的一個(gè)垂直區(qū)域的灰度值之和,它表示圖像的灰度值在垂直方向上的變化。水平積分投影函數(shù)則是指輸入圖像水平區(qū)域的灰度值之和,表示圖像的灰度值在水平方向上的變化。這是一個(gè)經(jīng)過(guò)灰度處理后的人臉圖像(如圖2.1):圖2.1灰度處理后的人臉圖像其垂直積分投影函數(shù)如下圖所示:圖2.2垂直積分投影函數(shù)其水平積分投影函數(shù)如下圖所示:圖2.3水平積分投影函數(shù)像素點(diǎn)越暗,其灰度值就越低。相反,像素點(diǎn)越亮,其灰度值越高。根據(jù)垂直積分投影函數(shù)與水平積分投影函數(shù),可以定位出人臉部的眼睛位置。因?yàn)槿说难劬σ还灿袃蓚€(gè),并且具有對(duì)稱性,所以在水平積分投影函數(shù)的兩個(gè)波谷就是眼睛的位置的。緊接著就是定位出鼻子的位置,鼻子在兩個(gè)眼睛的中間,并且灰度值比較高,也就是灰度值最大的那個(gè)點(diǎn),就是臉部的鼻子的特征點(diǎn)。緊接著就能定位出嘴巴的位置,就是在積分函數(shù)投影的灰度值比較小,并且在眼睛附近的地方。每個(gè)臉部器官都取3個(gè)特征點(diǎn),共12個(gè),并且構(gòu)造出其標(biāo)準(zhǔn)特征向量。2.2.2特征臉識(shí)別法(PCA)PCA(PrincipalComponentAnalysis)方法也就是主成分分析法。該方法是一種以K-L變換為基礎(chǔ)的統(tǒng)計(jì)分析方法[5]。每一個(gè)人臉都是由許多成分組成的,例如:痘痘,皮膚,黑色素等,在這些成分中有些成分是主要的,例如:眼睛形狀,嘴巴的形狀等,并且這些主成分組合起來(lái)可以唯一標(biāo)識(shí)出特定的人,在這種情況下,就可以不加以考慮除了主成分之外的元素,這樣可以大大減少程序的運(yùn)算量。在識(shí)別人臉的過(guò)程中,首先要把主要人臉部分截取出來(lái),再進(jìn)行識(shí)別。截取出來(lái)的人臉圖像可以看作一個(gè)高維度數(shù)據(jù)的產(chǎn)物,通過(guò)對(duì)這個(gè)高維數(shù)據(jù)進(jìn)行分析得到一個(gè)低維數(shù)據(jù),方便程序計(jì)算。雖然在這個(gè)過(guò)程中圖像存在細(xì)微的虧損,但是其主成分是不發(fā)生改變的。利用這些主成分特征值與現(xiàn)在的人臉對(duì)比,進(jìn)而達(dá)到識(shí)別的效果。在這一算法中,圖像訓(xùn)練是這一算法中很重要的一部分。多個(gè)低維數(shù)據(jù),可以反推出一個(gè)標(biāo)準(zhǔn)的新的人臉圖像(如圖2.4),根據(jù)這個(gè)圖像就能準(zhǔn)確得識(shí)別出當(dāng)前人臉對(duì)應(yīng)人臉庫(kù)中的哪個(gè)人臉,進(jìn)而達(dá)到識(shí)別的效果。圖2.4反推的新的人臉圖像PCA的主要步驟如下:先把人臉數(shù)據(jù)樣本截取出來(lái)。將人臉圖像的高維圖像矩陣進(jìn)行排序、計(jì)算,得出低維的數(shù)據(jù)矩陣。計(jì)算公式如下[5]:(公式2-3)緊接著計(jì)算出其協(xié)方差矩陣,公式如下[5]:(公式2-4)將計(jì)算出來(lái)的K個(gè)最大特征值與其對(duì)應(yīng)的特征向量進(jìn)行組合,變成新的變換矩陣,接著采用K-L變換式對(duì)計(jì)算出來(lái)的變換矩陣進(jìn)行計(jì)算,就可以得到該圖像的低維特征向量。最后利用這些低維數(shù)據(jù)反推出新的圖像投影到子空間中,就可以得到該人臉的人臉模型,利用這個(gè)模型的數(shù)據(jù)就可以達(dá)到人臉識(shí)別的目的。2.2.3線段Hausdorff距離識(shí)別法(LHD)心理學(xué)研究表明,人在識(shí)別類似素描的邊緣圖上的速度和準(zhǔn)確度絲毫不比識(shí)別灰度圖的能力差[13]。LHD識(shí)別就是基于人臉圖像的灰度圖輪廓,識(shí)別的是兩個(gè)線段集合之間的距離,通過(guò)計(jì)算Hausdorff距離進(jìn)行識(shí)別兩張人臉之間的相似度[14],再根據(jù)相似度的大小來(lái)判斷是否為同一個(gè)人。由于線段集之間的線段不存在對(duì)應(yīng)關(guān)系,所以,LHD識(shí)別對(duì)微小變化的處理遠(yuǎn)比其他識(shí)別算法要好,但是其缺點(diǎn)是在大表情下的處理會(huì)存在較大的缺陷。在本次設(shè)計(jì)中沒(méi)有用到此算法。2.2.4支持向量機(jī)(SVM)的識(shí)別法支持向量機(jī)(SupportVectorMachine,SVM)目前是CorinnaCortes和Vapnik等人在研究統(tǒng)計(jì)學(xué)習(xí)理論的基礎(chǔ)上提出的新的方法[6][10]。SVM算法主要分為線性與非線性兩種方法,在進(jìn)行識(shí)別時(shí)基本上不受樣本的質(zhì)量與數(shù)量的影響[9]。通過(guò)在訓(xùn)練集合里提取出特征向量值,結(jié)合一定的算法得到結(jié)果。在本次設(shè)計(jì)中沒(méi)有用到此算法。2.3本章小結(jié)本章主要概述了人臉識(shí)別的具體過(guò)程和不同人臉識(shí)別算法的原理。人臉檢測(cè)是所有算法的前提、基礎(chǔ)。一般情況下,都是檢測(cè)出人臉位置,以該圖像區(qū)域?yàn)榛A(chǔ)進(jìn)行人臉識(shí)別。不同的人臉?biāo)惴ǖ囊罁?jù)也是不一樣的,例如:PCA識(shí)別是依據(jù)統(tǒng)計(jì)學(xué)的,線段Hausdorff距離識(shí)別是依據(jù)心理學(xué)的某些原理。不僅如此,由于原理的改變,其運(yùn)算的時(shí)長(zhǎng)也不一樣,所需的空間也會(huì)不一樣。綜上所述,要想設(shè)計(jì)出一個(gè)性能較好的人臉識(shí)別系統(tǒng),必須完善其人臉識(shí)別算法,可通過(guò)研究不一樣的算法,綜合其優(yōu)點(diǎn)改善。第三章人臉識(shí)別系統(tǒng)的軟件設(shè)計(jì)3.1人臉識(shí)別的算法設(shè)計(jì)本次設(shè)計(jì)嘗試了2種人臉識(shí)別方法。一種是PAC算法,另一種幾何特征算法,這兩種算法都有其優(yōu)點(diǎn)和缺點(diǎn),最后經(jīng)過(guò)多次考量之后,決定選擇用簡(jiǎn)單的幾何特征算法。因?yàn)镻AC需要訓(xùn)練大量的人臉圖像訓(xùn)練樣本,經(jīng)過(guò)統(tǒng)計(jì)、分析之后,得到一個(gè)人臉模型,再由這個(gè)人臉模型與當(dāng)前人臉對(duì)比,才識(shí)別出人臉。這個(gè)過(guò)程相對(duì)復(fù)雜,導(dǎo)致最后在嵌入進(jìn)窗口界面的時(shí)候,容易出現(xiàn)卡頓嚴(yán)重,所以最后選用的是幾何特征識(shí)別的方式。本次人臉識(shí)別系統(tǒng)設(shè)計(jì)是主要基于Opencv、face_recognition兩個(gè)庫(kù)。幾何特征識(shí)別流程(如圖3.1):圖3.1幾何特征識(shí)別流程PCA算法識(shí)別流程:在用PCA識(shí)別算法中,可使用sklearn模塊進(jìn)行計(jì)算,這樣會(huì)大大提高識(shí)別的效率。①降維過(guò)程(如圖3.2):圖3.2降維過(guò)程②訓(xùn)練與識(shí)別流程(如圖3.3):在用PCA識(shí)別算法的時(shí)候,可使用sklearn模塊進(jìn)行計(jì)算,這樣可以大大提高識(shí)別的效率。圖3.3訓(xùn)練與識(shí)別流程(1)PCA識(shí)別樣本訓(xùn)練的部分代碼:#獲取訓(xùn)練集train_face,train_face_number,test_face,test_face_number=loadDataSet(3)#PCA訓(xùn)練訓(xùn)練集,用pca將數(shù)據(jù)降到30維pca=PCA(n_components=30).fit(train_face)#返回測(cè)試集和訓(xùn)練集降維后的數(shù)據(jù)集x_train_pca=pca.transform(train_face)x_test_pca=pca.transform(test_face)#邏輯回歸訓(xùn)練classirfier=LogisticRegression()lr=classirfier.fit(x_train_pca,train_face_number)#保存模型joblib.dump(lr,'lr.model')#計(jì)算精確度和召回率accuray=classirfier.score(x_test_pca,test_face_number)recall=accuray*0.7(2)PCA識(shí)別的部分代碼:#預(yù)測(cè)的人臉predict=img2vector(string)#加載模型LR=joblib.load('lr.model')predict_people=LR.predict(pca.transform(predict))string1=str("編號(hào):%s精確度:%f召回率:%f"%(predict_people,accuray,recall))3.2軟件功能的設(shè)計(jì)本次人臉識(shí)別系統(tǒng)的功能主要以登陸為主,分為密碼登陸與人臉登陸兩個(gè)部分。密碼登陸部分流程(如圖3.4):圖3.4密碼登陸部分流程人臉登陸部分流程(如圖3.5):圖3.5人臉登陸部分流程3.3軟件功能的實(shí)現(xiàn)詳細(xì)代碼見(jiàn)附錄。第一步:環(huán)境配置下載PyCharm,配置好python3.6的環(huán)境。安裝opencv庫(kù)、tkinter庫(kù)、face_recognition這些庫(kù)的環(huán)境安裝相對(duì)復(fù)雜,需要的時(shí)間會(huì)比較長(zhǎng)。第二步:各個(gè)子模塊準(zhǔn)備(人臉定位、人臉識(shí)別、界面設(shè)計(jì)、攝像頭)人臉定位子模塊:利用opencv庫(kù)加載一張含有人臉的圖像,將圖像里的成分進(jìn)行解析,利用人臉器官的特征值,定位出人臉的大致位置后,對(duì)圖像進(jìn)行標(biāo)記,最后顯示標(biāo)記過(guò)的人臉圖像,達(dá)到人臉定位的效果,具體的人臉定位過(guò)程(如圖3.6)。圖3.6人臉定位過(guò)程人臉定位的部分代碼與注釋:#1.加載人臉模型face=cv2.CascadeClassifier('alt.xml')#2.調(diào)整圖片灰度(灰度可以提高性能)gary=cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)#3.檢查人臉faces=face.detectMultiScale(gary)#標(biāo)記人臉for(x,y,w,h)infaces:#里面有四個(gè)參數(shù)1.寫圖片2.坐標(biāo)原點(diǎn)3.識(shí)別大小4.顏色/線寬img=cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),10)運(yùn)行效果(如圖3.7):圖3.7運(yùn)行效果人臉識(shí)別子模塊:將定位出的人臉圖像進(jìn)行解析,得出一個(gè)人臉編碼數(shù)據(jù),這些數(shù)據(jù)對(duì)應(yīng)的是人臉的器官的特性,以數(shù)據(jù)的方式記錄臉部器官的特性。定位出來(lái)的人臉與另外一張人臉圖像的人臉信息進(jìn)行匹配,由于各種外界因素,兩張圖片中的相似度不可能是100%,一般60%左右即可,為了確保識(shí)別的精確度,本次設(shè)計(jì)是70%。本次設(shè)計(jì)可以采用數(shù)據(jù)庫(kù)的方式對(duì)人臉數(shù)據(jù)進(jìn)行裝載。人臉識(shí)別部分代碼與注釋:#對(duì)圖片中人臉進(jìn)行編碼me_face_encoding=face_recognition.face_encodings(me)[0]he_face_encoding=face_recognition.face_encodings(he)[0]#準(zhǔn)備人臉庫(kù)的人臉編碼know_face_encoding=[me_face_encoding,he_face_encoding]#準(zhǔn)備人臉庫(kù)中人臉對(duì)應(yīng)姓名#know_face_names=['me','he']#發(fā)現(xiàn)圖片中當(dāng)前圖像中的人臉位置locations=face_recognition.face_locations(img)face_encodings=face_recognition.face_encodings(img,locations)for(top,right,bottom,left),face_encodinginzip(locations,face_encodings):#比較人臉matchs=face_pare_faces(know_face_encoding,face_encoding)name='unknow'formatch,know_nameinzip(matchs,know_face_names):ifmatch:name=know_name運(yùn)行效果(如圖3.8):圖3.8運(yùn)行效果界面設(shè)計(jì)子模塊:利用tkinter庫(kù)設(shè)計(jì)登陸界面、人臉識(shí)別界面、以及軟件主界面。攝像頭子模塊:利用攝像頭捕獲圖像,把每一幀圖像都進(jìn)行人臉識(shí)別處理。③子模塊組合攝像頭子模塊+人臉識(shí)別界面:在這個(gè)過(guò)程中,識(shí)別的算法越復(fù)雜,視頻的流暢度就會(huì)越低。根窗口與子窗口之間的關(guān)系處理不當(dāng),容易造成視頻模塊無(wú)法嵌入。攝像頭子模塊+人臉識(shí)別界面+人臉識(shí)別:本次設(shè)計(jì)采用的是幾何特征人臉識(shí)別,這一算法的識(shí)別運(yùn)算量雖少,但是也會(huì)降低了視頻的流暢性。運(yùn)行效果(如圖3.9):圖3.9運(yùn)行效果3.4本章小結(jié)本章主要通過(guò)具體流程,生動(dòng)形象地闡述人臉系統(tǒng)設(shè)計(jì)開發(fā)的全過(guò)程,在設(shè)計(jì)開發(fā)期間,針對(duì)不同的模塊進(jìn)行了合理的改善。特別在子模塊的組合過(guò)程中,由于嵌入在一起會(huì)出現(xiàn)卡頓嚴(yán)重、某些模塊無(wú)法嵌入到界面等問(wèn)題,尋找了各種各樣的解決辦法才得以解決。所以在設(shè)計(jì)過(guò)程中需要特別注意。第四章功能測(cè)試和系統(tǒng)調(diào)試4.1人臉識(shí)別系統(tǒng)的功能測(cè)試與結(jié)果密碼登陸功能測(cè)試:①賬號(hào)不存在運(yùn)行效果(如圖4.1):圖4.1賬號(hào)不存在運(yùn)行效果②賬號(hào)存在、密碼錯(cuò)誤運(yùn)行效果(如圖4.2):圖4.2賬號(hào)存在、密碼錯(cuò)誤運(yùn)行效果③賬號(hào)存在、密碼正確運(yùn)行效果(如圖4.3):圖4.3賬號(hào)存在、密碼正確運(yùn)行效果人臉登陸功能測(cè)試:①人臉登陸界面(如圖4.4)圖4.4人臉登陸界面②人臉登陸測(cè)試(如圖4.5):圖4.5人臉登陸測(cè)試4.2實(shí)驗(yàn)結(jié)果測(cè)試與對(duì)比經(jīng)過(guò)多次的測(cè)試對(duì)比,該人臉識(shí)別功能已達(dá)到實(shí)現(xiàn)的效果,但是識(shí)別的精度還有待提高。經(jīng)過(guò)研究多種人臉識(shí)別發(fā)現(xiàn)是人臉識(shí)別算法的問(wèn)題。若想達(dá)到更精確的效果,可嘗試換一種新的人臉識(shí)別方式。在測(cè)試過(guò)程中,資源釋放不到位、電腦配置不夠高,導(dǎo)致程序的人臉識(shí)別部分的運(yùn)轉(zhuǎn)時(shí)長(zhǎng)不高。該程序還有提高的空間。總結(jié)與展望課題工作總結(jié)本次論文主要詳細(xì)描述了人臉識(shí)別的過(guò)程,以及人臉識(shí)別的兩種算法,幾何特征識(shí)別與PCA識(shí)別。本想在設(shè)計(jì)中加入數(shù)據(jù)庫(kù),由于時(shí)間流逝的速度之快,已經(jīng)到了畢業(yè)設(shè)計(jì)的期限的尾聲,就沒(méi)有加入進(jìn)去了。在這兩個(gè)多月的學(xué)習(xí)制作中,本人從中學(xué)習(xí)到了許多知識(shí),特別是對(duì)于人臉識(shí)別這一模塊學(xué)習(xí)。在這段時(shí)間里,閱讀、研究過(guò)許許多多的文獻(xiàn)、書籍,備受感觸。人臉識(shí)別實(shí)現(xiàn)起來(lái)的難度并沒(méi)有想象中那么大,但這僅僅是因?yàn)楸敬卧O(shè)計(jì)采用的是簡(jiǎn)單的識(shí)別方式,這樣的識(shí)別效果特別差,達(dá)不到提高安全性的效果,離研究目標(biāo)還有一定距離。本次設(shè)計(jì)的成品并不成熟,還需要加以完善。要想利用人臉數(shù)據(jù)保護(hù)資料,對(duì)人臉識(shí)別算法的學(xué)習(xí)還需要更深一步。雖然完成了本次畢業(yè)設(shè)計(jì)的制作,但是對(duì)于本次作品本人并不滿意,無(wú)論是美觀上、還是功能上,還存在很大的漏洞。對(duì)人臉識(shí)別的算法學(xué)習(xí)還未達(dá)到預(yù)期的效果,對(duì)數(shù)據(jù)處理、分析的能力還不足。所以人臉識(shí)別算法還需要繼續(xù)花費(fèi)時(shí)間研究,本次作品還需要進(jìn)行改善。在這段時(shí)光里,遇到了非常多的難題。例如環(huán)境搭建不成功、界面模塊嵌入不成功、識(shí)別失誤等。本次設(shè)計(jì)所用到的環(huán)境要求比較高,每個(gè)工具依賴的環(huán)境也比較復(fù)雜,在搭建環(huán)境這個(gè)過(guò)程中,花費(fèi)了大量的時(shí)間。在制作界面的過(guò)程中也困難重重,本次作品是本人用python做的第一個(gè)項(xiàng)目,許多東西都是邊學(xué)邊做的,但很幸運(yùn)的是,本人的導(dǎo)師、師兄都很熱心地協(xié)助,并解決了問(wèn)題,也正是因?yàn)橛兴麄兊脑诒澈竽闹С郑救瞬鸥佑袩崆?、?dòng)力去學(xué)習(xí)。未來(lái)展望在未來(lái)的一段時(shí)間里,本人將繼續(xù)對(duì)人臉識(shí)別進(jìn)行更深一步的學(xué)習(xí)。在這段時(shí)間里,已對(duì)人臉識(shí)別這一技術(shù)花費(fèi)了大量的時(shí)間才有一定的了解。并不想就此放棄之前的努力,繼續(xù)堅(jiān)持學(xué)習(xí)下去,或許能被本人發(fā)現(xiàn)彩虹呢!無(wú)論以后的學(xué)習(xí)有多困難,都要堅(jiān)持學(xué)習(xí)下去,讓自己每天進(jìn)步一小步。古人云:滴水成河、粒米成籮。就算如今的知識(shí)量薄弱,但經(jīng)過(guò)時(shí)間的洗滌,一定能得到很大的進(jìn)步。參考文獻(xiàn)[1]李夏風(fēng).人臉識(shí)別市場(chǎng)的發(fā)展現(xiàn)狀與變化[J].中國(guó)安防,2020(Z1):39-42.[2]艾英山,張德賢.人臉識(shí)別方法的綜述與展望[J].計(jì)算機(jī)與數(shù)字工程,2005(10):24-27.[3]曹海燕.基于幾何特征的人臉識(shí)別算法研究[D].曲阜師范大學(xué),2015.[4]卜秋月.基于OpenCV的人臉識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué).[5]黃泉龍.基于PCA的人臉識(shí)別研究[D].西安電子科技大學(xué),2012.[6]李艷;張琛;倪麗萍;何畏;潘莉.基于分形維數(shù)權(quán)重的大學(xué)生心理資本分類研究.合肥工業(yè)大學(xué).2015[7]汪勉;趙景秀;韓君君;程潔;趙娟;曹曼曼.基于快速Hough變換檢測(cè)圓的人眼精確定位方法的研究.電子技術(shù)雜志,2008[8]盧開澄.計(jì)算機(jī)密碼學(xué)[M].清華大學(xué)出版社,1990.[9]徐金梧.冶金生產(chǎn)過(guò)程質(zhì)量監(jiān)控理論與方法.北京冶金工業(yè)出版社,2015.05[10]李振龍;韓建龍;趙曉華;朱明浩;董文會(huì)。基于K近鄰和支持向量機(jī)的醉酒駕駛識(shí)別方法的對(duì)比分析。交通運(yùn)輸系統(tǒng)工程與信息。2015[11]鄒國(guó)鋒,傅桂霞,李海濤,高明亮,王科俊.多姿態(tài)人臉識(shí)別綜述[J].模式識(shí)別與人工智能,2015,28(07):613-625.[12]廖廣軍.復(fù)雜條件下的人臉檢測(cè)與識(shí)別應(yīng)用研究[D].華南理工大學(xué),2014.[13]杜成,蘇光大,林行剛,顧華.改進(jìn)的線段Hausdorff距離人臉識(shí)別方法[J].光電子·激光,2005(01):89-93.[14]李嵩,劉黨輝,沈蘭蓀.基于ASM和線段Hausdorff距離的人臉識(shí)別[J].計(jì)算機(jī)應(yīng)用,2008(05):1217-1220.[15]郭雅楠.基于SVM和ELM的人臉識(shí)別方法[D].太原理工大學(xué),2015.[16]劉婷.基于局部特征分析的人臉識(shí)別方法[J].信息與電腦(,2019,31(21):114-115+118.致謝本次畢業(yè)設(shè)計(jì)工作能夠完成,特別需要感謝本人的導(dǎo)師佟向坤老師。在她的悉心教導(dǎo)下,本次的畢業(yè)設(shè)計(jì)才得以完成。在大學(xué)的四年的學(xué)習(xí)過(guò)程中,佟老師對(duì)本人的關(guān)心和指導(dǎo),讓本人受益匪淺。特別值得一提的是,每次在找不到問(wèn)題的解決方式的時(shí)候,與佟老師溝通一下,這一問(wèn)題就很神奇地莫名其妙地解開了。除此之外,還要感謝在這段時(shí)間陪伴在身邊的家人們、朋友們、師兄師姐們。他們就像熒幕前背后的柱子,每當(dāng)熒幕快要倒下的時(shí)候,都提醒熒幕要堅(jiān)持下去。在危難之際,幸虧有他們伸出援助之手,。在這個(gè)滿是荊棘的人生道路上,正因?yàn)橛羞@些良師益友,本人才能奮力前進(jìn)、堅(jiān)持不懈。他們的支持是本人的精神支柱、以及前進(jìn)的動(dòng)力。附錄importtkinterfromtkinterimport*importtkinter.messageboximportcv2importosimporttimefromPILimportImage,ImageTkclassface_app:def__init__(self):self.camera=None#攝像頭初始化self.root=Tk()self.root.title('用戶登陸')self.root.geometry('%dx%d'%(400,250))self.createFirstPage()#創(chuàng)建第一頁(yè)mainloop()defcreateFirstPage(self):self.page1=Frame(self.root)self.page1.pack()self.page1.canvas=Canvas(self.page1,width=400,height=250,bd=0,highlightthickness=0)self.page1.imgpath='backgroud.jpg'self.page1.img=Image.open(self.page1.imgpath)self.page1.photo=ImageTk.PhotoImage(self.page1.img)self.page1.canvas.create_image(200,140,image=self.page1.photo)self.page1.canvas.pack()Label(self.page1,bg='AntiqueWhite',text='ManagementInformationSystem',font=('Arial',14)).place(x=45,y=65)Label(self.page1,bg='white',text='user:',font=('Arial',14)).place(x=50,y=100)Label(self.page1,bg='white',text='password:',font=('Arial',14)).place(x=50,y=150)#lineeditself.leinEdit_u=Entry(self.page1,show=None,font=('Arial',12))self.leinEdit_u.place(x=150,y=100)self.leinEdit_p=Entry(self.page1,show='*',font=('Arial',12))self.leinEdit_p.place(x=150,y=150)self.b_register=Button(self.page1,text='(FACE)Singin',bg='AntiqueWhite',font=('Arial',10),command=self.def_b_register).place(x=240,y=220)self.b_sign_in=Button(self.page1,text='Singin',bg='AntiqueWhite',font=('Arial',10),command=self.b_sign_in).place(x=280,y=180)defdef_b_register(self):self.window_face=Toplevel()#!!!!!!!!!!self.window_face.title('FaceWindow')self.window_face.geometry('800x800')self.page2=Frame(self.window_face)self.page2.pack()self.open_c=Button(self.page2,width=18,height=2,text='OPENCAMERA',bg='red',font=("宋",12),relief='raise',command=self.def_open_c).pack(side=TOP,padx=25,pady=10)self.find_c=Button(self.page2,width=18,height=2,text='Queryinformation',bg='white',font=("宋",12),relief='raise').pack(side=TOP,padx=110,pady=10)#command=self.checkDataView)self.close_c=Button(self.page2,width=18,height=2,text='CloseCAMERA',bg='gray',font=("宋",12),relief='raise',command=self.quitMain).pack(side=TOP,padx=25,pady=10)mainloop()#開啟攝像頭defdef_open_c(self):self.page2.pack_forget()#隱藏page2self.camera=cv2.VideoCapture(0)#定義攝像頭self.page3=Frame(self.window_face)#開始新的Frameself.page3.pack()#畫布局Label(self.page3,text='Welcometofacerecognition!',font=('粗體',20)).pack()#畫一個(gè)文字介紹self.data=Label(self.page3)#初始化一個(gè)視頻數(shù)據(jù)流self.data.pack(padx=5,pady=5)#畫上去#返回按鈕self.buttonclose=Button(self.page3,width=18,height=2,text=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論