倪 濤 鄒少元 孔維天 黃玲濤 張紅彥 舒禮志
(吉林大學(xué)機械與航空航天工程學(xué)院, 長春 130022)
在港口、碼頭和礦山等大型貨物吊運場合,傳統(tǒng)情況下需要吊運駕駛員和吊運指揮員配合完成遠(yuǎn)距離吊裝操作,其裝卸安全和效率直接影響經(jīng)濟(jì)效益。隨著人機交互技術(shù)的發(fā)展[1-3],將機器人技術(shù)和人工智能技術(shù)結(jié)合成為發(fā)展趨勢。采用基于深度學(xué)習(xí)的人體肢體識別技術(shù)對吊運指揮人員吊裝指令肢體信號進(jìn)行識別,可完成智能化吊裝操作。該方法無需吊運駕駛員的配合,可大大提升吊裝效率和吊裝工作的智能化水平。
現(xiàn)有人體行為識別技術(shù)主要有3種:①手動構(gòu)建精細(xì)特征進(jìn)行分類任務(wù),主要有尺度不變特征(SIFT)[4]、方向梯度直方圖(HOG)[5]、梅爾倒頻譜(MFCC)[6]和費舍爾向量(FV)[7]等。該方法缺點是針對性較強,且通用性較差。②采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行人體行為識別可以自動提取圖像更深層次抽象特征[8-11],例如,文獻(xiàn)[10]提出一種3D-CNN應(yīng)用人體行為識別,該方法將擴(kuò)展空間和時間肢體運動信息作為多通道輸入,缺點是訓(xùn)練難度大。③循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)應(yīng)用于人體行為識別近年發(fā)展迅速[12-14],RNN能夠有效提取肢體動作時空特征和圖像幀上下文信息,但是該方法最大的缺點是訓(xùn)練數(shù)據(jù)很難獲取,且訓(xùn)練容易產(chǎn)生過擬合現(xiàn)象。
為克服上述方法存在的問題,本文提出一種基于神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)方法的肢體動作識別智能吊裝方法。
吊裝機器人肢體信號識別系統(tǒng)由機器人輔助吊裝控制模塊和肢體識別模塊兩部分組成,如圖1所示。首先采用大變焦網(wǎng)絡(luò)攝像頭采集吊運指揮人員肢體圖像,并使用TfPose提取人體18個關(guān)鍵骨架節(jié)點坐標(biāo),其中TfPose采用mobilenet-v2輕量化深度學(xué)習(xí)網(wǎng)絡(luò)框架來減少運算量以及參數(shù)量。肢體識別模塊作用是對TfPose采集人體骨架經(jīng)處理得到骨架向量和RGB骨架圖,分別作為BP神經(jīng)網(wǎng)絡(luò)和InceptionV3網(wǎng)絡(luò)的輸入,然后以BP神經(jīng)網(wǎng)絡(luò)和InceptionV3網(wǎng)絡(luò)為基分類器,采用神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)方法確定最優(yōu)化權(quán)重,得到一個吊裝指令肢體信號強分類器,完成吊裝指令肢體信號識別;機器人輔助吊裝控制模塊采用D-H法進(jìn)行吊裝機器人正運動學(xué)分析和使用共形幾何代數(shù)方法求解其逆運動學(xué),將肢體識別模塊識別吊裝指令肢體信號轉(zhuǎn)換為吊裝操作。
吊裝機器人運動學(xué)分析采用D-H方法,D-H參數(shù)表現(xiàn)機器人機械臂相鄰連桿的位姿關(guān)系,該方法首先需要為機器人系統(tǒng)每個連桿建立獨立參考坐標(biāo)系,并推導(dǎo)相鄰連桿間的齊次變換矩陣,最終構(gòu)建吊裝機器人系統(tǒng)運動學(xué)方程。其中機器人系統(tǒng)幾何坐標(biāo)關(guān)系如圖2所示,從圖2可以看出,卷揚系統(tǒng)(坐標(biāo)系為{O5})固定于KUKA-KR16吊裝機器人小臂(坐標(biāo)系為{O4});參照文獻(xiàn)[15]進(jìn)行運動學(xué)建模和分析,其中各參數(shù)定義如下:ai為連桿長度;αi為連桿扭轉(zhuǎn)角;di為關(guān)節(jié)偏移量;θi為關(guān)節(jié)角。
圖2 機器人坐標(biāo)系簡圖
參考KUKA-KR16官方技術(shù)資料說明書,根據(jù)D-H分析法構(gòu)建吊裝機器人各關(guān)節(jié)的D-H參數(shù)如表1所示。
表1中,a2=0.26 mm、a3=0.68 mm、a4=0.45 mm、d1=0.675 mm、d4=0.035 mm、d5=0.147 mm。按照該D-H表,吊裝機器臂的關(guān)節(jié)角θ2、θ3的工作范圍更新為:-125°<θ2<60°, -40°<θ3<244°。坐標(biāo)系i相對于坐標(biāo)系i-1定位變換方法為:繞i-1旋轉(zhuǎn)αi,沿i-1軸平移ai,再繞i軸旋轉(zhuǎn)θi,沿i軸平移di。參照文獻(xiàn)[16]將此變換串聯(lián)后得到矩陣
i-1Ti=Rot(i-1,αi)Trans(i-1,ai)Rot(i,θi)Trans(i,di)(i=1,2,3,4,5)
(1)
式(1)等價齊次變換矩陣為
(2)
從基座0到關(guān)節(jié)角3的齊次坐標(biāo)變換矩陣為
0T3=0T11T22T3
(3)
關(guān)節(jié)角3到末端執(zhí)行器的坐標(biāo)變換為
3T5=3T44T5
(4)
代入表1的D-H參數(shù),從基座坐標(biāo)系{O0}到吊裝機械臂末端執(zhí)行器(即卷揚系統(tǒng))的坐標(biāo)系{O5}的坐標(biāo)變換為
(5)
其中
si=sinθici=cosθi
cij=cos(θi+θj)sij=sin(θi+θj)
由式(5)可得吊裝機器人末端空間位置坐標(biāo)為
(6)
吊裝機器臂逆運動學(xué)問題采用共形幾何代數(shù)方法[17-19]進(jìn)行求解,將機器人系統(tǒng)歐氏空間向五維閔氏向量空間(e1,e2,e3,e0,e∞)擴(kuò)展,其中e0=(e1-e+)/2表示坐標(biāo)原點,e∞=e-+e+表示無窮遠(yuǎn)點,e-為負(fù)無窮遠(yuǎn)點,e+為正無窮遠(yuǎn)點。吊裝機器臂的機構(gòu)鏈圖以及共形幾何點P3關(guān)節(jié)點逆解示意圖如圖3所示,其中P0=e0。
圖3 機構(gòu)鏈圖及共形幾何點關(guān)節(jié)點
基于共形幾何代數(shù)的運動學(xué)逆解具體求解方法如下:
(1)基座坐標(biāo)系{O0}從z軸平移d1確定P1位置的公式為
(7)
(2)建立平面π01t和π12,其中π12定義為與x0y0平面平行且通過P1和P2兩點。通過平面π01t和π12可以確定P2的位置公式為
π01t=(P0∧P1∧Pt∧e∞)Ic
(8)
π12=e3+d1e∞
(9)
(10)
P2=S1∧π12∧π01t
(11)
參照文獻(xiàn)[18]由歐氏空間轉(zhuǎn)換到閩氏空間經(jīng)驗公式,可得到P2位置公式為
(12)
其中
(3)通過點P3以點P2為球心、a3為半徑建立球面S2;同時通過點P3以點Pt為球心、Pt和P3兩點距離為半徑建立球面St。通過球面S2、St以及平面π01t三者的外積確定P3位置的公式為
P3=S2∧St∧π01t
(13)
(14)
(15)
參照文獻(xiàn)[18]由歐氏空間轉(zhuǎn)換到閩氏空間的經(jīng)驗公式,得到P3位置公式為
(16)
(4)關(guān)節(jié)轉(zhuǎn)角求解
關(guān)節(jié)角θ1求解:關(guān)節(jié)角θ1為π01t與π0xz的夾角,由余弦定理可得θ1余弦函數(shù)為
(17)
(18)
關(guān)節(jié)角θ2求解:關(guān)節(jié)角θ2為線段L23(點P2和點P3的連線)和其在平面π12的投影線段Lproj夾角的余角,由余弦定理可得
(19)
(20)
其中
關(guān)節(jié)角θ3即線段P3Pt與線段P3PH之間的夾角,由余弦定理可得
(21)
(22)
圖5 吊裝機器臂及卷揚系統(tǒng)工作空間示意圖
其中
吊裝機械臂和卷揚機構(gòu)正常工作需要保證卷揚機構(gòu)位于吊裝物體的上方,同時還需要保證吊裝物體在攝像頭的視場范圍內(nèi)。將視場焦點移至吊裝機器人末端坐標(biāo)系{O5}原點處,設(shè){O5}的z軸為視場角的角平分線,nt為{O5}的z軸在基坐標(biāo)系{O0}的坐標(biāo)向量,如圖4所示。則吊裝物體是否位于視場角范圍內(nèi)判定式為
(23)
其中
式中θin——nt與{O0}z軸夾角
圖4 工作空間的視場范圍判斷示意圖
對吊裝機械臂和卷揚機構(gòu)工作空間可視化效果如圖5所示,其中黑色區(qū)域為吊裝機械臂工作空間區(qū)域,綠色區(qū)域為卷揚機構(gòu)工作空間區(qū)域。
BP神經(jīng)網(wǎng)絡(luò)輸入為骨架向量,InceptionV3網(wǎng)絡(luò)輸入為三維RGB骨架圖像。為了得到網(wǎng)絡(luò)輸入數(shù)據(jù),首先使用大變焦網(wǎng)絡(luò)攝像頭對吊運指揮人員采集肢體圖像,通過TfPose獲取人體18個骨架坐標(biāo)節(jié)點生成骨架向量;然后對骨架節(jié)點使用橢圓連接,并使用不同顏色著色以強化左右肢特征,剔除背景信息獲得人體RGB骨架圖。數(shù)據(jù)預(yù)處理過程如圖6所示。
圖6 數(shù)據(jù)預(yù)處理過程
圖7 基于神經(jīng)網(wǎng)絡(luò)集成方法的吊裝機器人肢體識別實施方法
參考機器人吊裝指揮信號(GB 5082—1985)對9組待分類吊裝指令肢體信號進(jìn)行訓(xùn)練和識別,將提取的RGB骨架圖采用4種方式進(jìn)行數(shù)據(jù)增強以擴(kuò)充訓(xùn)練數(shù)據(jù):①采用-15°~15°隨機旋轉(zhuǎn)。②水平垂直兩個方向平移像素距離分別控制在圖像寬度和圖像高度的5%~10%。③0.75~0.9倍和1.1~1.25隨機縮放。④隨機初始化反射變換矩陣進(jìn)行仿射變換。9組吊裝指令肢體信號每組采集1 000幅圖像,共計9 000幅原始圖像。每幅原始圖像使用上述4種數(shù)據(jù)增強方式各產(chǎn)生1幅原圖像副本,共得到45 000幅訓(xùn)練數(shù)據(jù)。采用數(shù)據(jù)增強方式提升肢體動作識別分類器構(gòu)建分類精度,能夠有效防止訓(xùn)練過程中產(chǎn)生過擬合問題。
卷積神經(jīng)網(wǎng)絡(luò)憑借其網(wǎng)絡(luò)深度和廣度,能夠提取更多圖像局部特征和深層抽象特征。BP神經(jīng)網(wǎng)絡(luò)是一種多層感知神經(jīng)網(wǎng)絡(luò),能很好地提取數(shù)據(jù)淺層特征。為發(fā)揮卷積神經(jīng)網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)優(yōu)勢,參照文獻(xiàn)[20-22]采用多個基分類器使用集成學(xué)習(xí)方法構(gòu)建分類性能更強的分類器,以BP神經(jīng)網(wǎng)絡(luò)和InceptionV3網(wǎng)絡(luò)為基分類器,采用神經(jīng)網(wǎng)絡(luò)集成方法確定2個網(wǎng)絡(luò)最優(yōu)權(quán)重,完成對吊裝機器人肢體指揮信號分類任務(wù),實施方法如圖7所示。肢體識別過程主要包括數(shù)據(jù)預(yù)處理模塊和神經(jīng)網(wǎng)絡(luò)集成模塊。其中神經(jīng)網(wǎng)絡(luò)集成模塊包括InceptionV3網(wǎng)絡(luò)遷移學(xué)習(xí)模塊、BP神經(jīng)網(wǎng)絡(luò)模塊以及網(wǎng)絡(luò)集成模塊。
構(gòu)建InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)2個基分類器分別提取RGB骨架圖和骨架向量肢體動作特征。針對InceptionV3網(wǎng)絡(luò),首先使用ImageNet數(shù)據(jù)集在InceptionV3網(wǎng)絡(luò)的預(yù)訓(xùn)練權(quán)重完成InceptionV3網(wǎng)絡(luò)卷積層參數(shù)的初始化,提升網(wǎng)絡(luò)性能的同時加快肢體動作識別分類器構(gòu)建網(wǎng)絡(luò)訓(xùn)練收斂速度。InceptionV3網(wǎng)絡(luò)訓(xùn)練過程中設(shè)定參數(shù)包括:批大小為32、學(xué)習(xí)率0.001、動量大小0.9以及終止迭代次數(shù)1 000;針對BP神經(jīng)網(wǎng)絡(luò),對提取的骨架向量直接作為BP神經(jīng)網(wǎng)絡(luò)輸入層,網(wǎng)絡(luò)訓(xùn)練參數(shù)為:網(wǎng)絡(luò)隱含層個數(shù)為2個,分別提取骨架坐標(biāo)的點線面特征(即淺層特征)、通過試湊法確定兩個隱含層節(jié)點個數(shù)分別為78和72、dropout概率為0.5以及終止迭代次數(shù)為1 000。
在完成InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)的分類器訓(xùn)練后,采用神經(jīng)網(wǎng)絡(luò)集成方法[23]確定兩個分類器最優(yōu)權(quán)重,能夠更好地綜合兩個分類器性能以構(gòu)建一個強分類器。假設(shè)InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)被賦予權(quán)值為ω1和ω2,滿足ω1、ω2≥0且ω1+ω2=1,假設(shè)網(wǎng)絡(luò)輸入x滿足p(x)分布,最終輸出為d(x),第i個成員網(wǎng)絡(luò)fi輸出為fi(x),通過兩個網(wǎng)絡(luò)加權(quán)平均完成神經(jīng)網(wǎng)絡(luò)集成輸出為
(24)
圖9 9組吊裝指令肢體骨架提取效果
除第i個網(wǎng)絡(luò)fi外,剩余網(wǎng)絡(luò)在輸入x下的輸出為
(25)
網(wǎng)絡(luò)集成產(chǎn)生的泛化誤差為
(26)
參照文獻(xiàn)[23]采用GASEN-e方法完成InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)權(quán)重確定[23]。
實驗主要依托KUKA-KR16機器臂、工業(yè)控制計算機以及大變焦網(wǎng)絡(luò)攝像頭,吊裝實驗平臺如圖8所示。
圖8 吊裝實驗平臺
其中工業(yè)計算機配置為intel i7-7700K處理器,運行內(nèi)存8GB,為減小計算量將輸入圖像壓縮至320像素×240像素,采用CUDA9.0+CuDNN7并行計算架構(gòu)對GTX980顯卡進(jìn)行加速。以InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)為基分類器,采用神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)方法確定最優(yōu)化權(quán)重,完成對吊裝信號肢體指令識別。最后將識別的肢體指令信號傳給機器人控制模塊完成吊裝操作。在Python集成開發(fā)環(huán)境PyCharm下,使用PyQt編寫軟件界面采用多線程編程將視頻實時預(yù)覽和肢體識別算法分離以實現(xiàn)肢體動作的實時識別,單幀圖像識別時間126 ms。InceptionV3和BP神經(jīng)網(wǎng)絡(luò)的精度分別為0.926和0.906,分配優(yōu)化權(quán)重精度為0.977,顯著提升了分類器的性能。
在室外強光、室內(nèi)和室外暗光3種環(huán)境下完成9組吊裝指令肢體骨架提取,效果如圖9所示。從圖9中可以看出網(wǎng)絡(luò)在復(fù)雜環(huán)境背景下具有很好的提取效果。
9組吊裝指令分別為預(yù)備命令、向前運動、向后運動、吊鉤上升、吊鉤下降、向左運動、向右移動、吊鉤停止以及工作結(jié)束。對3.1節(jié)獲得的45 000幅圖像按照比例5∶3∶2分配給訓(xùn)練集、驗證集和測試集,神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)方法分類結(jié)果的混淆矩陣如圖10所示。從圖10可以看出,對9組指揮信號平均識別精度達(dá)0.977,同時網(wǎng)絡(luò)具有很好的泛化能力,以吊鉤上升命令分析為例,雖然預(yù)備命令和吊鉤上升命令只有右手、右肘和右肩的輕微不同,二者識別率都為0.98。
圖10 9組吊裝指令分類結(jié)果混淆矩陣
吊裝機器人本體和6個關(guān)節(jié)定義如圖11所示,其中吊裝物體通過繩索纏繞在卷揚機構(gòu),卷揚機構(gòu)則固定于A6軸,對應(yīng)吊裝物體的吊裝上升和吊裝下降;A1軸運動對應(yīng)吊裝機器人向左和向右運動;A2軸運動對應(yīng)吊裝機器人向前和向后運動。
圖11 機器人本體及6個關(guān)節(jié)定義
(1) 采用D-H法對吊裝機器人進(jìn)行正運動學(xué)分析,以確定卷揚機構(gòu)工作空間范圍,并使用共形幾何代數(shù)方法求解逆運動學(xué),完成吊裝機器人從當(dāng)前位置運動到指定位置的數(shù)學(xué)建模。
(2)由于OpenPose復(fù)雜度較高,以大變焦網(wǎng)絡(luò)攝像頭為圖像采集設(shè)備,采用TfPose完成吊運指揮員骨架提取,經(jīng)數(shù)據(jù)處理得到骨架向量和RGB骨架圖,分別作為BP神經(jīng)網(wǎng)絡(luò)和InceptionV3網(wǎng)絡(luò)的輸入。
(3)以InceptionV3和BP神經(jīng)網(wǎng)絡(luò)為基分類器,采用神經(jīng)網(wǎng)絡(luò)集成學(xué)習(xí)方法確定最優(yōu)化權(quán)重,完成肢體識別,最后將識別的吊裝指令肢體信號通過UDP通信傳送給吊裝機器人控制模塊,完成吊裝操作,實現(xiàn)分類精度為0.977,顯著提升了分類器的性能,提高了吊裝工作效率。