劉子豪
摘要:目前絕大多數(shù)智能機(jī)器人具有較高的魯棒性,但其基于具體行為的實(shí)現(xiàn)方法都需要程序員對相應(yīng)的任務(wù)進(jìn)行手工編程。然而,環(huán)境是復(fù)雜多樣的,而要使得機(jī)器人能夠在多種環(huán)境下進(jìn)行任務(wù),需要程序員將各種情況考慮在內(nèi),這樣的系統(tǒng)對環(huán)境并不具有適應(yīng)性,讓機(jī)器人的應(yīng)用受到了局限。基于此,提出的自主學(xué)習(xí)機(jī)器人以類人形機(jī)器人為基本模型,以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),通過人體對機(jī)器人進(jìn)行示范,訓(xùn)練一個能識別人關(guān)節(jié)姿態(tài)的完備的神經(jīng)網(wǎng)絡(luò)。當(dāng)機(jī)器人身處不同環(huán)境執(zhí)行任務(wù)時,能夠做出適應(yīng)環(huán)境變化的動作。為此所設(shè)計的學(xué)習(xí)機(jī)器人系統(tǒng)的特色就在于使用神經(jīng)網(wǎng)絡(luò)具有學(xué)習(xí)能力,提高機(jī)器人對環(huán)境的適應(yīng)能力,從而讓任務(wù)執(zhí)行更加靈活,使得機(jī)器人擁有更廣闊的應(yīng)用前景。
關(guān)鍵詞:自主學(xué)習(xí);神經(jīng)網(wǎng)絡(luò);姿態(tài)識別;機(jī)器人
中圖分類號:TB
文獻(xiàn)標(biāo)識碼:A
doi:10.19311/j.cnki.16723198.2017.01.092
1引言
1.1機(jī)器人在現(xiàn)代社會中的重要性
隨著城鄉(xiāng)居民消費(fèi)結(jié)構(gòu)的持續(xù)升級,以及智慧中國戰(zhàn)略的不斷推進(jìn),智能機(jī)器人在家庭、農(nóng)業(yè)、工業(yè)等生活的方方面面都有著極其廣泛的應(yīng)用。隨著社會的不斷發(fā)展,社會分工越來越細(xì),與此同時工作也變得越來越單調(diào)。另外,社會上有些工作風(fēng)險較高,若讓人去做,不僅效率不高,而且更會產(chǎn)生生命危險。在這樣高風(fēng)險的作業(yè)領(lǐng)域,對機(jī)器人的需求越來越高。在這一背景下,各種各樣的機(jī)器人被研制了出來,用它們代替人來完成枯燥、單調(diào)、高風(fēng)險的工作。這極大的提高了勞動生產(chǎn)率和生產(chǎn)質(zhì)量,創(chuàng)造出了更多的社會財富。
同時,社會服務(wù)也對機(jī)器人產(chǎn)生了大量的需求。從公共服務(wù)方面來說,目前我國老齡人口已超過總?cè)丝诘?0%,人口老齡化問題已成為中國需要面臨的重大課題。此外,我國殘疾人口占總?cè)丝诘谋戎匾参痪邮澜巛^高國家之列。機(jī)器人的運(yùn)用,可以為他們提供大量的護(hù)理服務(wù),提高他們的生活質(zhì)量。在醫(yī)療服務(wù)方面機(jī)器人也有很大的優(yōu)勢,手術(shù)機(jī)器人憑借其操作的精度及可長期工作等特性廣泛應(yīng)用于手術(shù)操作中??偠灾?,機(jī)器人已成為我們的社會不可取代的一部分。
1.2當(dāng)前機(jī)器人領(lǐng)域的現(xiàn)狀及弊端
目前機(jī)器人正處于快速發(fā)展的階段,但目前市場上的機(jī)器人仍存在著許多弊端。傳統(tǒng)機(jī)器人需要設(shè)計者針對具體的任務(wù)進(jìn)行手工編程,為了使機(jī)器人在環(huán)境改變時也能完成任務(wù),設(shè)計者就需要盡量將各種情況考慮在內(nèi)。但是這樣的機(jī)器人存在一些問題:一方面程序員無法窮盡所有的可能情況,另一方面環(huán)境的復(fù)雜性也無形中加大了機(jī)器人可能出故障的概率,這使得機(jī)器人缺乏良好的環(huán)境自適應(yīng)能力,給機(jī)器人的廣泛應(yīng)用帶來了很大的限制。
基于無法動態(tài)適應(yīng)具體任務(wù)目標(biāo)這個問題,市場上出現(xiàn)了很多自主學(xué)習(xí)的機(jī)器人,比如有些作品使用了強(qiáng)化學(xué)習(xí)的算法,這種算法通過進(jìn)行試錯來尋求最優(yōu)行動策略,從而有效解決了基于行為控制的機(jī)器人缺乏對動態(tài)環(huán)境適應(yīng)能力這一問題。但同時這些該作品也存在出現(xiàn)了一些弊端。這一技術(shù)需要執(zhí)行一些分層檢索及優(yōu)化的工作,因?yàn)闄C(jī)器人需要進(jìn)行大量重復(fù)性實(shí)驗(yàn)來獲得最優(yōu)解,而任務(wù)變得復(fù)雜時該技術(shù)的性能就會變得很差,提高了學(xué)習(xí)的難度。
基于目前機(jī)器人存在的限制與不足,本文提出了基于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法,使機(jī)器人環(huán)境適應(yīng)能力提高。
2多任務(wù)學(xué)習(xí)機(jī)器人介紹
2.1機(jī)械結(jié)構(gòu)
本文所設(shè)計的多任務(wù)學(xué)習(xí)機(jī)器人的機(jī)械結(jié)構(gòu)主要由攝像頭和仿生機(jī)械臂組成。為了使機(jī)器人能執(zhí)行與人類一樣非常細(xì)膩的動作,并能在某些應(yīng)用中代替人,本文設(shè)計的機(jī)械臂擁有與人相似的機(jī)械結(jié)構(gòu)。
如圖1所示,該機(jī)械臂具有著與人體骨骼結(jié)構(gòu)相似的關(guān)節(jié),通過這些關(guān)節(jié),機(jī)械臂可以完成人手臂的旋轉(zhuǎn)、升降等動作。為了方便控制機(jī)械臂的運(yùn)動狀態(tài),每一個關(guān)節(jié)都有相應(yīng)的姿態(tài)參數(shù)。而根據(jù)不同關(guān)節(jié)的靈活程度不同,對應(yīng)的參數(shù)數(shù)量也會存在差異。當(dāng)機(jī)械手模仿人體動作時,可以通過設(shè)定對應(yīng)機(jī)械手關(guān)節(jié)的姿態(tài)參數(shù)來完成,這樣,人體的姿態(tài)與機(jī)械手關(guān)節(jié)的姿態(tài)參數(shù)之間就存在著一一對應(yīng)的關(guān)系。我們所搭建的神經(jīng)網(wǎng)絡(luò)的目的,就是為了找到這樣的對應(yīng)關(guān)系,為機(jī)器人學(xué)習(xí)人的動作奠定基礎(chǔ)。本文設(shè)計中的攝像頭主要用于捕捉人體手臂姿態(tài),并對采集到的視頻流中的手臂姿態(tài)進(jìn)行學(xué)習(xí)。通過將攝像頭固定到一定位置,作為機(jī)器人的“眼睛”,機(jī)器人便可將人的動作記錄下來,轉(zhuǎn)化為視頻信息。高速攝像頭將人的連貫動作存儲成一幀幀的圖片,作為神經(jīng)網(wǎng)絡(luò)訓(xùn)練的原始輸入信息。
2.2神經(jīng)網(wǎng)絡(luò)
人工神經(jīng)網(wǎng)絡(luò),是人們利用仿生學(xué)觀點(diǎn),模擬人腦的結(jié)構(gòu)及智能行為所構(gòu)建的網(wǎng)絡(luò),它能模擬生物神經(jīng)系統(tǒng)對真實(shí)世界做出交互反應(yīng)。神經(jīng)元的基本模型也叫“M-P神經(jīng)元模型”。該模型中,神經(jīng)元接收來自n個神經(jīng)元的信號(x1,x2,…),通過帶權(quán)重(w1,w2,…)的連接傳遞,將獲得的總輸入值與閾值q比較,通過激活函數(shù)f(x)最終得到該單元的輸入y。
y=f(∑ni=1wixi-θ)
神經(jīng)網(wǎng)絡(luò)就是一個個這樣的網(wǎng)絡(luò)單元按一定的結(jié)構(gòu)次序排列而成的。兩層神經(jīng)元形成的網(wǎng)絡(luò)可以容易地實(shí)現(xiàn)與、或、非這樣的基本邏輯運(yùn)算,多層神經(jīng)網(wǎng)絡(luò)可以處理更加復(fù)雜的運(yùn)算。神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)過程,就是根據(jù)獲得的訓(xùn)練數(shù)據(jù)對自身的權(quán)重和閾值進(jìn)行一定的調(diào)整,使神經(jīng)網(wǎng)絡(luò)輸出的值與我們所給的輸出值相差達(dá)到最小的過程。
為了達(dá)到這樣的學(xué)習(xí)過程,就需要合適的算法。誤差逆?zhèn)鞑ニ惴ǎê喎Q“BP算法”)是目前最成功的算法之一。在訓(xùn)練開始時,隨機(jī)產(chǎn)生權(quán)重值wi,輸入訓(xùn)練集(xi,yi)和學(xué)習(xí)率η,神經(jīng)網(wǎng)絡(luò)根據(jù)對應(yīng)權(quán)重和輸入值計算出輸出y,。BP算法以y與y之間差值的差值作為反饋,調(diào)整各個神經(jīng)元的閾值和權(quán)重,進(jìn)而更新神經(jīng)網(wǎng)絡(luò),使網(wǎng)絡(luò)的誤差減小。其中,學(xué)習(xí)率η起著“控制神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速度”的作用,若學(xué)習(xí)率過小,神經(jīng)網(wǎng)絡(luò)變化相對遲緩,影響學(xué)習(xí)效率;而若學(xué)習(xí)率過大,則容易陷入局部最優(yōu)解,影響最終結(jié)果。因此,給予足夠的訓(xùn)練數(shù)據(jù)和適宜的學(xué)習(xí)率,神經(jīng)網(wǎng)絡(luò)就會快速調(diào)整到穩(wěn)定而準(zhǔn)確的狀態(tài)。
利用神經(jīng)網(wǎng)絡(luò),我們可以對攝像機(jī)獲得的人體手臂各個關(guān)節(jié)的姿勢進(jìn)行學(xué)習(xí),所獲得的神經(jīng)網(wǎng)絡(luò)便表征了人體姿態(tài)與機(jī)械臂關(guān)節(jié)參數(shù)的映射關(guān)系。
2.3學(xué)習(xí)機(jī)器人原理
本文所用神經(jīng)網(wǎng)絡(luò)的作用是將輸入的動作信息轉(zhuǎn)化為機(jī)器人的姿態(tài)參數(shù),以神經(jīng)網(wǎng)絡(luò)作為核心算法,機(jī)器人就可以在一定的學(xué)習(xí)訓(xùn)練后,具備識別人體關(guān)節(jié)姿態(tài)的能力,從而使機(jī)器人做出與人體輸入動作一致的動作,具體的學(xué)習(xí)過程如下:
為了獲得比較完備的訓(xùn)練數(shù)據(jù),選擇盡可能多的人采集手臂各關(guān)節(jié)姿態(tài)數(shù)據(jù),提高神經(jīng)網(wǎng)絡(luò)的魯棒性;使人體位于攝像頭采集姿態(tài)的最佳角度,做各種各樣的動作,以覆蓋盡可能多的關(guān)節(jié)姿態(tài)參數(shù)范圍;針對高速攝像頭采集獲得的圖像數(shù)據(jù)的某一幀,手工采用測量工具標(biāo)定該圖像中人體每個關(guān)節(jié)的角度數(shù)據(jù),以這些圖像數(shù)據(jù)和標(biāo)定獲得的角度數(shù)據(jù)作為訓(xùn)練原始數(shù)據(jù)。
以采集的數(shù)據(jù)作為神經(jīng)網(wǎng)絡(luò)的輸入,選擇一定的學(xué)習(xí)速率,采用誤差逆?zhèn)鞑ィ˙P)算法,完成訓(xùn)練后,得到一個能夠根據(jù)圖像數(shù)據(jù)輸出關(guān)節(jié)姿態(tài)參數(shù)的神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)訓(xùn)練完畢之后,為了檢測其準(zhǔn)確性,需要對其進(jìn)行測試。測試過程與實(shí)際使用過程類似。測試方法如下:使用攝像頭采集人體手臂的幾組圖像數(shù)據(jù),將這幾組圖像數(shù)據(jù)分別作為神經(jīng)網(wǎng)絡(luò)的輸入,觀察神經(jīng)網(wǎng)絡(luò)能否正確輸出與人體手臂關(guān)節(jié)相對應(yīng)的角度數(shù)據(jù)。如果機(jī)器人的動作有較大的偏差,則證明訓(xùn)練失敗,需要重新檢查訓(xùn)練數(shù)據(jù),對攝像頭捕捉關(guān)節(jié)的位置進(jìn)行調(diào)整,或提高攝像頭的性能,以便使攝像頭獲得更精確的信息。另外,根據(jù)神經(jīng)網(wǎng)絡(luò)測試的結(jié)果,適當(dāng)調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)過程中的參數(shù)如學(xué)習(xí)速率,樣本容量等。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練與測試完畢后,我們就獲得了一個輸入為一系列包含手臂各個關(guān)節(jié)的圖像數(shù)據(jù)、能夠識別人體關(guān)節(jié)各個姿態(tài),并輸出各個關(guān)節(jié)姿態(tài)角度的神經(jīng)網(wǎng)絡(luò)。利用這個訓(xùn)練并測試完成的神經(jīng)網(wǎng)絡(luò),多任務(wù)學(xué)習(xí)機(jī)器人即可以根據(jù)人演示的動作,準(zhǔn)確地模仿人的姿態(tài),完成特定的任務(wù),具體過程如下:
(1)針對某一環(huán)境下的任務(wù)要求,人體做任務(wù)動作,攝像頭捕捉這個過程中的圖像信息。
(2)每一時刻的圖像信息輸入神經(jīng)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)輸出各個關(guān)節(jié)的角度值。
(3)各個關(guān)節(jié)角度值輸入到機(jī)械臂相關(guān)關(guān)節(jié)控制單元,實(shí)現(xiàn)對機(jī)器人姿態(tài)的控制。
(4)每個時刻分別重復(fù)這個過程,就實(shí)現(xiàn)了機(jī)器人控制參數(shù)流的輸出,機(jī)器人即可完成一系列動作。
由于神經(jīng)網(wǎng)絡(luò)的可復(fù)用性,機(jī)器人可以隨時模仿各種各樣的動作,實(shí)現(xiàn)了多任務(wù)學(xué)習(xí)的設(shè)計要求。實(shí)際的應(yīng)用過程中,可以通過設(shè)計多個存儲單元,分別存儲多個動作的控制參數(shù)流序列,實(shí)現(xiàn)常用動作的記憶與切換功能。
3總結(jié)
本文所設(shè)計的機(jī)器人主要由攝像頭及仿生機(jī)械臂組成,機(jī)器人以攝像頭接收使用者的動作,首先通過訓(xùn)練過程,對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。神經(jīng)網(wǎng)絡(luò)訓(xùn)練完畢后,在使用過程中,人體演示機(jī)器人做相應(yīng)動作,機(jī)器人就可根據(jù)神經(jīng)網(wǎng)絡(luò)識別的結(jié)果反饋來操控機(jī)器人,完成指定動作。應(yīng)用這一方法,可以有效提高機(jī)器人的環(huán)境應(yīng)變能力,通過對某一新動作的學(xué)習(xí),可以高效提取新動作的參數(shù)信息,根據(jù)這些信息輸出對機(jī)器人的控制量,從而達(dá)到理想的效果。本作品解決了傳統(tǒng)機(jī)器人功能單一的缺點(diǎn),可以使得機(jī)器人能執(zhí)行多種動作,使機(jī)器人“身兼數(shù)職”,也提高了機(jī)器人的靈活性與便捷性。
參考文獻(xiàn)
[1]李揚(yáng).智能服務(wù)機(jī)器人引領(lǐng)智慧變革[J].高科技與產(chǎn)業(yè)化,2016,(5):6971.
[2]陳衛(wèi)東,席裕庚,顧冬雷.自主機(jī)器人的強(qiáng)化學(xué)習(xí)研究進(jìn)展[J].機(jī)器人,2001,23(4):379384.
[3]周志華.機(jī)器學(xué)習(xí):=Machine learning[M].北京:清華大學(xué)出版社,2016.