陳友東, 劉嘉蕾, 胡瀾曉
(北京航空航天大學 機械工程及自動化學院, 北京 100083)
在制造業中,機器人越來越多地與人共存于同一工作空間[1]。機器人具有速度、精度的優勢,人具有感知和靈活適應的優勢,人機協作(Human-Robot Collaboration,HRC)很好地結合了機器人和人的優勢[2-3]。機器人和人協同合作,共同完成工作任務。這種新的工作模式對生產裝配而言尤其有益,比如,可以通過使機器人為裝配人員定位工具或傳遞零件等方式,減少完成任務的時間。而HRC裝配的成功實踐,離不開機器人對人類運動的可靠預測[4-5]。
在HRC領域中,一些研究旨在通過對人和機器人執行任務的離散動作進行分析,利用動作之間的轉移關系來預測后續動作。Hawkins等[6]則通過貝葉斯網絡推理預測之后的行為。Nikolaidis和Shah[7]通過馬爾可夫決策過程對人和機器人的角色信息進行編碼從而推斷下一步的動作。文獻[8]將一個任務定義為不同動作的集合,使用有限狀態機對HRC過程進行建模。這些研究均聚焦于對后續動作的預測,而未強調對當前動作的預測。高效的HRC,應該實現機器人對人的動作的實時預測。同時,這些研究僅利用了動作的先后次序信息,而沒有利用動作本身的幾何或運動學信息。
對動作本身的研究隸屬于動作識別、行為理解領域。而在大多數動作識別[9-10]或行為理解[11-12]的研究中,多通過對完整的人體動作或行為進行分析,提取時空特征,然后進行分類或識別。這些研究中區分的對象(動作或行為)是粗粒度的(如走、跑、跳),并且沒有提前預測。本文根據動作的初始部分提前對人的動作終點做出預測。
在運動預測的相關研究中,Mainprice等[13]認為單臂的伸及動作(reaching motion)對于一個未知的成本函數而言是最優的。通過學習該成本函數,用隨機軌跡優化算法[14]來迭代地規劃人的運動軌跡,從而實現預測人類運動的目的。在Mainprice和Berenson的另一篇文章中[15],基于高斯混合模型(Gaussian Mixture Model,GMM)構建了人類的運動庫,進而利用回歸方法對人的運動提前做出預測。然而模型未考慮時間特征等因素,導致在運動的早期階段,預測結果的準確率非常低。Pérez-D’Arpino和Shah[5]通過時間序列分析的方法,對人的伸及動作的終點進行預測,蓋因模型強調實時性,而忽視了預測的準確率。
人的動作不是瞬時性的行為,而是一個連續的過程,因此常用時間序列數據對其進行分析。隱馬爾可夫模型(HMM)被認為是對動作序列進行建模和分類的有效工具[16-17]。但HMM僅考慮各狀態的轉移概率,難以表示動作的上下文意義。
在機器學習領域,對動態序列數據的建模一直是研究的熱點之一。靜態模型,如卷積神經網絡(Convolutional Neural Networks,CNN)和深度置信網絡(Deep Belief Network,DBN),只專注于數據特征而不考慮時間依賴性。動態模型試圖尋找時序數據之間的聯系,其中循環神經網絡(Recurrent Neural Network,RNN)[18]是一種對動態序列建模的有效方法[19],已經被證明在人體動作建模方面表現優異[20-21]。但是,傳統的RNN由于存在梯度消失等問題[22],難以對較長的序列進行建模。
為解決這一問題,Hochreiter和Schmidhuber[23]提出了長短時記憶(LSTM)網絡。LSTM網絡的神經元使用多個功能不同的門來控制神經元并存儲信息,具有保存更長時間的重要信息的能力。這種信息保存特性使得LSTM網絡在處理、分類或預測復雜動態序列方面表現優異。研究表明,LSTM網絡在處理一些實際問題時,如在語言建模、語音識別[24]、機器翻譯、行為識別[25]、視頻分析[26]、交通流速預測[27]等研究領域,取得了很好的效果[28-30]。
本文提出一種基于LSTM網絡的動作終點預測方法。通過采集少量人的動作數據,對數據做增強處理,訓練LSTM網絡,構建動作序列與動作終點之間的映射。應用時,根據人的動作的初始部分,通過模型對動作終點提前做出預測。本文方法在一定程度上避免了大量數據采集的困難,避免了直接處理或分析圖像或視頻等多媒體數據的對硬件和時間的要求,利用少量的數據,對動作終點做出了提前預測,并取得了較好的預測效果。
本文首先通過一個實例來闡述將要研究的人的動作終點預測問題。
考慮如下場景:在裝配工位上,一名裝配工人與一臺機器人,二者相互配合,完成某個裝配體的組裝。整個裝配任務由一系列操作組成,在裝配過程中,裝配工人從零件區或工具箱中陸續撿取零件或工具執行各種操作。在這種模式下,機器人基本處于閑置狀態。而事實上,機器人配備了攝像頭和機械手,能夠觀測裝配空間內的活動,可以幫助人固定裝配的部件,也可以向人提供工具或零部件。
為了提高裝配效率,可以使機器人在觀察人類操作的基礎上,提前預測出裝配工人要撿取哪件工具或零部件,從而迅速規劃自身運動,快速反應,配合裝配工人工作。
通常情況下,裝配線上的裝配工位由零件區、工具區以及裝配區3部分構成,其中可能的布局如圖1所示。待組裝的零部件從流水線上傳來,裝配所需的連接件放置在零件區,裝配所用的工具放置在工具區。零件區和工具區又分別由若干個不同的區域組成,不同的區域擺放著不同的聯結件(如螺栓、螺母等)或工具(如扳手、鉗子等)。
一項裝配任務往往由一系列具體的操作組成,每項操作又常與一定的對象(零件和工具)相關聯。而在上述的裝配工位中,各個對象又與特定的區域(或位置)相關聯。因此,可以通過預測人的抓取動作的終點位置,再依據位置與對象的對應關系,獲知人要抓取的對象。即需要研究如何通過(部分)動作序列,提前預測動作的終點位置。

