倪 濤 鄒少元 劉海強 黃玲濤 陳 寧 張紅彥
(1.吉林大學機械與航空航天工程學院, 長春 130022; 2.集美大學機械與能源工程學院, 廈門 361021)
隨著人體行為識別技術和機器人技術的快速發展,人體行為識別在虛擬現實[1]、視頻監控[2-8]和人機交互[9-11]等領域被廣泛應用。在港口、碼頭、礦山等大型貨物的遠距離吊運場合,駕駛員與現場指揮員之間距離較遠,難以準確把握現場操作員的指令信號。
近年來,肢體識別技術主要使用卷積神經網絡(Convolutional neural network, CNN)和循環神經網絡(Recurrent neural network,RNN)兩種網絡進行訓練和識別。文獻[12]構建多級CNN結構,提取圖像多種時空信息特征,該方法使用圖像序列以及對應的光流圖像序列作為卷積神經網絡輸入進行訓練,但網絡非常復雜,訓練難度大且容易過擬合。文獻[13-16]基于Kinect相機提取的骨架,使用精細構造的多層RNN網絡進行肢體行為識別,但是該方法網絡輸入只局限于骨架節點的坐標,提取的特征信息有限。文獻[17-18]構建多級CNN-RNN網絡,該方法綜合了CNN訓練簡單和RNN能夠獲取更多的上下文信息的優勢,但增大了網絡復雜度,難以達到實時識別的應用需求。
為了克服上述方法存在的問題,本文提出一種CNN-BP融合網絡,采用InceptionV3和BP網絡融合方法對機器人吊裝指揮姿勢進行識別。首先基于OpenPose(卡內基梅隆大學計算機科學學院CMU AI 計劃)提取圖像骨架節點坐標,并由此生成RGB骨架圖作為InceptionV3網絡的輸入層,同時將骨架節點坐標生成骨架向量作為BP神經網絡輸入層進行訓練,再將兩個網絡的輸出層進行融合,并使用Softmax求解器得到識別結果,最后使用雙重驗證控制方法實現機器人輔助吊裝工作。
如圖1所示,系統包含人體肢體識別模塊和機器人輔助吊裝控制模塊兩部分。鑒于Kinect相機進行肢體識別監控距離有限,不適合吊運機器人的遠距離操控和大作業空間的應用場合,本文采用網絡大變焦攝像頭作為圖像采集設備,對采集圖像基于OpenPose提取人體骨架節點坐標信息。該網絡大變焦攝像頭監控距離最大為80 m,滿足遠距離人機交互作業。

圖1 系統總體方案Fig.1 System overall plan
人體肢體識別模塊中,構建CNN-BP融合網絡進行訓練和識別。依據OpenPose提取的骨架節點的坐標生成RGB骨架圖作為InceptionV3網絡輸入,采用遷移學習方法提取RGB骨架圖深層抽象特征。同時將18個骨架坐標生成一個骨架向量輸入BP神經網絡提取其骨架坐標間點、線以及面等淺層特征。最后將兩個網絡輸出層進行融合并用Softmax求解器得到識別結果。本文選取9組機器人吊裝指令(參考機器人吊裝指揮信號GB 5082—1985),使用CNN-BP網絡對采集訓練數據進行訓練和識別,將識別結果輸入機器人輔助吊裝控制模塊,采用雙重驗證控制方法完成機器人輔助吊裝操作。
圖像采集設備為由安迅士網絡攝像機(AXIS-Q1635型)和海康威視大變焦鏡頭(HV1140D-8MPIR型)組成的網絡大變焦攝像頭,如圖2所示。為保證在攝像機振動情況下成像穩定,AXIS-Q1635型攝像機配備一個1/2英寸傳感器。HV1140D-8MPIR型鏡頭是一款自動光圈手動變焦800萬像素大變焦鏡頭,提供焦距變化范圍為11~40 mm,最大監控距離為80 m。

