基于python的人臉識(shí)別系統(tǒng)定稿_第1頁(yè)
基于python的人臉識(shí)別系統(tǒng)定稿_第2頁(yè)
基于python的人臉識(shí)別系統(tǒng)定稿_第3頁(yè)
基于python的人臉識(shí)別系統(tǒng)定稿_第4頁(yè)
基于python的人臉識(shí)別系統(tǒng)定稿_第5頁(yè)
已閱讀5頁(yè),還剩28頁(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)介

1、廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)本科畢業(yè)設(shè)計(jì)(論文)FacerecognitionsystembasedonPython院(系)計(jì)算機(jī)學(xué)院專(zhuān)業(yè)電子信息工程班級(jí)16電子信息工程2班學(xué)號(hào)16210420204學(xué)生姓名吳丹燕指導(dǎo)教師楊斌提交日期2020年4月3日畢業(yè)設(shè)計(jì)(論文)原創(chuàng)性聲明本人鄭重聲明:所呈交的畢業(yè)設(shè)計(jì)(論文),是本人在指導(dǎo)老師的指導(dǎo)下,獨(dú)立進(jìn)行的設(shè)計(jì)(研究)工作及取得的成果,論文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料均已明確標(biāo)注出,論文中的結(jié)論和結(jié)果為本人獨(dú)立完成,不包含他人已經(jīng)發(fā)表或撰寫(xiě)的作品及成果。對(duì)本文的研究作出貢獻(xiàn)的個(gè)人和集體,均已在論文中作了明確的說(shuō)明。本人完全意識(shí)到本聲明的法

2、律結(jié)果由本人承擔(dān)。畢業(yè)論文作者(簽字):簽字日期:年月日成績(jī)?cè)u(píng)定成績(jī)項(xiàng)論文成績(jī)(百分制)折合比例實(shí)得成績(jī)(折合分)指導(dǎo)教師成績(jī)30%評(píng)閱教師成績(jī)20%答辯成績(jī)50%總評(píng)成績(jī)注:畢業(yè)設(shè)計(jì)(論文)成績(jī)按百分制評(píng)定。答辯成績(jī)不及格的(評(píng)分低于60分的),則該畢業(yè)設(shè)計(jì)(論文)總評(píng)成績(jī)?yōu)榇疝q成績(jī)。摘要隨著科技的不斷發(fā)展,人工智能在人類(lèi)生活的應(yīng)用越來(lái)越普及,作為當(dāng)前最受關(guān)注的生物特征識(shí)別的方法,人臉識(shí)別在考勤、邊檢、安防、運(yùn)輸?shù)阮I(lǐng)域有著巨大應(yīng)用前景,是人工智能與計(jì)算機(jī)視覺(jué)領(lǐng)域的研究熱點(diǎn)之一。本文是基于python語(yǔ)言實(shí)現(xiàn)的人臉識(shí)別系統(tǒng),利用keras搭建CNN卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造一個(gè)18層網(wǎng)絡(luò)結(jié)構(gòu)的識(shí)別模型,

3、實(shí)現(xiàn)人臉?shù)浫?、圖像處理、模型訓(xùn)練、識(shí)別人臉等功能。主要描述圖像處理與模型搭建兩個(gè)模塊。圖像處理包括圖像的尺寸比例調(diào)整、數(shù)據(jù)歸一化等知識(shí),模型搭建包括模型建立、訓(xùn)練、評(píng)估。最終識(shí)別準(zhǔn)確率達(dá)到99.6%。關(guān)鍵詞:人臉識(shí)別圖像預(yù)處理模型訓(xùn)練CNNAbstractWiththerapiddevelopmentofscienceandtechnology,artificialintelligenceismoreandmorepopularinhumanlife.Asthecurrentlymostconcernedmethodofbiometricsrecognition,facerecognition

4、hasgreatapplicationprospectsinthefieldsoftimeandattendance,borderinspection,security,transportation,etc.Itisoneoftheresearchhotspotsinthefieldofartificialintelligenceandcomputervision.Thispaperisafacerecognitionsystembasedonpython.Itusekerastobuildaconvolutionalneuralnetworktoconstructan18-layerstru

5、cturerecognitionmodeltorealizefunctionssuchasfaceinput,imageprocessing,modeltraining,andfacerecognition.Itmainlydescribestwomodulesofimageprocessingandmodelbuilding.Imageprocessingincludesknowledgesuchasimagesizeadjustmentanddatanormalization,andmodelbuildingincludesmodelestablishment,training,andev

6、aluation.Thefinalrecognitionaccuracyreached99.6%.Keywords:FacerecognitionImagepreprocessingModeltrainingCNN目錄TOC o 1-5 h z HYPERLINK l bookmark14 第一章課題背景1 HYPERLINK l bookmark16 1.1課題來(lái)源1 HYPERLINK l bookmark18 1.2研究意義1 HYPERLINK l bookmark20 1.3國(guó)外研究現(xiàn)狀2 HYPERLINK l bookmark22 1.4國(guó)內(nèi)研究現(xiàn)狀2 HYPERLINK l b

7、ookmark24 第二章需求分析3 HYPERLINK l bookmark26 2.1技術(shù)可行性分析3 HYPERLINK l bookmark28 系統(tǒng)需求分析3 HYPERLINK l bookmark30 程序功能需求分析3 HYPERLINK l bookmark32 開(kāi)發(fā)環(huán)境需求4第三章系統(tǒng)概要設(shè)計(jì)3.1各模塊功能介紹人臉?shù)浫肽K6 HYPERLINK l bookmark38 搭建模型模塊6 HYPERLINK l bookmark40 人臉識(shí)別模塊7 HYPERLINK l bookmark42 第四章系統(tǒng)詳細(xì)設(shè)計(jì)8 HYPERLINK l bookmark44 整體運(yùn)行流程

8、圖8 HYPERLINK l bookmark46 圖像預(yù)處理設(shè)計(jì)8 HYPERLINK l bookmark48 調(diào)整圖像尺寸8 HYPERLINK l bookmark50 交叉驗(yàn)證法劃分?jǐn)?shù)據(jù)集10 HYPERLINK l bookmark52 數(shù)據(jù)標(biāo)簽one-hot編碼104.2.5像素歸一化11 HYPERLINK l bookmark54 4.2.6補(bǔ)充說(shuō)明12 HYPERLINK l bookmark56 卷積神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì)12 HYPERLINK l bookmark58 4.3.1卷積神經(jīng)網(wǎng)絡(luò)12 HYPERLINK l bookmark60 模型設(shè)計(jì)15 HYPERLIN