圖1 裝配工位示意圖Fig.1 Schematic of assembly station
通過上述分析可知,需要讓機器人對人當前的動作進行分析,預測人的動作終點位置,從而預測人要抓取的對象(工具或零件)。當然,無條件的預測是不存在的,科學的預測建立在充分的依據之上。為此,本文選擇機器學習的方法來賦予機器人預測人動作終點位置的能力。
如果將動作序列與動作終點位置的組合看作一個動作樣本,將到達同一終點位置的所有動作樣本視為一個類別,那么動作終點的預測問題就可以抽象為機器學習中的分類問題。問題的輸入是一個動作序列,問題的輸出是人的動作終點。要實現的目標,即根據動作的起始部分,從固定而有限的終點位置的集合中,選取后驗概率最大的終點位置。
動作終點位置的預測問題可以通過以下2步來解決:
(1)

(2)
讓機器人通過自主學習的方式,從人的多次演示中獲取知識,從而逐漸具備預測裝配工人動作終點位置的能力。整個過程分為2個階段:①訓練(學習)階段;②預測(應用)階段。在訓練階段,通過采集人的動作序列,從中提取動作特征,然后將動作特征與真實的終點位置關聯起來,以此作為訓練樣本,訓練LSTM網絡,獲得最優的模型參數。在應用階段,當僅觀測到部分動作序列時(動作未完成,序列不完整),提取動作特征,作為模型的輸入,對動作的終點位置進行預測。這2個階段的內容分別對應1.3節中的2個步驟。

