梁玉強(qiáng),陳勁杰,葉其含
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
?
基于AdaBoost和BP網(wǎng)絡(luò)的機(jī)器人動(dòng)作理解
梁玉強(qiáng),陳勁杰,葉其含
(上海理工大學(xué) 機(jī)械工程學(xué)院,上海 200093)
針對(duì)機(jī)器人動(dòng)作理解,設(shè)計(jì)基于強(qiáng)分類(lèi)器的BP網(wǎng)絡(luò)機(jī)器人動(dòng)作理解系統(tǒng),闡述了BP網(wǎng)絡(luò)模型和AdaBoost算法并說(shuō)明了弱分類(lèi)器與強(qiáng)分類(lèi)器的訓(xùn)練步驟。使用了公開(kāi)的MSRC-12 Gestrue數(shù)據(jù)集來(lái)驗(yàn)證系統(tǒng)的可靠性。為實(shí)現(xiàn)原始數(shù)據(jù)的降維并保證運(yùn)動(dòng)信息的完整,系統(tǒng)通過(guò)提取了關(guān)鍵幀中人的9段骨骼向量與中心骨骼向量間的夾角作為動(dòng)作特征;利用BP網(wǎng)絡(luò)弱分類(lèi)器對(duì)訓(xùn)練樣本的錯(cuò)分誤差更新樣本的權(quán)值;并將10輪訓(xùn)練得到的分類(lèi)器融合為最后的決策函數(shù),完成了對(duì)不同個(gè)體的6種動(dòng)作的準(zhǔn)確識(shí)別。
強(qiáng)分類(lèi)器;AdaBoost;BP神經(jīng)網(wǎng)絡(luò);弱分類(lèi)器
隨著以統(tǒng)計(jì)為基礎(chǔ)的機(jī)器學(xué)習(xí)方法的備受關(guān)注。機(jī)器人動(dòng)作理解系統(tǒng)以AdaBoost提升方法和BP神經(jīng)網(wǎng)絡(luò)算法為依托,通過(guò)樣本訓(xùn)練獲得強(qiáng)分類(lèi)器,并以此為基礎(chǔ)識(shí)別人體動(dòng)作,輸出操作結(jié)果。該方法可以根據(jù)不同的動(dòng)作自適應(yīng)來(lái)獲取動(dòng)作特征集,并且不用篩選特征,構(gòu)造出的分類(lèi)器具有很高的精度,且不會(huì)出現(xiàn)過(guò)匹配問(wèn)題。
1.1 提取感興趣的關(guān)節(jié)點(diǎn)
當(dāng)用戶(hù)做出不同的動(dòng)作時(shí),Kinect[1]追蹤的骨骼關(guān)節(jié)點(diǎn)具有不同的角度和位置信息。在人體骨骼拓?fù)浣Y(jié)構(gòu)的基礎(chǔ)上,將Kinect捕捉到的20個(gè)人體關(guān)節(jié)點(diǎn)進(jìn)行分層,如圖1所示。為進(jìn)一步降低特征數(shù)據(jù)維數(shù)以提高計(jì)算效率,提取第一、二層的共16個(gè)關(guān)節(jié)點(diǎn)。
1.2 定義骨骼向量
將提取的16個(gè)關(guān)節(jié)點(diǎn),每相鄰兩點(diǎn)連接成一段骨骼,定義為一個(gè)向量。第一層關(guān)節(jié)點(diǎn)連接出7個(gè)骨骼向量,依次為{a1,a2,…,a7},組成了人的軀干;第二層關(guān)節(jié)點(diǎn)連接出8個(gè)骨骼向量,依次為{a8,a9,…a15},組成人的四肢,如圖1所示。
圖1 分層關(guān)節(jié)點(diǎn)及骨骼向量
1.3 計(jì)算骨骼向量間的夾角
將人體骨骼向量中頭部和四肢的骨骼向量{a1,a8,a9,a10,a11,a12,a13,a14,a15},與由脊椎和臀部中心組成中心骨骼向量a5之間的夾角作為運(yùn)動(dòng)特征。在給定幀,右小臂骨骼向量與中心骨骼向量的夾角
(1)
其中,θi的取值范圍為[0,π],下標(biāo)i為動(dòng)作骨骼向量中該段骨骼向量的索引值。采用式(1)的動(dòng)作特征表示方法,人體姿態(tài)可以用個(gè)9元組表示:X=(θ1,θ2,…,θ9),不僅實(shí)現(xiàn)了原始數(shù)據(jù)序列維度的下降,而且能有效地保留運(yùn)動(dòng)特征[2]。
規(guī)定以30幀/s的頻率采集樣本,樣本長(zhǎng)度L視具體動(dòng)作的長(zhǎng)度而定,每個(gè)樣本提取總幀數(shù)的1/10 幀作為關(guān)鍵幀,那么動(dòng)作特征的每一個(gè)分量就是[L/10]維的時(shí)空特征向量。因?yàn)槊總€(gè)時(shí)刻的人體姿態(tài)均為一個(gè)9元組,所以從樣本中提取的動(dòng)作特征是一個(gè)9×[L/10]的矩陣,將其轉(zhuǎn)化為一維向量,則每個(gè)動(dòng)作對(duì)應(yīng)的向量含有9×[L/10]個(gè)元素,構(gòu)成了BP網(wǎng)絡(luò)的輸入樣本。對(duì)于每個(gè)弱分類(lèi)器的分類(lèi)方法,采用BP神經(jīng)網(wǎng)絡(luò)去得到一個(gè)弱分類(lèi)器。
2.1 BP神經(jīng)網(wǎng)絡(luò)
BP網(wǎng)絡(luò)全稱(chēng)誤差反向傳播算法的多層感知器,是人們認(rèn)識(shí)最為清楚一類(lèi)神經(jīng)網(wǎng)絡(luò)[3]。BP算法的學(xué)習(xí)過(guò)程中,輸入層中任意神經(jīng)元的輸入等于輸入模式向量的相應(yīng)分量,對(duì)其余各層,設(shè)隱層任一神經(jīng)元j的輸入為netj,輸出為yj,輸入層中任一神經(jīng)元i的輸出為yi,則有
netj=∑iwijyi
(2)
yj=f(netj)
(3)
其中,wij為神經(jīng)元i與神經(jīng)元j之間的連接權(quán);f(·)為神經(jīng)元的輸出函數(shù)
(4)
其中,θj為神經(jīng)元閾值,它影像輸出函數(shù)水平方向的位置;h0是用來(lái)修改輸出函數(shù)形狀的參數(shù)。
設(shè)輸出層第k個(gè)神經(jīng)元的實(shí)際輸出為yk,輸入為netk,則yk和netk分別為
(5)
yj=f(netk)
(6)
對(duì)于一個(gè)輸入模式Xp,若輸出層中第k個(gè)神經(jīng)元的期望輸出dpk,實(shí)際輸出為ypk,則輸出層的輸出方差為
(7)
權(quán)值wjk的修改應(yīng)使Ep最小,因此wjk應(yīng)沿Ep的負(fù)梯度方向變化。當(dāng)輸入Xp時(shí),wjk的修正增量Δpwjk應(yīng)與(?Ep/?wjk)成正比,即
(8)
令δpk=-?Ep/?netk,得輸出單元的誤差和修正增量為
δpk=(dpk-ypk)ypk(1-ypk)
(9)
Δpwjk=ηδpkypj
(10)
對(duì)于隱層中的神經(jīng)元j和輸出層中的神經(jīng)元i,可算得誤差和修正增量為
δpj=ypj(1-ypj)∑kδpkwjk
(11)
Δpwij=ηδpjypj
(12)
隱層中的神經(jīng)元輸出的誤差返回輸入層,修正其權(quán)值。
BP網(wǎng)絡(luò)實(shí)質(zhì)上是使用梯度下降方法解決了一個(gè)非線(xiàn)性?xún)?yōu)化問(wèn)題。隱層神經(jīng)元的個(gè)數(shù)與輸入輸出層神經(jīng)元的個(gè)數(shù)有直接關(guān)系,可以參考經(jīng)驗(yàn)公式進(jìn)行設(shè)計(jì)[4]
(13)
其中,n為隱層神經(jīng)元個(gè)數(shù);ni為輸入層神經(jīng)元個(gè)數(shù);no為輸出層神經(jīng)元個(gè)數(shù);a為1~10之間的常數(shù)。
2.2 訓(xùn)練弱分類(lèi)器
使用BP網(wǎng)絡(luò)獲取弱分類(lèi)器的具體步驟如下:
(1)定義時(shí)空特征向量集x。一個(gè)時(shí)空向量集包含了所有骨骼點(diǎn)信息的一個(gè)時(shí)空特征向量,因此一個(gè)是個(gè)時(shí)空特征向量集包含9個(gè)[L/10]維向量,即X=(x1,x2,…,x9),每個(gè)向量X表示一個(gè)骨骼點(diǎn)的某個(gè)坐標(biāo)的時(shí)空向量;
(2)對(duì)權(quán)值和神經(jīng)元閾值初始化。賦予它們?cè)?0,1)上呈正太分布的隨機(jī)數(shù);
(3)輸入樣本并給定期望輸出值:d1,d2,…,dm;
(4)計(jì)算實(shí)際輸出。依次計(jì)算每層神經(jīng)元的實(shí)際輸出,直到計(jì)算出輸出層各神經(jīng)元的實(shí)際輸出y1,y2,…,ym。各個(gè)神經(jīng)元的輸出根據(jù)式(5)進(jìn)行計(jì)算;
(5)修正權(quán)值。從輸出層開(kāi)始,向隱層遞推,遞推公式為
wij(t+1)=wij(t)+ηδjyj
(14)
其中,wij(t)是t時(shí)刻從神經(jīng)元i(輸入層或隱層神經(jīng)元)到高一層神經(jīng)元j(隱層或輸出神經(jīng)元)的連接權(quán);yi是神經(jīng)元i在t時(shí)刻的輸出;η是步長(zhǎng)調(diào)整因子,0<η<1。如果神經(jīng)元j屬于輸出層,則
δj=yj(1-yj)(dj-yj)
(15)
如果神經(jīng)元j屬于隱層,則
δj=yj(1-yj)∑kδkwjk
(16)
其中,yj是神經(jīng)元j在t時(shí)刻的輸出;k是神經(jīng)元j的上一層即輸出層的神經(jīng)元編號(hào);
(6)轉(zhuǎn)到第步驟(3)。如此循環(huán),直到權(quán)值穩(wěn)定或到達(dá)規(guī)定學(xué)習(xí)次數(shù)為止。
AdaBoost算法又被稱(chēng)為自適應(yīng)強(qiáng)分類(lèi)器理論[5]。對(duì)某一動(dòng)作A,給定一個(gè)二分類(lèi)的訓(xùn)練數(shù)據(jù)集M={(x1,y1),(x2,y2),(xn,yn) },其中,每個(gè)樣本點(diǎn)由實(shí)例與標(biāo)記組成。實(shí)例xi∈X?Rn,標(biāo)記yi∈Y={-1,1},X是實(shí)例空間,Y是標(biāo)記集合,yi=-1表示樣本xi不屬于動(dòng)作A,為負(fù)樣本,yi=1表示樣本xi屬于動(dòng)作A,為正樣本。AdaBoost利用以下算法,從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)一系列弱分類(lèi)器,并將這些弱分類(lèi)器乘以權(quán)重線(xiàn)性組合成為一個(gè)強(qiáng)分類(lèi)器。
(1)初始化樣本的權(quán)值分布
(17)
(2)對(duì)t=1,2,…,T,t表示當(dāng)前訓(xùn)練的輪數(shù),弱分類(lèi)器一共迭代T輪。使權(quán)值分布Dt的訓(xùn)練集通過(guò)學(xué)習(xí)得到基本分類(lèi)器Gt(x):X→{-1,1};
1)訓(xùn)練第t個(gè)弱分類(lèi)器時(shí),預(yù)測(cè)訓(xùn)練數(shù)據(jù)輸出,計(jì)算Gt(x)在訓(xùn)練數(shù)據(jù)集上的分類(lèi)誤差率
(18)
計(jì)算弱分類(lèi)器的權(quán)值
(19)
其中,αt表示Gt(x)在最終分類(lèi)器中的重要性,由式(19)可知,當(dāng)et≤ 1/2時(shí),αt≥ 0,并且αt隨著et的減小而增大,所以分類(lèi)誤差率越小的弱分類(lèi)器在最終分類(lèi)器中的作用越大。
3)更新訓(xùn)練數(shù)據(jù)集的權(quán)值分布
Dt+1=(wt+1,wt+1,2,…,wt+1,N)
(20)
其中,zt是規(guī)范化因子
(21)
它使分布權(quán)值和為1。由式(21)可知,被弱分類(lèi)器Gt(x)被錯(cuò)誤分類(lèi)的樣本的權(quán)值得以擴(kuò)大,而正確分類(lèi)樣本的權(quán)值被縮小,兩相比較,誤分類(lèi)樣本的權(quán)值被放大e2αt倍,因此,誤分類(lèi)樣本在下一輪學(xué)習(xí)中起更大的作用。不改變所給的訓(xùn)練數(shù)據(jù),而不斷改變訓(xùn)練數(shù)據(jù)權(quán)值的分布,使得訓(xùn)練數(shù)據(jù)在弱分類(lèi)器的學(xué)習(xí)中起不同的作用。
構(gòu)建弱分類(lèi)器的線(xiàn)性組合
(22)
得到最終分類(lèi)器
(23)
線(xiàn)性組合f(x)實(shí)現(xiàn)T個(gè)分類(lèi)器加權(quán)表決。系數(shù)αt表示了基本分類(lèi)器Gt(x)的重要性,其和不為1。f(x)的符號(hào)決定實(shí)例x的類(lèi),其絕對(duì)值表示分類(lèi)的確信度。
為驗(yàn)證算法的有效性和魯棒性,在微軟的MSRC-12 Gesture數(shù)據(jù)集上對(duì)其進(jìn)行測(cè)試。MSRC-12 Gesture數(shù)據(jù)集由6 244個(gè)標(biāo)記好的動(dòng)作實(shí)例組成,內(nèi)容豐富且具有代表性[6]。它利用Kinect采集了大量的人體動(dòng)作深度序列,包含 30名表演者示范的12種動(dòng)作,每種動(dòng)作每個(gè)演員執(zhí)行3次[7]。這些動(dòng)作分為象形姿勢(shì)和隱喻姿勢(shì)兩大類(lèi),每類(lèi)各6種動(dòng)作[8],覆蓋了手臂、腿、軀干以及他們的組合的多種動(dòng)作[9]。
每輪訓(xùn)練后獲得的10個(gè)弱分類(lèi)器的權(quán)值αt如表1所示。為說(shuō)明AdaBoost算法對(duì)BP網(wǎng)絡(luò)分類(lèi)器的提升效果,統(tǒng)計(jì)了10個(gè)BP網(wǎng)絡(luò)弱分類(lèi)器和強(qiáng)分類(lèi)器的識(shí)別結(jié)果。每個(gè)弱分類(lèi)器的識(shí)別結(jié)果如表2所示。強(qiáng)分類(lèi)器對(duì)每種動(dòng)作的識(shí)別正確數(shù)、錯(cuò)誤數(shù)和識(shí)別誤差率如表3所示。
表1 10個(gè)弱分類(lèi)器的權(quán)值
表2 10個(gè)BP網(wǎng)絡(luò)弱分類(lèi)器識(shí)別錯(cuò)誤數(shù)
表3 強(qiáng)分類(lèi)器錯(cuò)誤數(shù)和誤差率
對(duì)比表2和表3,發(fā)現(xiàn)弱分類(lèi)器的平均誤差率高于強(qiáng)分類(lèi)器,這說(shuō)明AdaBoost算法確實(shí)可以提高BP網(wǎng)絡(luò)分類(lèi)器的識(shí)別率。究其原因,一方面BP網(wǎng)絡(luò)容易陷入局部極小值,導(dǎo)致錯(cuò)誤分類(lèi)增加,表2中第9個(gè)弱分類(lèi)器的識(shí)別錯(cuò)誤數(shù)高達(dá)48個(gè),誤差率高達(dá)16%,拉高了BP網(wǎng)絡(luò)識(shí)別的平均誤差率;另一方面是因?yàn)閺?qiáng)分類(lèi)器能夠通過(guò)每輪BP網(wǎng)絡(luò)的錯(cuò)誤分類(lèi)調(diào)整權(quán)重,削弱錯(cuò)誤特征的影響,從而提高整體識(shí)別率。
機(jī)器人對(duì)于人體動(dòng)作的理解是其展開(kāi)動(dòng)作模仿學(xué)習(xí)的關(guān)鍵,然而動(dòng)作理解包含了從底層處理到高層推理的全過(guò)程,涉及底層運(yùn)動(dòng)特征的提取和表征、動(dòng)作的表示方法以及高層行為語(yǔ)義的推理模型。本文基于體感交互設(shè)備Kinect進(jìn)行人體關(guān)節(jié)數(shù)據(jù)獲取,并以AdaBoost提升方法和BP神經(jīng)網(wǎng)絡(luò)算法設(shè)計(jì)了一個(gè)包含特征提取、樣本訓(xùn)練和動(dòng)作識(shí)別的機(jī)器人動(dòng)作理解系統(tǒng)架構(gòu),實(shí)現(xiàn)了對(duì)不同個(gè)體動(dòng)作的準(zhǔn)確識(shí)別。
[1] 張昊.基于Kinect的人體行為分析及其應(yīng)用[D].廣州:廣東工業(yè)大學(xué),2014.
[2] 楊濤,肖俊,吳飛,等.基于分層曲線(xiàn)簡(jiǎn)化的運(yùn)動(dòng)捕獲數(shù)據(jù)關(guān)鍵幀提取[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2006,18(11):1691-1697.
[2] 齊敏,李大健,郝重陽(yáng).模式識(shí)別導(dǎo)論[M].北京:清華大學(xué)出版社,2009.
[3] 陳偉濤,楊沛,劉朝陽(yáng),等.BP神經(jīng)網(wǎng)絡(luò)在雷達(dá)目標(biāo)識(shí)別中的應(yīng)用[J].電子科技,2010,23(12):18-19.
[4] 徐丹.基于視覺(jué)的機(jī)器人動(dòng)作模仿研究[D].天津:河北工業(yè)大學(xué),2006.
[5] 郭丹丹,朱希安.基于時(shí)空域AdaBoost算法的人體動(dòng)作識(shí)別研究[J].北京信息科技大學(xué)學(xué)報(bào),2015,30(2):50-54.
[6] 曹瑩,苗啟廣,劉家辰,等.Adaboost算法研究進(jìn)展與展望[J].自動(dòng)化學(xué)報(bào),2013,39(6):745-758.
[7] 匿名角落.Adaboost算法的一些說(shuō)明[EB/OL].(2012-05-04)[2016-10-21]http://blog.sina.com.cn/s/bolg_6354bd9f0100yk4y.html.
[8] Wang Yongxiong,Shi Yubo.Human activities segmentation and location of key frames based on 3D skeleton[C].北京:第三十三屆中國(guó)控制會(huì)議,2014.
[9] 譚靈焱,吳軍,文先益.自平衡人形機(jī)器人動(dòng)作控制器的設(shè)計(jì)[J].電子科技,2010,23(12):35-38.
[10] 陳萬(wàn)軍,張二虎.基于深度信息的人體動(dòng)作識(shí)別研究綜述[J].西安理工大學(xué)學(xué)報(bào),2015,31(3): 253-264.
[11] Kohli P,Nowozin S,Mentis H.Description of the MSR-C-12 gesture dataset[EB/OL].(2012-06-05)[2016-10-02]https://www.researchgate.net/publication/239761374_Instructing_people_for_training_gestural_interactive_systems?ev=auth_pub.
[12] 王明良,孫懷江.基于分層運(yùn)動(dòng)姿態(tài)協(xié)方差的人體動(dòng)作識(shí)別[J].計(jì)算機(jī)應(yīng)用究,2015,32(12): 3794-3797.
[13] 朱凱,王正林.精通Matlab神經(jīng)網(wǎng)絡(luò)[M].北京:電子工業(yè)出版社,2010.
[14] 朱國(guó)剛,曹林.基于Kinect傳感器骨骼信息的人體動(dòng)作識(shí)別[J].計(jì)算機(jī)仿真,2014,31(6) :329-333.
[15] 李靖意.基于Kinect深度圖像的人體動(dòng)作識(shí)別研究[D].北京:北京郵電大學(xué),2012.
[16] 汪麗.面向動(dòng)作分析的虛擬人體建模研究[D].濟(jì)南:山東大學(xué),2006.
[17] 劉飛.基于Kinect骨架信息的人體動(dòng)作識(shí)別[D].上海:東華大學(xué),2014.
Robot Motion Understanding Based on AdaBoost and BP Networks
LIANG Yuqiang,CHEN Jinjie,YE Qihan
(School of Mechanical Engineering,University of shanghai for Science and Technology,Shanghai 200093,China)
According to the understanding of robot motion, this paper designs a BP network robot motion understanding system based on the strong classifier, expounds the BP network model and AdaBoost algorithm, and explains the steps of the weak classifier and the strong classifier. The MSRC-12 Gestrue data set is used to verify the reliability of the system. In order to reduce the dimension of the original data and guarantee the realization of motion information system integrity, we extract the angle between the 9 bone vector and center vector skeleton key frame between the as the feature of action; then using BP neural network classifier to the training samples of the misclassification error update sample weights; finally get the 10 round of training as the final classifier fusion decision function, complete the accurate identification of 6 different actions of the individual.
strong classifier;AdaBoost;BP neural network;weak classifier
2016- 11- 01
梁玉強(qiáng)(1992-),男,碩士研究生。研究方向:智能機(jī)器人。陳勁杰(1969-),男,副教授。研究方向:智能機(jī)器人等。葉其含(1990-),男,碩士研究生。研究方向:機(jī)電一體化。
10.16180/j.cnki.issn1007-7820.2017.08.017
TP242
A
1007-7820(2017)08-063-04