9、K l bookmark62 4.3.3模型訓(xùn)練17 HYPERLINK l bookmark64 第五章系統(tǒng)識(shí)別結(jié)果20 HYPERLINK l bookmark66 結(jié)束語(yǔ)22 HYPERLINK l bookmark68 參考文獻(xiàn)23 HYPERLINK l bookmark70 致謝24廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第一章課題背景1.1課題來(lái)源隨著線上支付在生活中的迅速普及,人們出行不帶錢(qián)包只帶手機(jī)逐漸成為一種趨勢(shì),然而不帶錢(qián)包,通常就會(huì)忘帶身份證。而如今現(xiàn)實(shí)生活的方方面面中,像銀行、金融借貸、買(mǎi)房、購(gòu)車(chē)、住宿、旅游、購(gòu)物都需要隨身攜帶身份證。而隨著

10、科學(xué)技術(shù)的快速發(fā)展,刷臉時(shí)代已經(jīng)強(qiáng)勢(shì)進(jìn)入我們的生活,刷臉支付、刷臉安檢、刷臉考勤靠刷臉辦事正迅速滲透我們的日常生活和工作。這種追求更加便捷生活方式的理念為人臉識(shí)別技術(shù)創(chuàng)造出許多新的應(yīng)用場(chǎng)景,并賦予它新的生命,使得人臉技術(shù)成為近幾年的研究熱點(diǎn)。然而,這項(xiàng)技術(shù)早在20世紀(jì)的60年代便已經(jīng)有學(xué)者展開(kāi)研究,尤其在安防領(lǐng)域,已經(jīng)研發(fā)出不少的應(yīng)用并投入實(shí)際運(yùn)用。大眾對(duì)于該技術(shù)的理解更多的是在歐美犯罪電影中出現(xiàn)的FBI和CIA,探員通過(guò)查詢(xún)世界各個(gè)角落的監(jiān)控器,將犯罪嫌疑人與人臉識(shí)別系統(tǒng)相比對(duì),從而確定犯罪嫌疑人出現(xiàn)過(guò)的地點(diǎn)。雖然情節(jié)夸大了該項(xiàng)技術(shù)的應(yīng)用,但實(shí)際上人臉識(shí)別技術(shù)早已被許多國(guó)家的大量運(yùn)用在安防領(lǐng)

11、域。它并不是一項(xiàng)新出現(xiàn)的技術(shù),只是缺乏在人們?nèi)粘I钪械膽?yīng)用場(chǎng)景,使得人臉識(shí)別技術(shù)直到近幾年隨著智能化時(shí)代的到來(lái)才逐漸被大眾熟知。在國(guó)內(nèi),對(duì)該項(xiàng)技術(shù)的研究開(kāi)始于1990年,目前主要應(yīng)用在考勤、邊檢、運(yùn)輸、安防等領(lǐng)域。1.2研究意義隨著人工智能在計(jì)算機(jī)技術(shù)領(lǐng)域的迅速發(fā)展,智能化產(chǎn)品逐漸滲透在人類(lèi)社會(huì)生活中的各個(gè)方面,使得社會(huì)的運(yùn)行效率大幅度的提升,人類(lèi)也慢慢從體力勞動(dòng)中解脫出來(lái),將更多的時(shí)間放在技術(shù)創(chuàng)新創(chuàng)造上,而人臉識(shí)別作為人工智能中的重要技術(shù)之一,是富有應(yīng)用意義和挑戰(zhàn)性的研究課題之一。相對(duì)于其他生物特征識(shí)別技術(shù),人臉識(shí)別技術(shù)因?yàn)榫哂蟹乔謹(jǐn)_性、非強(qiáng)制性、非接觸性、便捷性等優(yōu)點(diǎn),符合人們對(duì)便捷生活

12、方式的追求和對(duì)身份識(shí)別的快速、準(zhǔn)確、安全的要求,使得它在身份識(shí)別、自動(dòng)監(jiān)控、人機(jī)交互等領(lǐng)域擁有巨大的發(fā)展?jié)摿ΑH四樧R(shí)別技術(shù)覆蓋了計(jì)算機(jī)視覺(jué)、模式識(shí)別、數(shù)字圖像處理、數(shù)學(xué)等諸多領(lǐng)域?qū)W科內(nèi)容,雖然對(duì)該項(xiàng)技術(shù)的研究已取得一些成果,但在實(shí)際應(yīng)用中仍存在著不足和困難,比如人臉識(shí)別的背景環(huán)境,臉部表情、妝容、姿態(tài)、發(fā)型的變化,都會(huì)降低識(shí)別的準(zhǔn)確性,給識(shí)別帶來(lái)困難。降低識(shí)別錯(cuò)誤率、提高識(shí)別速度、實(shí)時(shí)性要求是人臉識(shí)別技術(shù)當(dāng)前迫切需要解決的問(wèn)題。1.3國(guó)外研究現(xiàn)狀20世紀(jì)60年代,人臉識(shí)別技術(shù)便已經(jīng)有人研究,但一直到80年代后期這段時(shí)間內(nèi)人臉識(shí)別技術(shù)都只是作為一般性的問(wèn)題研究,不能自動(dòng)完成識(shí)別任務(wù),沒(méi)有發(fā)表具有

13、代表性的理論研究成果。直到90年代后隨著計(jì)算機(jī)運(yùn)算速度的提高,人臉識(shí)別技術(shù)發(fā)展迎來(lái)了重大突破,誕生了許多代表性的算法,“特征臉”法1、基于線性判別分析的Fisherface方法,“作差法”,彈性圖匹配技術(shù)等等,使得人臉識(shí)別技術(shù)突飛猛進(jìn)。如今,人臉識(shí)別技術(shù)已被運(yùn)用到許多公眾場(chǎng)所,尤其是“911”事件后,國(guó)外很多大型公眾場(chǎng)合已經(jīng)應(yīng)用這一技術(shù)。美國(guó)等歐美國(guó)家在人臉識(shí)別技術(shù)有著較大的成就,早在90年代,美國(guó)軍方就組織了FERET人臉識(shí)別算法測(cè)試,對(duì)人臉識(shí)別技術(shù)起到積極的推進(jìn)。2000年后,人臉識(shí)別技術(shù)逐漸從學(xué)術(shù)研究走向商業(yè)應(yīng)用。如今,經(jīng)過(guò)幾十年的發(fā)展,人臉識(shí)別技術(shù)已經(jīng)被廣泛應(yīng)用到金融、安防等其他眾多領(lǐng)