為了充分利用已有數據中的信息,使模型能夠展現出更好的預測效果,本文將對訓練數據進行增強處理,一方面是要對樣本的數量進行擴充,另一方面則是要盡量使訓練數據與測試數據具有相近的分布(詳見第3節實驗部分)。
LSTM網絡是一種特殊的RNN。其對傳統RNN的神經元做了改進,使得網絡對序列中較長時間之前的輸入也有了記憶的能力,從而更有利于對時間序列數據的處理和分析。改進后的神經元稱為一個LSTM單元,由記憶單元、輸入門、遺忘門、輸出門組成。記憶單元用于存儲狀態信息,門則用于控制何時及如何更新記憶單元的狀態。輸入門用于控制該單元接受輸入信息;遺忘門用于控制將上一時刻的輸出保留到該單元;輸出門則決定輸出存儲在記憶單元中的信息。網絡的前向計算過程,即根據輸入和模型參數計算輸出,由式(3)~式(7)共同完成:
ft=σ(Wf·[ht-1,xt]+bf)
(3)
it=σ(Wi·[ht-1,xt]+bi)
(4)
ct=ft⊙ct-1+it⊙ tanh(Wc·[ht-1,xt]+bc)
(5)
ot=σ(Wo·[ht-1,xt]+bo)
(6)
ht=ot⊙ tanh(ct)
(7)
式中:xt為LSTM的輸入向量;ft為遺忘門的激活向量;it為輸入門的激活向量;ct為單元狀態向量;ot為輸出門的激活向量;ht為LSTM單元的輸出向量;W和b分別為需要訓練的權重矩陣和偏置值;σ為sigmoid函數;tanh為雙曲函數;⊙表示逐點相乘;[·,·] 表示向量拼接。
LSTM網絡的訓練方法采用的是基于時間的反向傳播 (Back Propagation Trough Time,BPTT)算法[28],該算法主要包括4個步驟:①按照前向計算方法(式(3)~式(7))計算LSTM網絡的輸出值;②反向計算每個LSTM單元的誤差項,包括按時間和網絡層級2個反向傳播的方向;③根據相應的誤差項,計算各個權重的梯度;④使用基于梯度下降的優化算法更新權重。
基于梯度下降的優化算法多種多樣,如隨機梯度下降(Stochastic Gradient Descent,SGD)[31]、AdaGrad[32]、RMSProp[33]。本文選用文獻[34]提出的Adam算法。Adam算法是一種基于梯度下降的有效隨機優化方法,該算法結合了AdaGrad和RMSProp的優勢,能夠對不同的參數分別計算相適應的學習率并且占用的存儲資源較少。相比于其他的隨機優化方法,Adam算法在實際應用中的整體表現更加優越。
本文將人的動作表示為一個形如X={x1,x2,…,xt,…,xT}的多元時間序列。
將可能的終點位置yj(j=1,2,…,K)用數字按從小到大的順序編號,并編碼為獨熱碼(one-hot coding)向量。網絡結構示意圖如圖2所示。
網絡輸入層的神經元個數與動作序列的長度(T)相等,網絡最終輸出層的神經元個數與可能的終點位置總數(K)相等。將動作序列按時序賦給網絡的輸入神經元,即將動作第t幀的數據xt作為網絡輸入層第t個神經元的輸入。輸入層的輸出經過網絡的2個隱藏層(隱藏層的神經元是LSTM單元)進行非線性變換。網絡第2個隱藏層的最后一個單元的輸出是LSTM網絡的原始輸出。首先,在原始輸出層之后增加一個全連接層,對原始輸出做線性變換,使其輸出與網絡的最終輸出維度相等。然后,通過一個softmax層,將全連接層的輸出歸一化,轉化為各個可能的終點位置對應的概率。最后,選擇后驗概率最大的終點位置作為預測結果。

圖2 網絡結構示意圖Fig.2 Schematic of network structure
為研究人的動作終點預測問題,邀請被試人員站在實驗臺前,伸手去抓實驗臺上的某件工具,采集人抓取不同工具的動作數據。
實驗場景如圖3所示,圖中左下角黃色矩形框中的是微軟Kinect傳感器,攝像頭正對著實驗臺,用于采集動作數據;紅色矩形框中的是實驗臺上擺放的工具,也就是被試人員要抓取的對象。
實驗臺的桌面則被劃分為9個小區域,每個區域內放置著一種工具,如圖4所示。