圖2 網絡大變焦攝像頭示意圖Fig.2 Large-zoom webcam schematic1.HV1140D-8MPIR型鏡頭 2.AXIS-Q1635型攝像機
數據預處理的關鍵是獲得RGB骨架圖和骨架向量,RGB骨架圖和骨架向量獲取操作流程如圖3所示,其操作步驟為:①首先通過網絡大變焦攝像頭采集一幀圖像,經OpenPose提取人體18個骨架節點坐標。②將18個骨架坐標展成一列,生成骨架向量。③對骨架節點間使用不同顏色的橢圓進行連接,并使用不同顏色進行著色。為強化肢體特征信息,剔除背景信息獲得RGB骨架圖。

圖3 RGB骨架圖和骨架向量獲取示意圖Fig.3 Schematic of RGB skeleton diagram and skeleton vector acquisition
為驗證CNN-BP分類性能,參考GB 5082—1985《起重吊運指揮信號》選取的9組待分類指揮信號分別為:預備、要主鉤、要副鉤、吊鉤上升、吊鉤下降、水平向左移動、水平向右移動、吊鉤停止、緊急結束。考慮到現實環境下人的姿態多變,為了提升CNN-BP網絡模型的分類性能和泛化能力,對提取的RGB骨架圖采用-15°~15°隨機旋轉、水平垂直兩個方向-20~20像素點隨機平移、0.8~1.2倍隨機縮放和隨機初始化仿射變換矩陣進行仿射變換多種數據增強方式,數據增強效果如圖4所示。分別對9組機器人吊裝指令各采集1 000幅圖像,共計9 000幅初始圖像,每幅圖像每種數據增強方式隨機產生1幅圖像共生成45 000幅訓練數據。使用數據增強方式大大擴充了訓練數據的數量,可以有效防止模型過擬合。

圖4 4種數據增強方式示意圖Fig.4 Sketch of four data enhancement methods
卷積神經網絡是一種深度前饋神經網絡,可以很好地提取圖像的局部和更深層次的抽象特征。BP神經網絡是一種前向傳播,誤差逆向傳播訓練的多層感知神經網絡,能夠很好地提取數據淺層特征。參照文獻[19-20]構建CNN-BP融合網絡架構如圖5所示,分類過程主要包括網絡輸入預處理模塊和CNN-BP網絡模塊兩部分。其中網絡輸入預處理模塊用于提取RGB骨架圖和骨架向量;CNN-BP網絡模塊包含CNN網絡遷移學習模塊、BP神經網絡模塊和網絡融合模塊。
經典CNN網絡在ImageNet數據集效果如表1所示。由表1可知,InceptionV3和IncetionResNetV2在ImageNet數據集效果較優,但考慮模型復雜度,選擇InceptionV3網絡提取RGB骨架圖特征。由于訓練數據有限,文獻[21-23]對深度CNN網絡ImageNet數據集上使用遷移學習方法進行分類任務,得到了較優的性能。遷移學習是利用源域解決任務獲得一些知識來提升目標分類性能的一種算法,文獻[21-23]先將InceptionV3網絡在大型圖像數據集ImageNet上進行預訓練,訓練后保留卷積層訓練參數用來初始化應用于本文RGB骨架圖分類任務InceptionV3網絡卷積層參數,具體實現過程如圖6所示。
采用遷移學習方法,使用隨機梯度下降算法(Stochastic gradient descent optimizer,SGD),設置批大小為32、低學習率0.001、動量為0.9進行訓練,網絡終止迭代輪數為1 000。對底層和頂層卷積層激活后的特征圖可視化如圖7所示(限于篇幅僅可視化每個特征圖的前32個通道)。由圖7可知,靠近輸入層的卷積層(conv2d_1、conv2d_3、conv2d_5)激活保留圖像的大量邊緣、顏色和形狀等信息,隨著層數的加深靠近輸出層的卷積層(mixed8、 mixed9和mixed10)激活后變得越來越抽象并且難以直觀理解,其表示圖像更高層次的特征信息。隨著深度網絡的加深,可以將無關信息過濾并放大和細化用于分類的特征信息。其中InceptionV3卷積層命名參考Keras深度學習框架。
OpenPose提取的18個骨架節點坐標記為(P1,

圖5 CNN-BP網絡架構Fig.5 CNN-BP network architecture

表1 經典CNN網絡在ImageNet上效果Tab.1 Effect of classic CNN network on ImageNet

圖6 遷移學習示意圖Fig.6 Migration learning schematic
P2,…,P18),將其展成一個骨架向量(Px1,Py1,Px2,Py2,…,Px18,Py18)作為BP神經網絡輸入層。點與點特征之間構成線特征,線與線特征之間構成面特征,本文BP神經網絡設置2個隱含層,網絡結構示意圖如圖8所示。網絡訓練參數為:學習率為0.005,第1隱含層節點個數為100,第2隱含層節點個數為50,dropout概率為0.5,正則化系數1.1,終止迭代次數為1 000。
(1)



