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