圖3 實驗場景Fig.3 Experimental scene

圖4 實驗臺的布置Fig.4 Layout of experiment table
3.2.1 數據選擇
機器學習中最重要的一步是特征提取。很多情況下,特征選擇的好壞決定了模型的效果。在傳統機器學習方法中,特征提取往往是根據人類專家的經驗開發相應的算法來完成的。而在深度學習中,特征提取是由網絡通過多層非線性變換完成的。
不同于動作識別領域研究的走、跑、跳等粗粒度的動作,其特征比較明顯,相對易于區分。在HRC裝配場景中的常見動作有人伸手去工位上撿起某件零件或工具,伸手去接收機器人遞來的工具,亦或是伸手將零件遞給機器人等。這些動作,于人而言,執行的都是一個伸及動作,即將手伸到某一位置。對于這樣的動作,區分起來是困難的,因為抓取(或撿起、接收、傳遞)不同對象時,動作本質上并無明顯的差別,難以根據動作的固有特征來區分,達到預測動作終點位置的目的。
通過1.2節的分析可知,被抓取的對象是與特定的位置關聯的。在HRC裝配案例中,主要的運動對象是手,手的運動能夠更加直接地表征人的抓取動作。在抓取某一對象的過程中,手的軌跡在空間的分布是不同的。而且,不同于行為分析研究中直接處理大量的圖像或視頻數據,手的軌跡數據結構簡單,便于處理和分析。因此,可以通過手的軌跡來區分抓取不同對象的動作。進而,可以根據動作起始部分的軌跡對抓取動作進行區分,從而對動作的終點位置提前做出預測。
3.2.2 數據采集
實驗使用微軟的Kinect傳感器,以30幀/s的傳輸速率記錄人的動作。Kinect采集的數據包含顏色、深度和點云信息,以RGB-D圖像序列的形式傳輸。Kinect采集的原始RGB-D圖像序列如圖5所示。
為從圖像序列中獲取人手的軌跡,基于OpenCV庫,使用C++語言開發了圖像獲取與處理程序,從Kinect傳感器傳回的RGB-D圖像流中,實時地獲取手的空間坐標,構成人手的空間軌跡。程序的流程如圖6所示。
實驗邀請了5名被試人員,每次抓取前,被試人員站在實驗臺前,待“開始”指令發出,馬上伸手去抓取實驗臺上的一件工具。為保證樣本的代表性,抓取動作的起點不完全一致;由于人的運動的靈活性,抓取動作的速度也不盡相同;而且,不同的人的抓取動作的特點也不盡相同。
次執行抓取操作的過程中,采集100幀數據,從而獲得代表人手位置的100個點的坐標,構成一條空間軌跡。

圖5 Kinect采集的原始RGB-D圖像Fig.5 Original RGB-D images captured by Kinect
以下將抓取同種工具的若干條軌跡視為一組。繪制這9(組)×5(人)×8(次)抓取動作的軌跡,如圖7所示。圖中,軌跡的起點位置在右側,終點位置在左側。軌跡的起點由人站立的位置確定,在實驗中的差異并不是很大。軌跡的終點位置則由物體在實驗臺上的擺放位置決定(見圖4)。

圖6 從RGB-D圖像中獲取手的坐標Fig.6 Hand coordinates obtained from RGB-D images

