馬迎杰,王佳斌
(工業(yè)智能化與系統(tǒng)福建省高校工程研究中心,泉州362021)
在日常生活中與人類互動和支持的輔助和社交機(jī)器人是一個在研究和工業(yè)社區(qū)中獲得一致興趣的領(lǐng)域。常見的應(yīng)用領(lǐng)域包括通知商業(yè)和展覽場所的客戶,博物館的訪客指導(dǎo)以及大型超市的購物指導(dǎo)。已經(jīng)有許多供應(yīng)商提供機(jī)器人解決方案,其功能可以基本滿足上述應(yīng)用。然而,雖然機(jī)器人平臺種類繁多,但根據(jù)客戶要求,適應(yīng)和快速調(diào)整輔助機(jī)器人從一種情況到另一種情況的行為仍然是一項(xiàng)挑戰(zhàn)。
NAO 機(jī)器人它是第一臺專門設(shè)計用于與人類互動的機(jī)器人機(jī)器之一,具有非常友好可愛的外觀。與機(jī)器人的交互可以通過語音,手勢或觸摸完成,并且可以通過說話或使用平板電腦上顯示的視覺信息進(jìn)行回復(fù)。Nao 處理的功能已經(jīng)允許在日常環(huán)境(例如公共辦公室或商店)中成功部署演示,以及實(shí)施教育應(yīng)用。
然而,我們設(shè)想的應(yīng)用場景的規(guī)范(例如,商城用戶協(xié)助)要求機(jī)器人能夠在更嚴(yán)重的部分遮擋條件下以更高的準(zhǔn)確度檢測、跟蹤和識別更遠(yuǎn)距離的人。該場景考慮先前未映射的封閉空間的情況,其中機(jī)器人執(zhí)行隨機(jī)搜索以尋找感興趣的用戶。在檢測到人時,機(jī)器人需要跟蹤并移近檢測到的用戶以便執(zhí)行面部識別。機(jī)器人重復(fù)一個檢測周期-跟蹤-識別,直到它能夠找到并識別需要通知待處理通知的人。本文也是致力于服務(wù)機(jī)器人的研究與開發(fā),作者也是眾多研究者中的一員。從國外的最新服務(wù)機(jī)器人進(jìn)展來看,未來人們對服務(wù)機(jī)器人的研究肯定一步一步地深入,說明筆者所做的研究是有意義的。
本文采用的智能機(jī)器人平臺為NAO 仿人機(jī)器人。其中系統(tǒng)所需要的硬件系統(tǒng)包括攝像頭、CPU、語音合成器、揚(yáng)聲器等。由于識別算法運(yùn)算量大,而其CPU 運(yùn)算能力較差,同時需要擔(dān)負(fù)NAO 系統(tǒng)的運(yùn)行,因此難以支撐識別算法的實(shí)時運(yùn)算。因此采用通過機(jī)器人進(jìn)行圖像采集,并將圖像通過網(wǎng)絡(luò)傳輸?shù)缴衔粰C(jī)進(jìn)行處理,再將識別結(jié)果返回到機(jī)器人上進(jìn)行跟蹤識別。在軟件層面,系統(tǒng)是在NAOqi 框架[6]之上開發(fā)的,這是機(jī)器人的默認(rèn)環(huán)境。
機(jī)器人具有稱為自主生命的默認(rèn)操作模式,使其能夠活躍并與用戶交互。這種操作模式使機(jī)器人一旦接近足以吸引機(jī)器人的注意力就能與人接觸。然而,我們提出的方案要求機(jī)器人能夠主動檢測并移動到超出其默認(rèn)交互距離范圍的人。此外,人們的檢測和識別需要處理目標(biāo)用戶的部分遮擋的情況,以及不同的照明水平。這促使我們利用外部計算機(jī)視覺框架進(jìn)行物體檢測和人臉識別。在這項(xiàng)研究中,我們使用YOLO進(jìn)行物體檢測,使用FaceNet 進(jìn)行人臉識別。YOLO 是一種在圖像中進(jìn)行物體檢測的方法,該方法可以通過卷積神經(jīng)網(wǎng)絡(luò)實(shí)時地在圖像上的一次通過中檢測來自定義的類別列表的所有對象實(shí)例。YOLO 只用一個神經(jīng)網(wǎng)絡(luò)和一次評價,就直接從輸入的整幅圖像預(yù)測邊框和類別概率。正因?yàn)檎麄€檢測流程是一個網(wǎng)絡(luò),所以它可以直接進(jìn)行端到端的優(yōu)化。作為一種統(tǒng)一結(jié)構(gòu),YOLO 的運(yùn)行速度非????;鶞?zhǔn)YOLO 模型每秒可以實(shí)時處理45 幀圖像,同時保持較高的目標(biāo)檢測平均準(zhǔn)確率(mAP),而且應(yīng)用于訓(xùn)練領(lǐng)域外的圖像時泛化能力也較強(qiáng)。因此,這種方法足以實(shí)現(xiàn)我們的目標(biāo),實(shí)現(xiàn)物體的實(shí)時檢測。
FaceNet 在考慮人臉識別任務(wù)時給出了最佳結(jié)果。對于圖像中的每個面,F(xiàn)aceNet 提供了128 個元素的嵌入,這是通過將圖像傳遞到深度神經(jīng)網(wǎng)絡(luò)而產(chǎn)生的。從相似面部獲得的兩個矢量具有彼此更接近的特性。通過這種方式,可以導(dǎo)出相似性度量,并且可以使用支持向量機(jī)對面部進(jìn)行分類,或者使用k 均值方法進(jìn)行聚類。
FaceNet 使用的監(jiān)督培訓(xùn)方法使用大量標(biāo)記圖像,可以在我們遇到不同面部位置和方向,不同光度或圖像質(zhì)量的真實(shí)條件下獲得更好的結(jié)果.
本文擬議的系統(tǒng)有幾個組成部分。機(jī)器人平臺使用來自內(nèi)部和外部處理的數(shù)據(jù)。內(nèi)部處理是指傳感器、照相機(jī)和移動,而外部處理是指用于獲得所需信息(即人的檢測和識別)的圖像處理。
圖1 顯示了系統(tǒng)架構(gòu)。圖像處理任務(wù)在遠(yuǎn)程服務(wù)器上實(shí)現(xiàn),結(jié)果隨后傳遞給機(jī)器人。對外部處理的需求是由于機(jī)器人的有限計算能力,其無法達(dá)到具有實(shí)時結(jié)果的良好技術(shù)水平。
人物檢測模塊將檢測到的人的邊界框(bbox)信息與深度信息一起轉(zhuǎn)發(fā)給人物跟蹤模塊。該模塊將當(dāng)前檢測與先前檢測相關(guān)聯(lián)。此步驟是必需的,因?yàn)闄C(jī)器人必須一次跟蹤一個人。在并行處理管道中,RGB 圖像被傳遞到面部檢測和識別模塊,該模塊能夠提取關(guān)于面部位置和其識別的人的信息。然后通過TCP 連接將提取的信息(檢測到的人的邊界框,跟蹤會話的id,深度信息和名稱)傳遞回機(jī)器人。
圖1 系統(tǒng)架構(gòu)概述
系統(tǒng)最重要的組成部分之一是用于人員檢測的模塊,必須以準(zhǔn)確的結(jié)果實(shí)時進(jìn)行檢測,以便跟蹤一致,沒有錯誤。如前所述,對于此任務(wù),我們使用YOLO 網(wǎng)絡(luò),因?yàn)樗苓m合我們的系統(tǒng),能夠處理大約每秒40 幀。
機(jī)器人產(chǎn)生的圖像流和YOLO 之間的集成在服務(wù)器上運(yùn)行,具有高計算能力。我們使用來自NAOqi 框架的ALVideoDevice 模塊來訪問兩種已經(jīng)相關(guān)的圖像流、RGB 和深度。
我們使用預(yù)先訓(xùn)練的YOLO 網(wǎng)絡(luò)進(jìn)行快速檢測。
圖像的網(wǎng)絡(luò)結(jié)果是一組邊界框以及相應(yīng)的置信度,其中每個邊界框表示人在圖像像素中的位置。檢測限于頂部正方形,頂部正方形由檢測寬度定義。此更改對于跟蹤部件非常有用,因此機(jī)器人可以將其頭部位置對準(zhǔn)檢測到的人的上半身。
圖2 人物跟蹤圖像表示以及角度計算
其中h 為機(jī)器人站立時頸部到腳底的高度,h=459.59mm,α為HeadPitch 關(guān)節(jié)當(dāng)前偏移角,即垂直偏移角,可由系統(tǒng)函數(shù)獲得;角度β為NAO 機(jī)器人嘴部攝像頭硬件位置與水平線的夾角,查表可得β=39.74。將相關(guān)數(shù)據(jù)帶入公式可得
在跟蹤過程中如果要求機(jī)器人與目標(biāo)保持1 米的對話距離,則每次只需要移動S-1 米的距離即可。
在最小深度范圍內(nèi)跟蹤。當(dāng)一個人離機(jī)器人比深度范圍更近時,機(jī)器人將要求該人轉(zhuǎn)身并面對它以便被人臉識別模塊識別。
如前面所述,用于面部檢測和識別的網(wǎng)絡(luò)是FaceNet。使用NAOqi 框架拍攝RGB 圖像,然后將其傳遞到外部服務(wù)器到面部檢測和識別模塊,在該模塊中網(wǎng)絡(luò)獲得檢測。該應(yīng)用程序僅考慮有人情況下檢測到面部。該檢查基于邊界框完成:如果檢測到的面部的邊界框在檢測到的人的邊界框內(nèi),則關(guān)于面部的信息與該檢測到的人相關(guān)聯(lián);否則面部會被忽略,因?yàn)槲覀儧]有檢測到人物。第二種情況一般不會在實(shí)踐中發(fā)生,因?yàn)閅OLO 網(wǎng)絡(luò)在人員檢測方面給出了非常好的結(jié)果,特別是在某人的面部是可見的情況下。
目前,該模塊是針對我們一開始所呈現(xiàn)的場景實(shí)現(xiàn)的,即向所識別的人發(fā)出關(guān)于個人消費(fèi)或購買問題的聲音和視覺通知,并等待該人的確認(rèn)。
當(dāng)機(jī)器人到達(dá)人時,基于面部識別信息,它知道它是否到達(dá)了它正在尋找的人。如果它看不到前面的人的臉,它會通過聲音提醒人(例如“你好,請看我!”)。
使用NAOqi 框架模塊實(shí)現(xiàn)與用戶的交互。機(jī)器人從外部服務(wù)器接收人員的通知,并使用TextToSpeech模塊逐個開始說明。它使用TabletService 創(chuàng)建一個視圖,該視圖還在平板電腦上顯示通知,以便用戶可以將其標(biāo)記為已讀,或者可以向前或向后瀏覽它們。機(jī)器人解釋的聲音命令用于確認(rèn)提醒或關(guān)閉顯示。它們使用語音識別模塊進(jìn)行解釋。
該系統(tǒng)在具有不同人員的實(shí)驗(yàn)室環(huán)境中進(jìn)行了實(shí)驗(yàn)測試。建議的測試場景意味著機(jī)器人從隨機(jī)位置開始,并開始尋找特定的人來提供通知。機(jī)器人不停地環(huán)顧四周,如果它檢測到一個人,它就會向它們移動;這個人可以站立或坐著,它可以被展示的商品等完全可見或部分遮擋。如果檢測到的人是正確的,那么NAO 將讀出待處理的通知,否則它將繼續(xù)搜索。
機(jī)器人位于初始位置并開始旋轉(zhuǎn),首先是頭部,然后是整個身體。頭部從右上角到左上角,然后從左下角到右下角進(jìn)行圓周旋轉(zhuǎn)。我們選擇這種行動來檢查機(jī)器人當(dāng)前位置的視野中的所有可能位置。如果沒有人檢測到,那么它將以120°旋轉(zhuǎn)整個身體。當(dāng)檢測到人時,頭部和身體旋轉(zhuǎn)都停止,并且下一個模塊被激活,更準(zhǔn)確地說,是并行運(yùn)行的跟蹤和面部識別。
機(jī)器人將跟蹤檢測到的人并且將越來越近,直到達(dá)到預(yù)定義的距離閾值。如果機(jī)器人到達(dá)目標(biāo),但沒有檢測到人的面部,它將要求該人直視它以識別它們。如果此人被識別為目標(biāo)人,NAO 將讀出待處理的通知。如果沒有,它將繼續(xù)搜索。
我們對人物檢測和人臉識別模塊進(jìn)行了定性評估。目標(biāo)檢測結(jié)果如表1 所示。
表1 YOLO 與傳統(tǒng)方法比較
從實(shí)驗(yàn)結(jié)果中可以得出:NAO 目標(biāo)檢測系統(tǒng)實(shí)時識別效果與速度滿足實(shí)用要求。
對于常見視頻320×240 像素大小的圖片,需要耗時56ms 左右,常見視頻的幀率為24-30 幀/s,也就是說每幀時長為33-42ms,如果要做到實(shí)時的人臉檢測,算法耗時最好少于20ms,以此為系統(tǒng)的后續(xù)處理留下足夠的處理時間。為此我們進(jìn)行了圖像大小的耗時測試,如表2 所示。
表2 相同圖像內(nèi)容、不同圖像大小耗時
從實(shí)驗(yàn)結(jié)果中可以得出:選取128×128 大小的圖片滿足實(shí)用條件的要求。
在這項(xiàng)工作中,我們使用NAO 機(jī)器人的傳感器,實(shí)現(xiàn)了在不受控制的封閉環(huán)境中檢測、跟蹤和識別人員的目的,證實(shí)了所提出的方法具有有效性。雖然機(jī)器人已經(jīng)能夠在室內(nèi)光照條件不佳的情況下實(shí)現(xiàn)快速、準(zhǔn)確、魯棒的目標(biāo)識別跟蹤和人臉識別,但由于實(shí)際的超市環(huán)境可能更為復(fù)雜、干擾因素更多,NAO 機(jī)器人的跟蹤以及識別算法有待進(jìn)一步的完善。
在未來的工作中,我們計劃解決機(jī)器人真正接近用戶時遇到的運(yùn)動規(guī)劃問題,我們可以通過使用SLAM技術(shù)或通過提供先前生成的地圖來擴(kuò)展工作,其中機(jī)器人可以跟蹤已經(jīng)訪問過的位置并將所識別的人的位置保存地圖上。除了改善NAO 的檢測和用戶跟蹤功能外,我們的解決方案還具有可以移植到具有類似傳感器和語音交互設(shè)施的其他機(jī)器人平臺上的優(yōu)勢。