基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)_第1頁
基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)_第2頁
基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)_第3頁
基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)_第4頁
基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于MTCNN的人臉識別系統(tǒng)設(shè)計與實現(xiàn)摘要隨著數(shù)字化時代的到來,計算機技術(shù)已經(jīng)極大地改變了我們的生活和工作方式。在眾多技術(shù)革新中,人臉識別技術(shù)因其在安全和認證方面的潛力而成為了研究的熱點。計算機技術(shù)的進步為各行各業(yè)帶來了根本性的變化,推動了社會進入數(shù)字化的新紀元。臉識別技術(shù)最近成為了安全領(lǐng)域的關(guān)鍵研究議題,它涉及到對人臉的精確定位和識別。在進行人臉識別之前,必須首先確定圖像中人臉的位置、方向和數(shù)量等基本信息,這是人臉識別流程的基礎(chǔ)。由于實際應(yīng)用中人臉識別環(huán)境的多變和復(fù)雜,人臉識別系統(tǒng)需要具備強大的魯棒性和高效的檢測能力。人臉識別的應(yīng)用已經(jīng)不局限于門禁系統(tǒng),它在內(nèi)容檢索、數(shù)字視頻處理和視頻監(jiān)控等多個領(lǐng)域展現(xiàn)出了其獨特的價值和廣泛的應(yīng)用潛力。人臉識別技術(shù)正在與多種應(yīng)用場景融合,推動了安全認證、智能監(jiān)控和個性化服務(wù)等方面的發(fā)展。本文的主要研究內(nèi)容為:由于人臉識別存在容易受到外在因素影響的問題,特別是對遮擋、光線、表情等,是的準確率并不是很高,因此,本文在人臉識別之前,需要首先對人臉進行檢測,以提高識別精度,通過對已出現(xiàn)的大多數(shù)算法進行對比分析,最終本文采用MTCNN算法,相比于傳統(tǒng)的人臉檢測算法,MTCNN擁有更高的準確率和更快的處理速度。將MTCNN的人臉圖像處理結(jié)果送入FaceNet中識別。FaceNet通過深度學(xué)習(xí)算法,將人臉圖像轉(zhuǎn)換成一個數(shù)值空間(向量)中的點,這個空間是預(yù)先定義好的歐幾里得空間。在這個空間中,人臉圖像點之間的距離可以量化為相似度的度量,距離越近表示人臉越相似。一旦建立了這樣的映射關(guān)系,執(zhí)行人臉識別、驗證和聚類等任務(wù)就變得相對簡單。通過MTCNN+FaceNet的結(jié)合,提高人臉識別系統(tǒng)對外在因素影響下的識別準確率。最后,本文基于多種情況對人臉識別系統(tǒng)進行測試,如:遮擋、搞怪表情、光線、多人臉、流媒體等外在因素,結(jié)果表現(xiàn)良好,能較好的處理發(fā)雜人臉的情況。關(guān)鍵詞:人臉識別,MTCNN,F(xiàn)aceNet,圖像處理AbstractWiththeadventofthedigitalage,computertechnologyhasdramaticallychangedthewayweliveandwork.Amongthemanytechnologicalinnovations,facialrecognitiontechnologyhasbecomearesearchhotspotduetoitspotentialintermsofsecurityandauthentication.Advancesincomputertechnologyhavebroughtfundamentalchangestoallwalksoflife,pushingsocietyintoaneweraofdigitalization.Facialrecognitiontechnologyhasrecentlybecomeakeyresearchtopicinthefieldofsecurity,whichinvolvestheprecisepositioningandrecognitionoffaces.Beforeperformingfacerecognition,basicinformationsuchastheposition,orientation,andnumberoffacesintheimagemustfirstbedetermined,whichisthebasisofthefacerecognitionprocess.Duetothechangeableandcomplexfacerecognitionenvironmentinpracticalapplications,thefacerecognitionsystemneedstohavestrongrobustnessandefficientdetectioncapabilities.Theapplicationoffacerecognitionisnotlimitedtoaccesscontrolsystems,ithasshownitsuniquevalueandwideapplicationpotentialinmanyfieldssuchascontentretrieval,digitalvideoprocessingandvideosurveillance.Facialrecognitiontechnologyisbeingintegratedwithavarietyofapplicationscenarios,promotingthedevelopmentofsecurityauthentication,intelligentmonitoring,andpersonalizedservices.Themainresearchcontentsofthispaperareasfollows:Becausefacerecognitionissusceptibletotheproblemofexternalfactors,especiallyforocclusion,light,expression,etc.,theaccuracyrateisnotveryhigh,therefore,beforefacerecognition,thispaperneedstodetectthefacefirst,inordertoimprovetherecognitionaccuracy,throughthecomparativeanalysisofmostofthealgorithmsthathaveappeared,finallythispaperusestheMTCNNalgorithm,comparedwiththetraditionalfacedetectionalgorithm,MTCNNhasahigheraccuracyandfasterprocessingspeed.Oncesuchamappingisestablished,itbecomesrelativelysimpletoperformtaskssuchasfacerecognition,validation,andclustering.TFinally,thispaperteststhefacerecognitionsystembasedonavarietyofsituations,suchasocclusion,streamingmediaandotherexternalfactors,andtheresultsshowgoodperformanceandcanbetterdealwiththesituationofmixedfaces.Keywords:FaceRecognition,MTCNN,FaceNet,ImageProcessing前言在當今數(shù)字化時代,人臉識別技術(shù)已成為安全監(jiān)控、身份驗證、社交網(wǎng)絡(luò)互動等多個領(lǐng)域的關(guān)鍵技術(shù)。隨著深度學(xué)習(xí)的發(fā)展,人臉識別的準確性和效率都有了顯著提升,但仍然面臨著復(fù)雜環(huán)境下的檢測準確性和實時性等挑戰(zhàn)。為了解決這些問題,本研究采用了一種先進的深度學(xué)習(xí)算法——多任務(wù)級聯(lián)卷積網(wǎng)絡(luò)(MTCNN),旨在構(gòu)建一個高效且準確的人臉識別系統(tǒng)。MTCNN算法通過其獨特的級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)和多任務(wù)學(xué)習(xí)方法,不僅能夠精確地檢測出圖像中的人臉,還能同時定位關(guān)鍵點,為人臉對齊和識別提供了強有力的支持。該算法在多個公開的人臉檢測數(shù)據(jù)集上展現(xiàn)了卓越的性能,證明了其在實際應(yīng)用中的潛力。本論文的目的是探索MTCNN在人臉識別系統(tǒng)中的應(yīng)用,并針對特定應(yīng)用場景進行優(yōu)化,以提高系統(tǒng)在實際環(huán)境中的表現(xiàn)。我們將詳細介紹MTCNN的工作原理,探討其在人臉檢測和關(guān)鍵點定位方面的優(yōu)勢,并在此基礎(chǔ)上提出改進策略,以進一步提升算法的檢測速度和準確率。本文首先回顧了人臉識別技術(shù)的發(fā)展歷程和當前面臨的挑戰(zhàn),然后詳細介紹了MTCNN算法的結(jié)構(gòu)和原理。接下來,我們將展示如何使用MTCNN構(gòu)建人臉識別系統(tǒng),并在特定數(shù)據(jù)集上進行實驗評估。最后,我們將討論實驗結(jié)果,分析系統(tǒng)性能,并提出未來工作的方向。通過本研究,我們期望為人臉識別技術(shù)的發(fā)展貢獻新的思路和方法,推動其在更廣泛領(lǐng)域的應(yīng)用。 1緒論1.1研究背景及意義1.1.1研究背景隨著人工智能的快速發(fā)展,人臉識別技術(shù)(FaceRecognitionTechnology)REF_Ref164263440\r\h[1]已經(jīng)在社會安防、智能家居、金融支付、教育醫(yī)療、交通導(dǎo)航、刑事偵查等領(lǐng)域得到廣泛應(yīng)用。人臉識別技術(shù)是一種基于人臉圖像的身份識別和驗證技術(shù),它具有唯一性、簡便性、非侵入性和安全性等優(yōu)勢,因此在安全、便捷和個性化服務(wù)領(lǐng)域有著廣泛的應(yīng)用前景。隨著人工智能的快速發(fā)展和計算機視覺算法的不斷改進,人臉識別技術(shù)將進一步提升其準確性、穩(wěn)定性和適應(yīng)性,推動其在各個領(lǐng)域的更廣泛應(yīng)用。Minaee等人對包括人臉在內(nèi)的120多項生物特征識別的前景工作進行了全面調(diào)查,闡述了人臉識別技術(shù)的重要性。然而,低質(zhì)量/低分辨率人像問題的存在對于人臉識別系統(tǒng)的準確性和可靠性構(gòu)成了挑戰(zhàn)。低質(zhì)量人像是指由于圖像質(zhì)量較差或其他因素導(dǎo)致的難以準確識別的人臉圖像。為了應(yīng)對此類問題,除需要采取一些圖像增強技術(shù)、質(zhì)量評估算法和更高質(zhì)量的圖像采集設(shè)備來提高人臉圖像的質(zhì)量以外,在算法層面上進行優(yōu)化和創(chuàng)新是必要的。現(xiàn)有的人臉識別實際場景應(yīng)用中,圖像存在像素丟失和細節(jié)損失問題,人臉特征難以從中提取和匹配,降低了人臉特征的表現(xiàn)能力,增加了對抗攻擊的風(fēng)險以及降低了數(shù)據(jù)的可靠性。低質(zhì)量人像修復(fù)為高分辨率人像的必要性主要有三方面:首先,修復(fù)低分辨率人臉圖像可以提高特征提取和匹配的準確性,避免特征丟失和模糊導(dǎo)致的性能降低。其次,修復(fù)低質(zhì)量人像可提高識別率和召回率,減少誤識別和漏識別的情況,提高人臉識別系統(tǒng)的整體性能。最后,高分辨率人臉圖像能夠提供更多的細節(jié)信息,改善用戶體驗和各種應(yīng)用場景的可靠性和精確性。對于低質(zhì)量人像識別問題,從維度角度研究有二維方法和三維方法。二維方法有局部二值模式LBP、主成分分析PCA、線性判別分析LDA等,這些二維方法能夠從二維的人臉圖像中提取出重要的特征信息,在對高質(zhì)量、正面、低姿態(tài)的人臉圖像表現(xiàn)出較好的識別能力,但對于光照變化、遮擋、姿態(tài)變化等因素敏感,可能導(dǎo)致誤識別和漏識別的問題。為了克服這些問題,進一步研究和探索結(jié)合三維信息和深度學(xué)習(xí)的方法是當前的熱點。三維人臉識別能夠更準確地捕捉到人臉的形狀和細節(jié),具有更高的魯棒性和抗攻擊性,例如3DMM、FGNet、FaceVerse等。但三維人臉也有不足,當進行三維人臉重建時,因訓(xùn)練數(shù)據(jù)的類型、數(shù)量以及線性基的存在,限制了模型的表達能力。因此如何利用三維信息作為下游任務(wù)的先驗輸入仍具有一定的研究意義。近年來,深度學(xué)習(xí)REF_Ref164263536\r\h[2]在人臉識別工作中的引入將高分辨率的性能提升到了新階段。在過去幾十年中,人臉識別技術(shù)因其能夠從人臉圖像中高效提取豐富的特征信息而成為生物識別領(lǐng)域中的一個突出分支,在計算機視覺和模式識別學(xué)科中占據(jù)了重要地位。人臉識別技術(shù)因其直觀和信息豐富的特性,成為生物識別方法中研究的熱點。人臉識別涵蓋了計算機視覺、機器學(xué)習(xí)、模式識別以及心理學(xué)等多個學(xué)科領(lǐng)域。作為一種生物識別技術(shù),人臉識別依據(jù)個體獨特的面部特征進行身份驗證。人臉識別技術(shù)的實施簡單,因為人臉圖像容易獲取,且成本相對較低。在進行身份鑒定時,人臉識別技術(shù)不需要與被識別個體發(fā)生物理接觸。由于其便捷性和有效性,人臉識別已被廣泛應(yīng)用于多個領(lǐng)域,包括但不限于犯罪偵查、視頻監(jiān)控智能化、增強人機交互體驗、身份驗證對比、以及社交娛樂平臺等。1.1.2研究意義人臉識別技術(shù)在我國經(jīng)濟建設(shè)、社會生活和基礎(chǔ)設(shè)施等領(lǐng)域的應(yīng)用越來越廣泛,成為重要的基礎(chǔ)性研究課題。它在金融、醫(yī)療、航天、軍隊、教育等領(lǐng)域發(fā)揮著重要作用,為國民經(jīng)濟的可持續(xù)發(fā)展提供了堅實的技術(shù)支持。然而,在實際應(yīng)用中,由于綜合因素,人臉圖像往往出現(xiàn)模糊和低質(zhì)量問題,導(dǎo)致驗證準確度下降。這阻礙了人臉識別技術(shù)的發(fā)展,可能被不法分子利用,造成嚴重后果。為提高識別驗證準確度和系統(tǒng)安全性,對低質(zhì)量人臉圖像的高分辨率修復(fù)至關(guān)重要。高分辨率人臉圖像修復(fù)能有效恢復(fù)細節(jié)信息,提升圖像質(zhì)量和清晰度,為人臉識別技術(shù)發(fā)揮更大應(yīng)用價值提供基礎(chǔ)。通過修復(fù)低質(zhì)量人臉圖像,提高信息和數(shù)據(jù)利用,充分發(fā)揮應(yīng)用價值。同時,這也是從源頭加強安全保護的措施,防止利用低分辨率圖像進行非法操作,避免嚴重后果。修復(fù)低分辨率人臉圖像是提升人臉識別技術(shù)應(yīng)用價值和加強系統(tǒng)安全性的重要基礎(chǔ)。因此,本論文本研究針對現(xiàn)有人臉識別方法在精準度、檢測效率以及二維圖像特征表達方面的不足,提出了一系列解決方案。首先,基于MTCNN的人臉識別方法提高了檢測效率,其次,將MTCNN算法應(yīng)用于人臉識別系統(tǒng)中,并對其進行了詳細的探究和評估,從而提高了識別準確率和系統(tǒng)穩(wěn)定性。這些方法的提出與改進為人臉識別技術(shù)的進步提供必要的理論和實踐支持。1.2研究現(xiàn)狀1.2.1人臉識別技術(shù)研究現(xiàn)狀人臉識別技術(shù)最初在美國得到發(fā)展和應(yīng)用,而中國雖然較晚開始接觸這項技術(shù),但通過國內(nèi)科研工作者和學(xué)術(shù)專家的不懈努力與持續(xù)研究,中國在人臉識別領(lǐng)域已經(jīng)取得了顯著成就,并在技術(shù)上達到了國際領(lǐng)先水平。在中國,盡管指紋識別技術(shù)是最早從人工識別向計算機智能化轉(zhuǎn)變的生物識別技術(shù),但人臉識別技術(shù)因其獨特的優(yōu)勢,在實際應(yīng)用中逐漸顯現(xiàn)出其重要性。指紋識別技術(shù)開啟了中國生物識別技術(shù)的計算機智能化進程。隨著社會發(fā)展,對人臉識別技術(shù)的實際需求逐漸增長。中國人臉識別技術(shù)的持續(xù)進步預(yù)示著未來發(fā)展的“三化兩合”趨勢,即技術(shù)的主流化、芯片化、標準化,以及與其他生物特征技術(shù)的融合和與REID(Re-identification,即行人重識別)技術(shù)的結(jié)合。人臉識別技術(shù)預(yù)計將與其他生物識別特征如虹膜、聲紋等進行更深層次的融合,并與REID技術(shù)聯(lián)合,以提升識別的準確性和應(yīng)用范圍。全球范圍內(nèi),人臉識別技術(shù)的研究正蓬勃發(fā)展。發(fā)達國家如美國、德國、日本,以及若干發(fā)展中國家,都投入了專門的研究機構(gòu)和人才進行深入探索。美國在人臉識別技術(shù)的發(fā)展歷程中占據(jù)著先驅(qū)者的地位,并且在技術(shù)應(yīng)用和研發(fā)方面始終保持著全球領(lǐng)先地位。早在1993年,美國國防部就啟動了FERET項目REF_Ref164263629\r\h[3],為其之后的生物智能識別技術(shù)奠定了基礎(chǔ),推動人臉識別技術(shù)從初始階段提升到原型系統(tǒng)階段。美國在電影中展示的高科技安全系統(tǒng),如無需鑰匙、僅通過人臉識別即可開鎖的大門,以及通過指紋解鎖的機要設(shè)備,還有利用街頭攝像頭進行追蹤的情節(jié),這些已經(jīng)不再是科幻,而是現(xiàn)實生活中的實際應(yīng)用。美國的國防部和國土安全部對人工智能驅(qū)動的識別技術(shù)進行了大量投資,以提高公共安全的防護能力。這些投資被用來開發(fā)和部署先進的識別技術(shù),目的是有效預(yù)防恐怖分子的威脅。電影中的高科技安全措施在實際生活中得到了應(yīng)用,如使用生物識別技術(shù)進行身份驗證和監(jiān)控分析。指紋解鎖和人臉識別等生物識別技術(shù)與監(jiān)控攝像頭的結(jié)合,為安全領(lǐng)域帶來了新的解決方案。在2014年日本的一家研究中心就在日本大阪試驗一項基于視頻的人臉識別技術(shù)REF_Ref164263752\r\h[4],目的在于當災(zāi)難來臨是,通過實時監(jiān)控中人臉的表情以及人流的動態(tài)REF_Ref164263825\r\h[5]來判斷各個緊急安全出口是否可用。近年來,日本在智能視頻分析和人臉識別技術(shù)領(lǐng)域取得了顯著進展。日本企業(yè)如日立在人臉識別技術(shù)上取得了突破,推出了高速的視頻監(jiān)控人臉識別系統(tǒng)。該技術(shù)能夠以極快的速度(3600萬張圖像/秒)進行圖像掃描,同時保持高精度的人臉識別。系統(tǒng)不僅能實時存儲人臉圖像,還能對長相相似的人臉進行有效分類。日本在國內(nèi)主要機場部署了基于計算機智能的人臉識別系統(tǒng),用于身份驗證。該系統(tǒng)的目標是在東京奧運會和殘奧會前,實現(xiàn)出入境審查的自動化,提高效率。盡管人臉識別技術(shù)仍存在挑戰(zhàn),但其發(fā)展迅速,并已成為一個備受關(guān)注的領(lǐng)域,甚至衍生出專門的國際會議。越來越多的研究人員和機構(gòu)投入其中,各國也逐漸展開相關(guān)試驗。雖然一些問題仍待解決,但隨著時間推移,這些問題一定會逐步得到解決。1.2.2人臉識別人工智能技術(shù)的研究現(xiàn)狀在人臉識別技術(shù)的研究領(lǐng)域,常用的幾種人工智能技術(shù)包括Eigenface、Fisherface和LBPH。這些技術(shù)各自具有自己的特點和適用范圍。首先是Eigenface,它是基于主成分分析(PCA)的一種人臉識別方法。Eigenface通過將人臉圖像轉(zhuǎn)化為低維特征向量,然后使用歐氏距離來計算圖像之間的相似度。這種方法最早提出,具有較好的識別效果和較快的計算速度。然而,Eigenface對于光照、表情和姿態(tài)的變化比較敏感,導(dǎo)致識別率有限。其次是Fisherface,它是基于線性判別分析(LDA)的一種人臉識別方法。Fisherface通過尋找投影方向,使得同一人臉類別的樣本盡可能緊密聚集,不同人臉類別的樣本盡可能分散。這種方法對于光照、表情和姿態(tài)的變化具有較好的魯棒性,能夠提高識別率。然而,F(xiàn)isherface在處理大規(guī)模數(shù)據(jù)時的計算復(fù)雜度較高,且對于多角度的人臉識別效果不佳。另外一種常用的人臉識別方法是局部二值模式直方圖(LBPH)。LBPH將圖像劃分為小的局部區(qū)域,并使用局部二值模式描述每個區(qū)域的紋理特征。然后,通過對局部特征進行編碼和匹配,實現(xiàn)人臉識別。LBPH具有對光照、表情和姿態(tài)變化的較好魯棒性,并且在計算效率方面表現(xiàn)出色。然而,LBPH對于圖像質(zhì)量的要求較高,且在處理多尺度問題時容易出現(xiàn)失真。Eigenface、Fisherface和LBPH都是常用的人臉識別技術(shù),它們各自在識別效果、魯棒性和計算效率方面具有優(yōu)勢和局限性。在實際應(yīng)用中,需要根據(jù)具體場景和要求來選擇合適的人臉識別技術(shù),并結(jié)合其他技術(shù)的進一步優(yōu)化,以實現(xiàn)更準確、穩(wěn)定和高效的人臉識別系統(tǒng)。1.3主要研究內(nèi)容與結(jié)構(gòu)安排本文研究的是基于MTCNN的人臉識別系統(tǒng)的設(shè)計與實現(xiàn)。人臉識別技術(shù)是近年來計算機視覺領(lǐng)域的研究熱點之一,具有廣泛的應(yīng)用前景。MTCNN作為一種高效的人臉檢測算法被廣泛應(yīng)用于人臉識別系統(tǒng)中。本文的研究工作主要有以下幾部分:(1)了解人臉識別技術(shù)研究的現(xiàn)狀和發(fā)展趨勢。通過文獻綜述,深入了解人臉識別技術(shù)的基本原理、算法模型和應(yīng)用場景。分析目前人臉識別技術(shù)所面臨的挑戰(zhàn)和問題,為本文后續(xù)的研究奠定基礎(chǔ)。(2)研究MTCNN和FaceNet結(jié)合的人臉檢測算法的原理和優(yōu)勢。MTCNN是一種多任務(wù)級聯(lián)卷積神經(jīng)網(wǎng)絡(luò),能夠有效地實現(xiàn)人臉檢測、關(guān)鍵點定位和人臉姿態(tài)估計。通過深入分析MTCNN算法的網(wǎng)絡(luò)結(jié)構(gòu)和工作流程,探討其在人臉識別領(lǐng)域的應(yīng)用價值。(3)進行實驗,針對不同外在影響,進行識別,分析在不同條件下對人臉的識別情況,從而來驗證系統(tǒng)的識別能力和魯棒性。(4)分析實驗結(jié)果,并給出相應(yīng)的結(jié)論和建議。根據(jù)實驗結(jié)果,分析系統(tǒng)的性能和局限性,總結(jié)出本文研究的優(yōu)點和不足之處。同時,對人臉識別技術(shù)的發(fā)展方向和改進方法進行探討,為后續(xù)研究提供參考。本文的章節(jié)安排如下:第一章緒論,主要介紹了人臉識別技術(shù)的背景和研究意義。第二章是人臉識別技術(shù)的研究現(xiàn)狀和發(fā)展趨勢,重點介紹了人臉識別的相關(guān)技術(shù)與經(jīng)典算法。第三章對MTCNN算法和FaceNet算法進行詳細的研究和分析。第四章闡述了基于MTCNN的人臉識別系統(tǒng)的設(shè)計與實現(xiàn)。第五章是實驗結(jié)果與分析,主要對系統(tǒng)的性能進行評估和分析。最后,第六章對全文進行總結(jié)與展望,指出存在的問題并提出改進的方向和方法。通過本文的研究,可以進一步完善基于MTCNN的人臉識別系統(tǒng),并提供新的思路和方法,推動人臉識別技術(shù)的發(fā)展,為實際應(yīng)用提供更加準確和可靠的人臉識別解決方案。2相關(guān)技術(shù)研究2.1深度學(xué)習(xí)深度學(xué)習(xí)是機器學(xué)習(xí)的分支,通過神經(jīng)網(wǎng)絡(luò)模型模擬人腦工作原理,實現(xiàn)對數(shù)據(jù)模式的學(xué)習(xí)和識別,無需人為規(guī)則。多層神經(jīng)元組成的模型逐層提取數(shù)據(jù)特征,形成高度抽象表示。深度學(xué)習(xí)已廣泛應(yīng)用于圖像和語音識別、自然語言處理、自動駕駛汽車、醫(yī)療診斷、股票交易等領(lǐng)域,要求模型準確性和實時性。一方面,硬件性能提升,尤其是GPU(圖形處理器)的發(fā)展,促進了深度學(xué)習(xí)模型處理大規(guī)模數(shù)據(jù)的能力;另一方面,其成功應(yīng)用離不開激活函數(shù)的靈活運用,進一步提高了模型的性能和實時性。激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中扮演著關(guān)鍵角色,它們通常需要滿足易于計算且計算效率高的特點。激活函數(shù)被設(shè)計為簡單且能夠快速執(zhí)行,以便于在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和推理過程中節(jié)省時間。在神經(jīng)網(wǎng)絡(luò)的早期發(fā)展階段,線性激活函數(shù)和階躍激活函數(shù)是常用的選擇。隨著研究的深入,非線性激活函數(shù)被引入以增強網(wǎng)絡(luò)的表達能力,因為單純的線性激活函數(shù)在處理復(fù)雜關(guān)系時存在局限性。非線性激活函數(shù)能夠在網(wǎng)絡(luò)中引入非線性特性,這有助于簡化網(wǎng)絡(luò)模型的結(jié)構(gòu),從而降低整體的計算復(fù)雜性。通過在網(wǎng)絡(luò)中加入非線性激活函數(shù),可以顯著提高模型的預(yù)測準確性,使網(wǎng)絡(luò)能夠捕捉和學(xué)習(xí)數(shù)據(jù)中的復(fù)雜關(guān)系和模式。激活函數(shù)在神經(jīng)網(wǎng)絡(luò)中起著至關(guān)重要的作用,它們決定了如何將神經(jīng)元接收到的信號轉(zhuǎn)換為輸出。激活函數(shù)將輸入信號轉(zhuǎn)換為輸出信號,是神經(jīng)網(wǎng)絡(luò)中不可或缺的非線性元素。通過引入非線性變換,激活函數(shù)極大地提升了神經(jīng)網(wǎng)絡(luò)處理復(fù)雜數(shù)據(jù)模式的能力。幾種廣泛使用的激活函數(shù)包括Sigmoid、雙曲正切(Tanh)和修正線性單元(ReLU)等。。首先是神經(jīng)元引入最簡單的神經(jīng)元模型:圖2.1神經(jīng)元模型圖神經(jīng)元的數(shù)學(xué)表達為:yy是神經(jīng)元輸出的內(nèi)容,f是激活函數(shù),n是輸入節(jié)點的個數(shù),X是輸入節(jié)點數(shù)據(jù)所組成的矩陣,W是輸入權(quán)重所組成的矩陣,b是偏置值,在神經(jīng)網(wǎng)絡(luò)中,激活函數(shù)是神經(jīng)元處理信息的關(guān)鍵環(huán)節(jié),通過對輸入數(shù)據(jù)應(yīng)用非線性轉(zhuǎn)換以產(chǎn)生輸出。神經(jīng)元首先計算輸入信號的加權(quán)和,即輸入向量與權(quán)重向量的點積。求和后的結(jié)果會通過一個非線性激活函數(shù)進行轉(zhuǎn)換,以生成最終的輸出。深度學(xué)習(xí)是與人工神經(jīng)網(wǎng)絡(luò)緊密相連的一個概念。深度學(xué)習(xí)是人工神經(jīng)網(wǎng)絡(luò)理論和實踐中的一個子集,專注于使用深層神經(jīng)網(wǎng)絡(luò)模型。人工神經(jīng)網(wǎng)絡(luò)是一種數(shù)學(xué)模型,受到自然界中生物神經(jīng)網(wǎng)絡(luò)的啟發(fā),神經(jīng)網(wǎng)絡(luò)用于模擬其結(jié)構(gòu)和處理信息的方式。BP算法是一種參數(shù)學(xué)習(xí)方法,一般分為兩個過程:在深度學(xué)習(xí)中,訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程涉及兩個主要步驟:前向傳播和反向傳播。前向傳播的目的是確定神經(jīng)網(wǎng)絡(luò)當前參數(shù)下輸出的準確性,即計算預(yù)測值和真實值之間的差異。前向傳播生成的誤差信息為后續(xù)的反向傳播步驟提供了必要的數(shù)據(jù)。反向傳播本質(zhì)上是一種高效的梯度下降算法,用于計算損失函數(shù)關(guān)于網(wǎng)絡(luò)參數(shù)的梯度。通過計算得到的梯度信息,神經(jīng)網(wǎng)絡(luò)的權(quán)重和偏置會被相應(yīng)地調(diào)整,以減少預(yù)測誤差。反向傳播算法是深度學(xué)習(xí)中用于訓(xùn)練多層神經(jīng)網(wǎng)絡(luò)的標準訓(xùn)練算法,它通過迭代調(diào)整參數(shù)來最小化損失函數(shù)。梯度下降法在機器學(xué)習(xí)中常常用來優(yōu)化損失函數(shù),是一個非常重要的工具。Sigmoid函數(shù)是非線性激活函數(shù),在函數(shù)中輸入連續(xù)的實數(shù),其用以計算出函數(shù)值,范圍在[0,1]之間,它可以使神經(jīng)元的輸出具有非線性特性,從而增強網(wǎng)絡(luò)的表達能力。其函數(shù)的數(shù)學(xué)公式如下:fsigmoid激活函數(shù)及其導(dǎo)數(shù)曲線如下圖2.1所示:圖2.2Sigmoid函數(shù)及其導(dǎo)數(shù)曲線圖本設(shè)計選擇使用Sigmoid函數(shù)。Sigmoid激活函數(shù)是一種常用的非線性激活函數(shù),其輸出范圍在0到1之間,具有S形曲線特征。在神經(jīng)網(wǎng)絡(luò)中,Sigmoid函數(shù)常被用作激活函數(shù),用于引入非線性,增強網(wǎng)絡(luò)的表達能力。其主要好處包括:1.輸出范圍有界,有助于特征歸一化,提高網(wǎng)絡(luò)的穩(wěn)定性和收斂速度;2.梯度相對平緩,在接近0處具有較大的梯度,有助于減輕梯度消失問題,增強網(wǎng)絡(luò)的學(xué)習(xí)能力;3.輸出可以被解釋為概率值,適用于二分類任務(wù),如人臉識別中的人臉存在概率預(yù)測。這些特性使得Sigmoid激活函數(shù)在許多任務(wù)中具有良好的適用性和效果。275982.2卷積神經(jīng)網(wǎng)絡(luò)卷積神經(jīng)網(wǎng)絡(luò)(CNN)REF_Ref164264010\r\h[6]對于二維特征信息架構(gòu)有很好的應(yīng)用效果,尤其是在識別領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)已被廣泛應(yīng)用并取得顯著成果。該網(wǎng)絡(luò)基于神經(jīng)體系的結(jié)構(gòu),通過多層次的體系訓(xùn)練,實現(xiàn)模型的運算機制。CNN通過參數(shù)共享的方式來減少過擬合,從而降低了網(wǎng)絡(luò)訓(xùn)練的復(fù)雜度。本質(zhì)上,CNN通過逐層的信息傳遞和卷積操作,逐漸提取數(shù)據(jù)中的有用信息。隨著網(wǎng)絡(luò)結(jié)構(gòu)的深入,信息特征被抽象化,通過旋轉(zhuǎn)和移動等方式獲取更多的數(shù)據(jù)特征。相較于傳統(tǒng)神經(jīng)網(wǎng)絡(luò),CNN能夠有效地提取和分類數(shù)據(jù)信息,降低了特征提取和分類的難度。卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖2.2所示。第1個方塊(尺寸為32*32)是輸入層,第2個方塊是在原始輸入上進行卷積操作,第3個方塊是池化層,第4個方塊是卷積層,第5分方塊是池化層,6、7兩個方塊是全連接層。圖2.2卷積神經(jīng)網(wǎng)絡(luò)示意圖基于神經(jīng)體系的堿基架構(gòu)是通過多層體系的訓(xùn)練來完成模型的運算機制,傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)是通過全職共享的方式來避免數(shù)據(jù)過擬合,以此來降低網(wǎng)絡(luò)訓(xùn)練的復(fù)雜度,這就是卷積神經(jīng)網(wǎng)絡(luò)的原理。卷積神經(jīng)網(wǎng)絡(luò)(CNN)是一種深度學(xué)習(xí)模型,通過一系列復(fù)雜的網(wǎng)絡(luò)層來處理輸入數(shù)據(jù),特別是圖像數(shù)據(jù)。CNN通過多層結(jié)構(gòu)對輸入信息進行過濾,每一層都專注于捕捉數(shù)據(jù)中的不同特征。信息在網(wǎng)絡(luò)中從淺層到深層逐層傳遞,每一層都在前一層的基礎(chǔ)上進一步提取和抽象信息。隨著網(wǎng)絡(luò)層次的加深,所提取的特征變得更加抽象,能夠捕捉到更加復(fù)雜和高級的數(shù)據(jù)模式。CNN通過卷積層的設(shè)計,使得網(wǎng)絡(luò)能夠?qū)W習(xí)到對圖像旋轉(zhuǎn)和移動不變的特征,這增強了模型的泛化能力。與傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)相比,CNN更擅長自動從數(shù)據(jù)中提取特征,減少了手動特征工程的需要。卷積神經(jīng)網(wǎng)絡(luò)的導(dǎo)出層通常是線性的,目前最常見的是通過softmax來進行數(shù)據(jù)類別的劃分,卷積神經(jīng)網(wǎng)絡(luò)的變量和傳統(tǒng)的人工神經(jīng)網(wǎng)絡(luò)相似,通過反向傳輸?shù)奶攸c來對數(shù)據(jù)進行傳導(dǎo),涵蓋了前向的傳輸和后向傳輸,卷積神經(jīng)網(wǎng)絡(luò)雖然在實際的應(yīng)用當中取得了一定的成果,但是也面臨了很多的問題,比如權(quán)值的設(shè)定,收斂條件的約定,這些都需要在研究當中進一步的優(yōu)化。2.3常用的圖像預(yù)處理方法為了提高人臉識別的準確性,尤其是在不同光照條件下,可以采取一系列預(yù)處理步驟來優(yōu)化人臉圖像,以便更準確地定位和提取人臉特征。在進行人臉特征提取之前,先對原始圖像進行一系列的預(yù)處理操作。將彩色圖像轉(zhuǎn)換為灰度圖像,以減少顏色信息可能帶來的干擾,同時保持圖像的基本結(jié)構(gòu)信息。對圖像進行歸一化,使圖像的亮度和對比度處于一個統(tǒng)一的范圍內(nèi),減少光照變化對特征提取的影響。通過人臉檢測算法定位出人臉,并進行必要的對齊處理,如縮放、旋轉(zhuǎn)校正等,以保證人臉圖像的一致性,使得特征點定位更加準確。2.3.1灰度處理圖像灰度化REF_Ref164264037\r\h[7]是將一幅彩色圖像轉(zhuǎn)換為灰度化圖像的過程。彩色圖像的色彩通常由R、G、B三個分量組合而成(其實就是3個二維數(shù)組疊加而成),從而搭配出各種顏色?;叶葓D像,也稱為黑白圖像,是通過單一顏色樣本來表示每個像素點的圖像,該樣本顏色是黑色和白色之間的一系列顏色深度。在8位灰度圖像中,像素的亮度由0到255的值來定義,其中0代表純黑色,255代表純白色?;叶葓D像中的每個像素點擁有從黑色到白色不同級別的灰度,形成了豐富的灰階。通過對圖像進行灰度變換,可以選擇性地強化或抑制圖像的特定特征,以此來提升圖像質(zhì)量。灰度變換有助于突出圖像中重要的特征,使圖像特征更加明顯,便于后續(xù)處理和分析。2.3.2圖像歸一化在圖像處理領(lǐng)域,將圖像的單通道像素值從無符號字符(uchar)類型的0到255范圍轉(zhuǎn)換到0到1的區(qū)間是一種常見的歸一化技術(shù)。通過min-max歸一化處理,像素值被縮放到0到1之間,這種處理方式不會丟失數(shù)據(jù)的相對關(guān)系和分布特性。歸一化后的像素值由于數(shù)值范圍更小,可以減少計算時的精度要求,從而提高神經(jīng)網(wǎng)絡(luò)或其他圖像處理算法的計算速度,歸一化公式如下,output=2.3.3人臉圖像對齊人臉對齊主要包括以下幾個步驟:1,提取出每張圖片里眼睛的坐標,進行讀取數(shù)據(jù)2,找兩眼間的直線距離并計算該直線與水平線之間的夾角,即傾斜角度3,根據(jù)找到的傾斜角度旋轉(zhuǎn)圖片4,在旋轉(zhuǎn)后的圖片中找到眼睛的位置5,根據(jù)眼睛坐標找到包含面部的框的寬度和高度,調(diào)整圖片的尺寸2.4人臉檢測與經(jīng)典算法2.4.1人臉檢測介紹人臉檢測技術(shù)旨在識別和定位圖像內(nèi)所有人物的面部區(qū)域,其核心任務(wù)是確定人臉的準確位置,并且可能包括面部姿態(tài)的相關(guān)信息。算法的輸出通常為人臉區(qū)域的外接矩形的坐標,這些坐標定義了人臉在圖像中的空間范圍。除了位置坐標,人臉檢測算法有時還能提供面部的姿態(tài)信息,如人臉的傾斜或旋轉(zhuǎn)角度。雖然人臉的結(jié)構(gòu)是確定的,由眉毛、眼睛、鼻子和嘴等部位組成,近似是一個剛體,但由于姿態(tài)和表情的變化,不同人的外觀差異,光照,遮擋的影響REF_Ref164264075\r\h[8],準確的檢測處于各種條件下的人臉是一件相對困難的事情。傳統(tǒng)的人臉檢測方法通常通過使用包含人臉和非人臉的大量圖像樣本,對分類器進行訓(xùn)練。訓(xùn)練過程中產(chǎn)生一個分類器,也被稱作人臉檢測模板,能夠處理二分類問題,即判斷圖像中存在人臉或不存在人臉。該分類器設(shè)計為接受尺寸固定的圖像輸入,以便于處理和判斷。分類器對每個輸入圖像做出二元決策,即圖像是否包含人臉,通常表示為“是”或“否”。人臉檢測算法分為3個階段,分別是早期算法,AdaBoost框架,以及深度學(xué)習(xí)時代,進入深度學(xué)習(xí)時代,相比于AdaBoost框架直接用滑動窗口加卷積網(wǎng)絡(luò)對窗口圖像進行分類的方案計算量太大很難達到實時,使用卷積網(wǎng)絡(luò)進行人臉檢測的方法采用各種手段解決或者避免這個問題。2.4.2經(jīng)典算法CascadeCNNREF_Ref164264100\r\h[9]可以認為是傳統(tǒng)技術(shù)和深度網(wǎng)絡(luò)相結(jié)合的一個代表,和VJ人臉檢測器一樣,其包含了多個分類器,這些分類器采用級聯(lián)結(jié)構(gòu)進行組織,然而不同的地方在于,CascadeCNN采用卷積網(wǎng)絡(luò)作為每一級的分類器。在人臉檢測算法中,創(chuàng)建多尺度的人臉圖像金字塔并進行有效篩選是提高檢測效率和準確性的關(guān)鍵步驟。使用12-Net(第一階段的檢測網(wǎng)絡(luò))對整個圖像金字塔進行密集掃描,以識別出潛在的人臉區(qū)域。將12-Net篩選后的檢測窗口輸入到12-Calibration-Net(第二階段的檢測網(wǎng)絡(luò)),進行尺寸和位置的精細調(diào)整。12-Calibration-Net對候選窗口進行校準,優(yōu)化窗口的位置和大小,使其更精確地匹配真實人臉的邊界。2.5人臉識別與經(jīng)典算法所謂人臉識別,就是在圖像和視頻中檢測人臉,將檢測到的人臉特征與預(yù)先存儲在數(shù)據(jù)庫中的已知人臉特征進行比較,通過分析特征的匹配程度,系統(tǒng)能夠判斷所檢測到的人臉是否屬于特定的個體。在人臉識別技術(shù)的研究領(lǐng)域,常用的幾種技術(shù)包括Deepface、VGGFace和FaceNet。這些技術(shù)各自具有自己的特點和適用范圍。Deepface是FacebookCVPR在2014年發(fā)表,主要用于人臉驗證,是深度學(xué)習(xí)人臉識別的奠基之作,Deepface采用顯式的3D人臉建模并應(yīng)用分段仿射變換,并實現(xiàn)人臉正面化。利用9層深度神經(jīng)網(wǎng)絡(luò)導(dǎo)出人臉表示,還使用了3個無權(quán)重共享的局部連接層。人臉表示特征向量是4096維,Softmax分類。還將基于模型的精確對齊與大型人臉數(shù)據(jù)庫相結(jié)合的學(xué)習(xí)表示方法很好地推廣到無約束環(huán)境下的人臉。Deepface支持多種人臉識別方法,但只支持驗證方法,無法創(chuàng)建人臉集合并進行人臉查找。VGGFace是牛津大學(xué)視覺組于2015年發(fā)表,VGGNet也是他們提出的,VGGFace是基于VGGNet訓(xùn)練自己的數(shù)據(jù)集得到的人臉識別模型,為構(gòu)建最少的人為干預(yù)大規(guī)模人臉數(shù)據(jù)集,使用softmax進行預(yù)訓(xùn)練,再用TripletLoss訓(xùn)練出1024維的人臉特征向量,最后用歐氏距離驗證結(jié)果。FaceNet是谷歌公司于2015年提出的基于深度學(xué)習(xí)的人臉識別系統(tǒng),采用深度卷積神經(jīng)網(wǎng)絡(luò)(CNN)學(xué)習(xí)將圖像映射到歐式空間??臻g距離直接和圖片相似度相關(guān):同一個人的不同圖像在空間距離很小,不同人的圖像在空間中有較大的距離,可以用于人臉驗證、識別和聚類。FaceNet的優(yōu)點在于準確率高、速度快,而且可以處理復(fù)雜的人臉姿態(tài)和表情變化。此外,F(xiàn)aceNet還可以通過嵌入空間對人臉進行聚類和識別。然而,F(xiàn)aceNet也存在一些缺點,例如對光照條件和面部朝向變化的魯棒性不夠強。3人臉識別模型的構(gòu)建3.1人臉識別模型的選擇盡管人臉識別技術(shù)已經(jīng)取得了顯著的發(fā)展,但在大規(guī)模應(yīng)用中實現(xiàn)高效且準確的個人身份驗證和識別仍然是一個挑戰(zhàn)。FaceNet作為一種先進的人臉識別模型,能夠直接學(xué)習(xí)將人臉圖像映射到一個歐幾里得空間中,其中人臉圖像點之間的距離能夠直接反映人臉之間的相似性。FaceNet使用深度卷積神經(jīng)網(wǎng)絡(luò)為將每張圖像轉(zhuǎn)化為一個特征向量,網(wǎng)絡(luò)經(jīng)過訓(xùn)練后,特征空間中的特征向量之間的距離直接與人臉相似度對應(yīng)。因為同一個人的人臉有較小的距離,而不同人的人臉有很大的距離。而以往這種特征向量的產(chǎn)生是基于利用深度網(wǎng)絡(luò)對人臉圖像完成分類任務(wù),然后將中間的瓶頸層作為圖像的特征向量,進而可將該向量用于其他任務(wù)REF_Ref164264134\r\h[10]。因為瓶頸層中的數(shù)據(jù)維度通常要比輸入小得多,可以算作是一種降維方法。但這種方法在獲取特征向量上是以間接的方式產(chǎn)生的,而且效率低,以及通過使用瓶頸層,每個人臉的表征尺寸通常非常大(大概在1000維)。FaceNet模型通過采用一種特殊的三元組損失函數(shù)來訓(xùn)練網(wǎng)絡(luò),該損失函數(shù)專注于將人臉圖像轉(zhuǎn)換成高維向量空間中的點。在FaceNet的訓(xùn)練中,一個三元組由兩幅相似的人臉圖像(正樣本)和一幅不相似的人臉圖像(負樣本)組成。三元組損失函數(shù)確保了來自相同身份的人臉圖像(正樣本對)在向量空間中彼此靠近,而來自不同身份的人臉圖像(負樣本對)則相隔較遠。損失函數(shù)的目的是在一個定義的閾值下,使正樣本對的距離小于負樣本對的距離。縮略圖是對人臉區(qū)域的一種緊湊裁剪,除縮放和平移外,不進行二維或三維對齊。并且,F(xiàn)aceNet在廣泛使用的LFW數(shù)據(jù)集上,準確率最高可達99.63%,在YouTubeFacesDB數(shù)據(jù)集上,準確率達到了95.12%??梢?,F(xiàn)aceNet具有較好的性能,所以本文使用它作為人臉識別的模型,用以完成人臉識別任務(wù)。上文提及人臉縮略圖,是一種對人臉圖像的進一步劃分,因為人臉圖像中存在有很多干擾因素,如背景,為了增強FaceNet在執(zhí)行人臉識別任務(wù)時的準確性,首先需要確定圖像中人臉的位置。在使用FaceNet等人臉識別模型之前,必須先通過人臉檢測來確定圖像中人臉的準確位置和范圍。人臉檢測可以被視作目標檢測技術(shù)的一個分支,專門用于識別和定位圖像中的人臉。在更廣泛的目標檢測領(lǐng)域,任務(wù)是識別圖像中所有感興趣的對象,并確定它們的位置和尺寸,這可能包括行人、車輛等。相較之下,人臉檢測專注于人臉這一特定類別。人臉檢測技術(shù)使得在數(shù)字圖像或視覺場景中快速定位人臉成為可能,這是人臉識別流程的第一步。在人臉檢測中應(yīng)用較廣的算法就是MTCNN(Multi-taskCascadedConvolutionalNetworks)。因為在無約束環(huán)境中進行人臉檢測和對齊,由于姿勢、光照和遮擋物的不同,對人臉檢測和對齊是一項挑戰(zhàn)。MTCNN通過利用深度學(xué)習(xí)的優(yōu)勢,在人臉檢測和人臉對齊兩個關(guān)鍵任務(wù)上實現(xiàn)了優(yōu)異的性能。該算法構(gòu)建了一個由三個階段組成的深度級聯(lián)框架,每個階段都由一個專門的卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn),以逐步細化的方式進行人臉和關(guān)鍵點的預(yù)測。MTCNN的工作流程是分層次的,首先粗略地識別人臉區(qū)域,然后逐步精細化預(yù)測,直至準確定位人臉及其關(guān)鍵特征點。在人臉檢測的FDDB和WIDER)基準測試中,MTCNN展示了其出色的檢測能力。同樣,在AFLW基準測試中,MTCNN在人臉對齊方面也獲得了良好的評價。因此,本文在進行人臉識別之前需要構(gòu)建MTCNN模型用以檢測人臉。3.2MTCNN模型的構(gòu)建MTCNN(Multi-taskCascadedConvolutionalNetworks)是一種深度學(xué)習(xí)驅(qū)動的人臉檢測技術(shù),其核心機制依賴于卷積神經(jīng)網(wǎng)絡(luò)(CNN)來同時執(zhí)行多個相關(guān)任務(wù)。相比于傳統(tǒng)的人臉檢測算法,MTCNN擁有更高的準確率和更快的處理速度。在實際應(yīng)用中,MTCNN算法在人臉識別系統(tǒng)中發(fā)揮了重要作用,其優(yōu)秀的性能使得它成為目前最受歡迎的人臉檢測算法之一。MTCNN算法主要由三個子網(wǎng)絡(luò)組成,分別是候選網(wǎng)絡(luò)(ProposalNetwork,P-Net)、精煉網(wǎng)絡(luò)(RefineNetwork,R-Net)和輸出網(wǎng)絡(luò)(OutputNetwork,O-Net)REF_Ref164264169\r\h[11]。這三個子網(wǎng)絡(luò)分別用于進行候選框的生成、候選框的篩選和人臉關(guān)鍵點的定位,其中,人臉關(guān)鍵點檢測涉及人臉對齊問題。人臉對齊是指根據(jù)檢測到的人臉圖像,自動識別并標記出面部的顯著特征點,這包括眼睛、鼻尖、嘴角、眉毛等面部標志。除了主要的生理特征點,還需要檢測并記錄面部各部分的輪廓點,以獲得更完整的面部結(jié)構(gòu)信息。對初步檢測到的關(guān)鍵點進行精確度優(yōu)化,以確保面部特征點的位置準確無誤,這通常涉及到對關(guān)鍵點位置的微調(diào)。如圖3.1所示,主要將人臉中的幾個特征位置提取,用特殊記號點標記。圖3.1人臉特征點提取示意圖MTCNN人臉檢測的流程大致如圖3.2所示,具體如下:首先圖片傳入計算機進行不同尺度的縮放,這個步驟也被稱之為圖像金字塔,目的在于對不同大小的人臉進行檢測,P-Net接收以不同尺寸縮放的圖像,對每個尺寸的圖像進行處理,生成對應(yīng)的人臉候選框,這些候選框是初步預(yù)測的人臉位置。根據(jù)P-Net生成的候選框,在原始圖像中精確裁剪出相應(yīng)的區(qū)域,這些區(qū)域被認為可能包含人臉。將這些裁剪出的區(qū)域作為輸入傳遞給R-Net,R-Net的任務(wù)是進一步評估這些區(qū)域是否確實包含人臉,并對每個區(qū)域給出一個置信度評分。R-Net不僅進行人臉的存在性判斷,還對候選框的位置進行精細化修正,以獲得更準確的邊界框。經(jīng)過R-Net的處理,最終得到一組經(jīng)過驗證和調(diào)整的人臉候選框,這些候選框更準確地界定了圖像中人臉的位置,再利用修正后的人臉候選框?qū)υ瓐D截出不同區(qū)域的人臉,將圖片傳入O-Net中。O-Net對R-Net傳遞過來的候選人臉區(qū)域執(zhí)行最終的判斷,以確認這些區(qū)域確實包含人臉。對于每個候選區(qū)域,O-Net提供一個評分,表明該區(qū)域包含真實人臉的置信度。O-Net進一步精細化候選框的位置和尺寸,以實現(xiàn)更精確的人臉定位。除了人臉框的修正,O-Net還負責(zé)檢測并定位人臉上的關(guān)鍵點,如眼睛、鼻子和嘴巴的位置。經(jīng)過O-Net的處理,得到最終的人臉候選框,這些候選框在位置上更為準確,并包含了人臉關(guān)鍵點信息。,最后輸出需要的人臉圖片。圖3.2MTCNN人臉檢測流程最終,對已經(jīng)構(gòu)建好的MTCNN網(wǎng)絡(luò)選擇調(diào)用TensorFlow庫中的tf.train.MomentumOptimizer(),即Momentum(動量)優(yōu)化算法進行訓(xùn)練。其中,三個不同尺度的卷積網(wǎng)絡(luò)和損失函數(shù)如何構(gòu)建是十分重要的,以下分別闡述。3.2.1P-Net、R-Net和O-NetMTCNN的核心思想是采用三個不同尺度的卷積網(wǎng)絡(luò)分別用于檢測人臉的不同尺寸。以下分別對這三個網(wǎng)絡(luò)進行介紹。1、MTCNN算法在執(zhí)行人臉檢測時采用多階段的級聯(lián)網(wǎng)絡(luò)結(jié)構(gòu),首先利用P-Net(ProposalNetwork)進行初步的人臉區(qū)域篩查,以快速識別出圖像中潛在的人臉位置。對于每個候選區(qū)域,P-Net同時計算邊框回歸向量,這些向量用于微調(diào)初始候選框的位置,以更準確地預(yù)測人臉的實際邊界。為了解決多個候選框可能重疊或包含相同人臉的問題,P-Net階段會應(yīng)用非最大值抑制(NMS)策略,這一策略通過保留得分最高的候選框并抑制其他重疊框,從而減少冗余。NMS作為優(yōu)化手段,有效減少后續(xù)網(wǎng)絡(luò)處理的候選框數(shù)量,而后,P-Net采用全卷積神經(jīng)網(wǎng)絡(luò)架構(gòu),在多尺度的輸入圖像上進行卷積、池化等操作,得出每個像素點處是否存在人臉的置信度,從而生成候選框。其中,非最大值抑制是一種在目標檢測算法中常用的技術(shù),用于篩選出最終的檢測結(jié)果。其核心思想是去除多余的邊界框,特別是那些相互之間重疊且評分較低的框。NMS算法會識別出在空間位置上彼此非常接近的邊界框,這些框可能是對同一目標的不同預(yù)測。對于這些接近的邊界框,NMS會根據(jù)它們的評分進行排序,保留評分最高的邊界框作為候選,而去除其他評分較低的框。交并比IoU是一個衡量預(yù)測邊界框與真實邊界框之間相似度的指標。它通過計算兩個邊界框交集與并集的比值來得到一個介于0到1之間的數(shù)值。在NMS的上下文中,所謂的“評分”通常是指邊界框的IoU值,即預(yù)測框與真實框的匹配程度。如果預(yù)測的邊界框與真實邊界框完全重合,那么它們的IoU值將達到最大,即1,表示完美的匹配。如果與其重合度超過閾值,就抑制得分更小的框,因為沒有必要輸出兩個接近的框,只保留得分大的就可以了。圖3.3P-Net從圖3.3可見,P-Net本質(zhì)是一個卷積神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò),對圖像進行初步特征提取與標定邊框。利用Slim庫中的二維卷積slim.conv2d()和最大池化max_pool2d()就可輕松構(gòu)建該網(wǎng)絡(luò)結(jié)構(gòu)。Slim庫是tensorflow的一個高層封裝,將原來很多tf中復(fù)雜的函數(shù)進一步封裝,省去了很多重復(fù)的參數(shù)以及平時不會考慮到的參數(shù)。定義代碼如下:defP_Net(inputs,label=None,bbox_target=None,landmark_target=None,training=True):withtf.variable_scope('PNet'):withslim.arg_scope([slim.conv2d],activation_fn=prelu,weights_initializer=slim.xavier_initializer(),weights_regularizer=slim.l2_regularizer(0.0005),padding='VALID'):net=slim.conv2d(inputs,10,3,scope='conv1')net=slim.max_pool2d(net,kernel_size=[2,2],stride=2,padding='SAME',scope='pool1')net=slim.conv2d(net,16,3,scope='conv2')net=slim.conv2d(net,32,3,scope='conv3')conv4_1=slim.conv2d(net,2,1,activation_fn=tf.nn.softmax,scope='conv4_1')bbox_pred=slim.conv2d(net,4,1,activation_fn=None,scope='conv4_2')landmark_pred=slim.conv2d(net,10,1,activation_fn=None,scope='conv4_3')iftraining:cls_prob=tf.squeeze(conv4_1,[1,2],name='cls_prob')cls_loss=cls_ohem(cls_prob,label)bbox_pred=tf.squeeze(bbox_pred,[1,2],name='bbox_pred')bbox_loss=bbox_ohem(bbox_pred,bbox_target,label)landmark_pred=tf.squeeze(landmark_pred,[1,2],name='landmark_pred')landmark_loss=landmark_ohem(landmark_pred,landmark_target,label)accuracy=cal_accuracy(cls_prob,label)L2_loss=tf.add_n(slim.losses.get_regularization_losses())returncls_loss,bbox_loss,landmark_loss,L2_loss,accuracyelse:cls_pro_test=tf.squeeze(conv4_1,axis=0)bbox_pred_test=tf.squeeze(bbox_pred,axis=0)landmark_pred_test=tf.squeeze(landmark_pred,axis=0)returncls_pro_test,bbox_pred_test,landmark_pred_test2、精煉網(wǎng)絡(luò)(RefiningNetwork,R-Net)對候選窗進行精篩,計算邊框回歸向量并用非最大值抑制NMS減少窗口。圖3.4R-Net如圖3.4可見R-Net作為MTCNN(框架中的一個子網(wǎng)絡(luò),其設(shè)計是為了對P-Net生成的人臉候選區(qū)域進行精細化處理。R-Net在P-Net生成的候選基礎(chǔ)上,通過一個更為復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),增加了全連接層,以實現(xiàn)更深層次的特征學(xué)習(xí)和分析。R-Net的作用是對P-Net提出的候選區(qū)域進行進一步的篩選,去除那些非人臉區(qū)域,同時對保留的候選區(qū)域進行邊界框的精確回歸。通過R-Net子網(wǎng)絡(luò),可以得到一組更加準確的人臉候選框,將它們用于下一步的處理。由于R-Net與前文P-Net結(jié)構(gòu)類似,只增加了一個全連接層,對于全連接層調(diào)用slim.fully_connected()即可實現(xiàn)。故R-Net定義代碼不再贅述。3、由圖3.5可見,輸出網(wǎng)絡(luò)(OutputtingNetwork,O-Net)對人臉候選框進行特征提取和關(guān)鍵點的定位,其結(jié)構(gòu)與R-Net類似,用以輸出最終人臉框以及5個面部關(guān)鍵特征點(landmark)的位置,例如眼睛、鼻子和嘴巴等,這些關(guān)鍵點將用于后續(xù)的人臉識別任務(wù)。定義代碼不再贅述。圖3.5O-Net示意圖總的來說,MTCNN通過三個子網(wǎng)絡(luò)的協(xié)同工作,能實現(xiàn)對人臉的準確檢測和關(guān)鍵點的定位。3.2.2損失函數(shù)由于MTCNN是一種深度級聯(lián)的多任務(wù)框架,因此利用了三個任務(wù)來訓(xùn)練CNN檢測器:面部/非面部二分類、邊框回歸和關(guān)鍵點定位REF_Ref164264210\r\h[12]。使用L2損失。最后把這三部分的損失各自乘以自身的權(quán)重累加起來,形成最后的總損失。在訓(xùn)練P-Net和R-Net的時候,關(guān)鍵點損失所占的權(quán)重較小。對于O-Net,關(guān)鍵點損失所占的權(quán)重就會比較大。在MTCNN的P、R、O三個網(wǎng)絡(luò)中,網(wǎng)絡(luò)輸出形式基本相同,均為:是否是人臉、邊框回歸值以及人臉特征點坐標(在P-Net和R-Net中人臉特征點坐標沒有實際意義)。因此,模型的最終損失函數(shù)是由人臉分類損失使用交叉熵、邊框回歸值損失使用歐氏距離、人臉特征點坐標損失使用歐氏距離三項內(nèi)容的加權(quán)求和,具體可以表示為:L其中,αdet、αbox和1、人臉分類損失LdetL定義代碼計算分類損失如下,其中cls_prob是預(yù)測類別,是否有人,而label是標簽,表示真實值,最后返回損失值。defcls_ohem(cls_prob,label):zeros=tf.zeros_like(label)label_filter_invalid=tf.where(tf.less(label,0),zeros,label)num_cls_prob=tf.size(cls_prob)cls_prob_reshpae=tf.reshape(cls_prob,[num_cls_prob,-1])label_int=tf.cast(label_filter_invalid,32)num_row=tf.to_int32(cls_prob.get_shape()[0])row=tf.range(num_row)*2indices_=row+label_intlabel_prob=tf.squeeze(tf.gather(cls_prob_reshpae,indices_))loss=-tf.log(label_prob+1e-10)zeros=tf.zeros_like(label_prob,dtype=tf.float32)ones=tf.ones_like(label_prob,dtype=tf.float32)valid_inds=tf.where(label<zeros,zeros,ones)num_valid=tf.reduce_sum(valid_inds)keep_num=tf.cast(num_valid*num_keep_radio,dtype=32)loss=loss*valid_indsloss,_=tf.nn.top_k(loss,k=keep_num)returntf.reduce_mean(loss)2、邊框回歸值損失LboxL定義代碼計算邊框損失如下:defbbox_ohem(bbox_pred,bbox_target,label):zeros_index=tf.zeros_like(label,dtype=tf.float32)ones_index=tf.ones_like(label,dtype=tf.float32)valid_inds=tf.where(tf.equal(tf.abs(label),1),ones_index,zeros_index)square_error=tf.square(bbox_pred-bbox_target)square_error=tf.reduce_sum(square_error,axis=1)num_valid=tf.reduce_sum(valid_inds)keep_num=tf.cast(num_valid,dtype=32)square_error=square_error*valid_indssquare_error,_=tf.nn.top_k(square_error,k=keep_num)returntf.reduce_mean(square_error)3、人臉特征點坐標損失LlandmarksL3.3FaceNet模型的構(gòu)建與實現(xiàn)FaceNet通過直接訓(xùn)練一個深度卷積神經(jīng)網(wǎng)絡(luò),將人臉圖像映射到128維的歐幾里得空間REF_Ref164264247\r\h[13],不同人臉圖像在歐幾里得空間中的距離與圖像相似度相關(guān):兩幅人臉圖像特征向量間的歐式距離越小,表示兩幅圖像是同一個人的可能性越大。也就是,特征向量由fx∈Rd表示,它將圖像x嵌入到d維歐幾里得空間中。并且要確保特定人物的圖像xia(錨點)更接近同一個人的所有其他圖像xip(正樣本),而不是其他人的任何圖像xif?其中,α是在正對和負對之間的一個邊距。τ是訓(xùn)練集中所有可能的三元組的集合。那么,最小化的損失是:L定義一個三元組損失函數(shù),代碼如下:deftriplet_loss(anchor,positive,negative,alpha):withtf.variable_scope('triplet_loss'):pos_dist=tf.reduce_sum(tf.square(tf.subtract(anchor,positive)),1)neg_dist=tf.reduce_sum(tf.square(tf.subtract(anchor,negative)),1)basic_loss=tf.add(tf.subtract(pos_dist,neg_dist),alpha)loss=tf.reduce_mean(tf.maximum(basic_loss,0.0),0)returnloss其中,anchor代表錨點圖像的特征向量,positive代表正樣本圖像的特征向量,negative代表負樣本圖像的特征向量。利用tf.subtract()(減法)、tf.square()(平方)、reduce_sum()(求和)、tf.add()(加法)、tf.maximum()(取最大值)、tf.reduce_mean()(均值)函數(shù)進行計算以獲得三元組的損失。根據(jù)前文所述,選擇好的三元組是至關(guān)重要的,因為生成所有可能的(錨點、正樣本、負樣本)在三元組損失的訓(xùn)練策略中,如果三元組的選取不夠精細,可能會引入許多對模型學(xué)習(xí)過程貢獻有限的樣本。這種非優(yōu)化的樣本選擇可能導(dǎo)致訓(xùn)練效率降低,因為模型需要花費更多的時間來篩選和學(xué)習(xí)有用的信息,從而減緩了學(xué)習(xí)速度。因此,在構(gòu)建樣本的時候,需要從數(shù)據(jù)集中進行圖片抽樣,使用for循環(huán)遍歷每一個人。本文選擇這個人對應(yīng)的40張人臉圖片作為正樣本,使用np.random.shuffle()進行洗牌,從中隨機篩選40張其他人臉圖片作為負樣本。本文采用GoogleNetREF_Ref164264332\r\h[14]作為識別人臉的神經(jīng)網(wǎng)絡(luò)模型。因為它參數(shù)較少,并且還能應(yīng)用于移動設(shè)備上。GoogleNet(又稱為Inceptionv1)是一種深度卷積神經(jīng)網(wǎng)絡(luò),常用于圖像分類和識別任務(wù)。GoogleNet采用了Inception模塊和全局平均池化層,并且以其復(fù)雜的結(jié)構(gòu)使得性能表現(xiàn)良好。通常情況下,GoogleNet有22層左右,包括卷積層、池化層、全連接層和Inception模塊,參數(shù)數(shù)量大約有5,580,712個可訓(xùn)練參數(shù)(約5.5百萬),其網(wǎng)絡(luò)結(jié)構(gòu)如圖3.6所示。在GoogleNet中采用了全局平均池化(GlobalAveragePooling)操作,相較于傳統(tǒng)的池化(例如最大池化或平均池化)有很大的區(qū)別。同時,GoogleNet采用了一種稱為“Inception”的模塊結(jié)構(gòu),允許網(wǎng)絡(luò)并行地學(xué)習(xí)多個不同大小的特征,如圖3.7所示。GoogleNet,一個深度學(xué)習(xí)模型,以其獨特的結(jié)構(gòu)和高效的特征提取能力著稱,其架構(gòu)可以重新描述如下:1.圖像輸入:模型開始于一個輸入層,該層接收固定尺寸的彩色圖像,通常是224x224像素。2.特征提?。和ㄟ^一系列卷積層和池化層的組合,GoogleNet進行初步的特征提取,為后續(xù)的復(fù)雜分析打下基礎(chǔ)。3.Inception單元:這是GoogleNet的特色,由多個并行的卷積和池化分支組成,每個分支針對不同尺度的特征進行操作,然后將結(jié)果合并,以此捕獲多尺度的特征。4.降維:在模型的深層,全局平均池化層被用來整合特征圖的信息,將其轉(zhuǎn)換為單個數(shù)值,從而減少參數(shù)數(shù)量并可能提高泛化能力。5.分類器:緊接著是一個或多個全連接層,它們將降維后的特征映射到類別上,為最終的分類任務(wù)提供決策依據(jù)。6.概率分布:最后,一個Softmax函數(shù)被應(yīng)用于全連接層的輸出,生成一個概率分布,表明圖像屬于各個類別的可能性。GoogleNet通過這種設(shè)計,能夠有效地在多個層次上捕捉圖像的特征,并在多種視覺任務(wù)中取得了優(yōu)異的性能。圖3.6GoogleNet網(wǎng)絡(luò)結(jié)構(gòu)示意圖圖3.7Inception結(jié)構(gòu)示意圖具體內(nèi)容詳見GoogleNet原始論文《Goingdeeperwithconvolutions》REF_Ref164264400\r\h[15]。利用slim庫中的slim.conv2d()進行二維卷積,slim.max_pool2d()進行最大池化,slim.fully_connected()進行全連接操作,以此構(gòu)造GoogleNet神經(jīng)網(wǎng)絡(luò)模型。本文將GoogleNet用于FaceNet中的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。最后,需要利用梯度下降算法學(xué)習(xí)特征向量。本文選擇AdaGrad作為優(yōu)化器,利用函數(shù)compute_gradients()進行反向傳播以學(xué)習(xí)人臉特征向量。具體如下:opt=tf.train.AdagradOptimizer(learning_rate)grads=pute_gradients(total_loss,update_gradient_vars)4人臉識別的實現(xiàn)4.1Keras與OpenCVKeras是一個高級神經(jīng)網(wǎng)絡(luò)API,用Python編寫,能夠在TensorFlow,CNTK或Theano之上運行REF_Ref164264433\r\h[16]。Keras以其簡潔和直觀的API設(shè)計,允許用戶快速構(gòu)建和測試深度學(xué)習(xí)模型,從而加快了從概念到實現(xiàn)的過程。Keras的優(yōu)點在于提供了一個易于理解和使用的界面,使得即使是初學(xué)者也能夠快速上手,進行深度學(xué)習(xí)模型的設(shè)計和訓(xùn)練,模塊化架構(gòu)也鼓勵了組件的重用,用戶可以輕松地構(gòu)建自定義的模型組件,提高了開發(fā)效率,還支持多種類型的網(wǎng)絡(luò)結(jié)構(gòu),包括卷積神經(jīng)網(wǎng)絡(luò)(CNNs)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNNs),以及它們的組合形式,為解決復(fù)雜問題提供了靈活性。Keras的跨平臺兼容性使其可以在CPU和GPU之間運行并無縫遷移模型。OpenCV是一個廣泛使用的開源庫,專注于提供計算機視覺和機器學(xué)習(xí)領(lǐng)域的工具和算法。OpenCV的開源性質(zhì)是源代碼對所有人開放,允許開發(fā)者自由使用和修改,以適應(yīng)各種計算機視覺任務(wù)的需求。雖然核心庫是用C語言編寫的,但OpenCV也提供了對C++類的支持,并且為了更廣泛的應(yīng)用,還提供了Python、Java和MATLAB等語言的綁定。庫中包含了大量的用于圖像處理和計算機視覺的通用算法,這些算法可以用于各種不同的應(yīng)用,如圖像識別、視頻分析、實時監(jiān)控等。OpenCV的算法不僅在功能上經(jīng)過了優(yōu)化,而且在性能上也進行了高度優(yōu)化,以支持快速和高效的圖像處理操作。在人臉識別和物體識別、圖像和視頻分析、圖像合成和3D重建等領(lǐng)域有應(yīng)用。4.2相機調(diào)用與人臉圖像讀取本文使用OpenCV庫的一個Python接口CV2來調(diào)用攝像頭,并對人臉圖像進行讀取,具體代碼如下:video_capture=cv2.VideoCapture(0)ret,draw=video_capture.read()cv2.imshow('Video',draw)其中,cv2.VideoCapture()函數(shù)用來對攝像頭的初始化和打開攝像頭,而其中的參數(shù)作為攝像頭的設(shè)備索引,為0時打開電腦內(nèi)置攝像頭,為1時打開外接攝像頭。在啟動攝像頭后,調(diào)用read()函數(shù)對拍攝到的圖像逐幀讀取,并通過bool值查看返回的視頻是否結(jié)束,再用imshow()函數(shù)將讀取的畫面進行顯示。4.3人臉特征向量的生成將攝像頭抓取的人臉圖像draw利用CV2庫中的cv2.cvtColor(draw,cv2.COLOR_BGR2RGB)函數(shù)進行色彩空間轉(zhuǎn)換,cv2.COLOR_BGR2RGB指將BGR彩色圖像轉(zhuǎn)換為RGB彩色圖像。然后利用前一章介紹的MTCNN模型用來檢測圖像上的人臉,之后,對檢測到的人臉利用本文自定義的rect2square()函數(shù)將長方形調(diào)整為正方形,并利用numpy庫中的np.clip()函數(shù)進行裁剪。定義的rect2square()函數(shù)如下:defrect2square(rectangles):w=rectangles[:,2]-rectangles[:,0]h=rectangles[:,3]-rectangles[:,1]l=np.maximum(w,h).Trectangles[:,0]=rectangles[:,0]+w*0.5-l*0.5rectangles[:,1]=rectangles[:,1]+h*0.5-l*0.5rectangles[:,2:4]=rectangles[:,0:2]+np.repeat([l],2,axis=0).Treturnrectangles之后,針對人臉候選框截取人臉圖像,具體代碼如下:Landmark=np.reshape(rectangle[5:15],(5,2))-np.array([int(rectangle[0]),int(rectangle[1])])crop_img=draw_rgb[int(rectangle[1]):int(rectangle[3]),int(rectangle[0]):int(rectangle[2])]在之后,利用人臉關(guān)鍵點進行人臉對齊。以人臉五個特征點為基礎(chǔ)坐標,計算相對于特征點左上角坐標。截取人臉后,計算雙眼坐標連線對于水平線的夾角,再根據(jù)角度對截取到的人臉進行矯正,最后得到人臉對齊的圖像。人臉對齊代碼定義如下:defAlignment_1(img,landmark):iflandmark.shape[0]==68:x=landmark[36,0]-landmark[45,0]y=landmark[36,1]-landmark[45,1]eliflandmark.shape[0]==5:x=landmark[0,0]-landmark[1,0]y=landmark[0,1]-landmark[1,1]ifx==0:angle=0else:angle=math.atan(y/x)*180/math.picenter=(img.shape[1]//2,img.shape[0]//2)RotationMatrix=cv2.getRotationMatrix2D(center,angle,1)new_img=cv2.warpAffine(img,RotationMatrix,(img.shape[1],img.shape[0]))RotationMatrix=np.array(RotationMatrix)new_landmark=[]foriinrange(landmark.shape[0]):pts=[]pts.append(RotationMatrix[0,0]*landmark[i,0]+RotationMatrix[0,1]*landmark[i,1]+RotationMatrix[0,2])pts.append(RotationMatrix[1,0]*landmark[i,0]+RotationMatrix[1,1]*landmark[i,1]+RotationMatr

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論