智能移動(dòng)人臉辨識系統——跟我走機器人
摘要: 本文以發(fā)展具有人臉辨識和運動(dòng)跟蹤功能的智能機器人為目標。機器人的名稱(chēng)為“跟我走機器人”。它能夠根據人臉辨識的結果,判斷用戶(hù)的身份,并跟隨該用戶(hù)。系統的開(kāi)發(fā)建基于英特爾 XScale PXA270 微處理器平臺、Linux操作系統和 QT/Embedded 圖形使用者接口。為了建構一個(gè)智能機器人,我們在系統上加入了基于彈性圖匹配 (EBGM) 的人臉辨識程序,運用了塊匹配算法的運動(dòng)跟蹤功能。系統提供了簡(jiǎn)易的用戶(hù)介面,方便管理和下達指令?!案易邫C器人” 除了應用于娛樂(lè )外,亦可勝任各種工業(yè)應用。
關(guān)鍵詞: PXA270;嵌入式Linux;機器人;人臉辨識;彈性圖匹配;運動(dòng)跟蹤;塊匹配
前言
機器人在社會(huì )中的重要性與日俱增,原因在于我們每日所完成的許多工作都是按部就班進(jìn)行的,無(wú)需思慮。這些工作可以由一個(gè)機器人來(lái)輕松地完成,有時(shí)候,機器人的表現要遠遠優(yōu)于人類(lèi)的表現。隨著(zhù)SONY“機器狗”[1]的流行,近年來(lái)涌現出一類(lèi)新的機器人。這類(lèi)能模仿人類(lèi)行為的新型機器人在國際玩具市場(chǎng)上目前極為流行。
為了將這種智能玩具技術(shù)推向更高的發(fā)展水平,我們開(kāi)發(fā)了“跟我走”機器人,它擁有能識別人并跟蹤人的新功能。面部識別的功能使得機器人更為人性化,能辨認出不同的人。這一功能使得機器人在很大程度上實(shí)現了人性化,主人的家庭可以輕松地接納它為家庭中的一員。我們選擇人臉作為驗證的依據,因為它的可分辨性好,而且難以為其他人所復制。此外,與虹膜識別和指紋識別相比,用戶(hù)在進(jìn)行人臉識別時(shí)所費的周章更少,而且用戶(hù)不那么容易察覺(jué)到識別過(guò)程的存在。
在本系統中,我們選用了彈性圖匹配(Elastic Bunch Graph Matching,EBGM)方法作為識別時(shí)的面部辨認算法。該算法的細節將在后面詳細解釋。運動(dòng)跟蹤功能也是機器人的一項基本功能,它可以使機器人自動(dòng)跟隨主人,從而增強了系統的可移動(dòng)性。
在人臉識別方面存在的主要困難,是如何確定圖像中人臉的位置。本系統的解決之道是多次采集用戶(hù)的圖像,并要求用戶(hù)眨眼睛以便能找到眼睛的所在。這種方法也防止了其他人拿著(zhù)用戶(hù)的相片來(lái)欺騙系統。
擁有XScale處理器PXA270的LIOD系統成為我們所研制的這款機器人的內核。Xscale處理器的軟件經(jīng)過(guò)了優(yōu)化,使得它能夠瞬時(shí)執行面部識別算法和運動(dòng)跟蹤功能。XScale PXA270處理器對我們的應用來(lái)說(shuō)已經(jīng)足夠了,因為我們的系統所用的EBGM算法針對運行時(shí)間的需求進(jìn)行了優(yōu)化,它適合于移植到嵌入式系統。
在本文的余下部分,我們將逐步闡述我們的思想和實(shí)現方法,展示系統整體的工作流程,軟件和硬件之間的協(xié)同以及本項目的實(shí)驗結果。
這是一個(gè)精簡(jiǎn)版的報告,完整版本可以從如下網(wǎng)址下載:http://pc89225.cse.cuhk.edu.hk/intelcup/。
系統描述
總體結構
本項目需要采用的一個(gè)主要部件就是攝像機。一旦系統啟動(dòng),攝像機就必須完成初始化。
圖1示出了系統的總體工作流程。系統由3個(gè)部分組成,包括“識別”,“登記”和“運動(dòng)跟蹤”。用戶(hù)在啟動(dòng)任何其他流程前應該啟動(dòng)“識別模式”。這可以確保機器人能夠在執行任何功能前識別出合法主人。如果驗證后沒(méi)有指令發(fā)送到系統中,它會(huì )保持在“空閑模式”。
圖1 系統工作原理圖
處于“空閑模式”時(shí),系統連續捕捉和顯示圖像,同時(shí)等待進(jìn)一步指令。用戶(hù)此時(shí)可以選擇“登記模式”還是“運動(dòng)跟蹤模式”。
“登記模式”允許有新用戶(hù)添加到系統中。在“運動(dòng)跟蹤”模式中,機器人將自動(dòng)跟蹤它的主人。下面,我們將依次討論這3個(gè)部分。
識別/登記模式
“識別模式”和“登記模式”基本上是類(lèi)似的。
為了執行“識別/登記步驟”,系統必須首先通過(guò)基于圖像差異技術(shù)的“眼部檢測算法”來(lái)獲取眼睛的位置。當用戶(hù)眨眼睛時(shí),在由攝像機連續捕捉到的圖像上,除了其眼睛位置出現差異外,其余部分將始終保持不變。于是,一旦用戶(hù)進(jìn)入“識別/登記模式”,系統將連續捕捉圖像,并傳遞給“眼睛捕捉算法”,以找出眼睛的位置。如果系統能正確找出眼睛的位置,用戶(hù)可以選擇進(jìn)入“識別”或是登記步驟,這將觸發(fā)彈性圖匹配(EBGM)算法。
“眨眼”判斷法利用了網(wǎng)絡(luò )攝像頭可以輕松捕捉多幅圖像的特點(diǎn),可以讓用戶(hù)參與到驗證過(guò)程中,從而增強了機器人的可交互特性。
在“登記步驟”中將存儲一個(gè)記錄,以備進(jìn)一步的匹配。對于“識別步驟”來(lái)說(shuō),它是一個(gè)“1對N”的過(guò)程。系統將對每項記錄進(jìn)行比較,如果用戶(hù)與那些已登記的圖像一致,則顯示一個(gè)記號。這一工作流程的優(yōu)點(diǎn)在于,在傳遞到“識別/登記步驟”(人臉識別算法)之前,對眼睛位置的識別的正確性得到了保證。該工作流程提高了人臉識別算法的檢測成功率。
運動(dòng)跟蹤模式
當運動(dòng)跟蹤功能啟動(dòng)時(shí),程序以固定的間隔連續運行。為了實(shí)現圖像的平滑顯示,一旦用戶(hù)進(jìn)入“運動(dòng)跟蹤模式”,程序控制就轉回主程序執行?!耙訯T捕捉和顯示”則與“運動(dòng)跟蹤步驟”并行執行。不利之處在于“運動(dòng)跟蹤步驟”可能會(huì )丟棄部分圖像。系統可能無(wú)法保持對微小運動(dòng)的敏感性。但是,這樣的安排仍然適合于我們的應用,能夠跟蹤人的移動(dòng)。
具體實(shí)現
硬件
*總體結構
圖2示出了系統的總體架構。我們下面將對這些部件逐個(gè)進(jìn)行討論。
圖2 硬件之間的交互關(guān)系
*機器人(見(jiàn)圖3)
圖3 機器人設計的總體框圖
87C552微控制器
87C552微控制器起到PXA270開(kāi)發(fā)板與電機驅動(dòng)之間的橋梁作用。我們之所以選用87C552,是因為它支持一個(gè)集成化的脈寬調制(PWM)模塊,它可以提供2個(gè)8bit PWM通道。MCU接收來(lái)自于PXA270板的控制指令,從而產(chǎn)生輸出到L298電機驅動(dòng)器的PWM信號。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
linux相關(guān)文章:linux教程
脈寬調制相關(guān)文章:脈寬調制原理
評論