14、域。14國(guó)內(nèi)研究現(xiàn)狀國(guó)內(nèi)對(duì)于人臉識(shí)別技術(shù)的研究開(kāi)始于上世紀(jì)80年代2,但到90年代后期才被許多院校和機(jī)構(gòu)普及,相比其他國(guó)家起步相對(duì)較晚,但是進(jìn)展迅速且成績(jī)斐然。如蘇光大教授提出的最佳二維人臉理論和MMP-PCA算法、李子青帶領(lǐng)的研究團(tuán)隊(duì)提出了基于近紅外的人臉識(shí)別技術(shù)、湯曉鷗實(shí)驗(yàn)室發(fā)表的DeepID系列算法等等,其中為08年奧運(yùn)會(huì)安保34提供保障的人臉識(shí)別系統(tǒng)和智能視頻監(jiān)控系統(tǒng)就是李子青教授在中科院自動(dòng)化所研發(fā)。不只是在學(xué)術(shù)研究上,在商業(yè)上,也涌現(xiàn)了很多科技公司專(zhuān)注于這項(xiàng)技術(shù)的研究,如商湯科技、依圖科技、曠視科技都是國(guó)內(nèi)研究人臉識(shí)別技術(shù)的知名企業(yè),且在該領(lǐng)域均取得不錯(cuò)的成績(jī),如依圖科技分別在20

15、17和2018的全球人臉識(shí)別挑戰(zhàn)賽FRPC比賽中獲得冠軍,在2018年的比賽測(cè)試結(jié)果顯示依圖科技的識(shí)別算法在千萬(wàn)分之一的誤報(bào)情況下識(shí)別準(zhǔn)確率接近99%,達(dá)到接近極限水平。而且根據(jù)NIST在2018年根據(jù)全球人臉識(shí)別算法測(cè)試情況發(fā)布的排名中,前五名中三名被中國(guó)公司包攬5。這些數(shù)據(jù)表明我國(guó)的人臉識(shí)別技術(shù)在國(guó)際上名列前茅。廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第二章需求分析人臉識(shí)別技術(shù)是近幾年人們的研究熱點(diǎn)和討論焦點(diǎn),它能應(yīng)用于許多領(lǐng)域,從一開(kāi)始的安防到如今的金融、教育、考勤等,目前我國(guó)和其他國(guó)家有大量的學(xué)者在不斷的深入研究。2.1技術(shù)可行性分析在著手開(kāi)發(fā)之前,我查閱了大

16、量資料,對(duì)比目前人臉識(shí)別技術(shù)的多種算法,卷積神經(jīng)網(wǎng)絡(luò)能對(duì)極少的預(yù)處理過(guò)的原始像素,快速識(shí)別出特征規(guī)律,因此選擇卷積神經(jīng)網(wǎng)絡(luò)算法做人臉識(shí)別。通過(guò)搭建一個(gè)多層網(wǎng)絡(luò)模型,對(duì)模型輸入人臉數(shù)據(jù)進(jìn)行訓(xùn)練,使模型能夠?qū)?shí)時(shí)視頻流中出現(xiàn)的人臉進(jìn)行準(zhǔn)確識(shí)別。訓(xùn)練模型需要準(zhǔn)備數(shù)據(jù)集,利用攝像頭收集身邊人的臉部圖片作為數(shù)據(jù)集,為了更好的驗(yàn)證模型,需要將數(shù)據(jù)集按照交叉驗(yàn)證原則劃分訓(xùn)練集、驗(yàn)證集和測(cè)試集三部分。采用交叉驗(yàn)證是因?yàn)槭謩?dòng)劃分?jǐn)?shù)據(jù)集可能會(huì)使數(shù)據(jù)分布不均勻,導(dǎo)致訓(xùn)練出來(lái)的模型偏向于數(shù)據(jù)較多的,造成在測(cè)試或在實(shí)際預(yù)測(cè)時(shí)數(shù)據(jù)較少的分類(lèi)不正確。交叉驗(yàn)證法通過(guò)不同比例對(duì)樣本進(jìn)行劃分,重復(fù)使用樣本數(shù)據(jù),能夠得到多組不同的

17、訓(xùn)練集和測(cè)試集,使模型訓(xùn)練效果更優(yōu)。許多機(jī)器學(xué)習(xí)算法不能直接對(duì)標(biāo)簽數(shù)據(jù)進(jìn)行操作。它們要求所有的輸入變量和輸出變量都為數(shù)字形式。one-hot編碼把分類(lèi)數(shù)據(jù)轉(zhuǎn)化為二進(jìn)制格式,分類(lèi)的輸入和輸出變量都是一樣的,供機(jī)器學(xué)習(xí)使用。圖像是由像素組成,彩色圖像由3個(gè)矩陣所構(gòu)成,即紅(R)、綠(G)、藍(lán)(B)三個(gè)顏色通道,每個(gè)像素矩陣的取值都0,255區(qū)間內(nèi)的整數(shù),因此當(dāng)訓(xùn)練數(shù)據(jù)的值較大時(shí),會(huì)導(dǎo)致模型的訓(xùn)練時(shí)間增加,速度變慢。因此需要將圖片像素歸一化,用于提升網(wǎng)絡(luò)收斂速度,減少網(wǎng)絡(luò)模型的訓(xùn)練時(shí)間。2.2系統(tǒng)需求分析程序功能需求分析整個(gè)程序的最終目的是能識(shí)別出人臉。首先通過(guò)攝像頭獲取人臉圖片,經(jīng)過(guò)圖像預(yù)處理后作

18、為模型后期訓(xùn)練的數(shù)據(jù),預(yù)處理模塊的好壞直接影響著模型的識(shí)別準(zhǔn)確率。接著利用keras框架搭建卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建一個(gè)18層的卷積網(wǎng)絡(luò)結(jié)構(gòu),并利用上述處理過(guò)的數(shù)據(jù)提供給模型進(jìn)行訓(xùn)練,選擇其中最優(yōu)的模型。這兩個(gè)模塊是實(shí)現(xiàn)人臉識(shí)別功能的基礎(chǔ)。所以本設(shè)計(jì)中所要完成的功能如下所述:人臉?shù)浫脒@個(gè)模塊是為了獲取圖片作為訓(xùn)練數(shù)據(jù),主要通過(guò)開(kāi)啟攝像頭后從視頻流中截取人臉圖片,并將截圖的人臉圖片獨(dú)立保存在文件夾中,文件夾以該人的名字命名;也可以直接導(dǎo)入人臉圖片。圖像預(yù)處理該模塊主要包括圖像的尺寸比例調(diào)整、交叉驗(yàn)證、改變維度順序、One-hot編碼、歸一化等。(3)人臉檢測(cè)該模塊采用OpenCV自帶的人臉檢測(cè)工具h(yuǎn)aa

