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