n——分類類別數目

圖7 卷積層激活后的特征圖可視化圖Fig.7 Feature map visualization after convolutional layer activation

圖8 BP神經網絡結構示意圖Fig.8 Schematic of BP neural network structure
(2)
式中N——訓練樣本數
K——樣本類別數
y(i)——第i個樣本預測類別
θ——權重
x(i)——第i個樣本的特征
exp(θ(k)Tx(i))——樣本i被分類成類別k的概率
l{y(i)=k}——正樣本
實驗控制設備為計算機,配置為Intel i7處理器,內存8 GB,顯卡GTX980,Win10環境使用PyQt編寫軟件控制界面。鑒于OpenPose與InceptionV3復雜度過高,為了確保實時性采用雙GTX980顯卡(顯存8 GB),模型在GPU進行運算。為了降低計算量,設置OpenPose的scale_search參數為“0.5,1”,并將輸入圖像壓縮至320像素×240像素,得到單幀圖像識別時間為386 ms,為了實時識別采用多線程編程將視頻預覽與算法運算分離。其中吊裝機器人實物如圖9所示。

圖9 吊裝機器人實物圖Fig.9 Physical diagram of lifting robot
為驗證提出的CNN-BP網絡模型的準確性,分別使用InceptionV3網絡、BP神經網絡和CNN-BP網絡,對吊裝機器人9種吊裝指揮姿勢進行訓練,分類精度如表2所示。從表2可以看出,CNN-BP采用Sum融合方式識別精度最高,其分類結果的混淆矩陣和ROC曲線如圖10、11所示,可以看出該方法對9組機器人吊裝姿勢都能夠準確分類,平均識別精度達到0.953。同時9組動作識別的ROC曲線AUC值不低于0.92,平均AUC達到0.96。其中RUC為ROC曲線和橫軸圍成的面積,取值范圍為0~1,越接近1表示分類器分類性能越好。

表2 不同網絡分類結果Tab.2 Different network classification results

圖11 9組輔助吊裝命令識別ROC曲線Fig.11 Nine groups of auxiliary lifting commands identified ROC curves

圖10 輔助吊裝命令分類結果Fig.10 Auxiliary lifting command classification result
基于雙重驗證控制方法的機器人輔助吊裝控制過程和9組控制信號如圖12所示,機器人輔助控制系統初始狀態處于待命狀態,在CNN-BP網絡識別出“預備命令”控制系統才會進入工作狀態。而肢體識別過程采取間隔50 ms采集兩幀圖像先后輸入CNN-BP網絡分類模塊,對兩次識別結果進行判斷,如果相等且識別結果為“預備指令”則開啟機器人吊裝控制,在開啟機器人輔助吊裝系統后將識別的控制信號發送給機器人吊裝控制器完成吊裝操作,如果兩次識別結果不相等則丟棄本次識別結果,該方法實時識別精度達0.99以上。

圖12 機器人輔助吊裝系統Fig.12 Robotic assisted lifting system
鑒于Kinect進行肢體識別監控距離有限,搭建了使用網絡大變焦攝像頭并基于OpenPose的CNN-BP融合網絡,使用遷移學習方法在ImageNet數據集上對InceptionV3網絡預訓練。采用旋轉、平移、縮放和仿射方法對采集的訓練數據集進行數據增強,有效防止了過擬合。采用3種方式對InceptionV3網絡和BP神經網絡兩種網絡輸出進行融合,結果表明,Sum融合方式可以得到更高的模型分類精度。對機器人輔助吊裝系統建立了雙重驗證控制方法。實驗結果表明,采用CNN-BP融合網絡和雙重驗證方法保證了模型運行的精度和時效性,識別精度達0.99以上,大大提升了遠距離人機交互能力。