19、rcascade_frontalface_alt2,檢測(cè)攝像頭的哪個(gè)區(qū)域?yàn)槿四?,可用于檢測(cè)靜止圖像,視頻和攝像頭所得到圖像中的人臉。(4)模型建立該模塊采用keras搭建CNN卷積神經(jīng)網(wǎng)絡(luò)框架,將預(yù)處理過(guò)的臉部圖像數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),對(duì)搭建的神經(jīng)網(wǎng)絡(luò)進(jìn)行模型訓(xùn)練,并評(píng)估模型的識(shí)別率,得到最終模型。2.3開(kāi)發(fā)環(huán)境需求Anaconda是一個(gè)開(kāi)源的集成各類(lèi)python工具的集成平臺(tái),包含了pyqt等大量包,提供包管理與環(huán)境管理功能,能很方便的配置程序設(shè)計(jì)所需的環(huán)境。程序設(shè)計(jì)采用Anaconda3作為開(kāi)發(fā)工具,內(nèi)置python版本為3.7,通過(guò)Anacondaprompt安裝tensorflow,num

20、py,keras,sklearn等第三方庫(kù)。值得注意的是不同版本的tensorflow要搭配對(duì)應(yīng)的python版本,安裝前最好上網(wǎng)先查詢(xún)二者對(duì)應(yīng)版本搭配,否則會(huì)耗費(fèi)大量時(shí)間在安裝上。廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 第三章系統(tǒng)概要設(shè)計(jì)本章節(jié)大致介紹了人臉識(shí)別系統(tǒng)的整體結(jié)構(gòu)設(shè)計(jì)流程以及圖像處理模塊運(yùn)用的原理。1)系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)如圖3.1所示圖3.1系統(tǒng)結(jié)構(gòu)設(shè)計(jì)圖2)圖像預(yù)處理模塊設(shè)計(jì)如圖3.2。圖3.2圖像預(yù)處理層次圖3.1各模塊功能介紹人臉?shù)浫肽K人臉采集模塊是為了獲取人臉圖片作為后期模型的訓(xùn)練數(shù)據(jù),人臉圖片可以從USB攝像頭實(shí)時(shí)截取,也可以從視頻中截取。利用

21、OpenCV的VideoCapture函數(shù)獲取攝像頭的視頻流,利用OpenCV自帶的人臉檢測(cè)工具h(yuǎn)aarcascade_frontalface_alt2檢測(cè)攝像頭的哪個(gè)區(qū)域?yàn)槿四槪M(jìn)行長(zhǎng)寬坐標(biāo)獲取后并截取人臉,將截取到的人臉寫(xiě)入到本地磁盤(pán),作為訓(xùn)練數(shù)據(jù)。搭建模型模塊該模塊的主要功能是進(jìn)行圖像數(shù)據(jù)處理并建立好模型,是實(shí)現(xiàn)人臉識(shí)別功能的重點(diǎn),有以下兩個(gè)子模塊:(1)數(shù)據(jù)預(yù)處理主要進(jìn)行圖像數(shù)據(jù)預(yù)處理,通過(guò)調(diào)整圖像的尺寸大小和比例縮放、劃分?jǐn)?shù)據(jù)集、獨(dú)熱編碼標(biāo)簽向量化、像素歸一化等一系列操作,將樣本處理成為可以被卷積神經(jīng)網(wǎng)絡(luò)讀取的數(shù)據(jù)類(lèi)型。(2)創(chuàng)建模型采用keras框架搭建CNN卷積神經(jīng)網(wǎng)絡(luò),搭建一個(gè)

22、4層convl+2層maxpool+2層dropout+2層dense+1層Flatten的以softmax函數(shù)作為輸出的多分類(lèi)網(wǎng)絡(luò)結(jié)構(gòu),采用預(yù)處理后的數(shù)據(jù)作為樣本數(shù)據(jù),對(duì)模型進(jìn)行訓(xùn)練;訓(xùn)練選擇隨機(jī)梯度下降法SGD+Momentum作為優(yōu)化器,以損失函數(shù)categorical_crossentropy作為優(yōu)化目標(biāo)度量模型擬合程度,選出最優(yōu)的模型參數(shù),再對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)增強(qiáng),通過(guò)圖片變化擴(kuò)充數(shù)據(jù)集,提供給fit_generator函數(shù)對(duì)模型進(jìn)行訓(xùn)練,最終將訓(xùn)練后的模型保存在程序目錄下。3.1.3人臉識(shí)別模塊同樣利用OpenCV的VideoCapture函數(shù)打開(kāi)攝像頭,用OpenCV的人臉檢測(cè)工具h(yuǎn)

23、aarcascade_frontalface_alt2,截取攝像頭中出現(xiàn)的人臉圖片,交予模型識(shí)別,并給出識(shí)別結(jié)果,將識(shí)別結(jié)果保存在對(duì)應(yīng)的excel文件中。第四章系統(tǒng)詳細(xì)設(shè)計(jì)本章節(jié)主要介紹圖像預(yù)處理和建立模型這兩方面進(jìn)行詳細(xì)介紹,對(duì)這兩模塊涉及到的相關(guān)原理算法進(jìn)行敘述。4.1整體運(yùn)行流程圖圖4.1系統(tǒng)運(yùn)行流程圖4.2圖像預(yù)處理設(shè)計(jì)調(diào)整圖像尺寸本程序設(shè)計(jì)的卷積神經(jīng)網(wǎng)絡(luò)中加入兩層全連接層,全連接層的輸入在網(wǎng)絡(luò)配置時(shí)便固定維數(shù),全連接層的核心操作就是矩陣向量乘積,即將輸入的特征圖矩陣和相應(yīng)權(quán)值矩陣進(jìn)行乘積運(yùn)算,矩陣之間的點(diǎn)積運(yùn)算要求兩個(gè)矩陣的維數(shù)相同,因此固定輸入數(shù)據(jù)的特征圖矩陣維數(shù),所以需要對(duì)圖像數(shù)

24、據(jù)進(jìn)行尺寸、比例調(diào)整。核心代碼如下:廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) defresize_image(image,height=IMAGE_SIZE,width=IMAGE_SIZE):top,bottom,left,right=(0,0,0,0)h,w,_=image.shape#獲取圖像尺寸longest_edge=max(h,w)#對(duì)于長(zhǎng)寬不相等的圖片,找到最長(zhǎng)的一邊#計(jì)算短邊需要增加多上像素寬度使其與長(zhǎng)邊等長(zhǎng)ifhlongest_edge:dh=longest_edge-htop=dh/2bottom=dh-topelifwlongest_edge:dw

25、=longest_edge-wleft=dw/2right=dw-leftelse:passBLACK=0,0,0#RGB顏色#給圖像短的兩邊增加邊界成為正方形,cv2.BORDER_CONSTANT指定所加邊界顏色為黑色constant=cv2.copyMakeBorder(image,top,bottom,left,right,cv2.BORDER_CONSTANT,value=BLACK)returncv2.resize(constant,(height,width)#調(diào)整圖像大小并返回圖像大小的調(diào)整利用tensorflow庫(kù)提供的resize()函數(shù),然而如果直接對(duì)圖像進(jìn)行resize

