沈開(kāi)榮,張根源,吳飛龍
(1.浙江廣播電視傳輸發(fā)射中心,浙江杭州,310005;2.浙江傳媒學(xué)院電子信息學(xué)院,浙江杭州,310018;3.浙江大學(xué)儀器科學(xué)與工程學(xué)系,浙江杭州,310027)
?
基于人臉識(shí)別的校車考勤系統(tǒng)設(shè)計(jì)
沈開(kāi)榮1,張根源2,吳飛龍3
(1.浙江廣播電視傳輸發(fā)射中心,浙江杭州,310005;2.浙江傳媒學(xué)院電子信息學(xué)院,浙江杭州,310018;3.浙江大學(xué)儀器科學(xué)與工程學(xué)系,浙江杭州,310027)
摘要:本文介紹了基于人臉識(shí)別的校車考勤系統(tǒng)設(shè)計(jì)思路,并對(duì)關(guān)鍵的人臉檢測(cè)與人臉識(shí)別算法進(jìn)行了深入的分析與設(shè)計(jì),最終結(jié)果表明該系統(tǒng)設(shè)計(jì)達(dá)到了實(shí)際使用要求。
關(guān)鍵詞:人臉檢測(cè);人臉識(shí)別;校車;考勤
近年來(lái),各地校車重大安全事故層出不窮,校車的安全管理成為了制約校車推廣的一個(gè)主要因素,采用人臉識(shí)別的校車考勤系統(tǒng)也應(yīng)運(yùn)而生。
人臉識(shí)別是一種基于人的面部圖像信息進(jìn)行身份識(shí)別的方法。通過(guò)攝像頭獲得含有人臉的圖片或者視頻,在圖像中搜索和追蹤人臉,并對(duì)人臉圖片進(jìn)行一系列的處理,最終識(shí)別不同人的身份信息。
相對(duì)于傳統(tǒng)RFID識(shí)別的考勤系統(tǒng),人臉識(shí)別的校車考勤具有方便快捷與安全性高的特點(diǎn),不存在代刷卡的情況,且在上車的過(guò)程中就可以快速的完成檢測(cè),同時(shí)人臉識(shí)別的方法可以有效的檢測(cè)出未注冊(cè)的上車乘客,及時(shí)的記錄乘客的信息,方便以后查詢,安全性更高。
近些年隨著深度學(xué)習(xí)技術(shù)的興起,人臉識(shí)別的一些技術(shù)問(wèn)題也得到了較好的解決,比如之前的人臉識(shí)別算法對(duì)于光照的敏感性較強(qiáng),而基于深度學(xué)習(xí)的人臉識(shí)別算法較好的解決了這一問(wèn)題,其識(shí)別率較高,適應(yīng)性強(qiáng),可以完成乘客考勤的任務(wù)。
人臉識(shí)別的算法流程圖如圖1所示,首先由攝像頭采集到人臉圖像,然后通過(guò)人臉檢測(cè)算法定位人臉,之后對(duì)人臉進(jìn)行特征提取,不過(guò)一般在特征提取之前會(huì)做一些復(fù)雜的預(yù)處理過(guò)程,其中常用的一項(xiàng)預(yù)處理方式就是人臉對(duì)齊,最后使用提取到的特征與數(shù)據(jù)庫(kù)中的人臉特征做比對(duì),并輸出識(shí)別的結(jié)果。
人臉識(shí)別算法的第一步是人臉檢測(cè),人臉檢測(cè)指的是在任意一幅給定的圖像中使用一定的搜索方法找出其中存在的人臉,并返回人臉的位置大小等信息。
人臉在空間中不僅存在剛性變換,而且還會(huì)因?yàn)楸砬榈雀鞣N原因存在較大的非剛性變換,所以僅僅是采集到人臉位置是不足以完成高精度的人臉識(shí)別。接下來(lái)要進(jìn)行人臉對(duì)齊,也就是通過(guò)算法求出人臉特征點(diǎn)的位置,方便后續(xù)的人臉識(shí)別。
最后進(jìn)行的是人臉識(shí)別,將要檢測(cè)的人臉和數(shù)據(jù)庫(kù)中的人臉一一比對(duì)相似度,如果在數(shù)據(jù)庫(kù)中有符合要求的人臉則檢測(cè)成功,輸出檢測(cè)結(jié)果,否則沒(méi)有檢測(cè)成功,可以將沒(méi)有檢測(cè)成功的人臉記錄備案并輸出未成功驗(yàn)證的識(shí)別結(jié)果。
人臉檢測(cè)即從背景圖片中找出人臉,并將其定位的過(guò)程。目前國(guó)內(nèi)外主要的人臉檢測(cè)算法主要包括基于特征的人臉檢測(cè)、基于統(tǒng)計(jì)的人臉檢測(cè)、基于膚色的人臉檢測(cè)等,通過(guò)比較分析,最終選擇基于統(tǒng)計(jì)的人臉檢測(cè)方法。首先采集到要檢測(cè)的圖像,然后將原圖像按照一定的比例縮放成多個(gè)不同大小的圖片,然后使用一定大小的子窗口(這里選用20*20的子窗口)窮舉圖片中的每個(gè)位置。之后對(duì)每個(gè)子窗口使用訓(xùn)練好的分類器檢測(cè)是否存在人臉,通過(guò)這種方法可能會(huì)對(duì)同一個(gè)人臉檢測(cè)出多個(gè)窗口,所以之后需要對(duì)多窗口進(jìn)行合并,最后顯示出檢測(cè)到的人臉圖案。
使用機(jī)器學(xué)習(xí)的方法進(jìn)行人臉檢測(cè)可以簡(jiǎn)單的理解成一種模板匹配算法,既然是模板匹配,那就要求匹配的模板大小要相同,只有同樣大小的輸入才可以進(jìn)行比對(duì)。產(chǎn)生同樣大小模板的方式是通過(guò)對(duì)圖像縮放產(chǎn)生多個(gè)不同尺寸的金字塔圖像,然后使用滑動(dòng)窗口生成待檢測(cè)的子窗口。
圖像的特征描述子是決定系統(tǒng)檢測(cè)效果的關(guān)鍵因素之一,人們針對(duì)不同的圖像特性設(shè)計(jì)了一些檢測(cè)效果較好的特征,在人臉檢測(cè)方面較為常用的特征有Haar特征以及LBP特征。通過(guò)實(shí)驗(yàn)比較,看出Haar特征的檢測(cè)較好,漏檢率較低,不過(guò)檢測(cè)速度相對(duì)較慢,考慮到本論文結(jié)果要在嵌入式系統(tǒng)下實(shí)現(xiàn),所以選擇了檢測(cè)速度較快的LBP特征。
表1 Haar特征和LBP特征檢測(cè)效果對(duì)比
本文選用了Adaboost分類器作為基礎(chǔ)的分類器,因?yàn)閳D片中會(huì)產(chǎn)生多個(gè)檢測(cè)窗口,但是只有極少數(shù)窗口中存在人臉,所以采用級(jí)聯(lián)分類器的方式進(jìn)行檢測(cè),這樣如果前幾個(gè)分類器可以排除大部分非人臉圖片,就可以快速的完成分人臉圖片的檢測(cè),加快檢測(cè)速度。
對(duì)于機(jī)器學(xué)習(xí)問(wèn)題,選擇了適當(dāng)?shù)乃惴ㄖ筮€需要配合足夠的有效的樣本才能訓(xùn)練出好的模型。
樣本的選擇要覆蓋盡量大的概率分布,這樣才能學(xué)習(xí)到更好的模型,這里選用了FERET數(shù)據(jù)庫(kù)的人臉圖片作為正樣本,如圖2所示,其中足夠多的樣本包含了不同的年齡、性別、表情的人臉,而且也包含了不同光照環(huán)境下的人臉圖案。
圖2 人臉正樣本圖片
負(fù)樣本一般選用大量的不包含人臉的圖片,不過(guò)最好加入一定量的可能要檢測(cè)場(chǎng)景下的不包含人臉圖片作為負(fù)樣本,比如本文在校車上以及上車過(guò)程中檢測(cè)人臉,那么加入上車地點(diǎn)的背景圖片以及車內(nèi)的圖片作為負(fù)樣本,可以有效的降低分類器的誤檢率。如圖3是其中一些較有代表性的負(fù)樣本圖片。這些圖片的大小遠(yuǎn)大于模板的大小,而且不是灰度圖,所以在訓(xùn)練之前需要對(duì)圖片灰度化處理,而且需要通過(guò)縮放和滑動(dòng)窗口的方式產(chǎn)生多個(gè)和正樣本大小相同的負(fù)樣本窗口,最后才能作為負(fù)樣本被使用。
圖3 人臉檢測(cè)負(fù)樣本圖片
有了正負(fù)樣本之后接著就可以開(kāi)始訓(xùn)練分類器,圖4展示了分類器訓(xùn)練的過(guò)程。
圖1 人臉識(shí)別算法流程圖
從樣本庫(kù)中獲得20*20大小的正負(fù)樣本,正樣本通過(guò)縮放到20*20大小,負(fù)樣本通過(guò)縮放以及裁剪生成20*20大小窗口,對(duì)正負(fù)樣本提取特征,由這些特征向量訓(xùn)練弱分類器,再由弱分類器組合成強(qiáng)分類器,強(qiáng)分類器一般從前到后的級(jí)數(shù)不斷增加。在每次訓(xùn)練好一個(gè)強(qiáng)分類器之后用強(qiáng)分類器檢測(cè)非人臉樣本,將可以正確區(qū)分的負(fù)樣本刪除,加入新的非人臉樣本繼續(xù)訓(xùn)練新的強(qiáng)分類器。等到訓(xùn)練好足夠多的強(qiáng)分類器之后組合成為級(jí)聯(lián)分類器,不過(guò)級(jí)聯(lián)分類器的訓(xùn)練也不是一次就可以完成。訓(xùn)練好分類器之后在新的樣本集上檢測(cè),發(fā)現(xiàn)其中存在的問(wèn)題,并把錯(cuò)誤分類的圖片類別加入到訓(xùn)練集中重新訓(xùn)練分類器,經(jīng)過(guò)多次反復(fù)之后,最終才能得到較好的人臉檢測(cè)分類器。
使用圖像金字塔以及滑動(dòng)窗口的檢測(cè)算法的結(jié)果一般會(huì)檢測(cè)出多個(gè)窗口,最后需要對(duì)多個(gè)窗口的結(jié)果進(jìn)行合并,才能輸出最終的檢測(cè)結(jié)果。 本文采用K鄰近算法實(shí)現(xiàn)聚類,首先判斷任意兩個(gè)窗口是否屬于同一個(gè)人臉,這里依賴兩個(gè)窗口的位置關(guān)系判斷。然后對(duì)得到的窗口查并集,得到最后的檢測(cè)結(jié)果。
由于代碼需要在嵌入式平臺(tái)上實(shí)現(xiàn),所以程序的運(yùn)行速度比較關(guān)鍵,特別是人臉檢測(cè)的程序需要在乘客上車中完成,需要較好的實(shí)時(shí)性來(lái)達(dá)到較好的用戶體驗(yàn),所以對(duì)速度的要求較高。這里根據(jù)真實(shí)的應(yīng)用場(chǎng)景對(duì)算法做出一定的優(yōu)化,加快了算法執(zhí)行速度,提升用戶體驗(yàn)。
基于分析可以知道,如果只是檢測(cè)一定距離內(nèi)的人臉圖片,可以縮減多尺度圖像的數(shù)量,這樣的好處是加快了計(jì)算的速度,并且不檢測(cè)一些距離較遠(yuǎn)的人臉圖像,對(duì)于之后的人臉識(shí)別算法,遠(yuǎn)處拍攝到的圖片一般成像質(zhì)量較差,會(huì)對(duì)識(shí)別率有一定不好的影響。通過(guò)縮減多尺度變化的數(shù)量可以有效的提高算法速度,并且提高獲取圖片質(zhì)量。
而且視頻和單一的圖像也有不同,相鄰幀的圖片之間有相關(guān)性,一般情況下相鄰的兩幀圖片之間人臉的平面位置以及距離攝像頭的距離都十分接近,所以第一幀圖片中如果搜索到了人臉,那么對(duì)于下一幀的搜索,可以先從之前的縮放等級(jí)以及位置先開(kāi)始,并在其相鄰空間搜索,這樣就能有效的加快算法的執(zhí)行速度。
表2 算法優(yōu)化后的結(jié)果
圖4 分類器的訓(xùn)練過(guò)程
下表2是在嵌入式平臺(tái)下優(yōu)化過(guò)的算法的檢測(cè)速度,每一個(gè)時(shí)間為取樣100幀計(jì)算的平均值。為了方便人臉識(shí)別,這里的算法都是檢測(cè)到最大的一個(gè)人臉之后停止檢測(cè)。可以看出經(jīng)過(guò)優(yōu)化之后的檢測(cè)速度有了較大提升,可以完成實(shí)時(shí)的人臉檢測(cè)。
為了能夠達(dá)到較好的識(shí)別效果,這里選用了FACE++的人臉識(shí)別解決方案,F(xiàn)ACE++提供了人臉識(shí)別云服務(wù),通過(guò)使用官方SDK可以快速完成人臉識(shí)別。FACE++識(shí)別的準(zhǔn)確率較高,在LFW數(shù)據(jù)庫(kù)上已經(jīng)超越人眼的識(shí)別能力。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn)FACE++的人臉識(shí)別算法對(duì)于光照、表情、模糊都有較好的抗性,這些因素對(duì)識(shí)別的結(jié)果影響較小,不過(guò)大角度的側(cè)臉會(huì)影響識(shí)別的精度。所以在對(duì)一名乘客建立數(shù)據(jù)庫(kù)的過(guò)程中需要建立多個(gè)角度的數(shù)據(jù),這樣有利于對(duì)多角度人臉的識(shí)別。
對(duì)于本文的應(yīng)用場(chǎng)景一般校車的乘客數(shù)量不會(huì)超過(guò)100人,這里使用FERET數(shù)據(jù)庫(kù)中的90個(gè)人臉再加上10人建立了一個(gè)人臉庫(kù),用于模擬校車上的乘客。選用FERET數(shù)據(jù)庫(kù)的原因是這個(gè)庫(kù)的人臉圖片包括了人臉的不同側(cè)面,這樣有助于提升檢測(cè)的準(zhǔn)確率。
下面是500次注冊(cè)人員和500次非注冊(cè)人員進(jìn)行人臉識(shí)別的輸出結(jié)果??梢钥闯鰧?duì)于注冊(cè)過(guò)乘客,雖然500次識(shí)別中有11次沒(méi)有檢測(cè)通過(guò),但是并沒(méi)有出現(xiàn)錯(cuò)誤的情況。500次對(duì)未注冊(cè)的乘客都可以有效的識(shí)別出來(lái)。所以這種基于人臉識(shí)別的考勤系統(tǒng)是安全可靠的。
表3 人臉識(shí)別效果
在識(shí)別速度方面,對(duì)于1000次測(cè)試中,平均檢測(cè)速度為0.7s左右,最慢檢測(cè)速度為1.4s,檢測(cè)速度較快??梢詽M足使用的需求。
本文提出的基于人臉識(shí)別的校車考勤系統(tǒng),已經(jīng)在NVIDIA公司專門(mén)為視覺(jué)計(jì)算推出了的嵌入式計(jì)算平臺(tái)Jetson TK1得以實(shí)現(xiàn),系統(tǒng)的主控芯片采用了四核A15 ARM架構(gòu)處理器,內(nèi)置NVIDIA Kepler架構(gòu)GPU。經(jīng)過(guò)實(shí)驗(yàn)表明,系統(tǒng)設(shè)計(jì)滿足了校車考勤實(shí)際使用的要求。
參考文獻(xiàn)
[1]吳飛龍,基于機(jī)器視覺(jué)的校車安全監(jiān)測(cè)系統(tǒng)[D],浙江大學(xué),2016
[2]Organization W H. Global status report on road safety 2013: supporting a Decade of Action[J].World Health Organization, 2013.
[3]丁芝華.我國(guó)校車安全管理的現(xiàn)狀、問(wèn)題與完善對(duì)策[J].中國(guó)公共安全:學(xué)術(shù)版,2011(4):93-96.
[4]Ghazarian O. Electronic vehicle product and personnel monitoring: US, US RE43178 E1[P]. 2012.
[5]Schmidhuber J. Deep Learning in Neural Networks: An Overview[J]. Neural Networks, 2014, 61:85–117.
作者簡(jiǎn)介
沈開(kāi)榮(1977-),男,浙江義烏,本科,工程師,研究方向?yàn)閺V播電視傳輸技術(shù)。
Design of school bus attendance system based on face recognition
Shen Kairong1,Zhang Genyuan2,Wu Feilong3
(1.Zhejiang radio and television transmission and transmission center,Hangzhou Zhejiang,310005;2.Electronic information college,Zhejiang University of Media and Communications,Hangzhou Zhejiang,310018;3.Department of Instrument Science and engineering,Zhejiang University,Hangzhou Zhejiang,310027)
Abstract:This paper introduces the design idea of school attendance system based on face recognition,and the key of face detection and face recognition algorithm were in-depth analysis and design.
Keywords:face detection; face recognition;school bus;attendance