田祎然,劉元甲,田園明,劉子瑞,孫強(qiáng)
(牡丹江師范學(xué)院,黑龍江牡丹江,157000)
本系統(tǒng)中無線網(wǎng)絡(luò)技術(shù)選用傳輸距離更遠(yuǎn)的ZigBee技術(shù),以適應(yīng)復(fù)雜、WiFi信號不穩(wěn)定和低功耗需求的環(huán)境。核心處理器通過ZigBee組網(wǎng)和終端通信,可同時部署多個節(jié)點(diǎn),每個節(jié)點(diǎn)可拓展不同的傳感器,并根據(jù)需要使用不同的網(wǎng)絡(luò)架構(gòu)以適應(yīng)不同的應(yīng)用場景。本文的傳感器組由人臉識別部分的人體紅外傳感器和ZigBee環(huán)境信息收集感器組成。人臉識別模塊工作時一旦有人被檢測到,它將使相機(jī)頻閃捕捉人臉進(jìn)行識別。當(dāng)能夠識別出一個人時,系統(tǒng)會顯示正常,當(dāng)識別出陌生人時,系統(tǒng)則會發(fā)出警報。該系統(tǒng)具有功耗低、易于開發(fā)和擴(kuò)展的優(yōu)點(diǎn)。本系統(tǒng)可用于工廠、單位或私人住宅的門禁等復(fù)雜環(huán)境下的監(jiān)控。
本控制系統(tǒng)的主要組成部分有:ZigBee核心開發(fā)套件、溫濕度傳感器、MQ-2煙霧傳感器、Linux人臉識別開發(fā)板等諸多模組。系統(tǒng)的總體結(jié)構(gòu)如圖1所示。系統(tǒng)中使用了人臉檢測、人臉訓(xùn)練和人臉識別三個過程來進(jìn)行獲取和對比[3]。人臉檢測主要調(diào)用OpenCV算法中已訓(xùn)練好的Haar級聯(lián)分類器,區(qū)分出包含人臉和不含人臉的圖像。LBPH(局部二進(jìn)制模式直方圖)算法處理人臉圖像,對待測圖像進(jìn)行判斷,然后匹配結(jié)果進(jìn)行傳輸。ZigBee開發(fā)板上的終端設(shè)備同時使用溫度、濕度和氣體傳感器收集空間的環(huán)境信息,將環(huán)境信息傳送到云服務(wù)器,實(shí)現(xiàn)對環(huán)境情況的實(shí)時檢測;該系統(tǒng)的研究是基于ZigBee自組建網(wǎng)絡(luò)的條件下,擬采取兩套開發(fā)板實(shí)現(xiàn)功能互聯(lián),最終建立起一套基于ZigBee技術(shù)下組網(wǎng)的人臉識別系統(tǒng),ZigBee網(wǎng)絡(luò)也經(jīng)常被用于工業(yè)現(xiàn)場自動化控制和安全應(yīng)用[4]。
圖1 系統(tǒng)結(jié)構(gòu)框圖與硬件設(shè)計示意圖
圖2 Linux硬件設(shè)計原型
(1)對于linux人臉識別模塊,功能設(shè)計主要有人臉識別算法模塊,數(shù)據(jù)返回模塊和識別信息顯示模塊。人臉錄入采用的是擁有30萬像素,120度廣角大鏡頭的GC0308微型攝像頭,通過SCCB接口與開發(fā)板連接,承載圖像錄入功能。交互界面顯示采用的是TFT液晶顯示屏,通過SPI接口與開發(fā)板連接,承載顯示功能。人臉識別功能使用Ubuntu Linux開發(fā)環(huán)境和Python程序語言對開發(fā)板進(jìn)行開發(fā)。功能主要實(shí)現(xiàn)則是利用OpenCV人臉識別庫。使用QT編譯底層硬件與控制按鍵的交互來控制人機(jī)交互界面顯示。交互UI界面使用 QU GUI圖形庫開發(fā)。整個Linux模塊工作流為,攝像頭錄入人臉圖像信息,Linux系統(tǒng)中的LBPH算法進(jìn)行人臉識別,最后在人臉識別軟件上顯示實(shí)時識別結(jié)果。將識別正確與否的信號通過ZigBee組網(wǎng)發(fā)送到ZigBee終端,最后由蜂鳴傳感器接收。
(2)對于ZigBee傳感器組網(wǎng)模塊,使用CC2530這一款用于ZigBee技術(shù)的經(jīng)濟(jì)型主控芯片。該芯片特別適合有超低功率要求的系統(tǒng),保證低功率使用的一個方法就是在操作模式之間快速切換。由于這一優(yōu)勢,ZigBee現(xiàn)在具有強(qiáng)大的聯(lián)網(wǎng)能力。在我們的系統(tǒng)中,ZigBee模塊用來建立無線網(wǎng)絡(luò)。傳感器通過串口或 IO 接口連接終端設(shè)備(ZigBee),協(xié)調(diào)器(ZigBee)通過串口連接 PC機(jī)。終端設(shè)備采集傳感器數(shù)據(jù),并通過無線網(wǎng)絡(luò)將數(shù)據(jù)打包到協(xié)調(diào)器,然后通過串口將數(shù)據(jù)傳輸?shù)絇C或服務(wù)器上的監(jiān)控軟件。
人臉識別即是利用程序?qū)Σ杉膱D像進(jìn)行判定,判斷一下所輸入的圖片是否為人臉,檢測到是人臉再進(jìn)行匹配,找到相應(yīng)的人物,所以我們常說的人臉識別包含人臉檢測和人臉識別兩大部分[5]。本研究所提出的人臉識別系統(tǒng)的錄入和識別流程圖如圖3所示。
圖3 人臉識別系統(tǒng)的流程圖
圖4 LBP原理圖
(1)人臉檢測
人臉檢測是基于Haar級聯(lián)分類器的思想,是基于Haar-like特征,類Haar特征的值被計算出來,以反映區(qū)域的灰度變化,在被Adabost迭代算法訓(xùn)練之前,計算被一個積分圖加速。把輸入圖像的每個區(qū)域也做類似的運(yùn)算后與訓(xùn)練集中圖像的特征值進(jìn)行對比,據(jù)此可以判斷出輸入的圖像是否具有人臉特征,整體完成的是搜尋過程。系統(tǒng)通過程序進(jìn)行文件讀取,對文件中圖片灰度化處理;文件中包含著已經(jīng)存儲對應(yīng)的人名和標(biāo)簽,調(diào)用攝像頭并從攝像頭讀取照片,加載OpenCV的Haar人臉檢測分類器,創(chuàng)建文件夾用于存儲攝像頭本次采集到的照片,循環(huán)采集的樣本數(shù),其次調(diào)用函數(shù)cv2.cvtColor對采集的照片進(jìn)行灰度化處理,轉(zhuǎn)換公式如下[6]:
(2)改進(jìn)OpenCV-LBPH人臉識別算法
LBPH(局部二進(jìn)制模式直方圖),英文全名Local Binary Patterns Histograms;LBP特征的統(tǒng)計直方圖被用于人臉識別;該算法通過對人臉面部表情、五官狀態(tài)等特征進(jìn)行提取,再用公式計算出各部分像素點(diǎn)的LBP特征值[7]。比對樣本庫中某個人和待測人臉的差異度,兩者之間的特征直方圖差距越小,則證明人臉相似度越高,最終實(shí)現(xiàn)人臉識別的功能。
作為天王表品牌摯友,賴藝現(xiàn)場收獲了一份特別驚喜,天王表也為他準(zhǔn)備了一份特別的禮物:征服者系列腕表。賴藝也現(xiàn)場佩戴并全情展示了這款征服者系列腕表,陽光帥氣的賴藝即刻散發(fā)型男氣質(zhì),獨(dú)屬于征服者的魅力在腕間流動,紳士魅力油然而生。從時尚穿搭到從容紳士文化解讀,從演藝之旅到熱衷公益,他侃侃而談,讓大家對賴藝有了更全面的認(rèn)識,也讓大家看到了一位征服者紳士的獨(dú)特風(fēng)采。
LBPH算法的核心是LBP,LBP是一個用來描述圖像局部紋理的運(yùn)算符,表示每個像素與它周圍的像素之間的互動。原始的LBP運(yùn)算符使用窗口的中心像素作為閾值來比較3x3窗口中八個相鄰像素的灰度值。如果周圍的像素值大于或等于窗口的中心像素,該點(diǎn)的像素值位置被標(biāo)記為1,否則被標(biāo)記為0。比較結(jié)果順時針生成8位二進(jìn)制編碼,然后轉(zhuǎn)化為十進(jìn)制,根據(jù)公式(3)得到LBP特征值,LBP原理圖如圖2所示。
(2)式中:((xc,yc))是矩陣中心特征值;ic代表灰度圖像的中心值;ip代表的是灰度圖像的鄰域值,s為符號函數(shù)。
原始的矩陣采集點(diǎn)區(qū)域局限性大,針對不同人臉的表情態(tài)度變化,不能準(zhǔn)確地覆蓋,故而將矩形區(qū)域優(yōu)化成半徑為R的圓形區(qū)域內(nèi),有任意多的鄰域點(diǎn);采用雙線性差值法進(jìn)行優(yōu)化計算來獲得采樣點(diǎn)的像素值。計算如公式(3)所示[8]。LBP的特征值求取完畢,可以為待測圖像生成直方圖;整個圖像被分離成許多統(tǒng)計直方圖,并確定每對相鄰直方圖之間的距離,以識別輸入的人臉。接下來,創(chuàng)建每個部分的LBP特征統(tǒng)計直方圖。系統(tǒng)調(diào)用攝像頭進(jìn)行人員的身份信息加載,與已建立的數(shù)據(jù)庫進(jìn)行匹配,識別成功輸出高電平;識別失敗則輸出低電平。返回電平高低的信號將決定蜂鳴器報警與否。
(3)人臉識別軟件設(shè)計
人臉識別軟件使用開源的Opencv人臉識別軟件,使用Pycharm和Python語言開發(fā),LBPH人臉識別改進(jìn)的算法部分由軟件后臺調(diào)用。圖形化界面使用QT應(yīng)用程序,需要在編譯器內(nèi)運(yùn)行,故放置于PC端由管理人員控制。該軟件擁有三個部分:(1)人臉采集部分;(2)人臉識別;(3)人臉數(shù)據(jù)庫管理。圖5是人臉數(shù)據(jù)庫管理軟件部分展示圖。
圖5 人臉數(shù)據(jù)庫應(yīng)用程序界面
人臉拍照錄入后進(jìn)入該人臉數(shù)據(jù)庫,在系統(tǒng)工作時便會調(diào)用該數(shù)據(jù)庫內(nèi)數(shù)據(jù),與實(shí)時檢測的人臉進(jìn)行匹配,若成功識別為數(shù)據(jù)庫內(nèi)已錄入的人員,則安全放行;如果人員與數(shù)據(jù)庫內(nèi)任何一張人臉數(shù)據(jù)不匹配,則會輸出電平信號,蜂鳴器接收信號發(fā)出警報。管理人員或用戶聽到警報便可及時作出反應(yīng),從而達(dá)到實(shí)時監(jiān)測報警系統(tǒng),由此來避免出現(xiàn)更大的損失。
本文針對物聯(lián)網(wǎng)人臉識別系統(tǒng),設(shè)計并實(shí)現(xiàn)了無線硬件平臺和識別軟件。對于系統(tǒng)的組網(wǎng)測試,采用的是ZigBee核心開發(fā)板套件。實(shí)驗(yàn)?zāi)M中一個開發(fā)板為協(xié)調(diào)器,另外的一個開發(fā)板做終端;通過USB串口接入筆記本電腦,但是不足以支持協(xié)調(diào)器的供電,還采取了外接電源進(jìn)行供電,協(xié)調(diào)器上的復(fù)位按鈕按下后燈光常亮,終端上的D1燈閃爍,證明ZigBee網(wǎng)絡(luò)組建成功,其余設(shè)備可以通過組建的網(wǎng)絡(luò)IP接入ZigBee網(wǎng)絡(luò);兩塊開發(fā)板之間通過天線建立聯(lián)系。圖6是采用傳感器組和 ZigBee模塊的系統(tǒng)平臺。
圖6 ZigBee自組網(wǎng)
人臉錄入界面設(shè)計如圖7所示;未開啟攝像頭時中心的方框內(nèi)出現(xiàn)紅字提示攝像頭未開啟字樣,打開攝像頭的按鈕在界面的左上角,打開攝像頭開啟人臉錄入;攝像頭開啟之后右側(cè)的人臉檢測按鈕會變成可編輯狀態(tài),打開該按鈕開始檢測人臉;系統(tǒng)捕獲的幀數(shù)下方的數(shù)字方框能夠進(jìn)行計數(shù)。右側(cè)第一欄空白輸入人員的編號,第二欄空白處輸入編號等信息,進(jìn)行數(shù)據(jù)庫的初始化。增加用戶或編輯用戶按鈕可以對人員的數(shù)據(jù)信息進(jìn)行編輯修改。
圖8 人臉識別示意圖
系統(tǒng)使用Python運(yùn)行環(huán)境對人臉進(jìn)行錄入與識別,主要實(shí)現(xiàn)ZigBee自組建網(wǎng)絡(luò)下的人臉識別技術(shù),實(shí)驗(yàn)選用200個樣本進(jìn)行測試,50個為一組;實(shí)驗(yàn)結(jié)果見表1所示。
表1 人臉識別結(jié)果
根據(jù)表1的數(shù)據(jù)可知,攝像頭開啟后成功進(jìn)行了人臉進(jìn)行檢測、訓(xùn)練最終實(shí)現(xiàn)識別。檢測到人臉時會出紅色的矩形框圈出所檢測到的人臉信息(如圖7所示),頁面顯示正在人臉追蹤;在進(jìn)行數(shù)據(jù)庫對比之前,訓(xùn)練識別器會讀取文件夾中的照片,得到兩個數(shù)組,傳給recog.rain用于訓(xùn)練,將訓(xùn)練的結(jié)果保存在文件夾中,最后對文件夾訪問,匹配到數(shù)據(jù)庫中對應(yīng)的身份信息。表中也可以看出LBPH特征算法的檢測率比較高,耗時相對比較短,達(dá)到了對系統(tǒng)的優(yōu)化。
本文中我們利用Linux系統(tǒng)提出了一種基于人臉識別的嵌入式智能系統(tǒng)。為了輔助系統(tǒng)更好地工作,選擇了組網(wǎng)能力強(qiáng)大的ZigBee無線通信網(wǎng)絡(luò);實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)能夠有效地實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)下的人臉識別功能。此外,該系統(tǒng)具有易于開發(fā)和擴(kuò)展的優(yōu)點(diǎn),滿足了低功耗、低成本和小型化的實(shí)際需求,對于特定的密閉空間的溫濕度以及氣體等的檢測也有較好的作用;在工作場所,人臉識別提供了更嚴(yán)格的安全性??捎糜谥悄芗揖酉到y(tǒng)、樓宇安防、門禁等監(jiān)控場合。