人臉識別會議簽到的嵌入式系統(tǒng)
內(nèi)容摘要:為了解決傳統(tǒng)會議簽到問題,利用S5PV210與CC2530、攝像頭、按鍵、液晶顯示屏等硬件設(shè)備設(shè)計了一種人臉識別會議簽到硬件終端。在定義的通信協(xié)議的基礎(chǔ)上,采用C語言開發(fā)出了下位機與上位機間進行數(shù)據(jù)傳輸?shù)某绦颉@肣T編制了人臉識別會議簽到終端控制系統(tǒng)軟件,重點研究了基于PCA算法的人臉識別實現(xiàn)、QT與CC2530的串口通信、ZigBee組網(wǎng)的數(shù)據(jù)傳輸。實驗結(jié)果表明:基于PCA算法的人臉識別穩(wěn)定可靠、上位機軟件操作方便,ZigBee無線通信穩(wěn)定,軟硬件設(shè)計達到了預(yù)期的功能和要求。
引言
人臉識別,特指利用分析比較人臉視覺特征信息進行身份鑒別的計算機技術(shù)。人臉識別是一項熱門的計算機技術(shù)研究領(lǐng)域,它屬于生物特征識別技術(shù),是對生物體(一般特指人)本身的生物特征來區(qū)分生物體個體。
很多由政府部門組織召開的大型會議的簽到工作仍然采用傳統(tǒng)的手工簽到的方式:會務(wù)組工作人員手里拿著參會代表的名單,參會代表報到時,工作人員根據(jù)代表提供的信息查找名冊。這種報到方式存在很多不方便的地方,首先代表報到的時間長,容易造成擁擠,要解決這個問題就得增加工作人員,把代表按地區(qū)或行業(yè)分類,這樣就會增加會議的人力和財力投入。
本文所設(shè)計的基于PCA算法的人臉識別會議簽到系統(tǒng)正是為了解決這些問題而設(shè)計的,與會人員只需要站在攝像頭前,系統(tǒng)識別出后會在窗口顯示出與會人員姓名,并且將會議簽到信息自動保存到SQLite數(shù)據(jù)庫文件中,同時將會議簽到信息通過ZigBee以單播的方式發(fā)送到上位機,以方便會議管理人員查看。
1 系統(tǒng)方案論述
本文提出了基于PCA算法的會議簽到系統(tǒng),會議簽到系統(tǒng)包含人臉識別會議簽到終端和上位機軟件,其具體要求與功能為:人臉識別會議簽到終端要求具有人臉檢測和人臉識別的能力,人臉檢測利用OpenCV庫中Adaboost算法進行人臉檢測,人臉識別采用PCA算法。人臉識別會議簽到終端系統(tǒng)同時具有通過CC2530無線模塊往上位機發(fā)送會議簽到數(shù)據(jù)的能力。在ZigBee網(wǎng)絡(luò)中,協(xié)調(diào)器的網(wǎng)絡(luò)地址是固定的,所以CC25 30采用單播方式將人臉識別成功后的會議簽到數(shù)據(jù)發(fā)送到上位機。通過這種方法,就可以有效減少會議組織人員的工作量,并且使用成本低、能夠重復(fù)利用。
2 系統(tǒng)設(shè)計
人臉識別會議簽到終端運行Linux系統(tǒng),運行于PC的上位機和人臉識別會議簽到終端的應(yīng)用程序都是利用QT開發(fā)。完整的基于PCA算法的人臉識別會議簽到終端包括:USB攝像頭、通信總線、液晶屏、按鍵組、S5PV210主控芯片、CC2530無線芯片等。人臉識別會議簽到系統(tǒng)是集軟硬件為一體的專用與會人員身份識別系統(tǒng)。它通過USB接口接入人臉識別系統(tǒng),為終端提供與會人員身份認證服務(wù)?;赒T開發(fā)的應(yīng)用程序通過攝像頭模塊完成對人臉數(shù)據(jù)采集的操作,將獲取的數(shù)據(jù)與數(shù)據(jù)庫中存儲的人臉數(shù)據(jù)進行對比。人臉識別會議簽到硬件終端系統(tǒng)組成如圖1所示。
2.1 硬件設(shè)計
人臉識別會議簽到硬件終端采用核心板加底板的模式進行開發(fā),核心板采用天嵌科技的TQ210核心板,自主設(shè)計底板,底板設(shè)計主要包括LCD接口電路、USB攝像頭接口電路、串口電路、核心板接口電路、復(fù)位電路、電源電路等。
核心板以SSPV210為核心芯片,應(yīng)用于整個硬件終端的控制。S5PV210采用了ARMCortex-A8內(nèi)核,ARM V7指令集,主頻可達1 GHz,具有64/32位內(nèi)部總線結(jié)構(gòu),可以實現(xiàn)2 000 DMIPS(每秒運算2億條指令集)的高性能運算能力。基于C0rtex-A8內(nèi)核的處理器在進行人機交互設(shè)備管理、支持OS等方面擁有比較明顯的優(yōu)勢。
2.1.1 USB攝像頭電路設(shè)計
本系統(tǒng)所采用的攝像頭是UVC(USB Video Class),只需要標準的USB接口就可以使用,USB攝像頭驅(qū)動采用V4L2(Video 4 Linux 2)驅(qū)動。USB電路如圖2所示。
2.1.2 ZigBee無線傳輸模塊
ZigBee是基于IEEE802.15.4標準的低功耗局域網(wǎng)協(xié)議。根據(jù)這個協(xié)議規(guī)定的技術(shù)是一種短距離、低功耗的無線通信技術(shù)。其特點是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本,主要適合用于自動控制和遠程控制領(lǐng)域,可以嵌入各種設(shè)備。簡而言之,ZigBee就是一種便宜的,低功耗的近距離無線組網(wǎng)通信技術(shù)。
一個完整的ZigBee系統(tǒng)需要至少一個協(xié)調(diào)器,一個或多個路由器以及許多個終端節(jié)點組成,這樣才能完成網(wǎng)絡(luò)的搭建,路徑的分配和數(shù)據(jù)的采集及分配任務(wù)。ZigBee網(wǎng)絡(luò)根據(jù)實際組網(wǎng)的需要可以組成星型網(wǎng)、網(wǎng)狀網(wǎng)和簇狀網(wǎng)這三種拓撲結(jié)構(gòu),基于PCA算法的人臉識別會議簽到系統(tǒng)采用的是星型網(wǎng)絡(luò),因為協(xié)調(diào)器在網(wǎng)絡(luò)中的網(wǎng)絡(luò)地址是固定的,人臉識別會議簽到終端往上位機發(fā)送數(shù)據(jù)采用單播的方式,上位機往下位機發(fā)送數(shù)據(jù)采用廣播的方式。
本文采用的ZigBee芯片是CC2530,ZigBee無線模塊和會議簽到終端通過串口連接。連接于PC端的ZigBee模塊作為協(xié)調(diào)器,連接于會議簽到終端的ZigBee模塊作為終端設(shè)備節(jié)點,ZigBee模塊原理圖如圖3所示。
2.2 簽到終端軟件設(shè)計
2.2.1 系統(tǒng)工作流程
在本系統(tǒng)進行人臉數(shù)據(jù)采集時,首先自動從USB攝像頭獲取YUV格式的圖片,轉(zhuǎn)換成QImage格式并實時顯示在LCD屏上,再將其轉(zhuǎn)換成Ipl Image格式,利用OpenCV的Haar Cascade Face Detector(也稱為Viola Jones方法)進行人臉檢測,得到一個矩形區(qū)域。截取該矩形區(qū)域圖像進行直方圖均衡化處理,進行訓(xùn)練或識別。當(dāng)利用PCA算法進行人臉識別時,識別成功后首先會在LCD上顯示出姓名,同時也會把姓名信息通過ZigBee發(fā)送到上位機。
2.2.2 Adaboost算法介紹
Adaboost算法主要思想:在給定有限的數(shù)據(jù)情況下,基于特征的檢測能夠編碼特定區(qū)域的狀態(tài),而且基于特征的系統(tǒng)比基于像素的系統(tǒng)要快得多。矩形特征對一些簡單的圖形結(jié)構(gòu)(比如邊緣、線段)比較敏感。但是其只能描述特定走向(水平、垂直、對角)的結(jié)構(gòu),因此比較粗略。臉部一些特征能夠由矩形特征簡單地描繪,例如:眼睛要比臉頰顏色更深;鼻梁兩側(cè)要比鼻梁顏色要深;嘴巴要比周圍顏色更深。
人臉檢測是人臉分析的第一步,對于任意一幅給定的圖像,采用一定的策略對其進行搜索以確定其中是否含有人臉,如果含有則返回人臉的位置、大小和姿態(tài)。本系統(tǒng)采用的是OpenCV庫中提供的Adaboost算法來實現(xiàn)人臉檢測,人臉檢測效果如圖4所示。
2.2.3 PCA算法介紹
PCA(主成分分析)算法是人臉識別中比較新的一種算法,該算法的優(yōu)點是識別率高、識別速度快。OpenCV庫中cvEigenDecomposite()函數(shù)的作用是將人臉圖像通過Eigenface變換矩陣,投射到子空間中。子空間中的人臉向量是一個1×nEigens(nEigens由自己取得)的行向量,極大地降低了數(shù)據(jù)維度,便于下一步的聚類、識別。人臉識別成功后的效果如圖5所示。
2.2.4 系統(tǒng)測試
本軟件具有人臉檢測、人臉識別會議簽到等功能。首先需要通過人臉檢測存儲一定數(shù)量的與會者照片,經(jīng)過訓(xùn)練生成人臉特征數(shù)據(jù)保存在數(shù)據(jù)庫中。在實現(xiàn)會議簽到時,只要保持臉在攝像頭的正前方,軟件識別好后會在屏幕上顯示與會人員的姓名,并且把與會者的會議簽到信息通過ZigBee無線模塊,以單播的方式發(fā)送到上位機。系統(tǒng)首先采集5個人的人臉特征照片,經(jīng)過訓(xùn)練得到人臉特征數(shù)據(jù)并且存儲于數(shù)據(jù)庫中。然后開始對這5個人再進行人臉識別測試,經(jīng)過測試得到的實驗結(jié)果如表1所列。
通過實驗結(jié)果可以得出:本系統(tǒng)的人臉識別率在82%以上,可以區(qū)分數(shù)據(jù)庫內(nèi)外的人臉。
2.3 上位機軟件設(shè)計
QT是1991年奇趣科技公司開發(fā)的一個跨平臺的C++圖形用戶界面應(yīng)用程序框架。它提供給應(yīng)用程序開發(fā)者建立藝術(shù)級的圖形用戶界面所需的功能。本設(shè)計的上位機軟件正是用QT開發(fā),選用的集成開發(fā)環(huán)境是QT Creator。上位機界面如圖6所示。
表2是上位機和人臉識別會議簽到終端之間數(shù)據(jù)傳輸所遵循的協(xié)議。下面分別對上位機和人臉識別會議簽到終端之間發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、系統(tǒng)重啟、系統(tǒng)關(guān)機等操作的協(xié)議進行簡要的說明。
①上位機發(fā)送數(shù)據(jù)到部分下位機:上位機需要往部分下位機發(fā)送數(shù)據(jù)時,需要在待發(fā)送的數(shù)據(jù)前加上msd1~n,1~n代表某一臺下位機,如msd1代表數(shù)據(jù)發(fā)送到編號為1的下位機。
②上位機發(fā)送數(shù)據(jù)到所有下位機:上位機需要將數(shù)據(jù)發(fā)送到所有的下位機時,在待發(fā)送的數(shù)據(jù)前加上all標志。
③系統(tǒng)重啟:如果希望下位機重新啟動,發(fā)送數(shù)據(jù)rb即可以使下位機重新啟動。
④系統(tǒng)關(guān)機:如果希望下位機執(zhí)行關(guān)機操作,發(fā)送數(shù)據(jù)ht即可以使下位機執(zhí)行關(guān)機操作。
結(jié)語
本設(shè)計利用人臉