26、,會(huì)把圖像拉變形(圖4.3)。為了使圖像resize后仍然保持原始圖片的寬高比,我們需要為圖像較短的兩邊加黑框(圖4.4),使圖像變成正方形又不失真,最后再利用resize()函數(shù)進(jìn)行圖像比例縮放(圖4.5)。縮放成64*64的目的是為了減少計(jì)算量及內(nèi)存占用,提升后續(xù)網(wǎng)絡(luò)模型的訓(xùn)練速度。圖4.2200*300原始圖片圖4.3300*300正方形圖像圖4.4300*300正方形圖像圖4.564*64正方形圖像4.2.2交叉驗(yàn)證法劃分?jǐn)?shù)據(jù)集為了更充分利用有限的數(shù)據(jù),采用交叉驗(yàn)證來(lái)分割數(shù)據(jù)集,它的基本思想是從現(xiàn)有的數(shù)據(jù)集中,拿出大部分樣本(或者按比例)作為模型訓(xùn)練數(shù)據(jù)集,留小部分樣本用于驗(yàn)證模型。所

27、謂“交叉”,是指這一次作為訓(xùn)練模型的樣本,下次可能就是測(cè)試集的樣本,驗(yàn)證結(jié)果會(huì)與驗(yàn)證集的真實(shí)值比較并計(jì)算出誤差平方加和結(jié)果,這個(gè)過(guò)程會(huì)重復(fù)進(jìn)行,反復(fù)的進(jìn)行交叉驗(yàn)證,直至所有驗(yàn)證結(jié)果與真實(shí)值相同,驗(yàn)證結(jié)束。train_test_split()是Sklearn庫(kù)中交叉驗(yàn)證模塊提供的用于劃分?jǐn)?shù)據(jù)集的函數(shù),將數(shù)據(jù)的30%劃分為驗(yàn)證集,70%劃分為訓(xùn)練集,具體語(yǔ)句如下:train_images,valid_images,train_labels,valid_labels=train_test_split(images,labels,test_size=0.3,random_state=random.ra

28、ndint(0,100)參數(shù)test_size=0.3表示數(shù)據(jù)劃分的比例,參數(shù)random_state表示隨機(jī)選取1,100區(qū)間內(nèi)的整數(shù),每次都隨機(jī)從數(shù)據(jù)集中抽取數(shù)據(jù)建立訓(xùn)練集和驗(yàn)證集,導(dǎo)致每次訓(xùn)練的結(jié)果會(huì)有不同。_,test_images,_,test_labels=train_test_split(images,labels,test_size=0.5,random_state=random.randint(0,100)測(cè)試集同樣調(diào)用這個(gè)函數(shù),只不過(guò)選擇的比例為50%。4.2.3數(shù)據(jù)標(biāo)簽one-hot編碼對(duì)標(biāo)簽進(jìn)行獨(dú)熱編碼(One-hot)的原因是因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)采用分類(lèi)交叉熵(categ

29、orical_crossentropy)作為損失函數(shù),它要求訓(xùn)練樣本標(biāo)簽必須為one-hot編碼形式。One-hot編碼又稱(chēng)為獨(dú)熱編碼,它采用狀態(tài)寄存器的組織方式對(duì)狀態(tài)進(jìn)行編碼,用N位寄存器編碼N個(gè)狀態(tài),即每個(gè)狀態(tài)值對(duì)應(yīng)一個(gè)寄存器位,且任意時(shí)刻僅有一位有效。它先將每個(gè)分類(lèi)值映射成整數(shù)值,整數(shù)值再表示成二進(jìn)制形式,實(shí)際上就是將分類(lèi)變量表示為二進(jìn)制向量,使整數(shù)的索引設(shè)為1,其他全為0。程序輸入4張人臉,每張人臉為一類(lèi),一共4類(lèi),則用4個(gè)狀態(tài)位來(lái)表示,類(lèi)別狀態(tài)為0,1,2,3;0代表“archer”,1代表“miaor”,2代表“pangzi”,3代表“shouzi”。one-hot編碼會(huì)提供4個(gè)寄

30、存器位保存這4個(gè)狀態(tài),對(duì)這四個(gè)標(biāo)簽進(jìn)行One-hot編碼后,結(jié)果如表4.1One-hot編碼。表4.1One-hot編碼標(biāo)簽One-hot編碼01000101002001030001即標(biāo)簽的1在第幾位則代表第幾位有效,簡(jiǎn)單的說(shuō),One-hot編碼將數(shù)值變成了位置信息,使其向量化,方便卷積神經(jīng)網(wǎng)絡(luò)操作。4.2.5像素歸一化歸一化是為了簡(jiǎn)化計(jì)算,通過(guò)將數(shù)據(jù)統(tǒng)一處理為0,1之間的小數(shù),達(dá)到減低計(jì)算量的目的。周知圖像是由像素組成,彩色圖像由即紅(R)、綠(G)、藍(lán)(B)這3個(gè)像素矩陣所構(gòu)成,每個(gè)像素矩陣的取值都為0,255之間的整數(shù),因此當(dāng)訓(xùn)練數(shù)據(jù)的值為較大整數(shù)值時(shí),會(huì)使模型的訓(xùn)練速度變慢,即模型的訓(xùn)

31、練時(shí)間增加,因此對(duì)圖像數(shù)據(jù)進(jìn)行歸一化,目的就是為了提升網(wǎng)絡(luò)速度,減少訓(xùn)練時(shí)間。在整數(shù)形式的顏色空間中每個(gè)像素取值都是在0,255區(qū)間內(nèi)的整數(shù),而歸一化后是小數(shù)形式的顏色空間,因此需要先將數(shù)據(jù)形式浮點(diǎn)化,再歸一化。像素的歸一化用原始像素值除以所有原始像素值中的最大值來(lái)實(shí)現(xiàn),最大像素值一般為255,最小值為0。公式形式6如下:x,xX_minXmaxXmin(4-1)這里的X_min為0。爐是歸一化后的值,X_max和X_min分別表示樣本的最大最小值。歸一化后圖像的像素處于0-1.0范圍時(shí),依然介于0-255之間,圖像依舊有效的。廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣

32、東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) # 4.2.6補(bǔ)充說(shuō)明Keras是一個(gè)以tensorflow或theano作為后端引擎的模型庫(kù),只提供快速構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,不處理卷積和矩陣乘積等計(jì)算,而是把這些底層計(jì)算交給后端引擎來(lái)完成。后端引擎系統(tǒng)決定了圖像數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡(luò)時(shí)的維度順序,而theano和tensorflow的維度順序是不同的,theano是通道數(shù)、行數(shù)、列數(shù),而tensorflow為行數(shù)、列數(shù)、通道數(shù)。而不同版本的keras所支持的后端系統(tǒng)不一樣,因此需要先確定當(dāng)前安裝的keras采用的后端系統(tǒng),在進(jìn)行圖片預(yù)處理前把圖像數(shù)據(jù)修改成對(duì)應(yīng)后端引擎支持的維度順序。卷積神經(jīng)網(wǎng)絡(luò)模型的設(shè)計(jì)卷積神經(jīng)

