倪 濤 鄒少元 劉海強(qiáng) 黃玲濤 陳 寧 張紅彥
(1.吉林大學(xué)機(jī)械與航空航天工程學(xué)院, 長(zhǎng)春 130022; 2.集美大學(xué)機(jī)械與能源工程學(xué)院, 廈門 361021)
隨著人體行為識(shí)別技術(shù)和機(jī)器人技術(shù)的快速發(fā)展,人體行為識(shí)別在虛擬現(xiàn)實(shí)[1]、視頻監(jiān)控[2-8]和人機(jī)交互[9-11]等領(lǐng)域被廣泛應(yīng)用。在港口、碼頭、礦山等大型貨物的遠(yuǎn)距離吊運(yùn)場(chǎng)合,駕駛員與現(xiàn)場(chǎng)指揮員之間距離較遠(yuǎn),難以準(zhǔn)確把握現(xiàn)場(chǎng)操作員的指令信號(hào)。
近年來,肢體識(shí)別技術(shù)主要使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional neural network, CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)兩種網(wǎng)絡(luò)進(jìn)行訓(xùn)練和識(shí)別。文獻(xiàn)[12]構(gòu)建多級(jí)CNN結(jié)構(gòu),提取圖像多種時(shí)空信息特征,該方法使用圖像序列以及對(duì)應(yīng)的光流圖像序列作為卷積神經(jīng)網(wǎng)絡(luò)輸入進(jìn)行訓(xùn)練,但網(wǎng)絡(luò)非常復(fù)雜,訓(xùn)練難度大且容易過擬合。文獻(xiàn)[13-16]基于Kinect相機(jī)提取的骨架,使用精細(xì)構(gòu)造的多層RNN網(wǎng)絡(luò)進(jìn)行肢體行為識(shí)別,但是該方法網(wǎng)絡(luò)輸入只局限于骨架節(jié)點(diǎn)的坐標(biāo),提取的特征信息有限。文獻(xiàn)[17-18]構(gòu)建多級(jí)CNN-RNN網(wǎng)絡(luò),該方法綜合了CNN訓(xùn)練簡(jiǎn)單和RNN能夠獲取更多的上下文信息的優(yōu)勢(shì),但增大了網(wǎng)絡(luò)復(fù)雜度,難以達(dá)到實(shí)時(shí)識(shí)別的應(yīng)用需求。
為了克服上述方法存在的問題,本文提出一種CNN-BP融合網(wǎng)絡(luò),采用InceptionV3和BP網(wǎng)絡(luò)融合方法對(duì)機(jī)器人吊裝指揮姿勢(shì)進(jìn)行識(shí)別。首先基于OpenPose(卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)科學(xué)學(xué)院CMU AI 計(jì)劃)提取圖像骨架節(jié)點(diǎn)坐標(biāo),并由此生成RGB骨架圖作為InceptionV3網(wǎng)絡(luò)的輸入層,同時(shí)將骨架節(jié)點(diǎn)坐標(biāo)生成骨架向量作為BP神經(jīng)網(wǎng)絡(luò)輸入層進(jìn)行訓(xùn)練,再將兩個(gè)網(wǎng)絡(luò)的輸出層進(jìn)行融合,并使用Softmax求解器得到識(shí)別結(jié)果,最后使用雙重驗(yàn)證控制方法實(shí)現(xiàn)機(jī)器人輔助吊裝工作。
如圖1所示,系統(tǒng)包含人體肢體識(shí)別模塊和機(jī)器人輔助吊裝控制模塊兩部分。鑒于Kinect相機(jī)進(jìn)行肢體識(shí)別監(jiān)控距離有限,不適合吊運(yùn)機(jī)器人的遠(yuǎn)距離操控和大作業(yè)空間的應(yīng)用場(chǎng)合,本文采用網(wǎng)絡(luò)大變焦攝像頭作為圖像采集設(shè)備,對(duì)采集圖像基于OpenPose提取人體骨架節(jié)點(diǎn)坐標(biāo)信息。該網(wǎng)絡(luò)大變焦攝像頭監(jiān)控距離最大為80 m,滿足遠(yuǎn)距離人機(jī)交互作業(yè)。
圖1 系統(tǒng)總體方案Fig.1 System overall plan
人體肢體識(shí)別模塊中,構(gòu)建CNN-BP融合網(wǎng)絡(luò)進(jìn)行訓(xùn)練和識(shí)別。依據(jù)OpenPose提取的骨架節(jié)點(diǎn)的坐標(biāo)生成RGB骨架圖作為InceptionV3網(wǎng)絡(luò)輸入,采用遷移學(xué)習(xí)方法提取RGB骨架圖深層抽象特征。同時(shí)將18個(gè)骨架坐標(biāo)生成一個(gè)骨架向量輸入BP神經(jīng)網(wǎng)絡(luò)提取其骨架坐標(biāo)間點(diǎn)、線以及面等淺層特征。最后將兩個(gè)網(wǎng)絡(luò)輸出層進(jìn)行融合并用Softmax求解器得到識(shí)別結(jié)果。本文選取9組機(jī)器人吊裝指令(參考機(jī)器人吊裝指揮信號(hào)GB 5082—1985),使用CNN-BP網(wǎng)絡(luò)對(duì)采集訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練和識(shí)別,將識(shí)別結(jié)果輸入機(jī)器人輔助吊裝控制模塊,采用雙重驗(yàn)證控制方法完成機(jī)器人輔助吊裝操作。
圖像采集設(shè)備為由安迅士網(wǎng)絡(luò)攝像機(jī)(AXIS-Q1635型)和??低暣笞兘圭R頭(HV1140D-8MPIR型)組成的網(wǎng)絡(luò)大變焦攝像頭,如圖2所示。為保證在攝像機(jī)振動(dòng)情況下成像穩(wěn)定,AXIS-Q1635型攝像機(jī)配備一個(gè)1/2英寸傳感器。HV1140D-8MPIR型鏡頭是一款自動(dòng)光圈手動(dòng)變焦800萬(wàn)像素大變焦鏡頭,提供焦距變化范圍為11~40 mm,最大監(jiān)控距離為80 m。
圖2 網(wǎng)絡(luò)大變焦攝像頭示意圖Fig.2 Large-zoom webcam schematic1.HV1140D-8MPIR型鏡頭 2.AXIS-Q1635型攝像機(jī)
數(shù)據(jù)預(yù)處理的關(guān)鍵是獲得RGB骨架圖和骨架向量,RGB骨架圖和骨架向量獲取操作流程如圖3所示,其操作步驟為:①首先通過網(wǎng)絡(luò)大變焦攝像頭采集一幀圖像,經(jīng)OpenPose提取人體18個(gè)骨架節(jié)點(diǎn)坐標(biāo)。②將18個(gè)骨架坐標(biāo)展成一列,生成骨架向量。③對(duì)骨架節(jié)點(diǎn)間使用不同顏色的橢圓進(jìn)行連接,并使用不同顏色進(jìn)行著色。為強(qiáng)化肢體特征信息,剔除背景信息獲得RGB骨架圖。
圖3 RGB骨架圖和骨架向量獲取示意圖Fig.3 Schematic of RGB skeleton diagram and skeleton vector acquisition
為驗(yàn)證CNN-BP分類性能,參考GB 5082—1985《起重吊運(yùn)指揮信號(hào)》選取的9組待分類指揮信號(hào)分別為:預(yù)備、要主鉤、要副鉤、吊鉤上升、吊鉤下降、水平向左移動(dòng)、水平向右移動(dòng)、吊鉤停止、緊急結(jié)束??紤]到現(xiàn)實(shí)環(huán)境下人的姿態(tài)多變,為了提升CNN-BP網(wǎng)絡(luò)模型的分類性能和泛化能力,對(duì)提取的RGB骨架圖采用-15°~15°隨機(jī)旋轉(zhuǎn)、水平垂直兩個(gè)方向-20~20像素點(diǎn)隨機(jī)平移、0.8~1.2倍隨機(jī)縮放和隨機(jī)初始化仿射變換矩陣進(jìn)行仿射變換多種數(shù)據(jù)增強(qiáng)方式,數(shù)據(jù)增強(qiáng)效果如圖4所示。分別對(duì)9組機(jī)器人吊裝指令各采集1 000幅圖像,共計(jì)9 000幅初始圖像,每幅圖像每種數(shù)據(jù)增強(qiáng)方式隨機(jī)產(chǎn)生1幅圖像共生成45 000幅訓(xùn)練數(shù)據(jù)。使用數(shù)據(jù)增強(qiáng)方式大大擴(kuò)充了訓(xùn)練數(shù)據(jù)的數(shù)量,可以有效防止模型過擬合。
圖4 4種數(shù)據(jù)增強(qiáng)方式示意圖Fig.4 Sketch of four data enhancement methods
卷積神經(jīng)網(wǎng)絡(luò)是一種深度前饋神經(jīng)網(wǎng)絡(luò),可以很好地提取圖像的局部和更深層次的抽象特征。BP神經(jīng)網(wǎng)絡(luò)是一種前向傳播,誤差逆向傳播訓(xùn)練的多層感知神經(jīng)網(wǎng)絡(luò),能夠很好地提取數(shù)據(jù)淺層特征。參照文獻(xiàn)[19-20]構(gòu)建CNN-BP融合網(wǎng)絡(luò)架構(gòu)如圖5所示,分類過程主要包括網(wǎng)絡(luò)輸入預(yù)處理模塊和CNN-BP網(wǎng)絡(luò)模塊兩部分。其中網(wǎng)絡(luò)輸入預(yù)處理模塊用于提取RGB骨架圖和骨架向量;CNN-BP網(wǎng)絡(luò)模塊包含CNN網(wǎng)絡(luò)遷移學(xué)習(xí)模塊、BP神經(jīng)網(wǎng)絡(luò)模塊和網(wǎng)絡(luò)融合模塊。
經(jīng)典CNN網(wǎng)絡(luò)在ImageNet數(shù)據(jù)集效果如表1所示。由表1可知,InceptionV3和IncetionResNetV2在ImageNet數(shù)據(jù)集效果較優(yōu),但考慮模型復(fù)雜度,選擇InceptionV3網(wǎng)絡(luò)提取RGB骨架圖特征。由于訓(xùn)練數(shù)據(jù)有限,文獻(xiàn)[21-23]對(duì)深度CNN網(wǎng)絡(luò)ImageNet數(shù)據(jù)集上使用遷移學(xué)習(xí)方法進(jìn)行分類任務(wù),得到了較優(yōu)的性能。遷移學(xué)習(xí)是利用源域解決任務(wù)獲得一些知識(shí)來提升目標(biāo)分類性能的一種算法,文獻(xiàn)[21-23]先將InceptionV3網(wǎng)絡(luò)在大型圖像數(shù)據(jù)集ImageNet上進(jìn)行預(yù)訓(xùn)練,訓(xùn)練后保留卷積層訓(xùn)練參數(shù)用來初始化應(yīng)用于本文RGB骨架圖分類任務(wù)InceptionV3網(wǎng)絡(luò)卷積層參數(shù),具體實(shí)現(xiàn)過程如圖6所示。
采用遷移學(xué)習(xí)方法,使用隨機(jī)梯度下降算法(Stochastic gradient descent optimizer,SGD),設(shè)置批大小為32、低學(xué)習(xí)率0.001、動(dòng)量為0.9進(jìn)行訓(xùn)練,網(wǎng)絡(luò)終止迭代輪數(shù)為1 000。對(duì)底層和頂層卷積層激活后的特征圖可視化如圖7所示(限于篇幅僅可視化每個(gè)特征圖的前32個(gè)通道)。由圖7可知,靠近輸入層的卷積層(conv2d_1、conv2d_3、conv2d_5)激活保留圖像的大量邊緣、顏色和形狀等信息,隨著層數(shù)的加深靠近輸出層的卷積層(mixed8、 mixed9和mixed10)激活后變得越來越抽象并且難以直觀理解,其表示圖像更高層次的特征信息。隨著深度網(wǎng)絡(luò)的加深,可以將無關(guān)信息過濾并放大和細(xì)化用于分類的特征信息。其中InceptionV3卷積層命名參考Keras深度學(xué)習(xí)框架。
OpenPose提取的18個(gè)骨架節(jié)點(diǎn)坐標(biāo)記為(P1,
圖5 CNN-BP網(wǎng)絡(luò)架構(gòu)Fig.5 CNN-BP network architecture
表1 經(jīng)典CNN網(wǎng)絡(luò)在ImageNet上效果Tab.1 Effect of classic CNN network on ImageNet
圖6 遷移學(xué)習(xí)示意圖Fig.6 Migration learning schematic
P2,…,P18),將其展成一個(gè)骨架向量(Px1,Py1,Px2,Py2,…,Px18,Py18)作為BP神經(jīng)網(wǎng)絡(luò)輸入層。點(diǎn)與點(diǎn)特征之間構(gòu)成線特征,線與線特征之間構(gòu)成面特征,本文BP神經(jīng)網(wǎng)絡(luò)設(shè)置2個(gè)隱含層,網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖8所示。網(wǎng)絡(luò)訓(xùn)練參數(shù)為:學(xué)習(xí)率為0.005,第1隱含層節(jié)點(diǎn)個(gè)數(shù)為100,第2隱含層節(jié)點(diǎn)個(gè)數(shù)為50,dropout概率為0.5,正則化系數(shù)1.1,終止迭代次數(shù)為1 000。
(1)
n——分類類別數(shù)目
圖7 卷積層激活后的特征圖可視化圖Fig.7 Feature map visualization after convolutional layer activation
圖8 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.8 Schematic of BP neural network structure
(2)
式中N——訓(xùn)練樣本數(shù)
K——樣本類別數(shù)
y(i)——第i個(gè)樣本預(yù)測(cè)類別
θ——權(quán)重
x(i)——第i個(gè)樣本的特征
exp(θ(k)Tx(i))——樣本i被分類成類別k的概率
l{y(i)=k}——正樣本
實(shí)驗(yàn)控制設(shè)備為計(jì)算機(jī),配置為Intel i7處理器,內(nèi)存8 GB,顯卡GTX980,Win10環(huán)境使用PyQt編寫軟件控制界面。鑒于OpenPose與InceptionV3復(fù)雜度過高,為了確保實(shí)時(shí)性采用雙GTX980顯卡(顯存8 GB),模型在GPU進(jìn)行運(yùn)算。為了降低計(jì)算量,設(shè)置OpenPose的scale_search參數(shù)為“0.5,1”,并將輸入圖像壓縮至320像素×240像素,得到單幀圖像識(shí)別時(shí)間為386 ms,為了實(shí)時(shí)識(shí)別采用多線程編程將視頻預(yù)覽與算法運(yùn)算分離。其中吊裝機(jī)器人實(shí)物如圖9所示。
圖9 吊裝機(jī)器人實(shí)物圖Fig.9 Physical diagram of lifting robot
為驗(yàn)證提出的CNN-BP網(wǎng)絡(luò)模型的準(zhǔn)確性,分別使用InceptionV3網(wǎng)絡(luò)、BP神經(jīng)網(wǎng)絡(luò)和CNN-BP網(wǎng)絡(luò),對(duì)吊裝機(jī)器人9種吊裝指揮姿勢(shì)進(jìn)行訓(xùn)練,分類精度如表2所示。從表2可以看出,CNN-BP采用Sum融合方式識(shí)別精度最高,其分類結(jié)果的混淆矩陣和ROC曲線如圖10、11所示,可以看出該方法對(duì)9組機(jī)器人吊裝姿勢(shì)都能夠準(zhǔn)確分類,平均識(shí)別精度達(dá)到0.953。同時(shí)9組動(dòng)作識(shí)別的ROC曲線AUC值不低于0.92,平均AUC達(dá)到0.96。其中RUC為ROC曲線和橫軸圍成的面積,取值范圍為0~1,越接近1表示分類器分類性能越好。
表2 不同網(wǎng)絡(luò)分類結(jié)果Tab.2 Different network classification results
圖11 9組輔助吊裝命令識(shí)別ROC曲線Fig.11 Nine groups of auxiliary lifting commands identified ROC curves
圖10 輔助吊裝命令分類結(jié)果Fig.10 Auxiliary lifting command classification result
基于雙重驗(yàn)證控制方法的機(jī)器人輔助吊裝控制過程和9組控制信號(hào)如圖12所示,機(jī)器人輔助控制系統(tǒng)初始狀態(tài)處于待命狀態(tài),在CNN-BP網(wǎng)絡(luò)識(shí)別出“預(yù)備命令”控制系統(tǒng)才會(huì)進(jìn)入工作狀態(tài)。而肢體識(shí)別過程采取間隔50 ms采集兩幀圖像先后輸入CNN-BP網(wǎng)絡(luò)分類模塊,對(duì)兩次識(shí)別結(jié)果進(jìn)行判斷,如果相等且識(shí)別結(jié)果為“預(yù)備指令”則開啟機(jī)器人吊裝控制,在開啟機(jī)器人輔助吊裝系統(tǒng)后將識(shí)別的控制信號(hào)發(fā)送給機(jī)器人吊裝控制器完成吊裝操作,如果兩次識(shí)別結(jié)果不相等則丟棄本次識(shí)別結(jié)果,該方法實(shí)時(shí)識(shí)別精度達(dá)0.99以上。
圖12 機(jī)器人輔助吊裝系統(tǒng)Fig.12 Robotic assisted lifting system
鑒于Kinect進(jìn)行肢體識(shí)別監(jiān)控距離有限,搭建了使用網(wǎng)絡(luò)大變焦攝像頭并基于OpenPose的CNN-BP融合網(wǎng)絡(luò),使用遷移學(xué)習(xí)方法在ImageNet數(shù)據(jù)集上對(duì)InceptionV3網(wǎng)絡(luò)預(yù)訓(xùn)練。采用旋轉(zhuǎn)、平移、縮放和仿射方法對(duì)采集的訓(xùn)練數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),有效防止了過擬合。采用3種方式對(duì)InceptionV3網(wǎng)絡(luò)和BP神經(jīng)網(wǎng)絡(luò)兩種網(wǎng)絡(luò)輸出進(jìn)行融合,結(jié)果表明,Sum融合方式可以得到更高的模型分類精度。對(duì)機(jī)器人輔助吊裝系統(tǒng)建立了雙重驗(yàn)證控制方法。實(shí)驗(yàn)結(jié)果表明,采用CNN-BP融合網(wǎng)絡(luò)和雙重驗(yàn)證方法保證了模型運(yùn)行的精度和時(shí)效性,識(shí)別精度達(dá)0.99以上,大大提升了遠(yuǎn)距離人機(jī)交互能力。