萬昔源
(義烏工商職業(yè)技術學院 義烏創(chuàng)新研究院,浙江 義烏 322000)
中國發(fā)展基金會發(fā)布報告預測,到2022年中國65歲以上人口將占總人口的14%,從老齡化社會進入老齡社會。報告還顯示,2050年左右,中國60歲以上的人口將達到5億人[1]。因此,輪椅的需求量將越來越大。但是,目前市場上的電動輪椅仍然以通過搖桿控制為主。部分科研機構已進行新型人機交互控制輪椅方式的研究。比如,重慶郵電大學智能機器人研究所開發(fā)了基于手指命令識別的機器人運動控制系統(tǒng),如圖1所示[2];日本神奈川理工學院的方案是,將手作為虛擬鼠標進行輪椅控制,如圖2所示[3]。但是,手指識別的方案受限于操作者的手指靈活度;虛擬鼠標控制的方案經(jīng)過測試,操作難度較高,容易誤操作??紤]到老年用戶的操作精度問題,本文利用深度攝像頭,采用了較大幅度的手勢以及頭部動作識別來控制輪椅[4],并設計了一套安全優(yōu)先的控制邏輯。
圖1 重慶郵電大學研究成果
圖2 日本神奈川理工學院研究成果
本系統(tǒng)整體研究框架如下:第一,原始數(shù)據(jù)利用Kinect傳感器深度數(shù)據(jù)與RGB圖像;第二,通過雙指數(shù)平滑濾波,以消除抖動,平滑數(shù)據(jù);第三,將用戶深度數(shù)據(jù)與背景分離,以降低背景噪聲干擾;第四,創(chuàng)新地利用匹配深度坐標系和RGB相機坐標系的方式檢測用戶手勢命令,提高識別率,并使得用戶操作感知更加直觀。系統(tǒng)框架如圖3所示。
圖3 系統(tǒng)框架
Kinect傳感器的深度數(shù)據(jù)流由圖像幀組成(如圖4所示)。在每幅深度圖像幀中,任意像素都有特定的深度數(shù)據(jù),即Kinect傳感器到物體的距離,單位為mm。每個像素有16位數(shù)據(jù),較高的13位是Kinect到對象的深度數(shù)據(jù),較低的3位是用戶索引數(shù)據(jù),如圖5所示。因此,Kinect可以測量的理論深度為0-213(mm)。
圖4 深度數(shù)據(jù)圖
圖5 深度數(shù)據(jù)流
由于硬件與軟件性能限制,有多種原因會引起數(shù)據(jù)的抖動。其中一個主要原因是由于數(shù)據(jù)量大,每分鐘系統(tǒng)要處理超過1000萬次的深度數(shù)據(jù)。因此,在使用深度數(shù)據(jù)之前的一個重要步驟是使用降噪濾波器從數(shù)據(jù)中去除盡可能多的噪聲,使得獲取到的數(shù)據(jù)更平滑。
一個理想的濾波器用于消除所有不必要的噪音和抖動的數(shù)據(jù),并且沒有任何滯后或延遲。但是,在實踐中,濾波與無延遲之間幾乎是一對矛盾,濾波過程中,必然產生一些程序運行的延時。所以需要在這兩個目標之間找一個折中點。經(jīng)過測試,本系統(tǒng)中選擇了雙指數(shù)平滑濾波算法[5-6]。算法公式如下:
其中,bn是利用特定時間間隔獲取的數(shù)據(jù)擬合形成預測的趨勢,xn是通過控制趨勢bn的權重所輸出的結果。濾波結果如下:
做如圖6和圖7所示的姿勢,并保持圖7的姿勢一段時間。檢測右手深度數(shù)據(jù)的輸出如圖8所示,濾波參數(shù)α=0.35,γ=0.7,X軸單位為幀,Y軸單位為米?;疑€是過濾后的數(shù)據(jù),黑色線是原始數(shù)據(jù)??捎^察到,濾波后的輸出數(shù)據(jù)比原始數(shù)據(jù)平滑,雖有一定的延遲,但在可接受范圍內。
圖6 濾波測試手勢a
圖7 濾波測試手勢b
圖8 濾波測試結果
背景數(shù)據(jù)的存在會引起不必要的干擾,因此需要在獲取到的深度數(shù)據(jù)中,將用戶的數(shù)據(jù)提純。
數(shù)據(jù)處理方法如圖9所示,矩陣a表示一組簡化的深度圖像的16位數(shù)據(jù)矩陣示例,它包括一個用戶和其他背景。將矩陣a的每個像素左移13位,就可以得到矩陣b。從矩陣b中,很容易區(qū)分哪些數(shù)據(jù)代表用戶,哪些是背景。因此,可以從矩陣a中得到用戶的數(shù)據(jù),如矩陣c所示。
圖9 深度圖像矩陣
提純后的深度數(shù)據(jù)圖像如圖10所示。
圖10 分離背景
手勢是一種旨在傳達信息的人體運動或動作,特定的手勢可以讓應用程序知道我們要做什么。在獲取到深度數(shù)據(jù)后,需要做的就是將若干深度數(shù)據(jù)組合起來,設計一組發(fā)送手勢命令的邏輯。手勢識別大體上有兩種方案:第一種是采用識別雙臂交叉的手勢發(fā)送命令[7]。交叉手勢方法的主要思想是跟蹤兩個或多個指定的關節(jié),當它們交叉或重疊時觸發(fā)事件執(zhí)行。但它也有一些缺點,例如,做手勢如圖11左圖所示并獲取400幀圖像數(shù)據(jù),然后切換到手勢如圖11右圖所示,同樣獲取400幀數(shù)據(jù),從左側y軸數(shù)據(jù)(圖12)可以看出,前半部分與后半部分完全不同。前400幀是穩(wěn)定的,而400幀到800幀有很多抖動。這樣的抖動情況,用于輪椅控制中是不能接受的。
圖11 交叉手勢測試
圖12 交叉手勢測試數(shù)據(jù)
因此本文采用了另一種方案:利用在RGB圖像中計算關節(jié)相對坐標的方式來設計控制命令。此方法的主要思想是跟蹤人體骨骼的關節(jié)數(shù)據(jù),然后在RGB圖像上進行匹配。這樣就可以得到RGB圖像中人體關節(jié)點的相對位置。由于傳感器獲取的深度坐標數(shù)據(jù)是原點位于傳感器中心的三維數(shù)組,而RGB圖像數(shù)據(jù)是原點位于圖像左上角的二維數(shù)組,故物體深度數(shù)據(jù)的坐標系與RGB圖像坐標系有所偏差。正如我們在圖12中所看到的,當兩個關節(jié)交叉時,骨架坐標系中的X和Y軸數(shù)據(jù)將有很大的抖動,所以我們不能使用深度數(shù)據(jù)中的X和Y軸值。為了讓圖像呈現(xiàn)更加直觀,不直接使用X和Y軸深度數(shù)據(jù)來呈現(xiàn)給用戶,而需將深度圖像坐標系映射到RGB圖像坐標系中。映射公式如公式(3)和(4)所示,其中Point.x為X軸方向得出的映射結果,Xd為深度圖像X坐標系值,Xmax為深度圖像坐標系x軸的最大值,image.width為圖像的寬度,Point.y為Y軸方向得出的映射結果,Yd為深度圖像Y坐標系值,Ymax為深度圖像坐標系y軸的最大值,image.height是圖像高度,k是經(jīng)驗值。
本系統(tǒng)設計了如下5種控制方式:
(1)前進:點頭(超過20度)二次;
(2)左轉:頭向左轉大約20度,并保持;
(3)右轉:頭向右轉大約20度,并保持;
(4)停止:舉起雙手或者張開嘴巴;
(5)加/減速:舉右/左手過頭頂并保持;
(6)開關:雙手同時舉過頭頂。
本文設計了兩個部分的測試(如表1所示):首先,在第一節(jié)中測試了每個功能的動態(tài)和靜態(tài)性能,比較了這兩種不同狀態(tài)下得出的識別率;其次,在第二節(jié)中測試了環(huán)境對系統(tǒng)的干擾,如將行人、運行時間等作為變量。
表1 系統(tǒng)測試項目
測試結果如下:
如圖13所示,系統(tǒng)對初學者手勢命令的識別率在80%左右,經(jīng)過一段時間訓練,能顯著提高識別率,最終達到95%以上;
圖13 用戶熟練度對比測試數(shù)據(jù)
如圖14所示,系統(tǒng)能夠規(guī)避路人的干擾,緊緊跟蹤住操作者;
圖14 路人干擾測試
如圖15所示,系統(tǒng)在運行60分鐘后,由于硬件設備原因,識別率產生了一些衰減。今后將在硬件穩(wěn)定性方面,做進一步優(yōu)化。
圖15 系統(tǒng)運行時常對比測試數(shù)據(jù)
隨著傳感器技術的進步,人機交互技術近年來得到了長足發(fā)展。如Kinect、Leap Motion等產品不斷涌現(xiàn)。如何將人機交互技術與老年人的出行需求結合起來,開發(fā)出新型的智能輪椅,是一個值得深入研究的課題。
本文對傳感器數(shù)據(jù)的獲取、原始深度數(shù)據(jù)的濾波、用戶與背景分離等做了深入研究,并開發(fā)出了一套能夠識別多種命令的輪椅控制邏輯。實驗結果表明,基于RGB&D傳感器的手勢與人臉識別智能輪椅控制系統(tǒng)抗干擾效果良好,識別率在95%以上。今后的研究中,還將與輪椅生產相關企業(yè)如聯(lián)誼電機股份有限公司等深入合作,加入自動避障等模塊,改進研究成果。