33、網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)(ConvolutionalNeuralNetwork,簡(jiǎn)稱(chēng)CNN)是上世紀(jì)80年代科學(xué)家從對(duì)貓視覺(jué)皮層的研究受到啟發(fā)而誕生的算法,它能夠?qū)?shù)據(jù)進(jìn)行有效分類(lèi),普遍運(yùn)用在語(yǔ)音、圖像識(shí)別等領(lǐng)域。通過(guò)多層卷積、池化的堆疊使得卷積神經(jīng)網(wǎng)絡(luò)相比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)具有參數(shù)少、模型訓(xùn)練難度和復(fù)雜度低等優(yōu)點(diǎn)。一個(gè)卷積神經(jīng)網(wǎng)絡(luò)主要由以下5類(lèi)組成:(1)卷積層卷積層的作用是對(duì)圖片進(jìn)行局部特征提取,是CNN的核心層,作用是對(duì)圖片進(jìn)行局部特征提取。具體指輸出圖像的每個(gè)像素值都由輸入圖像對(duì)應(yīng)位置區(qū)域的像素通過(guò)加權(quán)所得,這個(gè)區(qū)域叫做局部感受野,區(qū)域的權(quán)值叫做卷積核,輸入圖像通過(guò)卷積運(yùn)算后再加上偏置項(xiàng),通過(guò)激活函

34、數(shù)得到其特征圖,卷積層的數(shù)學(xué)形式7如下:Xj=*叫j+bl)(4-2)其中:1為層數(shù);丐為卷積層1層的第j個(gè)特征圖;Mj為輸入層的感受野;K為卷積核;b為偏置;f為神經(jīng)元的激活函數(shù)。在數(shù)學(xué)上來(lái)說(shuō)卷積運(yùn)算是對(duì)兩個(gè)矩陣進(jìn)行的。如下圖所示8,用一個(gè)3*3的卷積核,卷積核內(nèi)的點(diǎn)與圖片上重合區(qū)域的每個(gè)像素值做乘積加和運(yùn)算后再加上偏置,作為輸出圖片中的一個(gè)像素值。3*(-1)+iI+圖4.6圖像矩陣與卷積核的點(diǎn)積運(yùn)算(2)池化層圖像經(jīng)過(guò)卷積之后獲得了多個(gè)特征圖,但是與原始圖像相比特征圖的尺寸并沒(méi)有改變,所以數(shù)據(jù)運(yùn)算量依舊很大。為了降低運(yùn)算量,通常會(huì)在卷積層后加入下采樣層。下采樣層也叫池化層,主要功能是對(duì)經(jīng)

35、過(guò)卷積層特征提取后的圖像矩陣進(jìn)行信息過(guò)濾,去除冗余信息,只保留主要特征,減少網(wǎng)絡(luò)中的參數(shù)和計(jì)算次數(shù),防止模型過(guò)擬合。常見(jiàn)的池化操作方法有平均值池化(AveragePooling)和最大值池化(MaxPooling)。AveragePooling保留圖像的背景信息,它是通過(guò)計(jì)算覆蓋區(qū)域的平均值作為池化后的值。而MaxPooling能夠保留圖像的邊緣和紋理信息,它是通過(guò)選取覆蓋區(qū)域的最大值作為區(qū)域池化后的值。3629123205016170MaxPoolin呂6967圖4.7最大池化法廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 圖4.8平均池化法雖然卷積層和池化層都是提取圖像

36、特征,但二者略有區(qū)別,卷積層是通過(guò)卷積核逐個(gè)像素滑動(dòng)覆蓋達(dá)到目的,而池化層則是按照池化窗口逐塊覆蓋特征圖的方式提取該區(qū)域內(nèi)的代表性特征。(3)Dropout層在神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練過(guò)程中,如果提供給模型、的訓(xùn)練樣本數(shù)太少,容易導(dǎo)致訓(xùn)練后模型泛化能力差,產(chǎn)生過(guò)擬合現(xiàn)象。過(guò)擬合現(xiàn)象是指模型在訓(xùn)練集上預(yù)測(cè)效果比在未知數(shù)據(jù)集(測(cè)試集)上預(yù)測(cè)的效果好。這種現(xiàn)象是模型過(guò)度依賴(lài)現(xiàn)有訓(xùn)練數(shù)據(jù)集的特征造成的。為了防止過(guò)擬合現(xiàn)象發(fā)生,在神經(jīng)網(wǎng)絡(luò)中加入Dropout層,在諸多過(guò)擬合問(wèn)題的解決方案中,Dropout以其具有簡(jiǎn)單性和效果良好而被廣泛運(yùn)用。Dropout的關(guān)鍵思想9是在訓(xùn)練過(guò)程中從神經(jīng)網(wǎng)絡(luò)中隨機(jī)刪除單元以及它

37、們的連接,即在訓(xùn)練過(guò)程中,以概率p舍棄神經(jīng)元并讓其它神經(jīng)元以概率q=1-p保留,這樣每一次數(shù)據(jù)訓(xùn)練都為一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),相當(dāng)于訓(xùn)練多個(gè)不同結(jié)構(gòu)的網(wǎng)絡(luò)并集成一體,這樣可以使模型的泛化能力更強(qiáng),防止單一網(wǎng)絡(luò)結(jié)構(gòu)過(guò)擬合圖4.9Dropout前后神經(jīng)元數(shù)對(duì)比圖4)Flatten層經(jīng)過(guò)多次的卷積、池化之后,在卷積神經(jīng)網(wǎng)絡(luò)中流動(dòng)的數(shù)據(jù)依舊是三維的(圖4.10),然全連接層接收的輸入要求是一維的數(shù)據(jù),因此必須將多維數(shù)據(jù)“壓平”即進(jìn)行一維化處理后才能作為全連接層的輸入。即將(height,width,channel)的數(shù)據(jù)壓縮成長(zhǎng)度為heightxwidthxchannel的一維數(shù)組就是Flatten層的作用。L