圖7 軌跡的空間分布Fig.7 Spatial distribution of trajectories
3.2.3 數據預處理
由于傳感器的誤差等原因,采集到的軌跡數據中包含異常數據與大量噪聲。為此,先通過設置固定閾值的方式,去除軌跡中存在的明顯異常坐標;再采用滑動平均法,去除軌跡中的噪聲。因為軌跡數據在時間上是有先后順序的,為此給軌跡加入時間維度,每一幀軌跡數據變為xt=(t,x,y,z)。由于人體動作的靈活性,抓取動作的速度不同,運動軌跡在時間軸上不對等。為方便后續處理,這里采用動態時間歸整(Dynamic Time Warping,DTW)算法[35]將軌跡進行時序對齊。圖8為DTW算法的示意圖,其中,ti和si(i=1,2,…,7) 分別為軌跡模板和軌跡樣本在第i時刻的數據。

圖8 DTW算法示意圖Fig.8 Schematic of DTW algorithm
3.2.4 數據增強
LSTM網絡作為一種數據驅動的深度學習模型,需要大量的數據進行訓練。而對于本文中所研究的問題,無論是在實驗中,還是在實際應用中,采集如此大量的數據過于耗時費力,實不可取。為此,本文對預處理后的數據進行數據增強(data augmentation),獲得更多的訓練數據。
圖像處理領域為了增強數據[36],通常會采用給原始圖像添加噪聲、旋轉等方式。在本文中,需要盡量保證動作軌跡的特征,不宜采用給軌跡加噪聲的方式。考慮到動作軌跡的時序特性以及LSTM網絡的輸入特點,通過對原軌跡進行再采樣的方式,生成新的軌跡。
現有軌跡數據共9組,每組包括40個軌跡序列,每個序列包含100個時刻,每一時刻的數據有4個維度,即xt=(t,x,y,z)。為適應LSTM模型的輸入特點,將處理后的序列長度統一設定為30個時刻,即T=30。以此作為(原始)訓練集,并采用如下2種方式來增強訓練集的數據。
1) 等距采樣:從原軌跡序列的100個時刻中“隔三取一”(下標為小數時圓整),抽取30個時刻的數據,按時間先后順序排列,組成新的軌跡序列。具體過程如下:
①從序列的下標 (1~97)中等間隔抽30個數并圓整,按抽到的下標,將完整的原軌跡序列分割,得到新的軌跡序列X={x1,x4,x8,…,x97}。
②參照過程①中的操作,對原軌跡序列按下標值(2~98),(3~99),(4~100)做類似處理。
對訓練集中的每個軌跡序列都重復上述過程①和②操作。這樣,通過等距采樣將原訓練集的數據增加了4倍。
2) 截斷采樣:將原軌跡序列按百分比截斷,然后等距采樣,從中隨機不重復地抽取30個時刻,按時間順序排列,組成新的軌跡。具體過程如下:
①將原軌跡序列按下標值(1~30)截斷,得到新的軌跡序列X={x1,x2,x3,…,x30}。
②從序列的下標值(1~40)中等間隔抽30個數并圓整,按抽到的下標,將完整的原軌跡序列分割,得到新的軌跡序列X={x1,x2,x4,…,x40}。
③參照過程②的操作,對原軌跡序列按下標值(1~50),(1~60),…,(1~90)做類似處理。
對訓練集中的每個軌跡序列,重復上述過程①~③。這樣,通過截斷采樣的方式將原訓練集的數據又擴增了7倍。
采用方式1)和方式2)進行數據增強之后,(新的)訓練集共包含9組數據,每組有440個軌跡序列。
實驗使用配有Pentium E5800 3.2 GHz CPU的臺式機,在Win 7 64位操作系統上,使用Python 3.5.4,基于Google的開源深度學習框架tensorflow 1.4.0,參照2.3節中的網絡結構搭建LSTM網絡。
如1.3節所述,訓練樣本是動作軌跡序列與對應終點的組合,其形式為(X,y)。
通過設定學習率、迭代步數等超參數,隨機初始化網絡的權重和偏置參數,應用Adam優化算法不斷更新網絡的權重。實驗中所設定的相關參數如表1所示。
整個訓練過程耗時約9 200 s(約2.5 h),在迭代5 000輪之后,訓練損失不再降低,模型收斂。此時,將網絡的參數保存下來,用于預測。

