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