38、*yrtyp町WtputShvptParfflfeenv2d1(匸dnvJip(Ndrit64.S4j32)B96aetivatleii_l(Aftlvatlan)仙吟64pE4j32)0conv2d_2(Conv2D(Fione,62r62332)activation_2:(Acti*四tian)(None,62.32)0ing2d&L(MaxPoo1止ngZ(Hone,31,31j32)0dropcut_l(Dropout)(rione31|31,32)0conv2d_3(ConviD)(Mont,乩31jS4)1B4WartivsticnSJActivstian)(None-,31,31

39、.64)9CCnvZd(COr1v2D)(Hen29pd64)activation_4(Actlvationi)(None,13f幼64)0ing?d_2(HajsPooling;(Nantj.14,堪M)&dropouit(Draut)(Norttj黔64)(Flatten)(FJOheb12544)圖4.10多維數(shù)據(jù)一維化(5)全連接層經(jīng)過(guò)前面若干層卷積+池化的特征提取后,全連接層的作用是把前面提取的“好”的局部特征進(jìn)行重新整合成完整的圖,并舍棄掉“不好”的特征,然后再交給softmax函數(shù),完成最終分類(lèi)。Softmax用于多分類(lèi)任務(wù),它將每個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi),從而得到當(dāng)

40、前樣例中不同種類(lèi)的概率分布情況,Softmax函數(shù)形式如下:(4-3)其中:葉代表第L層第j個(gè)神經(jīng)元輸出,年代表第L層第j個(gè)神經(jīng)元的輸入,用單個(gè)神經(jīng)元的輸入結(jié)合常數(shù)e做指數(shù)運(yùn)算,并把運(yùn)算結(jié)果除所有L層神經(jīng)元的指數(shù)運(yùn)算之和,得到一個(gè)介于0,1之間的浮點(diǎn)值號(hào),從softmax的數(shù)學(xué)形式我們可以得出所有神經(jīng)元輸出之和應(yīng)為1,即Y糾a右=1(4-4)因此公式號(hào)=(4-3所求的值就是第j個(gè)神經(jīng)元占全部神經(jīng)元輸出的比重。站在分類(lèi)的角度,第j個(gè)神經(jīng)元的輸出值越大,占總神經(jīng)元輸出的百分比越高,被預(yù)測(cè)為真實(shí)類(lèi)別的概率就越大。因此,經(jīng)過(guò)分類(lèi)層softmax函數(shù)后,最大概率者即為模型預(yù)測(cè)類(lèi)別。4.3.2模型設(shè)計(jì)卷積

41、神經(jīng)網(wǎng)絡(luò)的特點(diǎn)10是逐層提取特征,第一層提取的特征較為低級(jí),第二層在第一層的基礎(chǔ)上繼續(xù)提取更高級(jí)別的特征,第三層在第二層的基礎(chǔ)上提取的特征廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 也更為復(fù)雜,以此類(lèi)推,越高級(jí)的特征越能體現(xiàn)出圖像的類(lèi)別屬性,卷積神經(jīng)網(wǎng)絡(luò)正是通過(guò)逐層卷積的方式提取圖像的優(yōu)良特征。通過(guò)keras庫(kù)的序貫?zāi)P?Sequential)來(lái)堆疊多個(gè)網(wǎng)絡(luò)層來(lái)構(gòu)建出深度神經(jīng)網(wǎng)絡(luò),keras.models和keras.layers庫(kù)用于建立并訓(xùn)練模型,通過(guò).add()方法將layer一個(gè)個(gè)的加入模型中。本程序搭建的CNN卷積網(wǎng)絡(luò)模型如表4.2所示,包括4個(gè)convl+2個(gè)

42、maxpool+3個(gè)dropout+2個(gè)dense+1個(gè)flatten+1個(gè)softmax總共18層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)分為三部分,輸入圖像為64x64像素的RGB圖像。第一部分為2個(gè)convl層、1個(gè)maxpool層和dropout層,卷積核個(gè)數(shù)為32個(gè),大小為3x3,首個(gè)卷積層的參數(shù)個(gè)數(shù)為(33+1)X32=896,采用保留邊界特征的方式卷積計(jì)算,這樣輸入和輸出尺寸會(huì)保持一致。MaxPooling(2,2)為采取池化尺寸窗口為2x2的最大池化法,因此經(jīng)過(guò)池化層后圖像從64x64像素變?yōu)?2x32大小。第二部分跟第一部分相同,不同的是卷積層的卷積核個(gè)數(shù)為64,大小不變。第三部分包括

