![基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view/697769791ab0eb31981f757b2673d89a/697769791ab0eb31981f757b2673d89a1.gif)
![基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view/697769791ab0eb31981f757b2673d89a/697769791ab0eb31981f757b2673d89a2.gif)
![基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view/697769791ab0eb31981f757b2673d89a/697769791ab0eb31981f757b2673d89a3.gif)
![基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view/697769791ab0eb31981f757b2673d89a/697769791ab0eb31981f757b2673d89a4.gif)
![基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view/697769791ab0eb31981f757b2673d89a/697769791ab0eb31981f757b2673d89a5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)現(xiàn) 基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)現(xiàn)題目名稱(chēng):基于樹(shù)莓派3B+的人臉識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)摘要:目前,傳統(tǒng)的身份驗(yàn)證技術(shù)早已不能滿(mǎn)足人們的需求,而生物特征識(shí)別技術(shù)因其唯一性、不易復(fù)制性、不易竊取性和方便性,這使得生物特征識(shí)別技術(shù)逐漸成為了人們?cè)谏矸蒡?yàn)證技術(shù)上的首選。在生物特征識(shí)別技術(shù)中的人臉識(shí)別技術(shù),具有無(wú)法復(fù)制的唯一性、更好的便攜性、更高的安全性和非接觸性,現(xiàn)已應(yīng)用于電子商務(wù)、金融、國(guó)防安全等各大領(lǐng)域,其成為了生物特征識(shí)別技術(shù)的熱門(mén)研究領(lǐng)域。本論文是基于樹(shù)莓派3B+平臺(tái),結(jié)合開(kāi)源數(shù)據(jù)庫(kù)OpenCV和Python高級(jí)編程語(yǔ)言完成的人臉識(shí)別系統(tǒng),硬件部分主要有:樹(shù)莓派3B+,F(xiàn)IFO模式的USB接口攝像頭,PC控制端。樹(shù)莓派3B+平臺(tái)具有良好的可移植性、操作方便、運(yùn)算速度快等優(yōu)點(diǎn),成為本課題選擇的硬件平臺(tái)。本課題重點(diǎn)研究了人臉檢測(cè)和人臉識(shí)別技術(shù)。在人臉檢測(cè)環(huán)節(jié)中,采用了AdaBoost算法,在此算法中,用Haar特征值來(lái)表示人臉,并使用積分圖計(jì)算方法,從而加快計(jì)算速度,提高檢測(cè)速率,完成人臉檢測(cè)并為人臉識(shí)別過(guò)程做鋪墊。在人臉識(shí)別環(huán)節(jié)中,采用了基于局部特征值提取的LBP算法,其具有計(jì)算速度快,識(shí)別效果良好的特點(diǎn)。本課題基于樹(shù)莓派3B+平臺(tái),利用OpenCV開(kāi)源視覺(jué)庫(kù),實(shí)現(xiàn)了人臉檢測(cè),建立人臉庫(kù),完成人臉識(shí)別功能。經(jīng)測(cè)試,該系統(tǒng)能夠良好的完成人臉檢測(cè),人臉識(shí)別,且具有較好的檢測(cè)和識(shí)別效果。關(guān)鍵詞:人臉識(shí)別;人臉檢測(cè);樹(shù)莓派;OpenCV;AdaBoost;LBP
DesignandImplementationofFaceRecognitionSystemBasedonRaspberryPi3B+Abstract:Atpresent,thetraditionalauthenticationtechnologycan’tmeetpeople'sneedsanymore,andthebiometricidentificationtechnologyhasbecomethefirstchoiceinauthenticationtechnologybecauseofitsuniqueness,non-reproducibility,non-stealingandconvenience.Facerecognitiontechnologyinbiometricrecognitiontechnologyhasuniqueness,betterportability,highersecurityandnon-contactsothatithasbeenappliedine-commerce,finance,nationaldefensesecurityandotherfields.Ithasbecomeahotresearchfieldofbiometricrecognitiontechnology.ThispaperisbasedontheRaspberryPi3B+platform,combinedwiththeopensourcedatabaseOpenCVandPythontocompletethefacerecognitionsystem,andthehardwarepartmainlyincludes:RaspberryPi3B+,FIFOmodeUSBinterfacecamera,PC.TheRaspberryPi3B+platformhasgoodportability,convenientoperationandfastcomputingspeed.Itbecomesthehardwareplatformofchoiceforthistopic.Thesubjectfocusesonfacedetectionandfacerecognitiontechniques.Inthefacedetectionprocess,theAdaBoostalgorithmisused.Inthisalgorithm,theHaareigenvalueisusedtorepresenttheface,andtheintegralgraphcalculationmethodisusedtospeedupthecalculation,improvethedetectionrate,completethefacedetectionandpavethewaytoidentifytheface.Inthefacerecognitionlink,theLBPalgorithmbasedonlocalfeaturevalueextractionisadopted,whichhasthecharacteristicsoffastcalculationspeedandgoodrecognitioneffect.Thistopicisbasedontheraspberrypie3B+platform,usingOpenCVopensourcevisualdatabase,realizesfacedetection,establishesfacedatabase,completesfacerecognitionfunction.Aftertesting,thesystemcancompletefacedetectionandrecognitionwell,andhasgooddetectionandrecognitioneffect.Keywords:Facerecognition;Facedetection;RaspberryPi;OpenCV;AdaBoost;LBP目錄TOC\o"1-3"\h\u242341緒論 182191.1人臉識(shí)別的時(shí)代背景與意義 1171601.1.1人臉識(shí)別的優(yōu)點(diǎn)和不足 1113191.1.2人臉識(shí)別的應(yīng)用 291441.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì) 3269351.3本課題的主要框架與內(nèi)容 613192人臉識(shí)別關(guān)鍵技術(shù)及OpenCV簡(jiǎn)介 7232342.1人臉識(shí)別算法原理 7208932.1.1圖像采集及預(yù)處理 8271922.1.2人臉檢測(cè) 8154382.1.3人臉識(shí)別特征值提取 8307312.1.4人臉圖像匹配與識(shí)別過(guò)程 8240082.2系統(tǒng)采用的關(guān)鍵算法 853512.2.1人臉檢測(cè)算法 8237962.2.2人臉識(shí)別算法 1723642.3OpenCV 19207463系統(tǒng)硬件總體框架 20178863.1硬件總體框架 20112953.2樹(shù)莓派版本選擇 21283713.2.1樹(shù)莓派版本對(duì)比與選擇 21151673.2.2樹(shù)莓派3B+ 21311273.3樹(shù)莓派系統(tǒng)安裝與環(huán)境配置 24287143.3.1Raspbian操作系統(tǒng) 24251683.3.2樹(shù)莓派系統(tǒng)安裝與環(huán)境配置 2526084軟件系統(tǒng)設(shè)計(jì) 30224724.1軟件層框架 3078774.2OpenCV在樹(shù)莓派上的安裝 31317924.3本系統(tǒng)的圖像預(yù)處理 31183604.3.1圖像灰度化處理 3222914.3.2中值濾波處理 33113254.3.3圖像幾何歸一化處理 34220474.4本系統(tǒng)的人臉檢測(cè) 358064.4.1級(jí)聯(lián)分類(lèi)器CascadeClassifier 3526164.4.2rectangle函數(shù) 36245744.5本系統(tǒng)的人臉識(shí)別 3675304.5.1人臉庫(kù)建立 36271074.5.2人臉識(shí)別 38295515系統(tǒng)測(cè)試與調(diào)試 40210785.1人臉檢測(cè)測(cè)試與調(diào)試 40106755.2人臉識(shí)別測(cè)試與調(diào)試 42213335.3系統(tǒng)測(cè)評(píng) 43254596總結(jié)與展望 44305876.1總結(jié) 44276246.2展望 4417410參考文獻(xiàn) 451728致謝 46吉林工商學(xué)院本科畢業(yè)論文PAGEPAGE451緒論1.1人臉識(shí)別的時(shí)代背景與意義隨著大數(shù)據(jù)和人工智能時(shí)代的到來(lái),現(xiàn)如今,對(duì)于金融活動(dòng)、安全檢查、國(guó)家安全等領(lǐng)域的身份檢驗(yàn)技術(shù)要求越來(lái)越高,顯然,傳統(tǒng)的身份檢驗(yàn)手段(如駕駛證、ID卡、鑰匙賬號(hào)密碼等)存在易于丟失、遺忘、不便于攜帶、容易被破譯和偽造等諸多問(wèn)題,而不能夠很好地滿(mǎn)足人們對(duì)于信息安全、金融安全和身份確認(rèn)等方面的需求。例如,個(gè)人因銀行卡號(hào)密碼泄露而被不法之徒竊取資金。人們急需一種又安全可靠又方便快捷的身份驗(yàn)證手段,恰好此時(shí),基于生物特征信息的識(shí)別手段逐漸走進(jìn)我們的視野當(dāng)中,其迅速發(fā)展起來(lái),并成功應(yīng)用于人們的社會(huì)實(shí)踐活動(dòng)當(dāng)中。生物識(shí)別技術(shù)是一種高效的身份確認(rèn)方式,其主要運(yùn)用了計(jì)算機(jī)視覺(jué),圖像處理,分類(lèi)器等來(lái)獲取人類(lèi)的生物特征和行為特征,據(jù)此來(lái)完成個(gè)人身份信息確認(rèn),生物特征主要包括:虹膜、掌紋和DNA等等,行為特征主要包括聲音、筆跡、步態(tài)等等。在一般情況下,每個(gè)人的生物特征信息都不相同,具有極其高的可靠性,同時(shí),這些生物特征信息不易被盜取、偽造、模仿。因此,生物識(shí)別技術(shù)可以很好地滿(mǎn)足人們關(guān)于各個(gè)方面的需求,人們對(duì)于生物識(shí)別技術(shù)抱有很大的期望,并大力研究。對(duì)于生物識(shí)別技術(shù)領(lǐng)域,目前已經(jīng)研究出的生物識(shí)別技術(shù),并成功應(yīng)用于社會(huì)實(shí)踐活動(dòng)的識(shí)別技術(shù)主要有人臉識(shí)別、指紋識(shí)別和虹膜識(shí)別。其中,從信息安全的角度來(lái)說(shuō),人們會(huì)在不同的場(chǎng)所留下指紋,并且指紋相對(duì)于其他兩種特征更容易復(fù)制,所以,指紋識(shí)別不夠安全,不能夠很好地適用于國(guó)家安全、金融活動(dòng)等領(lǐng)域,不具備通用性;從識(shí)別精度的角度來(lái)說(shuō),雖然虹膜識(shí)別最為精準(zhǔn),但是虹膜識(shí)別因其識(shí)別采集成本極高,相對(duì)于其他兩種識(shí)別而言,應(yīng)用范圍較窄;從總體上來(lái)講,人臉識(shí)別的安全性高、不易被獲取、采集成本低、只需一個(gè)攝像頭,且不容易被破譯,所以,人臉識(shí)別技術(shù)具有巨大的商業(yè)價(jià)值,擁有重要的研究意義。1.1.1人臉識(shí)別的優(yōu)點(diǎn)和不足與傳統(tǒng)的身份驗(yàn)證手段和基于生物特征的識(shí)別技術(shù)而言,人臉識(shí)別技術(shù)具有以下優(yōu)點(diǎn):(1)低成本。在進(jìn)行人臉識(shí)別過(guò)程中,僅需要一臺(tái)終端和一個(gè)攝像頭便可完成,不再需要其他設(shè)備,且這些設(shè)備已推廣廣泛,使得人臉識(shí)別技術(shù)具有巨大的商業(yè)價(jià)值。(2)非接觸性。在進(jìn)行人臉識(shí)別的過(guò)程中,不需要被測(cè)試人接觸設(shè)備,僅需被攝像頭捕捉,安全衛(wèi)生,且這種方式更容易被用戶(hù)接受。(3)并發(fā)行。在進(jìn)行人臉識(shí)別過(guò)程中,一個(gè)攝像頭便可對(duì)多張人臉進(jìn)行識(shí)別,可以更加高效率高速度的進(jìn)行身份檢驗(yàn)。該功能可以簡(jiǎn)化通關(guān)口岸的檢驗(yàn)流程,縮短檢驗(yàn)時(shí)間。(4)隱蔽性。在進(jìn)行人臉識(shí)別過(guò)程中,并不需要用戶(hù)積極配合或強(qiáng)制配合,可以在用戶(hù)沒(méi)有察覺(jué)的情況下獲取其人臉,并確認(rèn)身份。該性質(zhì)使得人臉識(shí)別可應(yīng)用于國(guó)家國(guó)防安全、刑事案件、罪犯抓捕活動(dòng)等等。(5)便攜性。人臉識(shí)別不需要用戶(hù)攜帶任何證明身份的物件,僅需本人到達(dá)現(xiàn)場(chǎng),便可進(jìn)行身份信息檢驗(yàn)。與人臉識(shí)別的優(yōu)點(diǎn)相對(duì),人臉識(shí)別同樣也存在一些缺陷。第一,人臉并不是一成不變的,它會(huì)隨著時(shí)間流動(dòng)和面部肌肉的運(yùn)動(dòng)發(fā)生變化,盡管這些變化不是一日而成,也不是巨大的變化,但是這些變化會(huì)影響人臉識(shí)別的精度。第二,盡管世界上每個(gè)人的人臉是獨(dú)一無(wú)二的,但是依然存在像雙胞胎,三胞胎這種面部極其相似的特殊存在,這使得實(shí)現(xiàn)完全精準(zhǔn)的人臉識(shí)別需要更進(jìn)一步的研究。第三,在圖像獲取過(guò)程中,由于各種因素使得在計(jì)算機(jī)中的人臉與現(xiàn)實(shí)中的人臉存在微小而有不可避免的誤差,這會(huì)影響人臉識(shí)別的精度。以上這些是人臉識(shí)別主要的缺陷與不足,這也讓如何在采集圖像條件比較惡劣的條件下和在人臉會(huì)產(chǎn)生細(xì)微變化的情況下依舊可以有效地進(jìn)行人臉識(shí)別,成為了人臉識(shí)別技術(shù)的奮斗目標(biāo)和科研方向。1.1.2人臉識(shí)別的應(yīng)用人臉識(shí)別現(xiàn)已成功應(yīng)用于各大領(lǐng)域。如下圖1-1所示。圖1-1人臉識(shí)別典型應(yīng)用圖1-1人臉識(shí)別典型應(yīng)用目前,人臉識(shí)別已成功運(yùn)用于各大領(lǐng)域,其中有各個(gè)領(lǐng)域都擁有經(jīng)典實(shí)例,以下列舉三個(gè)經(jīng)典實(shí)例。(1)出入境管理。在需要檢查身份證(或駕照、護(hù)照)時(shí),會(huì)消耗大量的人力物力來(lái)判別身份是否相吻合,而采用人臉識(shí)別技術(shù)可以對(duì)證件進(jìn)行有效的識(shí)別,可以高效率的減少人力物力的消耗。在深圳市有著國(guó)內(nèi)出入境游客最多的口岸(羅湖口岸),該口岸就采用了“深圳——香港生物護(hù)照旅客快速通關(guān)系統(tǒng)”,該系統(tǒng)是通過(guò)人臉識(shí)別來(lái),檢驗(yàn)旅客的有效證件,判別是否為本人,既保證了出入境的安全又加快了通關(guān)速度,還極大的減少了人力物力的消耗。(2)身份確認(rèn)。對(duì)于安全度要求極高的單位,如軍隊(duì)、醫(yī)院、公安機(jī)關(guān)等等,將運(yùn)用人臉識(shí)別進(jìn)行安全檢驗(yàn),單位人員需要進(jìn)行人臉識(shí)別,在確認(rèn)身份后,才可進(jìn)入單位機(jī)構(gòu)。在長(zhǎng)沙交警支隊(duì)處罰大廳便有著閘機(jī)式人證合一核查系統(tǒng),該系統(tǒng)便是運(yùn)用人臉識(shí)別,進(jìn)行身份確認(rèn)。(3)視頻監(jiān)控。在機(jī)場(chǎng),火車(chē)站,演唱會(huì)現(xiàn)場(chǎng)等人流量較大的公共場(chǎng)合,通過(guò)場(chǎng)地內(nèi)的攝像頭,抓捕現(xiàn)場(chǎng)信息,利用人臉識(shí)別技術(shù)的隱蔽性?xún)?yōu)點(diǎn),尋找走勢(shì)兒童、監(jiān)查可疑人物、追蹤在逃嫌疑犯等事件上具有巨大的優(yōu)勢(shì),在維護(hù)和保障公共安全上有著良好的效益。2018年9月28日,張學(xué)友演唱會(huì)上,石家莊警方成功通過(guò)視頻監(jiān)控的人臉識(shí)別系統(tǒng)鎖定三名在逃人員,并成功抓獲。1.2國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)在19世紀(jì)末,法國(guó)Galton提出了能夠掃描人臉,進(jìn)行人物識(shí)別,并發(fā)表了相應(yīng)的文章,這就是人臉識(shí)別技術(shù)的起源。隨后在1990年之后的幾十年中,人臉識(shí)別技術(shù)開(kāi)始在許多國(guó)家,地區(qū)都得到了重視,并投入大量的人力物力扶持科研人員的研究,推動(dòng)該技術(shù)發(fā)展。在此期間,大量的高等院校以及科研機(jī)構(gòu)將研究方向轉(zhuǎn)移到人臉識(shí)別技術(shù)上,如國(guó)外的東京大學(xué),MIT媒體實(shí)驗(yàn)室,耶魯大學(xué)。這些機(jī)構(gòu)使人臉識(shí)別技術(shù)向前前進(jìn)了一大步,取得了偉大的成就,并做出來(lái)巨大的貢獻(xiàn)?,F(xiàn)在,根據(jù)人臉識(shí)別各個(gè)階段的技術(shù)特點(diǎn),將人臉識(shí)別技術(shù)發(fā)展分為三個(gè)主要階段,以下對(duì)每個(gè)階段進(jìn)行詳細(xì)的描述和總結(jié)。(1)第一階段,時(shí)間段為1964年到1990年,這個(gè)階段的研究是人臉識(shí)別技術(shù)的基礎(chǔ)研究。因?yàn)檫@個(gè)時(shí)間段為人臉識(shí)別的初始階段,存在將人臉識(shí)別當(dāng)成一個(gè)單一的模式識(shí)別問(wèn)題進(jìn)行研究的現(xiàn)象,科學(xué)家們提出了將問(wèn)題的解決方案著手于眼到面部剪影曲線(xiàn)的結(jié)構(gòu)特征方面的研究。這一時(shí)間段的人臉識(shí)別主要采用了基于人臉幾何特征的方法,該方法對(duì)圖片圖像質(zhì)量有著較高要求,并且獲取的圖像點(diǎn)少,使得該方法普遍適用性低下??傊?yàn)檫@是人臉識(shí)別研究階段的初始階段,所以并沒(méi)有取得值得振奮的成果,也未能將人臉識(shí)別技術(shù)應(yīng)用于真正的社會(huì)實(shí)踐生產(chǎn)活動(dòng)中。(2)第二階段,時(shí)間段為1991到1997年,這個(gè)段階是人臉識(shí)別技術(shù)的高峰期,各個(gè)國(guó)家,地區(qū)的人力物力投入到該領(lǐng)域中,涌現(xiàn)了許多經(jīng)典的著名的人臉識(shí)別方法,取得了意義非凡的成果,并且產(chǎn)生了許多商業(yè)性質(zhì)的人臉驗(yàn)證系統(tǒng)。其中,“EigenFace”方法同樣是這個(gè)階段提出的,它是所有著名的人臉識(shí)別算法的基準(zhǔn)算法,幾乎現(xiàn)存的人臉識(shí)別算法都是從這個(gè)算法衍生出來(lái)的產(chǎn)物。另外,歸一化的協(xié)相關(guān)量算法同樣也是該階段的研究人員提出,該算法與“EigenFace”方法一樣,對(duì)人臉識(shí)別技術(shù)具有重要的意義。另外,F(xiàn)isherface方法是一種典型的人臉識(shí)別算法,該算法與其他算法不一樣的是,其首先對(duì)人臉進(jìn)行降維操作,降維所采用的算法是主成分分析法。接著對(duì)降維后的圖像進(jìn)行線(xiàn)性判別分析方法進(jìn)而對(duì)主成分進(jìn)行處理,處理的主要任務(wù)是期望獲取在類(lèi)內(nèi)距離較小和在類(lèi)間距離較大。該方法同樣是人臉識(shí)別算法的重要算法,具有不少人臉識(shí)別算法是以該算法為基礎(chǔ),如子空間判別模式,零空間法,直接的LDA判別算法。彈性圖匹配技術(shù)是一種采用屬性圖來(lái)描述人臉的技術(shù),這種技術(shù)利用一種高效的搜索方式來(lái)確定圖像中的人臉特征,便可得到屬性圖。該技術(shù)不僅考慮了全局的結(jié)構(gòu)特征,還加入了對(duì)于局部特征的描述,使得最終的屬性圖對(duì)人臉描述相對(duì)精度無(wú)誤。在彈性圖匹配技術(shù)的問(wèn)世后,受其影響,一種局部特征分析技術(shù)就此出世。該技術(shù)利用低維度描述對(duì)象的手段進(jìn)行局部特征描述,并且,它還能夠兼顧全局與局部的結(jié)構(gòu)關(guān)系,這也讓利用該技術(shù)的系統(tǒng)擁有良好的辨別能力。在商業(yè)領(lǐng)域中,F(xiàn)aceIt系統(tǒng)使用了這種局部特征分析技術(shù),是一個(gè)該算法的成功典范。這一時(shí)間段的人臉識(shí)別算法主要包括基于模板匹配和基于結(jié)構(gòu)特征兩種方法。麻省理工學(xué)院的科研人員通過(guò)一系列的研究發(fā)現(xiàn),基于模板匹配方法效率優(yōu)于基于結(jié)構(gòu)特征方法的結(jié)論。對(duì)于人臉識(shí)別發(fā)展而言,該結(jié)論具有重大的指導(dǎo)意義,它為人臉識(shí)別的研究方向指明了明確的道路,它讓基于結(jié)構(gòu)特征的進(jìn)行識(shí)別的算法被放棄,使得基于模式識(shí)別的算法成為人臉識(shí)別技術(shù)的基礎(chǔ)。此外,在1994年,F(xiàn)ERET項(xiàng)目啟動(dòng),它是由美國(guó)國(guó)防部資助的一個(gè)開(kāi)發(fā)效率極高的人臉識(shí)別技術(shù)項(xiàng)目,該項(xiàng)目得到的成果現(xiàn)已經(jīng)用于美國(guó)各個(gè)部門(mén)的情報(bào)收集。該項(xiàng)目對(duì)于人臉識(shí)別技術(shù)的貢獻(xiàn)主要有兩個(gè)方面:第一,它對(duì)當(dāng)時(shí)所有的人臉識(shí)別算法進(jìn)行了實(shí)現(xiàn),并完成性能測(cè)試,這使得人臉識(shí)別技術(shù)的研究速度得到很大的提升,并使人臉識(shí)別系統(tǒng)往實(shí)用性方向發(fā)展。第二,它建立了用來(lái)收集人臉圖像信息的數(shù)據(jù)庫(kù)和開(kāi)發(fā)新的人臉識(shí)別算法,這不僅使得人臉識(shí)別技術(shù)的開(kāi)發(fā)更加完整,同時(shí),還找到了該技術(shù)下一步需要改進(jìn)和發(fā)展的方向??傊?,這一階段的人臉識(shí)別技術(shù)有了實(shí)質(zhì)性的突破與發(fā)展,產(chǎn)生了很多著名且可用于實(shí)際生活中的人臉識(shí)別算法,這使得人臉識(shí)別商業(yè)化成為了現(xiàn)實(shí)。但是這一階段的算法都是基于人臉識(shí)別系統(tǒng)在一個(gè)相對(duì)理想的環(huán)境中,如合適的光照,無(wú)遮擋物,理想姿態(tài),但是這一階段仍然無(wú)法解決光照過(guò)強(qiáng)過(guò)弱,視角等問(wèn)題。(3)第三階段,這一時(shí)間段為1998年至今日,這個(gè)階段是科研人員不再研究發(fā)展新的人臉識(shí)別算法,而是提高原有人臉識(shí)別算法的精度和實(shí)用性。基于一系列人臉識(shí)別算法的評(píng)測(cè)結(jié)果,科學(xué)家們了解到,對(duì)人臉識(shí)別技術(shù)有著巨大干擾的因素有很多,主要有:光照,姿勢(shì)以及不可避免的影響圖像精度的因素等。這些因素造成的問(wèn)題成為了這個(gè)時(shí)期人臉識(shí)別研究主要攻克的方向。最近幾年,機(jī)器學(xué)習(xí)作為一個(gè)新興的研究課題已經(jīng)應(yīng)用于各個(gè)研究領(lǐng)域當(dāng)中,人臉識(shí)別問(wèn)題屬于其分類(lèi)問(wèn)題,在這個(gè)時(shí)間段中,人臉識(shí)別同樣加入了機(jī)器學(xué)習(xí)的思想和算法,如SVM算法,其是最早應(yīng)用于人臉識(shí)別中的機(jī)器學(xué)習(xí)算法。還有基于3D變形的識(shí)別模式是一種多光照多姿態(tài)人臉識(shí)別技術(shù),其核心技術(shù)是在合成分析過(guò)程中,使用了圖像模擬方法對(duì)一系列參數(shù)進(jìn)行建模的圖像處理方式,還在人臉建模方面,使用了3D建模和紋理數(shù)據(jù)統(tǒng)計(jì)模型的方法,使得在多光照多姿態(tài)情況下,人臉的一些屬性能與外界因素區(qū)分開(kāi)來(lái),強(qiáng)化了識(shí)別強(qiáng)度,經(jīng)實(shí)驗(yàn)證明,該方法比其他同類(lèi)型算法更加高效率。在這個(gè)時(shí)間段中,有一個(gè)意義非凡且貢獻(xiàn)巨大的算法,那便是基于A(yíng)daBoost算法和簡(jiǎn)單矩陣特征高度結(jié)合的實(shí)時(shí)人臉檢測(cè)系統(tǒng),其中,這種矩陣特征非常簡(jiǎn)單,不但可以快速計(jì)算,還可以有效地表示人臉特征。經(jīng)實(shí)驗(yàn)驗(yàn)證,這種人臉識(shí)別系統(tǒng)的檢驗(yàn)速度比基于其他任意算法的系統(tǒng)都要快得多。在過(guò)去的人臉檢測(cè)過(guò)程中,幾乎之前所有的算法都是采用強(qiáng)分類(lèi)器的學(xué)習(xí)方式,然該系統(tǒng)將大量的弱分類(lèi)器進(jìn)行分類(lèi)。在檢測(cè)過(guò)程中,同時(shí)也加入了新的級(jí)聯(lián)技術(shù),這讓人臉檢測(cè)速度得到巨大的提升。該系統(tǒng)為了前面的人臉檢測(cè)提供了巨大的幫助,同時(shí)還為后面的人臉識(shí)別提供了快速識(shí)別的基礎(chǔ)。美國(guó)國(guó)防部在這個(gè)時(shí)間段中還啟動(dòng)了另一個(gè)重要項(xiàng)目,F(xiàn)aceRecognitionVendorTest,該項(xiàng)目不但對(duì)目前為止現(xiàn)存的人臉識(shí)別技術(shù)進(jìn)行了詳細(xì)的比較,而且,指出了目前技術(shù)的優(yōu)缺點(diǎn),同時(shí)指明了需要改進(jìn)的方向,為人臉識(shí)別的研究發(fā)展做出來(lái)巨大的貢獻(xiàn)。該項(xiàng)目同時(shí)也對(duì)大規(guī)模人臉識(shí)別所存在的問(wèn)題(如時(shí)間跨度,姿態(tài),光照等)做出了指導(dǎo)性的意見(jiàn),指明了前進(jìn)方向??偠灾@個(gè)時(shí)間段中,人臉識(shí)別系統(tǒng)的精度得到了飛躍性的提高。目前,人臉識(shí)別技術(shù)研究方向主要是在圖片圖像的一些外界條件,如光照,姿態(tài),遮擋物等等,除此之外,講非線(xiàn)性建模方法,3D建模,機(jī)器學(xué)習(xí)等新的思想與技術(shù)應(yīng)用于人臉識(shí)別領(lǐng)域中,這也是未來(lái)人臉識(shí)別的發(fā)展方向。然而,人臉識(shí)別技術(shù)在國(guó)內(nèi)開(kāi)始于20世紀(jì)90年代,晚了大約有幾十年,但是人臉識(shí)別技術(shù)在國(guó)內(nèi)進(jìn)展神速,其中,國(guó)內(nèi)眾多機(jī)構(gòu)貢獻(xiàn)巨大,如清華大學(xué),浙江大學(xué),香港中文大學(xué)等高校以及中國(guó)科學(xué)院自動(dòng)化研究所等科研機(jī)構(gòu)。清華大學(xué)的科研人員在基于K-L變換的人臉識(shí)別算法的基礎(chǔ)上,對(duì)特征臉?lè)椒ㄕ归_(kāi)了更深入和創(chuàng)造性的研究,如張長(zhǎng)水,彭輝等科學(xué)家提出了使用一種全新的矩陣,類(lèi)間散步矩陣,接著采用K-L變換對(duì)圖片圖像進(jìn)行降維,以便提取人臉圖像的代數(shù)特征。該算法的提升可以在保證識(shí)別率不變的情況下,極大縮短運(yùn)算時(shí)間。在南京理工大學(xué)中,模式識(shí)別與智能系統(tǒng)研究人員楊靜宇提出了基于奇異值分解的人臉識(shí)別研究。該算法的主要流程是:(1)進(jìn)行小波變換的圖像處理方法;(2)根據(jù)不同的頻帶將圖像分割成N個(gè)子空間,然后分別提取其奇異值;(3)使用比較分類(lèi)法將其分類(lèi),接著,對(duì)分類(lèi)結(jié)果采用群體決策法進(jìn)行有選擇性的結(jié)合。香港中文大學(xué)研發(fā)了一種“GAUSSIANFACE高斯臉”的人臉識(shí)別技術(shù),該技術(shù)使得人臉識(shí)別系統(tǒng)的識(shí)別率達(dá)到了98.52%。還有許多科研人員對(duì)國(guó)內(nèi)人臉識(shí)別技術(shù)做出了偉大的貢獻(xiàn),如陳熙霖,山世光等人在人臉特征方法以及其他特征識(shí)方法,采用了深度學(xué)習(xí)法進(jìn)行了比較深入的研究與探索。周宏祥,張輝等人在對(duì)人臉特征提取和識(shí)別過(guò)程中,利用了分析神經(jīng)網(wǎng)絡(luò)的方法,進(jìn)行人臉識(shí)別,這使得人臉識(shí)別系統(tǒng)能夠存儲(chǔ)大量的人臉樣本,和人臉識(shí)別運(yùn)算速度的大幅度提升,乃至人臉識(shí)別的快速實(shí)現(xiàn)。目前,國(guó)內(nèi)外有著大量關(guān)于智能識(shí)別技術(shù)的文獻(xiàn),同時(shí),也指引人臉識(shí)別的前進(jìn)方向,引發(fā)了越來(lái)越多的科研人員對(duì)智能識(shí)別領(lǐng)域的深入研究,并將許多先進(jìn)的思想融入與實(shí)際應(yīng)用當(dāng)中,如國(guó)防,交通,金融活動(dòng)等等。1.3本課題的主要框架與內(nèi)容該系統(tǒng)是基于樹(shù)莓派3B+平臺(tái),結(jié)合開(kāi)源數(shù)據(jù)庫(kù)OpenCV和Python高級(jí)編程語(yǔ)言完成的人臉識(shí)別系統(tǒng)。首先,研究了人臉識(shí)別技術(shù)的相關(guān)概念,技術(shù)原理。然后,利用OpenCV提供的級(jí)聯(lián)分類(lèi)器進(jìn)行人臉檢測(cè);接著,建立人臉庫(kù),將人臉的信息保存在樹(shù)莓派SD卡中;其次,利用OpenCV提供的LBP識(shí)別方法實(shí)現(xiàn)了人臉識(shí)別;最后,對(duì)整個(gè)系統(tǒng)進(jìn)行測(cè)試與調(diào)試。以下是各個(gè)章節(jié)的主要內(nèi)容:第一章緒論。該章節(jié)主要介紹了人臉識(shí)別的時(shí)代背景與意義,以及國(guó)內(nèi)外的研究現(xiàn)狀。同時(shí),對(duì)本論文的主要內(nèi)容和框架進(jìn)行概括和簡(jiǎn)單的介紹。第二章人臉識(shí)別算法基本原理及OpenCV簡(jiǎn)介。該章節(jié)簡(jiǎn)單地介紹了人臉識(shí)別算法的基本原理和視覺(jué)開(kāi)源庫(kù)OpenCV。第三章系統(tǒng)硬件總體框架。首先,簡(jiǎn)單地介紹了樹(shù)莓派。其次,介紹了樹(shù)莓派的選擇過(guò)程,并介紹樹(shù)莓派3B+的內(nèi)部結(jié)構(gòu)以及樹(shù)莓派系統(tǒng)的安裝和環(huán)境配置。第四章軟件系統(tǒng)設(shè)計(jì)。介紹了本系統(tǒng)軟件層次的框架,OpenCV的安裝,并介紹了人臉檢測(cè)的實(shí)現(xiàn)過(guò)程,如何建立人臉庫(kù)的過(guò)程,完成人臉識(shí)別。第五章系統(tǒng)測(cè)試與調(diào)試。對(duì)本課題的人臉識(shí)別系統(tǒng)進(jìn)行測(cè)試與調(diào)試的結(jié)果說(shuō)明。第六章總結(jié)與展望。對(duì)人臉識(shí)別系統(tǒng)進(jìn)行全方面的總結(jié),并展望本系統(tǒng)的前進(jìn)方向。2人臉識(shí)別關(guān)鍵技術(shù)及OpenCV簡(jiǎn)介現(xiàn)如今,人臉識(shí)別技術(shù)已經(jīng)相對(duì)成熟,涌現(xiàn)出一批識(shí)別率極度高的人臉識(shí)別算法,現(xiàn)已成功應(yīng)用于國(guó)防、金融、安檢等各大領(lǐng)域,現(xiàn)在我們來(lái)講述人臉識(shí)別的算法流程以及簡(jiǎn)單介紹本項(xiàng)目實(shí)現(xiàn)的核心算法。2.1人臉識(shí)別算法原理當(dāng)前,盡管現(xiàn)有的各大識(shí)別算法不同,但是其基本流程相對(duì)一致。其主要的識(shí)別步驟有圖像采集及圖像預(yù)處理,人臉檢測(cè),人臉圖像特征值提取和人臉圖像匹配與識(shí)別這四大部分過(guò)程。人臉識(shí)別原理圖如下圖2-1。圖2-1人臉識(shí)別原理圖2.1.1圖像采集及預(yù)處理系統(tǒng)的圖像采集就是通過(guò)圖片采集設(shè)備把包含人臉和不包含人臉的圖像采集到計(jì)算機(jī)中,并對(duì)其加工合成等操作,用以人臉識(shí)別。采集設(shè)備一般包括:自然光攝像頭、監(jiān)控?cái)z像頭、3D攝像頭等等。采集設(shè)備的采集方式、輸出方式、背景光對(duì)采集設(shè)備的干擾這些因素都會(huì)給人臉識(shí)別系統(tǒng)帶來(lái)一定的影響。獲取的圖片需要經(jīng)過(guò)一些處理,使其能夠滿(mǎn)足后面系統(tǒng)的要求,這便就是圖像預(yù)處理,即對(duì)圖像進(jìn)行處理,最終服務(wù)于后續(xù)的其他環(huán)節(jié)的過(guò)程。系統(tǒng)中圖像預(yù)處理可以分為兩個(gè)階段,在系統(tǒng)早期獲取圖像過(guò)程中,由于受到各種現(xiàn)實(shí)條件的影響,干擾和限制,所以必須在早期階段對(duì)其進(jìn)行灰度矯正,噪聲過(guò)濾,歸一化處理等圖像預(yù)處理系統(tǒng);在系統(tǒng)后期處理照片中,需要在發(fā)現(xiàn)人臉的區(qū)域中框選出人臉,眼睛等部分,經(jīng)過(guò)處理后,顯示在屏幕上。2.1.2人臉檢測(cè)在圖片/視屏中檢查是否存在人臉,并做出判斷回應(yīng),即人臉檢測(cè)。這一步驟在實(shí)際應(yīng)用是人臉識(shí)別的基礎(chǔ),為人臉識(shí)別服務(wù),即判斷有無(wú)人臉,和標(biāo)記出人臉的位置和大小。人臉圖像中包含的檢測(cè)模式十分豐富,如直方圖特征、顏色特征、模板特征以及Haar特征等。人臉檢測(cè)就是利用這些特征信息實(shí)現(xiàn)人臉檢測(cè),其中,人臉上有一些共性特征,主要有:幾何特征、膚色特征、運(yùn)動(dòng)特征等等。目前,常見(jiàn)且實(shí)用的人臉檢測(cè)方法有:基于先驗(yàn)知識(shí)的算法、基于人臉模板匹配的算法、基于人臉特征的算法。2.1.3人臉識(shí)別特征值提取在人臉檢測(cè)中,發(fā)現(xiàn)了人臉,隨后將該人臉的特征數(shù)據(jù)采集下來(lái)的過(guò)程,就是人臉識(shí)別特征值提取過(guò)程。人臉某些特征的信息采集實(shí)際上是人臉建模的過(guò)程。目前,可用于人臉識(shí)別系統(tǒng)的特征值一般分為視覺(jué)特征值、像素統(tǒng)計(jì)特征值、人臉圖像變換系數(shù)特征等。2.1.4人臉圖像匹配與識(shí)別過(guò)程根據(jù)提取出來(lái)的特征值,與人臉庫(kù)中的數(shù)據(jù)進(jìn)行比對(duì),最后選出對(duì)應(yīng)人臉的過(guò)程,就是人臉識(shí)別的最終階段,即判斷圖片圖像中的人臉是否與人臉庫(kù)中的人臉一致。經(jīng)過(guò)科研人員們的不斷努力,人臉識(shí)別技術(shù)已經(jīng)相當(dāng)成熟,已經(jīng)有幾種非常成熟的人臉識(shí)別方法:基于幾何特征識(shí)別法、基于人工神經(jīng)網(wǎng)絡(luò)法、基于LBP法、基于PCA等等。2.2系統(tǒng)采用的關(guān)鍵算法本系統(tǒng)是基于樹(shù)莓派3B+平臺(tái),結(jié)合視覺(jué)開(kāi)源庫(kù)OpenCV,使用Python編程語(yǔ)言實(shí)現(xiàn)人臉識(shí)別的系統(tǒng),其中,以AdaBoost算法和Haar-like特征為基礎(chǔ)的級(jí)聯(lián)分類(lèi)器來(lái)實(shí)現(xiàn)人臉檢測(cè),使用LBP算法實(shí)現(xiàn)人臉識(shí)別。2.2.1人臉檢測(cè)算法本系統(tǒng)的人臉檢測(cè)使用了以AdaBoost算法,結(jié)合Haar-like特征和積分圖計(jì)算方法為基礎(chǔ)實(shí)現(xiàn)的分類(lèi)器,再串聯(lián)而成級(jí)聯(lián)分類(lèi)器,使其能夠完成人臉檢測(cè)任務(wù)。(1)AdaBoost算法的背景與發(fā)展在1990年,科研人員Schapire提出一種弱學(xué)習(xí)算法(一種判斷算法,判斷結(jié)果的正確率只有50%,甚至低于50%),并設(shè)計(jì)出一種類(lèi)似多項(xiàng)式結(jié)合的算法對(duì)弱學(xué)習(xí)算法進(jìn)行強(qiáng)化,最后,得到了一個(gè)具有相對(duì)高正確率的強(qiáng)學(xué)習(xí)算法(一種判斷算法,判斷結(jié)果的正確率大于50%)。隨后,由Freund在1991年發(fā)表了一種更為高效的Boosting算法。這兩種算法便是AdaBoost算法的前身,但是它們都具有一個(gè)致命的缺陷,即需要提前知道弱學(xué)習(xí)算法的最小正確率,這使得Boosting算法無(wú)法適用于一些實(shí)際情況的使用。隨后,Schapire和Freund合作研究了Boosting算法,于1995年提出了經(jīng)典的AdaBoost算法。這種算法不僅運(yùn)算速率更快,而且解決了Boosting算法的致命缺陷(不必先知道弱學(xué)習(xí)算法的先決條件)。AdaBoost算法通過(guò)若干次迭代后,自身學(xué)會(huì)提高弱學(xué)習(xí)算法的判斷正確率,使得系統(tǒng)判斷錯(cuò)誤率可以達(dá)到預(yù)期值。在訓(xùn)練樣本之前,AdaBoost算法已經(jīng)不再需要了解該樣本的空間分布。第一步,開(kāi)始進(jìn)行若干次弱學(xué)習(xí)之前,給樣本空間的每個(gè)樣本賦予一個(gè)權(quán)重。第二步,開(kāi)始若干次弱學(xué)習(xí),在每次若學(xué)習(xí)中,該算法可以自動(dòng)調(diào)節(jié)和更新樣本空間中的每個(gè)樣本的權(quán)重,通過(guò)降低樣本空間中正確樣本的權(quán)重,和增大樣本空間中被分類(lèi)錯(cuò)誤的樣本的權(quán)重,所以,在以后的弱學(xué)習(xí)中,更加關(guān)注分類(lèi)錯(cuò)誤的樣本。第三步,在若干次的弱學(xué)習(xí)后,便可得到較高的分類(lèi)正確率。科研人員Viola和Jones于2001年,首次提出了將AdaBoost算法應(yīng)用于人臉檢測(cè)。首先,利用矩形特征(Haar特征)來(lái)描述圖像中的人臉;然后,使用一種稱(chēng)為積分圖的快速計(jì)算方法;其次,采用AdaBoost算法對(duì)這些矩陣特征進(jìn)行訓(xùn)練,隨后得到一組弱分類(lèi)器,通過(guò)串聯(lián)的方式,串聯(lián)多個(gè)弱分類(lèi)器構(gòu)成一個(gè)強(qiáng)分類(lèi)器;最后,通過(guò)級(jí)聯(lián)的方式將若干個(gè)強(qiáng)分類(lèi)器組合成一個(gè)更為復(fù)雜更為有效的級(jí)聯(lián)分類(lèi)器。采用級(jí)聯(lián)分類(lèi)器,可以快速排除圖片中無(wú)關(guān)的背景信息,從而可以對(duì)圖像中的人臉區(qū)域進(jìn)行更多次掃描,由此減少檢測(cè)時(shí)間,獲得較高較快的人臉檢測(cè)效率。但是一開(kāi)始的矩陣特征不足以描述一些特殊的人臉特征,誤檢率相對(duì)較高,因此,很多科研人員在A(yíng)daBoost算法中投入越來(lái)越多的精力與時(shí)間,使其能夠完美應(yīng)用于人臉檢測(cè)領(lǐng)域中。RainerLienhart于2003年拓展了矩陣特征,通過(guò)改善算法的缺陷,使得誤檢率降低了10%。在2007年,Lee等科研人員提出了Ent-Boost算法,使得運(yùn)用該算法的強(qiáng)分類(lèi)器具有更加強(qiáng)大的分類(lèi)效果。AdaBoost算法的流程圖2-2如下。圖2-2AdaBoost算法流程圖圖2-2AdaBoost算法流程圖(2)Haar-like特征在人臉檢測(cè)中基于A(yíng)daBoost算法的級(jí)聯(lián)分類(lèi)器中的每一個(gè)弱分類(lèi)器中,只能含有一種特征,即矩形特征(Haar-like特征),下面詳細(xì)介紹Haar-like特征。最早的Haar特征是由Papageorigiou等人提出,并應(yīng)用于人臉檢測(cè)。Papageorigiou等人在人臉檢測(cè)問(wèn)題和正面人臉的研究領(lǐng)域中,采用了Haar小波基函數(shù),而小波變換可以得到圖像中某類(lèi)事物的顯著特征,為了取得更好的空間分辨力,他們使用了三種類(lèi)型的特征,分別是水平特征、垂直特征、對(duì)角特征,可以用這些特征來(lái)區(qū)分人臉與非人臉。如三種特征下圖2-3所示。HorizontalVerticalCornet圖2-3典型Haar特征類(lèi)型在1998年,Viola提出了一種新的矩形濾波器,還在原有的Haar濾波器中增加了一個(gè)濾波器,成功拓展了Haar特征,即Haarl-like特征,如圖2-4所示。垂直特征水平特征對(duì)角特征線(xiàn)性特征垂直特征水平特征對(duì)角特征線(xiàn)性特征圖2-4四種矩形特征上述特征可以簡(jiǎn)單地描述人臉中的一些特征,比如,雙眼灰度比鼻梁上側(cè)的灰度值相差甚遠(yuǎn)(這是人臉中的一個(gè)重要特征的矩形特征),嘴唇的顏色要比嘴巴周?chē)膮^(qū)域要深得多,眼睛要比眼睛周?chē)幕疑潭雀叩鹊龋ㄈ缦聢D2-5所示)。此時(shí),Haar-like只能對(duì)正向人臉的特征進(jìn)行檢測(cè),不具備推廣性。為了提高人臉檢測(cè)系統(tǒng)的應(yīng)用范圍,RainerLienhart在原有的Haar-like特征上引入了45度旋轉(zhuǎn)矩陣特性,使得更多的Haar矩陣特征可以作為人臉檢測(cè)分類(lèi)的依據(jù),其中這些依據(jù)包括了邊緣特征,線(xiàn)性特征,點(diǎn)特征,對(duì)角特征等等(如下圖2-6所示)。圖2-5人臉中顯著的Haar特征圖2-5人臉中顯著的Haar特征邊緣特征邊緣特征線(xiàn)性特征點(diǎn)特征對(duì)角線(xiàn)特征圖2-6Haar-like特征通過(guò)圖片中白色區(qū)域的像素和與黑色區(qū)域的像素和的差值。(3)積分圖計(jì)算方法在上述的4.3.2中,我們了解到采用Haar-like特征值便可用來(lái)檢測(cè)人臉,但是,假設(shè)一張大小為24x24的圖片中,其任意組成矩形區(qū)域就將近有16萬(wàn)種組合,即表示有16萬(wàn)種特征;而在30x30的圖片種,就有將近42萬(wàn)個(gè)矩陣區(qū)域,其中的計(jì)算量是十分巨大的。因此,采用“積分圖”計(jì)算方法來(lái)快速計(jì)算Haar-like特征值。積分圖計(jì)算方法就像是一個(gè)計(jì)算加速器,只需要遍歷一次圖像,就能夠計(jì)算出圖像中全部的像素和,這恰好能夠滿(mǎn)足并可以加快Haar-like的計(jì)算,加快了人臉檢測(cè)系統(tǒng)的檢測(cè)效率?,F(xiàn)在開(kāi)始介紹積分圖計(jì)算方法,如圖2-7中A點(diǎn)表示為積分圖中許多小黑點(diǎn)標(biāo)記形成的方框區(qū)域,就是左上方的所有區(qū)域的像素和。圖2-7積分示意圖這一塊區(qū)域用公式表示為:ii(x,y)=x'<X,y'其中,ii(x,y)為原始圖像中A(x,y)的積分圖像值,i(x',y')是灰度圖在點(diǎn)(xs(x,y)=s(x,y-1)+i(x,y) ii(x,y)=ii(x-其中,s(x,y)是點(diǎn)(x,y)在y軸上的全部像素點(diǎn)的和,即列方向的積分和。我們使用上述的三個(gè)公式,可以求出某個(gè)矩形區(qū)域的積分圖,再通過(guò)積分圖來(lái)求特征值。具體過(guò)程如下:首先,使用積分圖計(jì)算矩形區(qū)域的像素值,如求下圖中D區(qū)域的像素值。圖2-8求矩形區(qū)域像素和圖2-8求矩形區(qū)域像素和圖2.8中,使用ii(1),ii(2),ii(3),ii(4)分別表示A矩陣區(qū)域,A+B矩陣區(qū)域,A+C矩陣區(qū)域和A+B+C+D矩陣區(qū)域,下面是區(qū)域D的像素計(jì)算公式:區(qū)域D的像素值=ii了解如何求某區(qū)域矩陣像素值的計(jì)算方法后,我們可以通過(guò)計(jì)算相鄰矩陣區(qū)域之間的積分圖差值,即得到Haar-like特征。計(jì)算下圖A,B區(qū)域之間的差值,即計(jì)算兩個(gè)相鄰黑白矩形區(qū)域的差值。圖2-9求黑白矩形區(qū)域A,B的差值圖2-9求黑白矩形區(qū)域A,B的差值其中,A矩形區(qū)域,B矩形區(qū)域的像素計(jì)算方法如公式:區(qū)域A的像素值Sa=ii(5)+ii(1)-ii(2)區(qū)域B的像素值Sb=ii(6)+ii(2)-ii(3)可得A區(qū)域與B區(qū)域的像素值之差,如下公式:區(qū)域A與B的像素差S=Sa-Sb結(jié)合上述,矩形特征(Haar-like特征)可以通過(guò)積分圖一次遍歷便可得到所有區(qū)域的Haar-like特征值。而且這種計(jì)算方式加快了人臉檢測(cè)的運(yùn)算速率,同時(shí)加快了目標(biāo)檢測(cè)的速度。(4)分類(lèi)器分類(lèi)器分為弱分類(lèi)器和強(qiáng)分類(lèi)器,其中,強(qiáng)分類(lèi)器是由多個(gè)弱分類(lèi)器組合而成的。<1>弱分類(lèi)器一個(gè)分類(lèi)結(jié)果比隨機(jī)猜測(cè)結(jié)果好的分類(lèi)器,便是弱分類(lèi)器。在運(yùn)用AdaBoost算法的人臉檢測(cè)分類(lèi)器中,采用了Haar-like特征值來(lái)構(gòu)造弱分類(lèi)器。圖像中的每一個(gè)矩形特征對(duì)應(yīng)一個(gè)弱分類(lèi)器,我們通過(guò)對(duì)弱分類(lèi)器進(jìn)行訓(xùn)練來(lái)確定一個(gè)最佳閾值,使得分類(lèi)效果達(dá)到最佳。從流程圖2-10可以看出,AdaBoost算法就是在每一次循環(huán)中得到一個(gè)弱分類(lèi)器,該分類(lèi)器是一個(gè)擁有最小錯(cuò)誤率的,隨后更新樣本權(quán)重,降低正確分類(lèi)的權(quán)重,升高分類(lèi)錯(cuò)誤的樣本的權(quán)重,使得分類(lèi)錯(cuò)誤的樣本在下一次循環(huán)中(訓(xùn)練中)得到更多的重視。最后,將挑選出來(lái)的t個(gè)弱分類(lèi)器按照權(quán)重新線(xiàn)性組合成強(qiáng)分類(lèi)器。在1996年,F(xiàn)reund和Schapire做出實(shí)驗(yàn)證明:隨著弱分類(lèi)器數(shù)量的增加,強(qiáng)分類(lèi)器對(duì)樣本進(jìn)行分類(lèi)時(shí)的錯(cuò)誤率也隨之降低。圖2-10弱分類(lèi)器訓(xùn)練流程圖圖2-10弱分類(lèi)器訓(xùn)練流程圖<2>強(qiáng)分類(lèi)器在A(yíng)daBoost算法中,將一系列的弱分類(lèi)器通過(guò)加權(quán)求和的方式組合成強(qiáng)分類(lèi)器,來(lái)降低算法的誤檢測(cè)率,滿(mǎn)足實(shí)際系統(tǒng)的檢測(cè)標(biāo)準(zhǔn)。理論證明:隨著數(shù)量T的增大,訓(xùn)練誤差將會(huì)逐步降低,根據(jù)極限的思想,當(dāng)T無(wú)限趨近于無(wú)窮大時(shí),訓(xùn)練誤差等于零。圖2-11強(qiáng)分類(lèi)器構(gòu)成圖2-11強(qiáng)分類(lèi)器構(gòu)成從上述流程中,我們能夠得到一個(gè)強(qiáng)分類(lèi)器,當(dāng)沒(méi)有滿(mǎn)足第三步時(shí),我們只需要通過(guò)增加弱分類(lèi)器的個(gè)數(shù)來(lái)使得強(qiáng)分類(lèi)器的誤檢率到達(dá)要求(誤檢率低于最大誤檢率閾值)。而且理論證明:系統(tǒng)誤檢率會(huì)隨著訓(xùn)練次數(shù)增加而減少,因此,我們通過(guò)上述流程可以得到一個(gè)強(qiáng)分類(lèi)器。(5)級(jí)聯(lián)分類(lèi)器為了加強(qiáng)人臉檢測(cè)率,加快檢測(cè)速度,引入級(jí)聯(lián)分類(lèi)器的思想,下圖2-12所示。級(jí)聯(lián)分類(lèi)器的結(jié)構(gòu)是由粗到細(xì),通過(guò)若干個(gè)強(qiáng)分類(lèi)器串聯(lián)成的級(jí)聯(lián)分類(lèi)器,然后在每個(gè)分類(lèi)器都調(diào)整其閾值,讓人臉樣本能夠全部通過(guò)(T方向),而對(duì)于人臉部分能通過(guò)的便十分稀少。在前面的幾個(gè)強(qiáng)分類(lèi)器便可排除大部分非人臉的負(fù)樣本,并且計(jì)算速度快,原因是前面幾層所運(yùn)用的Haar-like特征少;隨著層數(shù)的深入,被淘汰的負(fù)樣本很多,只剩下幾個(gè)候選窗口,所以需要計(jì)算的窗口也很少,從而提高了計(jì)算速率。圖2-12級(jí)聯(lián)分類(lèi)器構(gòu)成圖圖2-12級(jí)聯(lián)分類(lèi)器構(gòu)成圖2.2.2人臉識(shí)別算法人臉識(shí)別采用LBP算法進(jìn)行實(shí)現(xiàn),這種算法具有很高的運(yùn)算速率,能夠保證系統(tǒng)的實(shí)時(shí)性。(1)LBP算法介紹隨著越來(lái)越多的人臉識(shí)別算法的提出,T.Ojala于1996年提出了基于局部二進(jìn)制特征模式的算法,即最基礎(chǔ)的LBP算法。該算法可以很好地記錄圖像中的局部紋理特征,且該特征記錄方式對(duì)光照不敏感,在2004年該算法正式登陸人臉識(shí)別應(yīng)用領(lǐng)域。最基礎(chǔ)的LBP算法在像素分布層次的詳細(xì)描述如下圖:圖2-13基本LBP算法描述圖2-13基本LBP算法描述在圖2-13中,基礎(chǔ)LBP算法是定義在一個(gè)3*3的矩形區(qū)域內(nèi)完成的,將中心像素點(diǎn)的像素值與周?chē)袼攸c(diǎn)的像素值作比較,大于中心點(diǎn)時(shí)的周?chē)袼攸c(diǎn)記為1,小于的記為0,便可以等到一個(gè)用二進(jìn)制表示的結(jié)果。如圖4-13中,經(jīng)過(guò)LBP處理后,形成的二進(jìn)制標(biāo)記為01100111,即為L(zhǎng)BP碼,表示為圖像的紋理特性,下列用公式求圖像中的LBP碼:LBP(Xo,Yo)=其中S(X)為符號(hào)函數(shù),記為: (2-9)以上便是最基礎(chǔ)的LBP算法描述,但是它只能對(duì)半徑固定的區(qū)域進(jìn)行描述,不能適應(yīng)人臉識(shí)別系統(tǒng)的實(shí)際要求(半徑不同大小時(shí)的不同紋理)。Ojala等科研人員針對(duì)該問(wèn)題,將LBP算法進(jìn)行了拓展,將LBP在像素分布層替換成圓形領(lǐng)域,形成了改進(jìn)型的LBP算法。改進(jìn)型LBP把3*3的矩陣空間替換成不限制半徑大小的圓形區(qū)域,在該區(qū)域中可以對(duì)任意個(gè)點(diǎn)進(jìn)行采集和編碼,克服了原先的不足之處。如下圖所示:圖2-14圓形LBP特征圖2-14圓形LBP特征在圖4-14中,圓形LBP特征的采樣點(diǎn)(Xp,Yp)由如下公式計(jì)算: (2-10) (2-11)其中,(Xc,Yc)為中心點(diǎn)的坐標(biāo),p表示第個(gè)采樣點(diǎn),R為采樣半徑,P為采樣數(shù)目。上述公式求出來(lái)后不一定是整數(shù),我們需要使用雙線(xiàn)性插值的方法,將其轉(zhuǎn)化為整數(shù): (2-12)其效果如圖所示:圖2-15LBP特征圖圖2-15LBP特征圖<2>基于LBP算法的人臉識(shí)別使用LBP算法進(jìn)行人臉識(shí)別時(shí),我們可以先將圖像切割成若干個(gè)區(qū)域,然后對(duì)每個(gè)子區(qū)域的LBP特征建立直方圖,最后將所有子直方圖合并成一個(gè)整體直方圖,最后使用相似性度量函數(shù)比較相似性,得出是否為庫(kù)中人臉。LBP算法的具體流程如下:(1)對(duì)樣本集進(jìn)行訓(xùn)練,且進(jìn)行預(yù)處理(2)將圖像進(jìn)行分塊處理,分塊量需要適當(dāng),但分塊越多計(jì)算量越大,精度越高,運(yùn)算速率越慢。(3)圖像LBP特征值提取。根據(jù)上述的圓形LBP算法求出LBP特征值(4)進(jìn)行人臉匹配。利用卡方概率統(tǒng)計(jì)的方式與訓(xùn)練完畢的人臉庫(kù)進(jìn)行比較,匹配出人臉。2.3OpenCVOpenCV(英語(yǔ)全程為OpensourceComputerVisionLibrary)是一個(gè)開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù),其主要采用C和C++編寫(xiě),具有良好的跨平臺(tái)性,可以在主流的操作系統(tǒng)上運(yùn)行,如Windows,Linux,MacOSX系統(tǒng)。該庫(kù)提供的函數(shù)都經(jīng)過(guò)算法優(yōu)化,運(yùn)算速度快,適用于醫(yī)學(xué)圖像處理,安防,用戶(hù)界面,三維成像等等領(lǐng)域,超過(guò)500個(gè)接口函數(shù)。這也意味著,(1)不管是科學(xué)研究,還是商業(yè)應(yīng)用,都可以利用它來(lái)做開(kāi)發(fā);(2)所有API函數(shù)的源代碼都是公開(kāi)的,我們可以看見(jiàn)其內(nèi)部實(shí)現(xiàn);(3)OpenCV是一個(gè)開(kāi)放代碼的工具庫(kù),可以修改庫(kù)中函數(shù),在原有基礎(chǔ)上形成屬于自己的特定功能的API函數(shù)。作為一個(gè)開(kāi)源視覺(jué)庫(kù),一般都內(nèi)含各種圖像處理算法,具有以下全部功能:(1)數(shù)據(jù)獲取,獲取圖像或視頻;(2)預(yù)處理,一般為去除或者降低噪聲,灰度化,模糊化,銳化,開(kāi)閉等等;(3)特征提取,即根據(jù)某一特征將若干類(lèi)別區(qū)分開(kāi)來(lái);(4)特征選擇,選擇適合需求的特征對(duì)事物進(jìn)行區(qū)分;(5)分類(lèi)器設(shè)計(jì)與訓(xùn)練,根據(jù)特征值,對(duì)某一數(shù)據(jù)集合開(kāi)始處理,以提高正確率;(6)分類(lèi)判別,得出結(jié)論。OpenCV在這六個(gè)部分都提供了API,這恰好與人臉識(shí)別的特征值算法契合,所以我們選擇OpenCV來(lái)處理人臉圖像,人臉檢測(cè)及人臉識(shí)別。3系統(tǒng)硬件總體框架3.1硬件總體框架了解完人臉識(shí)別的核心算法后,開(kāi)始介紹本項(xiàng)目中人臉識(shí)別系統(tǒng)。該系統(tǒng)是基于樹(shù)莓派3B+平臺(tái),結(jié)合開(kāi)源數(shù)據(jù)庫(kù)OpenCV和Python高級(jí)編程語(yǔ)言完成的人臉識(shí)別系統(tǒng)。其硬件部分主要有:樹(shù)莓派3B+,F(xiàn)IFO模式的USB接口攝像頭,PC控制端。硬件設(shè)計(jì)總體框架如圖3-1所示。圖3-1系統(tǒng)硬件設(shè)計(jì)圖3-1系統(tǒng)硬件設(shè)計(jì)其中,樹(shù)莓派3B+連接上路由器提供的局域網(wǎng),來(lái)獲取樹(shù)莓派的地址,用以建立PC端對(duì)樹(shù)莓派3B+的遠(yuǎn)程訪(fǎng)問(wèn);將攝像頭直接插入樹(shù)莓派提供的USB接口即可;數(shù)據(jù)的傳輸在硬件上是通過(guò)TTL(邏輯門(mén)電路)進(jìn)行傳輸?shù)?。TTL電平信號(hào)可以用來(lái)表示二進(jìn)制的數(shù)據(jù),當(dāng)電平為5V時(shí),即傳輸?shù)氖沁壿嫛?”;當(dāng)電平為0V時(shí),則傳輸?shù)氖沁壿嫛?”,這就完成了對(duì)二進(jìn)制的數(shù)據(jù)的表示,其常用于計(jì)算機(jī)與設(shè)備內(nèi)部各部分之間的通信。隨后,通過(guò)打開(kāi)PuTTY軟件,選擇Serial模式,設(shè)置波特率,如下圖3-2所示。圖3-2PuTTY設(shè)置圖3-2PuTTY設(shè)置同時(shí),我們通過(guò)PC端對(duì)樹(shù)莓派進(jìn)行遠(yuǎn)程訪(fǎng)問(wèn),詳細(xì)見(jiàn)下一節(jié)3.2中,系統(tǒng)安裝與環(huán)境配置。首先,打開(kāi)樹(shù)莓派的SSH(專(zhuān)為遠(yuǎn)程登錄會(huì)話(huà)和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議),VNC(遠(yuǎn)程控制臺(tái))功能,在PuTTY開(kāi)啟的終端中,選擇wifi信號(hào),再獲取樹(shù)莓派的IP地址,隨后啟動(dòng)VNC軟件,進(jìn)行遠(yuǎn)程訪(fǎng)問(wèn)。3.2樹(shù)莓派版本選擇英國(guó)慈善RaspberryPi基金會(huì)想為發(fā)展中國(guó)家提供一款超級(jí)低價(jià)位的一個(gè)基本的計(jì)算機(jī)編程氛圍,研發(fā)了一款只有ID卡那么大的,使用Linux系統(tǒng)的個(gè)人計(jì)算機(jī),即RaspberryPi。目前,微軟發(fā)布的Windows10LoT系統(tǒng)已經(jīng)支持在樹(shù)莓派上運(yùn)行,所以,在PaspberryPi上不但可以運(yùn)行Linux,也可以運(yùn)行Windows系統(tǒng)。此外,樹(shù)莓派開(kāi)發(fā)環(huán)境已經(jīng)形成了良好的生態(tài)系統(tǒng),通過(guò)安裝各種配件,可以將其應(yīng)用于眾多領(lǐng)域,如游戲,智能家居控制系統(tǒng),機(jī)器人實(shí)驗(yàn)室等等。3.2.1樹(shù)莓派版本對(duì)比與選擇按照版本的不同,樹(shù)莓派可以分為A和B兩大版本。以下分別從它們之間的共性與差異來(lái)選擇系統(tǒng)開(kāi)發(fā)的樹(shù)莓派版本的選擇。(1)共性。這兩大版本都配備了ARM架構(gòu)的處理器,采用不同于其他開(kāi)發(fā)板的數(shù)據(jù)存儲(chǔ)方式,SD卡存儲(chǔ)數(shù)據(jù)。它們都配備了USB,HDMI,以太網(wǎng)等接口,同時(shí),可以將鼠標(biāo),鍵盤(pán),顯示屏等通過(guò)相應(yīng)的接口與樹(shù)莓派連接,成為樹(shù)莓派的I/O設(shè)備。而且,樹(shù)莓派A,B版本可以完成視屏和音頻的輸出,因?yàn)檫@兩種版本樹(shù)莓派還具備GPIO口,即通用可編程輸入輸出口,這是一般PC機(jī)上不會(huì)存在的接口。(2)差異。A型:?jiǎn)蜺SB接口,無(wú)網(wǎng)絡(luò)接口,功耗2.5W,500mA,內(nèi)存只有256M.B型:雙USB接口,支持有線(xiàn)網(wǎng)絡(luò),功耗3.5,700mA。按照版本的不難發(fā)現(xiàn),A型樹(shù)莓派是廉價(jià)版本的B型樹(shù)莓,其功能強(qiáng)度和運(yùn)算速度都明顯不如B型樹(shù)莓派,所以,派我們選擇B型樹(shù)莓派來(lái)完成本論文的人臉識(shí)別系統(tǒng)。而B(niǎo)型樹(shù)莓派中還細(xì)分為,B型,B+型,2代B型,3代B型,3代B+型。其中,3B+型比其他型號(hào)的版本搭載了ARMCortex-A53CPU,內(nèi)存提供到1G,更多USB接口,且對(duì)過(guò)流保護(hù)和熱插拔做了適當(dāng)?shù)母牧?,采用MicroSD插口代替了原始的SD插口,更低的功耗等優(yōu)點(diǎn)。綜上所述,樹(shù)莓派3B+版本采用Liunx系統(tǒng),內(nèi)存達(dá)1G,運(yùn)算速度快,且功能強(qiáng)大,能夠滿(mǎn)足人臉識(shí)別系統(tǒng)對(duì)于運(yùn)算速率,內(nèi)存,操作系統(tǒng)的要求,所以本論文選擇樹(shù)莓派3B+作為人臉識(shí)別系統(tǒng)=的開(kāi)發(fā)平臺(tái)。3.2.2樹(shù)莓派3B+當(dāng)我們選擇了樹(shù)莓派3B+作為人臉識(shí)別系統(tǒng)的平臺(tái)時(shí),我們開(kāi)始正式了解樹(shù)莓派3B+。以下是樹(shù)莓派實(shí)物圖,如圖3-3所示。樹(shù)莓派3B+的SOC是BroadcomBCM2837(B0),CPU是ARMCortex-A531.4GHz64-bitquad-coreARMv8CPU,內(nèi)存有1G,具有眾多外接管腳。圖3-3樹(shù)莓派3B+實(shí)物圖圖3-3樹(shù)莓派3B+實(shí)物圖當(dāng)我們看過(guò)實(shí)物圖后,我們開(kāi)始了解樹(shù)莓派3B+樹(shù)莓派的電路結(jié)構(gòu)。我們從電源開(kāi)始說(shuō)起,以下是樹(shù)莓派3B+的電源電路圖和電路狀態(tài)圖。圖3-4樹(shù)莓派3B+電源圖圖3-4樹(shù)莓派3B+電源圖圖3-5樹(shù)莓派3B+狀態(tài)燈電路圖圖3-5樹(shù)莓派3B+狀態(tài)燈電路圖其中,MF-MSMF250/X是一個(gè)自恢復(fù)保險(xiǎn)絲,該保險(xiǎn)絲最大耐壓為16V,持續(xù)通過(guò)電流高達(dá)2.5A,峰值電流為5A。當(dāng)樹(shù)莓派3B+啟動(dòng)電源時(shí),亮起紅色指示燈,表明樹(shù)莓派已經(jīng)上電,當(dāng)樹(shù)莓派3B+系統(tǒng)啟動(dòng)時(shí),亮起綠色指示燈,表明樹(shù)莓派系統(tǒng)正在啟動(dòng)中或正在運(yùn)行中。樹(shù)莓派3B+的CPU為ARMCortex-A53CPU,其封裝在BCM2837中,其部分電路圖如下:圖3-6BCM2837模塊電路圖樹(shù)莓派3B+可以外接接口,其電路圖如下所示:圖3-7外接接口電路圖圖3-7外接接口電路圖其中,外界接口有兩個(gè)5V接口,兩個(gè)3.3V接口,8個(gè)GND接口,一個(gè)UART總線(xiàn),一個(gè)SPI總線(xiàn),一個(gè)I2C總線(xiàn),二十六個(gè)GPIO接口。當(dāng)GPIO連接到超過(guò)3.3V的電壓上,可能燒毀GPIO模塊。除此之外,樹(shù)莓派3B+還提供一些接口,如HDMI接口,CAMERA接口,A/V接口等。以下是它們的電路圖。圖3-8各個(gè)外接模塊的接口電路圖圖3-8各個(gè)外接模塊的接口電路圖3.3樹(shù)莓派系統(tǒng)安裝與環(huán)境配置本系統(tǒng)使用的操作系統(tǒng)是由Raspberry官網(wǎng)提供的RaspbianLinux,通過(guò)PC端中的Etcher軟件將樹(shù)莓派操作系統(tǒng)鏡像轉(zhuǎn)入SD卡中,然后在SD卡中修改系統(tǒng)配置文件,最后,通過(guò)PuTTY軟件實(shí)現(xiàn)PC端對(duì)樹(shù)莓派的訪(fǎng)問(wèn),隨后,采用VNC軟件形成樹(shù)莓派系統(tǒng)的圖形界面,對(duì)其加以訪(fǎng)問(wèn)控制。3.3.1Raspbian操作系統(tǒng)基于Debian(一個(gè)致力于創(chuàng)建自由操作系統(tǒng)的合作組織及其作品,其做多項(xiàng)目都是以L(fǎng)inux為宏內(nèi)核)的Raspbian是針對(duì)樹(shù)莓派的硬件,內(nèi)核和應(yīng)用程序做出了全新的深度的優(yōu)化,使其適用于基于A(yíng)RM硬件框架的PaspberryPi操作系統(tǒng)。Debian從7.0/wheezy版本后,開(kāi)始引入具有硬件浮點(diǎn)加速的ARM架構(gòu),使得樹(shù)莓派的運(yùn)算速率有著巨大的提升。同時(shí),Raspbian具有單獨(dú)的軟件資源,有著12000個(gè)軟件包,大部分都內(nèi)置了C和Python編譯器,為樹(shù)莓派提供一個(gè)資源豐富的穩(wěn)定的快速的操作系統(tǒng)。圖3-9樹(shù)莓派啟動(dòng)系統(tǒng)流程圖3-9樹(shù)莓派啟動(dòng)系統(tǒng)流程基于樹(shù)莓派平臺(tái)上的Raspbian操作系統(tǒng)與基于其他嵌入式平臺(tái)的操作系統(tǒng)的啟動(dòng)方式不同。傳統(tǒng)的嵌入式平臺(tái)在A(yíng)RM上電后,從位于SD卡的0x000地址的應(yīng)用程序開(kāi)始或調(diào)用NAND,接著,BootLodaer的第一階段進(jìn)行CPU配置,將自身的代碼復(fù)制到ARM(CPU)運(yùn)行,最后條用內(nèi)核Kernel。而樹(shù)莓派的啟動(dòng)是CPU與GPU結(jié)合的模式。具體啟動(dòng)流程如上圖。3.3.2樹(shù)莓派系統(tǒng)安裝與環(huán)境配置了解了樹(shù)莓派的Raspbian操作系統(tǒng)后,現(xiàn)在我們開(kāi)始介紹樹(shù)莓派系統(tǒng)安裝與環(huán)境配置。(1)安裝系統(tǒng)本課題是在Windows系統(tǒng)下,使用Etcher工具軟件,講Raspbian系統(tǒng)燒錄SD卡中。樹(shù)莓派官網(wǎng)提供了三種版本的鏡像文件,下載Raspbian鏡像文件,解壓后得到.img文件和.shal文件,它們分別是系統(tǒng)鏡像和校驗(yàn)文件。具體安裝過(guò)程如下:<1>打開(kāi)Etcher.exe,然后選擇鏡像文件。如圖3-10所示圖3-10選擇鏡像文件圖3-10選擇鏡像文件<2>選擇打開(kāi)后,點(diǎn)擊Flash按鈕,開(kāi)始燒錄系統(tǒng)。如圖3-11所示。圖3-11樹(shù)莓派系統(tǒng)燒錄圖3-11樹(shù)莓派系統(tǒng)燒錄
<3>等待完成燒錄。修改樹(shù)莓派串口配置文件,打開(kāi)config.txt文件,在尾部添加以下內(nèi)容:enablie_uart=1。如圖3-12所示圖3-12串口環(huán)境配置圖3-12串口環(huán)境配置(2)系統(tǒng)環(huán)境配置<1>打開(kāi)Putty軟件,在Putty中選擇串口模式,根據(jù)設(shè)備管理器顯示,選擇端口號(hào),并設(shè)置速度,點(diǎn)擊確認(rèn)。如圖3-13所示圖3-13使用PuTTY連接樹(shù)莓派圖3-13使用PuTTY連接樹(shù)莓派<2>樹(shù)莓派上電后,輸入賬號(hào)密碼,開(kāi)啟樹(shù)莓派系統(tǒng)。如圖3-14所示。圖3-14樹(shù)莓派系統(tǒng)啟動(dòng)圖3-14樹(shù)莓派系統(tǒng)啟動(dòng)<3>開(kāi)始配置系統(tǒng)初始化環(huán)境,主要工作內(nèi)容有修改密碼,選擇wifi,打開(kāi)ssh和vnc服務(wù)。現(xiàn)在開(kāi)始選擇wifi。輸入指令:$sudoraspi-config,進(jìn)入樹(shù)莓派環(huán)境配置工具。如圖3-15所示。圖3-15樹(shù)莓派環(huán)境配置圖3-15樹(shù)莓派環(huán)境配置<4>第一,選擇第一項(xiàng),完成修改密碼。第二,選擇第二項(xiàng),進(jìn)入wifi選擇,完成wifi信號(hào)選擇。第三,選擇第五項(xiàng),開(kāi)啟ssh,vnc服務(wù)。隨后重啟樹(shù)莓派啟動(dòng),輸入以下指令:$sudoreboot<5>接下來(lái),啟動(dòng)VNC軟件,使得PC端成為樹(shù)莓派的圖形界面。具體操作如下:在PuTTY軟件中,輸入$ifconfig,顯示樹(shù)莓派所連接網(wǎng)絡(luò)的IP地址。隨后,啟動(dòng)VNC軟件,根據(jù)IP地址登陸樹(shù)莓派,進(jìn)入樹(shù)莓派的圖像界面中,如圖3-16所示。 這就完成了對(duì)樹(shù)莓派系統(tǒng)安裝與環(huán)境配置,隨后進(jìn)入第四章,軟件系統(tǒng)設(shè)計(jì)。圖3-16樹(shù)莓派VNC遠(yuǎn)程控制圖3-16樹(shù)莓派VNC遠(yuǎn)程控制4軟件系統(tǒng)設(shè)計(jì)4.1軟件層框架基于樹(shù)莓派3B+平臺(tái),結(jié)合開(kāi)源數(shù)據(jù)庫(kù)OpenCV,并使用Python高級(jí)編輯語(yǔ)言的人臉識(shí)別系統(tǒng),其程序流程圖,如下圖4-1所示。在本章,我們重點(diǎn)介紹了人臉檢測(cè)環(huán)節(jié)和人臉識(shí)別環(huán)節(jié)的核心算法。圖4-1系統(tǒng)人臉識(shí)別流程圖根據(jù)上面的流程圖,我們可以得到人臉識(shí)別的詳細(xì)步驟:1)采集圖像,對(duì)圖像進(jìn)行預(yù)處理,包括去除噪聲干擾,灰度化,幾何歸一化等。使得圖像能夠滿(mǎn)足人臉識(shí)別系統(tǒng)對(duì)于計(jì)算速率,存儲(chǔ)空間,人臉檢測(cè)與識(shí)別精度要求。2)在圖像中發(fā)現(xiàn)人臉,采用了級(jí)聯(lián)分類(lèi)器,其內(nèi)部是由Haar-like特征,AdaBoost結(jié)合而成的若干個(gè)線(xiàn)性組合在一起的強(qiáng)分類(lèi)器。3)將檢測(cè)到的人臉進(jìn)行特征值提取,采用了LBP特征的方法,然后,將采集得到特征值與人臉庫(kù)中已有的人臉特征值進(jìn)行匹配。4)得出人臉識(shí)別結(jié)果,回到第一步,否則退出程序。4.2OpenCV在樹(shù)莓派上的安裝OpenCV在樹(shù)莓派上的安裝相對(duì)比較復(fù)雜,主要步驟有更新系統(tǒng),擴(kuò)展文件系統(tǒng),安裝依賴(lài)包,編譯安裝OpenCV。下面是這些步驟的詳細(xì)解釋。第一步,更新系統(tǒng)并拓展文件系統(tǒng)。更新系統(tǒng)能夠支撐最新下載的依賴(lài)包的安裝,拓展文件系統(tǒng),使得文件內(nèi)存更大,文件處理速度更快,能夠加快OpenCV的下載安裝。指令如下:$sudoapt-getupdate&&sudoapt-getupgrade,完成系統(tǒng)更新。$sudoraspi-config,選擇第七項(xiàng):AdvancedOptions,再選擇第一項(xiàng)拓展文件系統(tǒng)。如圖4-2所示:圖4-2拓展文件系統(tǒng)圖4-2拓展文件系統(tǒng)第二步,安裝OpenCV的依賴(lài)包,為編譯安裝OpenCV做準(zhǔn)備。主要依賴(lài)包有:(1)開(kāi)發(fā)工具的依賴(lài)包,這些包來(lái)輔助OpenCV編譯:build-essential,cmake,pkg-config。(2)圖像和I/O包,這些包使樹(shù)莓派可以加載多種格式的圖片:libjpeg-dev,libtiff5-devlibjasper-dev,libpng-dev。(3)視頻I/O包,這些包可以讓我們從多種格式的文件中讀入視頻,甚至可以從攝像頭讀入視頻流:libavcodec-dev,libavformat-dev,libswscale-dev,libv4l-dev,libxvidcore-dev,libx264-dev。(4)OpenCV關(guān)于矩陣的操作包:libatlas-base-dev。(5)為了使OpenCV視頻可以顯示在屏幕上,需要GTK開(kāi)發(fā)庫(kù):libgtk2.0-dev,libgtk-3-dev。上述的依賴(lài)包通過(guò)install來(lái)進(jìn)行安裝。第三步,下載OpenCV源代碼。下載opencv.zip和opencv_contrib.zip,注意,這兩個(gè)版本一定要一致,否則在運(yùn)行OpenCV進(jìn)行處理時(shí),會(huì)存在編譯失敗的問(wèn)題。第四步,對(duì)OpenCV源代碼進(jìn)行解壓編譯,并進(jìn)行測(cè)試。即完成對(duì)OpenCV的安裝。4.3本系統(tǒng)的圖像預(yù)處理人臉識(shí)別過(guò)程中,在獲取圖像后,需要對(duì)圖像進(jìn)行預(yù)處理,使其滿(mǎn)足人臉識(shí)別的需求。其中,圖像預(yù)處理包括三大模塊:圖像灰度化處理,中值濾波處理,幾何歸一化處理。4.3.1圖像灰度化處理在我們生活中的攝像頭抓捕到的圖像已經(jīng)是彩色的,其在電腦中的存儲(chǔ)都是用三個(gè)字節(jié)來(lái)組成的,即RGB顏色空間表示法,其中,R表示為紅色Red,G表示為綠色Green,B表示為藍(lán)色Blue。但是彩色圖像對(duì)于人臉識(shí)別系統(tǒng)并沒(méi)有什么幫助,反而因?yàn)椴噬珗D片圖像是灰度圖的三倍,使得計(jì)算量大幅度提升。為了提高人臉識(shí)別系統(tǒng)在人臉檢測(cè),人臉識(shí)別過(guò)程中的運(yùn)算速率,和為了避免圖像中的背景與人臉膚色相近時(shí)產(chǎn)生的干擾,我們選擇將攝像頭采集到的彩色圖像轉(zhuǎn)化成灰度圖?;叶葓D像中,灰度的變化范圍是0至255,這表明了圖像的灰度程度共有256個(gè)等級(jí),其中,當(dāng)圖像中的每一個(gè)像素點(diǎn)都為255時(shí),表示為一張全白的圖片;當(dāng)圖像中的每一個(gè)像素點(diǎn)都有0時(shí),表示為一張全黑的圖片。通過(guò)使用公式4-1來(lái)對(duì)彩色圖像進(jìn)行轉(zhuǎn)化:Gray=0.39×R+0.50×G+0.11×彩色圖像轉(zhuǎn)化為灰度圖片的效果圖,如圖4-3所示:圖4-3灰度化處理圖4-3灰度化處理使用OpenCV提供的cvtColor函數(shù),即可完成對(duì)圖像的灰度化處理。部分演示Python代碼如下:cam=cv2.VideoCapture(0) #開(kāi)啟攝像頭,并讀取視屏while(True):img=cam.read() #讀取視屏內(nèi)某一幀畫(huà)面gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #OpenCV提供的cvtColor函數(shù),第一個(gè)參數(shù)為輸入圖片,第二個(gè)參數(shù)為設(shè)置存儲(chǔ)模式,更換為灰度化模式。cv2.imshow('video',gray) #顯示4.3.2中值濾波處理在攝像頭采集圖像過(guò)程中,圖像經(jīng)常因?yàn)楸徊煌瑥?qiáng)度的隨機(jī)信號(hào)所干擾,這最終會(huì)影響人臉識(shí)別系統(tǒng)的有效性,精確性等等。所以,在人臉識(shí)別環(huán)節(jié)之前,對(duì)圖像進(jìn)行噪聲消除處理有利于實(shí)現(xiàn)有良好精確度的人臉識(shí)別系統(tǒng),其中,常見(jiàn)噪聲有脈沖噪聲,高斯噪聲等等。作為最常用的濾波方法之一的中值濾波法,它是一種非線(xiàn)性抑制噪聲的處理方法,在人臉圖像的預(yù)處理環(huán)節(jié)中常用二維中值濾波方式。中值濾波通過(guò)讓與周邊的像素差值較大的噪聲值轉(zhuǎn)化成領(lǐng)域像素的中間值,從而去除孤立的噪聲點(diǎn)。與此同時(shí),中值濾波還可以提供相對(duì)良好的保護(hù)邊界,從而克服線(xiàn)性濾波器所帶來(lái)的圖像局部細(xì)節(jié)模糊。最后,中值濾波方法在計(jì)算機(jī)運(yùn)算過(guò)程中,并不需要圖像的統(tǒng)計(jì)特性,加快運(yùn)算速率。綜上所述,中值濾波能夠滿(mǎn)足人臉識(shí)別系統(tǒng)的需求,如運(yùn)算快速,細(xì)節(jié)保護(hù),消除孤立的噪聲點(diǎn)等等。窗口尺寸對(duì)于中值濾波器的效果具有重大影響,隨著窗口大小不同,中值也會(huì)隨之變化。中值濾波器的處理效果如圖4-4所示:圖4-4二維中值濾波效果使用OpenCV提供的medianblur函數(shù),其參數(shù)列表為(InputArraysrc,OutputArraydst,intksize),第一個(gè)為被濾波圖片,第二位函數(shù)濾波后的輸出結(jié)果,第三個(gè)為孔徑的線(xiàn)性尺寸,其必須為奇數(shù),值越大,濾布效果越強(qiáng)。部分演示Python代碼如下:cam=cv2.VideoCapture(0)while(True):img=cam.read()cv2.medianblur(image,out,3) #中值濾波處理,輸出結(jié)果為outcv2.imshow(‘img’,img) #原圖顯示cv2.imshow('medianblur',out) #中值濾波效果顯示4.3.3圖像幾何歸一化處理在攝像機(jī)采集圖像過(guò)程中,通常會(huì)因?yàn)槿缛四樜恢?,拍攝角度等各種因素,使得抓捕到的圖片圖像存在有各種問(wèn)題,如程度不一的偏移,旋轉(zhuǎn)和失真。在人臉識(shí)別系統(tǒng)中,需要對(duì)已經(jīng)統(tǒng)一的具有相同形式的圖像進(jìn)行處理。還有,人臉庫(kù)中的人臉要經(jīng)過(guò)訓(xùn)練才可以進(jìn)行人臉匹配環(huán)節(jié),統(tǒng)一化有利于圖像的快速處理。所以需要將采集到的圖像進(jìn)行歸一化處理。在本人臉識(shí)別系統(tǒng)的圖像預(yù)處理環(huán)節(jié)中,圖像的幾何歸一化主要包括姿勢(shì)的旋轉(zhuǎn)矯正和裁剪大小歸一化。首先,因?yàn)槿四樀淖藙?shì)狀態(tài)不同,人臉肌肉舒暢程度不同,有時(shí)會(huì)出現(xiàn)兩眼不再同一條直線(xiàn)上的情況,那么便需要對(duì)人臉進(jìn)行矯正處理,使得眼睛處理水平狀態(tài)。隨后,按照一個(gè)規(guī)則(如取100*112大小的人臉圖像),將人臉從圖像中裁剪下來(lái),這有利于人臉庫(kù)的訓(xùn)練,有利于加快人臉識(shí)別速率。假設(shè),圖像在坐標(biāo)X和坐標(biāo)Y方向進(jìn)行收縮,其縮放系數(shù)為和,隨著下列公式進(jìn)行歸一化處理。 (4-2)圖像歸一化處理的效果圖,如圖4-5所示:圖4-5歸一化處理a)原始圖b)歸一化效果圖圖4-5歸一化處理a)原始圖b)歸一化效果圖圖像幾何歸一化處理,主要用在人臉庫(kù)的數(shù)據(jù)使用上,主要操作是文件的讀寫(xiě)。使用OpenCV提供的imwrite函數(shù),和利用OpenCV數(shù)組操作的便利實(shí)現(xiàn)。演示Python代碼如下:cv2.imwrite("dataset/picture1",gray[y:y+h,x:x+w])#datast/picture1為設(shè)置存入的地址,設(shè)置存入名字#gray為圖片,其中x,y為圖片坐標(biāo),h,w分別為人臉在圖像中的長(zhǎng)度,寬度#處理效果為講人臉部分存入到相應(yīng)的地址位置4.4本系統(tǒng)的人臉檢測(cè)本系統(tǒng)采用以AdaBoost算法和Haar特征為基礎(chǔ)的級(jí)聯(lián)分類(lèi)器,來(lái)實(shí)現(xiàn)人臉檢測(cè),其主要使用了OpenCV提供的級(jí)聯(lián)分類(lèi)器CascadeClassifier接口,與其內(nèi)部提供的detectMultiScale函數(shù)和rectangle函數(shù)。4.4.1級(jí)聯(lián)分類(lèi)器CascadeClassifier級(jí)聯(lián)分類(lèi)器是用來(lái)檢測(cè)目標(biāo)使用的,需要通過(guò)加載分類(lèi)器實(shí)現(xiàn)人臉檢測(cè)。加載代碼如下:faceCascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')#字符串haarcascade_frontalface_default.xml是官方提供的人臉Haar-like特征集合#變量faceCascade是分類(lèi)器與Haar-like特征結(jié)合后,能夠用于人臉檢測(cè)的分類(lèi)器在人臉檢測(cè)中,還需要用到級(jí)聯(lián)分類(lèi)器提供的detectMultiScale函數(shù),我們使用到的主要參數(shù)如下: voiddetectMultiScale( InputArrayimage, //輸入圖像CV_OUTstd::vector<Rect>&objects, //檢測(cè)到的目標(biāo)區(qū)域doublescaleFactor=1.2, //搜索前后兩次窗口大小比例系數(shù)intminNeighbors=5, //候選框鄰居的最小個(gè)數(shù)intflags=0, //flagSizeminSize=Size(), //能檢測(cè)的最小尺寸SizemaxSize=Size() //能檢測(cè)的最大尺寸);我們使用該函數(shù)來(lái)發(fā)現(xiàn)圖像中的人臉,演示Python代碼如下:faceCascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml') #加載分類(lèi)器cap=cv2.VideoCapture(0)whileTrue: img=cap.read() #獲取圖片 gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #灰度化 faces=faceCascade.detectMultiScale(#開(kāi)始檢測(cè)圖像中是否有人臉。gray,scaleFactor=1.2,minNeighbors=5,minSize=(20,20))4.4.2rectangle函數(shù)該函數(shù)的主要功能是在圖片中畫(huà)出矩形方框,用來(lái)標(biāo)記已經(jīng)檢測(cè)出來(lái)的人臉。其主要參數(shù)如下:voidcvRectangle( CvArr*img, //圖片CvPointpt1, //矩陣頂點(diǎn)CvPointpt2, //矩陣另一個(gè)頂點(diǎn)CvScalarcolor, //線(xiàn)條顏色intthickness=1, //組成矩形的線(xiàn)條的粗細(xì)程度intline_type=8, //線(xiàn)條的類(lèi)型intshift=0 //坐標(biāo)點(diǎn)的小數(shù)點(diǎn)位數(shù)。);我們用該函數(shù)來(lái)完成,圖像中的人臉標(biāo)記,演示Python代碼如下:for(x,y,w,h)infaces: #faces中,依次獲取人臉的坐標(biāo)(x,y),人臉長(zhǎng)寬w,h cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)隨后,只需將圖片img顯示,便可完成人臉檢測(cè)。4.5本系統(tǒng)的人臉識(shí)別在完成人臉檢測(cè)后,便是進(jìn)行人臉庫(kù)建立,隨后便可進(jìn)行人臉識(shí)別。4.5.1人臉庫(kù)建立在檢測(cè)到人臉后,講圖像中的人臉部分儲(chǔ)存到SD卡中,隨后進(jìn)行訓(xùn)練,便完成了人臉庫(kù)的建立。除了用來(lái)人臉檢測(cè)的函數(shù)以外,主要使用的OpenCV提供的人臉LBP識(shí)別模式,imwrite函數(shù),文件OS操作。主要步驟如下:1.將人臉圖片錄入到指定目錄中2.將錄入完畢的圖片進(jìn)行訓(xùn)練,以滿(mǎn)足人臉識(shí)別的實(shí)時(shí)性,即提取出人臉圖片中的LBP特征值。第一步的部分偽代碼如下:face_detector=cv2.CascadeClassifier('haarcascade_frontalface_default.xml') #加載人臉?lè)诸?lèi)器face_id=input('\nenteruseridendpress<return>==>')#人臉I(yè)D錄入,人物1,人物2,人物3Count=0 #用以控制保存單個(gè)人物的多少圖片While(True): img=cam.read() #獲取圖像 gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #灰度化 faces=face_detector.detectMultiScale(gray,1.3,5) #發(fā)現(xiàn)人臉 for(x,y,w,h)infaces: #在圖像中顯示出來(lái) cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) count+=1cv2.imwrite("dataset/User.",gray[y:y+h,x:x+w])#圖像中的人臉部分保存 ifcount>=30: #單人物,保存30張照片即停止break第二步的核心函數(shù)如下:#該函數(shù)功能為將每個(gè)人物的圖片與ID對(duì)應(yīng)起來(lái),存儲(chǔ)在兩個(gè)集合中,并返回這兩個(gè)集合。defgetImagesAndLabels(path):imagePaths=[os.path.join(path,f)forfinos.listdir(path)] faceSamples=[]ids=[]forimagePathinimagePaths:PIL_img=Image.open(imagePath).co
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45154-2024老齡化社會(huì)年齡包容性勞動(dòng)力通用要求與指南
- GB/T 18487.5-2024電動(dòng)汽車(chē)傳導(dǎo)充電系統(tǒng)第5部分:用于GB/T 20234.3的直流充電系統(tǒng)
- racemic-9-Nor-9β-hydroxy-Hexahydrocannabinol-生命科學(xué)試劑-MCE-7978
- Glyceryl-dilaurate-生命科學(xué)試劑-MCE-3370
- 二零二五年度美發(fā)店租賃合同包含美發(fā)店品牌形象維護(hù)條款
- 2025年度智能化舞臺(tái)搭建安全責(zé)任及技術(shù)服務(wù)合同
- 2025年度銀行貸款反擔(dān)保合同違約責(zé)任合同
- 2025年度父母出資購(gòu)房子女房產(chǎn)增值收益分配協(xié)議書(shū)
- 施工日志填寫(xiě)樣本屋面防水工程
- 職場(chǎng)技能提升與自主創(chuàng)業(yè)的實(shí)踐案例分析
- 人工智能在商場(chǎng)應(yīng)用
- (完整word版)大格子作文紙模板(帶字?jǐn)?shù)統(tǒng)計(jì))
- 高考語(yǔ)文復(fù)習(xí):小說(shuō)閱讀主觀(guān)題題型探究-解讀《理水》
- 物流營(yíng)銷(xiāo)(第四版) 課件 第一章 物流營(yíng)銷(xiāo)概述
- 血液灌流流程及注意事項(xiàng)詳細(xì)圖解
- 5A+Chapter+2+Turning+over+a+new+leaf 英語(yǔ)精講課件
- 相交線(xiàn)教學(xué)課件
- 貝克曼梁測(cè)定路基路面回彈彎沉
- 機(jī)電安裝施工質(zhì)量標(biāo)準(zhǔn)化實(shí)施圖冊(cè)
- ge680ct用戶(hù)學(xué)習(xí)aw4.6軟件手冊(cè)autobone xpress指南中文
- 2023年高一年級(jí)必修二語(yǔ)文背誦篇目
評(píng)論
0/150
提交評(píng)論