表1 LSTM網絡的相關參數Table 1 Related parameters for LSTM network
3.4.1 預測效果
在測試階段,同樣邀請了5名被試人員,站立在實驗臺前,隨機抓取實驗臺上的9種工具,每人抓取同種工具5次。采集的數據用來做測試。即測試集包含9組軌跡數據,每組包括25個完整的(100個時刻)軌跡序列。
為了模擬在線預測的情形,將測試集的完整軌跡序列按比例(30%,40%,…,90%)截斷,以模擬觀測到部分動作片段的情形。
然后,從截斷后的軌跡序列中等間隔抽30個時刻的數據,按時間的先后順序組成新的軌跡序列,作為測試數據,輸入LSTM網絡,預測動作的終點位置。
實驗結果表明,在觀測到30%的動作片段時,對動作終點位置預測的準確率可以達到67.7%;當觀測到60%的動作片段時,預測準確率可以達到87.5%。詳情如圖9所示。

圖9 預測效果Fig.9 Prediction results
3.4.2 對比分析
基于實驗采集的數據,分別訓練GMM和傳統的RNN模型并進行測試,預測結果如表2和圖10所示。
隨機預測(Random),即不進行學習而直接“盲目”預測。根據古典概率模型,共有9種情況,每種情況等可能發生,因此預測結果的準確率即為1/9(11.1%)。該結果明顯低于通過各種模型建模后的預測結果,難以為機器人的提前響應提供參考,這說明機器人的學習是有效而且必要的。
在實驗中GMM模型使用的是未進行增強的原始數據。原因在于,使用GMM模型時要計算協方差矩陣的逆,而增強后的軌跡與原始軌跡有內在關聯,數據間存在線性相關,導致矩陣不可逆,模型無法求解。RNN模型使用的是通過2種增強方式處理后的數據。在較短的觀測時間內(動作剛開始),GMM效果比RNN好,但是隨著動作的繼續進行,GMM因不能捕獲動作的時序信息,其預測效果逐漸被趕超,并最終落于下風。

表2 不同模型預測效果統計Table 2 Prediction results statistics among different models

圖10 不同模型預測效果對比Fig.10 Comparison of prediction results among different models
LSTM-1代表僅通過“等距采樣”(方式1))增強訓練數據后,訓練LSTM網絡并進行預測的結果;LSTM-2代表通過2種方式進行數據增強后,訓練LSTM網絡并進行預測的結果。在僅采用方式1)進行數據增強后,每組數據有160個序列,模型的預測效果較差;通過2種方式進行數據增強后,每組數據有440個序列,預測結果的準確率得到了很大的提升,說明LSTM網絡對數據的依賴性較強。
在整個觀測過程中,LSTM模型的預測效果始終優于GMM模型和RNN模型,原因在于,傳統RNN模型比LSTM模型的神經元結構簡單,而LSTM由于加入了門結構,能夠更好地對序列數據進行建模。
1) 研究了在HRC裝配的特定場景下,機器人對人的動作終點位置的預測問題。實驗結果表明,機器人在學習的基礎上,能夠根據人體動作的初始部分對動作的終點做出預測。并且,隨著觀測時間的持續,預測結果的準確率在不斷提高。這既證明了本文方法的有效性,也符合人們的直觀認知。
2) LSTM網絡與GMM及傳統RNN等模型相比,在處理序列問題方面確實具有獨到的優勢。同時,深度學習作為一種數據驅動方法,對訓練數據的需求量非常大,而數據采集又常常耗時且費力。本文所使用的數據增強方法,可供在使用深度學習方法解決時間序列等相關問題時借鑒。
3) 通過實驗驗證了本文方法預測抓取動作的終點位置的有效性。事實上,在HRC裝配過程中,人的很多動作都具有與抓取動作相似的性質,如接收、傳遞、放置動作。通過預測這種伸及動作的終點,能夠使機器人更好地配合人的操作,或者是提供輔助,或者是避免妨礙。