43、1個(gè)flatten層,2個(gè)dense層和1個(gè)dropout層,dense(512)表示512個(gè)神經(jīng)元,dense(4)表示分為四個(gè)類(lèi),最后使用softmax進(jìn)行分類(lèi);第一、二部分池化層后加入0.25比例的dropout層,第三部分dense層后加入0.5比例的dropout層。激活函數(shù)Relu是一種非線性函數(shù),在卷積層、全連接層后加入Relu是在神網(wǎng)絡(luò)中引入非線性,因?yàn)樯窠?jīng)網(wǎng)絡(luò)的計(jì)算是線性的,無(wú)法模擬非線性的關(guān)系,線性神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力非常有限,所以引入非線性,使神經(jīng)元適應(yīng)復(fù)雜的非線性問(wèn)題,強(qiáng)化神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)能力。表4.2網(wǎng)絡(luò)模型結(jié)構(gòu)層數(shù)功能描述1輸入圖像(64*64*3)2Convol(32,

44、3,3)第一部分3Relu4Convol2D(32,3,3)5Relu6MaxPooling(2,2)7Droupt(0.25)8Convol(64,3,3)第二部分9Relu10Convol(64,3,3)11Relu12MaxPooling(2,2)13Droupt(0.25)14Flatten()第三部分15Dense(512)16Relu17Droupt(0.5)18Dense(4)19softmax輸出層4.3.3模型訓(xùn)練(1)優(yōu)化器選擇設(shè)計(jì)卷積神經(jīng)網(wǎng)絡(luò)采用softmax函數(shù)作為輸出層的激激函數(shù),使模型可以用于處理多分類(lèi)任務(wù),該函數(shù)選擇多類(lèi)別交叉熵(categorical_cross

45、entropy)作為損失函數(shù),數(shù)學(xué)形式如下:厶=-kyklg(s(lk)(4-5)其中:S(lk)表示softmax函數(shù)輸出層的神經(jīng)元,K個(gè)神經(jīng)元對(duì)應(yīng)k個(gè)類(lèi)別,兒為One-hot編碼后的標(biāo)簽,目標(biāo)類(lèi)的兒為1,其他類(lèi)的坯為。選擇隨機(jī)梯度下降法SGD結(jié)合動(dòng)量Momentum作為損失函數(shù)的優(yōu)化算法,作用是在模型訓(xùn)練過(guò)程的每次更新時(shí)隨機(jī)選擇一個(gè)樣本進(jìn)行梯度下降,調(diào)整參數(shù)(權(quán)重和偏置值)使其最優(yōu),確保e值最小。隨機(jī)梯度下降法的基本思想是只隨機(jī)選取訓(xùn)練集中的一個(gè)樣本來(lái)學(xué)習(xí),每次迭代只是考慮當(dāng)前樣本點(diǎn),而不管其他的樣本點(diǎn),這樣當(dāng)訓(xùn)練數(shù)據(jù)太多時(shí),可以快速收斂,提高學(xué)習(xí)速度。但缺點(diǎn)也很明顯,每次梯度下降的方向完

46、全依賴(lài)當(dāng)前的訓(xùn)練樣本(batch),導(dǎo)致收斂過(guò)程曲折,模型迭代次數(shù)增多。為使優(yōu)化更加穩(wěn)定,引入動(dòng)量(Momentum),Momentum的概念來(lái)自于物理學(xué)的力學(xué),其基本原理是模擬物體運(yùn)動(dòng)時(shí)的慣性,即讓優(yōu)化器在每次更新時(shí)保留一定范圍的上一輪更新后的方向,同時(shí)又根據(jù)這一輪的樣本調(diào)整最終優(yōu)化方向,這樣能增加穩(wěn)定性又能提高模型學(xué)習(xí)速度,避免陷入局部最優(yōu)陷阱。利用keras庫(kù)提供的model.fit_generator()函數(shù)開(kāi)始模型訓(xùn)練。self.model.fit_generator(datagen.flow(dataset.train_images,dataset.train_labels,bat

47、ch_size=batch_size),samples_per_epoch=dataset.train_images.shape,nb_epoch=nb_epoch,validation_data=(dataset.valid_images,dataset.valid_labels)參數(shù)nb_epoch指定模型需要進(jìn)行多少輪次的訓(xùn)練,一輪次訓(xùn)練為訓(xùn)練集全部樣本訓(xùn)練一次。廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文)廣東東軟學(xué)院本科畢業(yè)設(shè)計(jì)(論文) 參數(shù)batch_size指定每次迭代訓(xùn)練樣本的數(shù)量。為了使模型訓(xùn)練到最優(yōu),在每一輪次的訓(xùn)練中還要進(jìn)行多次的迭代訓(xùn)練,事實(shí)上每次迭代訓(xùn)練后,模型在理論上應(yīng)該朝梯度下

48、降的方向前進(jìn)一步,直到所有樣本數(shù)據(jù)訓(xùn)練完畢,模型梯度降到本輪訓(xùn)練最低點(diǎn),訓(xùn)練到此完成,將最終模型保存在程序目錄下,存儲(chǔ)形式為高壓縮效率的HDF5。(2)訓(xùn)練結(jié)果模型訓(xùn)練完成后,還需要對(duì)模型進(jìn)行評(píng)估,通過(guò)keras提供的model.evaluate評(píng)估函數(shù)。模型訓(xùn)練的數(shù)據(jù)通過(guò)人臉采集模塊獲取,選取4個(gè)人的4張人臉,每張人臉500張圖像數(shù)據(jù),總共2000張圖片作為樣本數(shù)據(jù),在人臉識(shí)別系統(tǒng)中每張人臉為一個(gè)類(lèi)別,總共4個(gè)類(lèi)別。將處理過(guò)的圖像數(shù)據(jù)傳入網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,訓(xùn)練結(jié)果如下:Layer(type)OutpuShapeParam#conv2d_9(Ccnr2D)(Nonej646432)896act

49、ivaitian_l3(Activation)(None見(jiàn)64-t32)0conv2d_l(Conv2&)(Nonej62j62t32)924Sact!vation14(Activation)(None6262T32)0max_pooling2d_5MaxRooling2(Nonej313132)0dropout_7(Dropout)(None31t31t32)conv2d_ll(Conv2&)(Nonej313164)1B496activaHtion15(Activation)(None31t31tSi)oconv2d_12(Conv2D)(Nonej29j2964)3692Bmctivat

50、ion_16(Activation)(Nonej29j29旳max_pooling2d_6MasRooling2(Nonej14j1464)dropoutS(Dirop-ou)(Nonej14j146+)flatten_3(Flatten)(Nonej12544)0dense_5(Dense)(Nonej512)6423MOactivation_17(Activation)(Nonej512)0drop-out_9(Dropout)(Nonej512)0dense_丘(Deiiise)(NtonSj4)2052activation_lft(Activation)(NIonej4)0Totalp

51、arams:6490669Trainableparams:6j490j66Mon-trainableparams:&圖4.11神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以清晰的看到網(wǎng)絡(luò)模型的基本結(jié)構(gòu)信息,包括網(wǎng)絡(luò)層類(lèi)型、輸出數(shù)據(jù)的維度、每層訓(xùn)練參數(shù)個(gè)數(shù)、總訓(xùn)練參數(shù)個(gè)數(shù)。35/35-952&3ms/sttp-loss;0P61&BDEC;-vial1055E0r&0&7-V&1acc::r5133Epoch2/835/35232H1/!tE!p-0.1S29-日匚匚:0.9471-al_09635-甸匚_accs0.9933一JEpoch3/S35/35一-5234m5/5trp-10-55:0用眈-see:Br9871-

52、vial_.1055;3出贛-vd!_acc:Br996?Epoch4/E35/35=-站232fl/tep-1.935-a匚口0.SA43-曲1.lo嘉:0.3259-*Udla匚匚;:0.9167Epoch5/835/35-&5230ms/sttp-loss;0P20B-&cc:0,9343-vial1O55E9re&34-V&1accqBr9933EpochB/S35/35r-0.1換-日匚匚:0.9757-al_00659-甸匚_accs0.9933.-一JEpoch7/835/35一一-&5230ui5/5trp-10-55:06998-see:Br9871-vial_.1055;0

53、653-vd!_acc::仇mm鈿EpochB/S35/35:-SS23鬧才即-0.593-a匚口a.9SB6-曲1-0.0453-工匚匕:0.9933圖4.12模型訓(xùn)練結(jié)果每輪再循環(huán)35次整個(gè)模型訓(xùn)練完成一共進(jìn)行8輪次訓(xùn)練(nb_epoch=8),迭代訓(xùn)練,每次迭代使用20個(gè)樣本數(shù)據(jù)(batch_size=20),結(jié)果如表4.3所示(以最后一輪的訓(xùn)練結(jié)果為例):表4.3模型評(píng)估結(jié)果訓(xùn)練誤差(loss)0.0593訓(xùn)練準(zhǔn)確率(acc)0.9886驗(yàn)證誤差(valloass)0.0453驗(yàn)證準(zhǔn)確率(valacc)0.9933最終評(píng)估模型的準(zhǔn)確率為99.60%。1.4&9trainsamplesvalidwnmplus1-00testsamples

溫馨提示

  • 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)論