劉璇恒,鄧寶松,裴 育,范博輝,謝 良,閆 野,印二威
1(天津大學(xué) 軟件學(xué)院,天津 300350) 2(軍事科學(xué)院 國防科技創(chuàng)新研究院無人系統(tǒng)技術(shù)研究中心,北京100071) 3(北京航空航天大學(xué) 軟件學(xué)院,北京 100191) 4(華東理工大學(xué) 信息科學(xué)與工程學(xué)院,上海 200237) 5(天津(濱海)人工智能創(chuàng)新中心,天津 300450)
人機(jī)交互(Human-Computer Interaction,HCI)是指用戶與計算機(jī)之間通過特定的交流手段實(shí)現(xiàn)信息交互的方式.手勢識別作為人機(jī)交互領(lǐng)域深耕已久的一個研究方向,主要是通過模式識別算法分析出手勢表達(dá)的含義,實(shí)現(xiàn)人與機(jī)器自然和諧的交互.
基于視覺的手勢識別[1,2]與基于傳感器[3,4]的手勢識別是目前主要的兩種實(shí)現(xiàn)方式.其中,基于視覺的識別技術(shù)發(fā)展比較早也相對成熟,但受設(shè)備和環(huán)境條件的制約較大,攝像頭擺放的位置角度,被遮擋,光線過亮或過暗都會影響攝像頭拍攝的圖片質(zhì)量[5],從而影響識別準(zhǔn)確率.基于慣性傳感器[6]的識別技術(shù)不受環(huán)境光、背景色的影響,采集數(shù)據(jù)穩(wěn)定,信號處理簡單,克服了上述視覺識別技術(shù)的缺點(diǎn),同時該技術(shù)還具有微型化、智能化、多功能、高集成度、低功耗、成本低廉和適于大批量生產(chǎn)等諸多優(yōu)點(diǎn),提供了復(fù)雜環(huán)境下穩(wěn)定可靠的智能交互方式,在醫(yī)療康復(fù)機(jī)器人[7]、手語詞分類[8]、人體活動行為識別[9]等領(lǐng)域也有很大的應(yīng)用價值.
在手勢識別領(lǐng)域,經(jīng)典機(jī)器學(xué)習(xí)算法已經(jīng)應(yīng)用廣泛.Min等使用K-means聚類算法從訓(xùn)練集中提取代表性手勢模板,初步用貝葉斯分類器對手勢進(jìn)行預(yù)分類,之后通過使用動態(tài)時間規(guī)整算法(Dynamic Time Warping,DTW)將輸入手勢與具有相同類別的模板匹配[10].Huang等通過支持向量機(jī)(Support Vector Machine,SVM)算法進(jìn)行手勢的分類,提出了一種手勢識別的實(shí)時視頻系統(tǒng)[11].施向軍等利用隱馬爾可夫模型(Hidden Markov Model,HMM)對紅外傳感器輸出的方向距離信息進(jìn)行動態(tài)手勢識別研究[12].Gao等提出了一種具有異構(gòu)分類器的模糊決策樹(Fuzzy Decision Trees,F(xiàn)DT),每個標(biāo)志特征對手勢具有不同的區(qū)分,呈現(xiàn)對應(yīng)的分類器以用于對手語屬性的分層決策[13].上述算法都面臨著下面一些挑戰(zhàn)性的問題(1)泛化能力差(2)無記憶性(3)特征工程復(fù)雜.與之相比,我們提出的ConvBLSTM框架在更快的學(xué)習(xí)速度下有著更好的泛化性能以及對于有著時間序列特征數(shù)據(jù)的強(qiáng)記憶能力[14].
在無人飛行器交互控制方面,大部分是基于傳統(tǒng)搖桿式遙控器為主要硬件的交互方式,少量以智能移動設(shè)備為硬件的控制方式,其本質(zhì)也是內(nèi)設(shè)的軟件模擬傳統(tǒng)搖桿式遙控器的操控方式.基于手部動作姿態(tài)的交互的無人機(jī)控制,多數(shù)都是通過Kinect[15]和Leap Motion[16]等傳感器實(shí)現(xiàn)視覺識別控制[17-20].本文研究了一種基于加速度計和陀螺儀的手勢控制無人機(jī)方法,基于多傳感器的手勢識別技術(shù)可通過傳感器之間的信息互補(bǔ)將傳感器各自的優(yōu)勢結(jié)合起來,以獲取更好的識別結(jié)果.所提出的由卷積層和雙向LSTM循環(huán)層組成的ConvBLSTM深度學(xué)習(xí)框架,能夠自動學(xué)習(xí)原始傳感器數(shù)據(jù)特征提取空間特征并建模時間依賴性,識別手勢動作分類,以形成對應(yīng)于無人機(jī)各遙控通道控制指令的手勢定義集,再按照手勢定義集將待識別的手勢動作映射為對應(yīng)的飛行指令,控制無人機(jī)完成飛行任務(wù).
我們所設(shè)計的手勢采集硬件裝置及芯片原理圖如圖1所示.手勢采集硬件裝置的支撐性材料選擇內(nèi)含精細(xì)尼龍纖維編織而成的手套,它不僅保有手套的舒適與彈性,而且十分耐磨,避免反復(fù)實(shí)驗(yàn)中的損壞.慣性模塊使用的是LSM6DS3傳感器,包括3軸加速度計和3軸陀螺儀.每個指尖和手背分別放置1個LSM6DS3傳感器,一共6個LSM6DS3傳感器.商業(yè)慣性測量單元(Inertial Measurement Unit,IMU),例如Xsens-MTi或Shimmer,其尺寸不夠小,不能精確穩(wěn)定地放置在手指等關(guān)鍵點(diǎn)上,F(xiàn)ang等使用了MPU9250傳感器安裝在實(shí)心PCB上,尺寸為10×15×2.6mm,重量約為6g[21],但仍略顯笨重.我們采用的LSM6DS3傳感器,尺寸僅有2.5×3×0.83mm,重量更是只有約0.1g,實(shí)現(xiàn)了微型化.在高性能模式下的工作電流為1.25mA,具有在線低功耗特性.高達(dá)8KB的動態(tài)數(shù)據(jù)批處理能力,可動態(tài)分配重要數(shù)據(jù)(例如外部傳感器,時間戳等),極大的降低了開發(fā)成本.傳統(tǒng)傳感器連接使用復(fù)雜接線,在傳感器數(shù)量較多的情況下布線很不方便,而且十分笨重.基于無線網(wǎng)絡(luò)的通信方式是可移植的,但無線網(wǎng)絡(luò)復(fù)雜不穩(wěn)定,數(shù)據(jù)傳輸速率低.本文通過柔性電路板將所有的IMU連接到微控制單元(Microcontroller Unit,MCU),使用柔性電路板省去了多余排線的連接工作,同時具有重量輕,厚度薄,彎折性好等優(yōu)點(diǎn).中央控制單元采用的是STM32L433xx 微控制器.IMU數(shù)據(jù)通過MCU數(shù)字化,經(jīng)由Micro-USB接口傳輸?shù)酵獠吭O(shè)備.
圖1 手勢采集裝置及芯片原理圖Fig.1 Gesture acquisition device and chip schematic
本文所用數(shù)據(jù)傳輸軟件由博??悼萍加邢薰咎峁?數(shù)據(jù)采樣頻率為100Hz,即采樣周期為10ms.該軟件將40ms的數(shù)據(jù)封裝成幀實(shí)時進(jìn)行發(fā)送.數(shù)據(jù)手套捕獲的手勢數(shù)據(jù),通過PC機(jī)的COM端口流入數(shù)據(jù)采集軟件,該軟件通過TCP/IP協(xié)議把數(shù)據(jù)發(fā)送到采集程序,完成數(shù)據(jù)的采集和標(biāo)記.數(shù)據(jù)傳輸軟件為用戶提供了友好的用戶圖形界面,可以通過三級菜單欄調(diào)整觀測精度(scale)來觀察數(shù)據(jù)在幅度上更細(xì)微的變化,通過調(diào)整時間軸分辨率來觀測數(shù)據(jù)在時間域上更細(xì)致的表現(xiàn),包括6個6軸傳感器共36通道的數(shù)據(jù),以及一個事件標(biāo)記通道,共有37通道數(shù)據(jù).事件標(biāo)記通道的數(shù)據(jù)一直為零,用于程序調(diào)試的輔助debug功能.
基于ConvBLSTM神經(jīng)網(wǎng)絡(luò)的手勢識別框架可以分為三個步驟.第一階段建立手勢數(shù)據(jù)庫.無人機(jī)控制指令分為上、下、左、右、前、后,左轉(zhuǎn)、右轉(zhuǎn)、懸停、無操作共十種手勢.首先,通過所設(shè)計的手勢采集系統(tǒng)收集不同手勢的運(yùn)動數(shù)據(jù)形成數(shù)據(jù)集.第二階段進(jìn)行數(shù)據(jù)預(yù)處理和訓(xùn)練分類.在手勢數(shù)據(jù)集的基礎(chǔ)上,我們提取每個手勢的36維手部特征并使用模型訓(xùn)練.第三階段是實(shí)驗(yàn)和分析.我們收集不同被試者的手勢運(yùn)動數(shù)據(jù),使用訓(xùn)練好的ConvBLSTM最優(yōu)模型進(jìn)行手勢識別.手勢識別流程框架如圖2所示.
圖2 基于ConvBLSTM的手勢識別流程框架Fig.2 ConvBLSTM-based gesture recognition process framework
微慣性傳感器通過捕捉一段時間內(nèi)信號的動態(tài)變化,從而實(shí)現(xiàn)不同手勢區(qū)分,故本文討論基于動態(tài)手勢識別,圖3呈現(xiàn)了動態(tài)手勢和無操作手勢數(shù)據(jù)的頻域圖像,二者進(jìn)行對比,發(fā)現(xiàn)手勢動作基本沒有噪聲干擾,故而直接在獲取的原始加速度、角速度數(shù)據(jù)上進(jìn)行工作,只需最少的預(yù)處理,最大限度的減少工程偏差.后面工作也充分驗(yàn)證了基于原始數(shù)據(jù)的優(yōu)勢,能夠幫助網(wǎng)絡(luò)更高效準(zhǔn)確的收斂.
手勢識別作為一種時序性任務(wù),時序性建模的優(yōu)劣是識別效果好壞的關(guān)鍵因素.傳統(tǒng)的時序建模方法包括HMM、DTW等,通過人工設(shè)計的特征作為數(shù)據(jù)輸入,利用手勢標(biāo)簽進(jìn)行模型的訓(xùn)練,進(jìn)而實(shí)現(xiàn)手勢的分類.但由于傳統(tǒng)方法過程較為復(fù)雜,且模型的設(shè)計大多基于理想的假設(shè)前提,因此存在一定不足.近年來,伴隨著深度學(xué)習(xí)的迅猛發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)在各類任務(wù)包括圖像分類[22]、人臉識別[23]、機(jī)器翻譯[24]、手勢識別[25,26]中取得了突出成績.
圖3 動作手勢和無操作手勢在某通道的頻域圖Fig.3 Frequency domain diagram of action gestures and no operation gestures in a channel
我們提出了一種基于原始陀螺儀和加速度計傳感器數(shù)據(jù)的手勢識別框架ConvBLSTM.主要由4個卷積層和1個雙向LSTM循環(huán)層組成.對于輸入的傳感器數(shù)據(jù),由四層卷積層從手勢序列中提取特征并生成特征映射,輸入雙向LSTM層,通過有效計算梯度分量來學(xué)習(xí)時序數(shù)據(jù).
我們所提出的算法結(jié)構(gòu)如圖4所示.輸入數(shù)據(jù)大小為36×80×1,單個手勢作為一個樣本輸入網(wǎng)絡(luò),包括36通道(6個加速度計x,y,z軸和6個角速度計x,y,z軸)和80時間序列.Conv1和Conv4采用大小為2×2的濾波器,Conv2和Conv3采用大小為3×3的濾波器,步長均為1.使用卷積運(yùn)算提取特征圖的方法表示為:
(1)
池化層對輸入的特征圖進(jìn)行壓縮,提取主要特征,可以減少下一層參數(shù)和計算量,簡化網(wǎng)絡(luò)復(fù)雜度,同時也能夠有效地控制過擬合現(xiàn)象.計算公式表示為:
(2)
BiLSTM作為一種傳統(tǒng)RNN改進(jìn)結(jié)構(gòu)可以通過減輕RNN的梯度消失問題來模擬長期依賴性.我們采用雙向LSTM神經(jīng)網(wǎng)絡(luò)有效地提取手勢運(yùn)動序列的時間特征.基于BiLSTM的神經(jīng)網(wǎng)絡(luò)的時序建模,根據(jù)卷積層提取的手勢特征,在雙向LSTM層,按手勢采集的時間順序?qū)⑻卣饕粠粠蚝头聪蛲瑫r輸入,利用BiLSTM的時序表達(dá)能力進(jìn)行時序編碼,從而獲取手勢樣本的時序特征,每個輸出時刻根據(jù)前一輸出時刻的輸出來判斷最優(yōu)輸出,從而可構(gòu)建動態(tài)手勢的前后動作聯(lián)系,最終可得到手勢樣本的對應(yīng)表達(dá).
雙向LSTM單元主要由一個有記憶能力的細(xì)胞態(tài)和三種稱為門的結(jié)構(gòu)組成,通過門結(jié)構(gòu)來控制信息通過細(xì)胞,選擇性增加和去除通過細(xì)胞結(jié)構(gòu)的信息.正向LSTM正序處理手勢數(shù)據(jù),反向LSTM逆序處理手勢數(shù)據(jù)來實(shí)現(xiàn)長期記憶能力.
圖4 ConvBLSTM網(wǎng)絡(luò)模型Fig.4 ConvBLSTM network model
下面描述所提出的LSTM網(wǎng)絡(luò)的細(xì)節(jié).
1)首先是決定前一時刻細(xì)胞態(tài)中的信息去留,稱為遺忘門,該門會讀取前一個LSTM神經(jīng)網(wǎng)絡(luò)模塊的輸出ht-1和當(dāng)前神經(jīng)網(wǎng)絡(luò)模塊的輸入xt,然后通過sigmoid激活函數(shù)輸出0到1之間的數(shù)值ft,用于決定有多少分量可以通過.
ft=σ(Wf·[ht-1,xt]+bf)
(3)
it=σ(Wi·[ht-1,xt]+bi)
(4)
(5)
(6)
3)最后是輸出新的記憶信息,稱為輸出門.我們需要基于細(xì)胞狀態(tài)來確定一個輸出的值,這個輸出值不是原樣輸出,而是經(jīng)過過濾的版本.首先我們通過Sigmoid層決定我們將要輸出的細(xì)胞狀態(tài)信息,接著將細(xì)胞狀態(tài)通過tanh處理,將二者相乘得到我們想輸出的信息.
ot=σ(Wo·[ht-1,xt]+bo)
(7)
ht=ot*tanh(Ct)
(8)
在所有卷積層和雙向LSTM層后都加入批規(guī)范化層(Batch Normalization,BN),可以穩(wěn)定訓(xùn)練過程并加快學(xué)習(xí)速度,從而避免梯度消失.
最后由全連接層通過Softmax函數(shù)激活,實(shí)現(xiàn)由特征到類別的映射關(guān)系.
(9)
其中zi表示上一層的輸出,i表示分類維度為C,yi表示預(yù)測為第i類的概率.
為了驗(yàn)證所提出系統(tǒng),我們采集了10名被試者的手勢數(shù)據(jù),獲得了由10個類別組成的手勢數(shù)據(jù)集.被試者為10名男性,年齡在22到25歲之間(平均值23.6),在滿足手勢定義的要求下,被試者以他們各自的習(xí)慣方式用右手操作上、下、左、右、前、后,左轉(zhuǎn)、右轉(zhuǎn)、懸停、無操作共十種手勢,圖5顯示了所確定的10種手勢,十種手勢選擇旨在控制與無人機(jī)交互.例如,up和down用于無人機(jī)俯仰,turnleft和turnright用于無人機(jī)偏航等.每種手勢采集300次,因此,從每名被試者得到了3000個手勢樣本,總共30000個數(shù)據(jù)樣本.
圖5 定義的十種手勢Fig.5 Ten gestures defined
使用采集程序來同步采集手勢數(shù)據(jù),通過刺激界面提示用戶做出相應(yīng)的十種手勢.每個手勢采集時間為2s,采樣頻率為100Hz,手勢之間休息2s,要求每名被試者在滿足手勢定義的要求下,按照各人的習(xí)慣每種手勢采集300次,在每次數(shù)據(jù)采集之前給每名被試者示范每個手勢動作十次,被試者看了示例手勢并重復(fù)相同的手勢10次.被試者坐在椅子上,數(shù)據(jù)手套通過USB連接到采集電腦進(jìn)行手勢采集,被試者打開數(shù)據(jù)采集的刺激界面,通過提示并且與示例手勢類似的速度執(zhí)行手勢.為了避免連續(xù)采集大量數(shù)據(jù)以及重復(fù)手勢帶來的動作變形等不利于實(shí)驗(yàn)結(jié)果的影響因素,每種手勢采集十次共100個手勢記錄為一組數(shù)據(jù),分時間,分多次在閑暇時候進(jìn)行數(shù)據(jù)采集,以提供多樣性的數(shù)據(jù).并且為了確保數(shù)據(jù)的科學(xué)嚴(yán)謹(jǐn),每組數(shù)據(jù)的100個手勢采用隨機(jī)出現(xiàn)的方式采集.
手勢識別首先需要準(zhǔn)確檢測手勢時間窗口的起點(diǎn)和終點(diǎn),從而實(shí)時截取有效的手勢信號段.將傳感器數(shù)據(jù)取絕對值并將36通道數(shù)據(jù)全部疊加,可以清晰地看到手勢疊加信號如圖6所示,依據(jù)實(shí)驗(yàn)經(jīng)驗(yàn),手勢動作約在傳感器數(shù)值之和大于500時開始,有效手勢長度為600~800ms.經(jīng)過反復(fù)實(shí)驗(yàn)分析,我們設(shè)定閾值為500,即從傳感器數(shù)值之和大于500時判定為手勢開始標(biāo)志并開始截取數(shù)據(jù),截取數(shù)據(jù)長度為800ms.由于單個數(shù)據(jù)樣本每個手勢截取的手勢時間窗口長度為800ms,采樣頻率為100Hz,單個樣本大小為36×80.
圖6 手勢36通道疊加時域圖以及截取閾值Fig.6 Time domain graph of thirty-six-channel superimposed signal during gesture movements and the corresponding threshold for data segment
本文所提出的ConvBLSTM模型基于Keras深度學(xué)習(xí)框架實(shí)現(xiàn),使用TensorFlow作為后端引擎,模型學(xué)習(xí)和分類在NVIDIA GeForce RTX 2080Ti GPU上運(yùn)行,顯存為11G.模型按照有監(jiān)督的方式學(xué)習(xí),以Adam優(yōu)化器為優(yōu)化規(guī)則,以分類交叉熵?fù)p失函數(shù)為優(yōu)化方向,學(xué)習(xí)率(learning_rate)設(shè)置為0.0001進(jìn)行訓(xùn)練,網(wǎng)絡(luò)每次訓(xùn)練的樣本數(shù)(batch_size)大小為20.
4.3.1 有訓(xùn)練
我們將提出的ConvBLSTM算法分別與BiLSTM、KNN和SVM三種典型手勢識別算法進(jìn)行了比較.具體算法設(shè)置為:①SVM算法核函數(shù)使用的是rbf,為高斯核,gamma值越小,分類界面越連續(xù);gamma值越大,分類界面越散,分類效果越好,但有可能會過擬合.分類方法為One vs Rest,即一個類別與其它類別進(jìn)行劃分.②KNN算法使用統(tǒng)一的權(quán)重,即在每一個鄰居區(qū)域里的點(diǎn)的權(quán)重都是一樣的,計算最近鄰居使用ball_tree算法.③BiLSTM算法輸出大小(lstm_size),批處理參數(shù)(batch_size),學(xué)習(xí)率(learning_rate)分別設(shè)置為200,160,0.0001.
在10名實(shí)驗(yàn)者數(shù)據(jù)集上執(zhí)行準(zhǔn)確性和有效性實(shí)驗(yàn).采用5折交叉驗(yàn)證來測量所提出系統(tǒng)的性能.分別將每名被試者的數(shù)據(jù)集劃分為5組,其中4組用于訓(xùn)練,其余用于測試.我們獲得了5折的10個訓(xùn)練模型準(zhǔn)確度,評估結(jié)果如表1所示,顯示了每個被試者的4種機(jī)器學(xué)習(xí)算法的準(zhǔn)確率以及平均準(zhǔn)確率.由于執(zhí)行手勢的速度和方法不同并且傳感器和手之間的距離對于每個被試者是不同的,因此手勢識別的準(zhǔn)確性對于每個被試者而變化.4種算法中ConvBLSTM的平均識別準(zhǔn)確率高達(dá)99.2%,顯著優(yōu)于其余三種算法(ConvBLSTM vs.BiLSTM,p<0.0001;ConvBLSTM vs.KNN,p<0.01;ConvBLSTM vs.SVM,p<0.01).當(dāng)在顯著性水平α=0.05的情況下,ConvBLSTM和其它三種算法分別進(jìn)行T檢驗(yàn)時的p值均小于0.05,h均為1,表明可以從統(tǒng)計上斷定算法ConvBLSTM的結(jié)果大于BiLSTM、KNN、SVM的結(jié)果,即兩組數(shù)據(jù)均值的比較是有意義的,存在顯著性差異,表明ConvBLSTM樣本間差異小,更加精確和穩(wěn)定.對于ConvBLSTM、BiLSTM、KNN以及SVM算法,每個被試者的準(zhǔn)確率標(biāo)準(zhǔn)差分別為0.75,1.39,2.57,2.19.我們發(fā)現(xiàn)第3和第5名被試者的數(shù)據(jù)集在BiLSTM,SVM以及KNN上的準(zhǔn)確率均是十名被試者中最低的,但在ConvBLSTM上的表現(xiàn)依然優(yōu)秀,表明ConvBLSTM算法具有最佳精度,而且對被試者執(zhí)行的各種手勢特征具有更強(qiáng)的魯棒性.
表1 每個被試者的4種機(jī)器學(xué)習(xí)算法的準(zhǔn)確率以及平均準(zhǔn)確率Table 1 Accuracy comparisons among four machine learning algorithms across participants
4.3.2 無訓(xùn)練
為驗(yàn)證算法的跨被試遷移學(xué)習(xí)能力,我們將分別將上述S1至S10被試者的手勢數(shù)據(jù)作為測試集,其余被試者數(shù)據(jù)混合作為訓(xùn)練集,得到的每個被試者的ConvBLSTM、BiLSTM、KNN、SVM算法的無訓(xùn)練模型.通過無訓(xùn)練的新人驗(yàn)證試驗(yàn),以測試學(xué)習(xí)模型的泛化能力,得到了10名實(shí)驗(yàn)者的4種機(jī)器學(xué)習(xí)算法混淆矩陣,如圖7所示.
ConvBLSTM模型在無訓(xùn)練情況下對大多數(shù)手勢進(jìn)行了充分分類,能夠有效地提取特征,對于新被試者它依然保持著95.01%的高識別精度.除此之外,BiLSTM、KNN以及SVM模型也較好的對手勢進(jìn)行了分類,識別精度分別為89.17%,90.80%,92.15%,但是很大程度的混淆了以類似模式完成的手勢動作,證明了ConvBLSTM模型泛化性能顯著優(yōu)于其他模型.
為了驗(yàn)證手勢控制的效果,我們進(jìn)行了無人機(jī)的同步控制實(shí)驗(yàn).本文所使用的無人機(jī)型號是大疆的Mavic air.是大疆公司旗下的一款旗艦機(jī)型.Mavic air機(jī)身小巧輕便,自穩(wěn)性能好,靈敏度高,其內(nèi)置天線可以增強(qiáng)飛行時信號的收發(fā),在實(shí)驗(yàn)室環(huán)境下抗干擾能力強(qiáng).重量約430g,折疊后的飛行器面積大小與智能手機(jī)相當(dāng),攜帶方便,飛行姿態(tài)可控性強(qiáng),適合較狹小室內(nèi)飛行實(shí)驗(yàn).
手勢動作信號與無人機(jī)交互是基于DJI的Windows SDK開發(fā)的控制程序.實(shí)現(xiàn)了和定義的十手勢分別對應(yīng)的無人機(jī)飛行功能,即上升,下降,前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),左移,右移,懸停,無操作.
當(dāng)同步控制程序啟動時,根據(jù)提示界面在規(guī)定時間2s內(nèi)做出任意一個手勢動作,手勢數(shù)據(jù)傳入神經(jīng)網(wǎng)絡(luò)識別出結(jié)果.然后譯為對應(yīng)飛行指令輸出,發(fā)送到無人機(jī).由于在基礎(chǔ)的10手勢中,沒有設(shè)計控制無人機(jī)起飛和降落對應(yīng)的手勢動作,我們在程序中設(shè)計了復(fù)合指令用于擴(kuò)展指令集.
圖7 10名被試者的4種機(jī)器學(xué)習(xí)算法混淆矩陣Fig.7 Four machine learning algorithm confusion matrices for 10 participant
無人機(jī)開啟后在地面處于待命狀態(tài),在第1次執(zhí)行上升手勢時控制起飛,以及需要降落時執(zhí)行連續(xù)3次下降手勢控制其降落.成功起飛后,無人機(jī)懸停于距地面1.2m高度.此時可以執(zhí)行不同的手勢動作控制無人機(jī)進(jìn)行不同的移動,還可使其懸停在空中.在手勢切換過程中,控制無人機(jī)停止上一個動作再而執(zhí)行當(dāng)前動作.在與無人機(jī)交互期間可以使其隨時起飛或降落并關(guān)閉控制程序.
實(shí)際控制效果如圖8所示.分為四個部分:A是起飛狀態(tài);B為起飛后的懸停狀態(tài);C是無人機(jī)接收到左轉(zhuǎn)向的指令,執(zhí)行左轉(zhuǎn)的狀態(tài);D是控制無人機(jī)下降的狀態(tài).
圖8 同步控制無人機(jī)Fig.8 Synchronous model for UAV control
10名被試分別基于各自數(shù)據(jù)集的訓(xùn)練模型測試10種手勢動作10次,準(zhǔn)確率與4.3.1節(jié)離線訓(xùn)練下相近.可能有以下方面原因:1)基于個人數(shù)據(jù)有訓(xùn)練情況下,所提出的模型特征學(xué)習(xí)能力強(qiáng);2)執(zhí)行手勢時有明確的開始結(jié)束提示信號,交互過程過于理想化.基于上述問題并考慮到實(shí)際交互情況,我們進(jìn)一步討論了連續(xù)指令的無人機(jī)實(shí)時控制.
4.5節(jié)驗(yàn)證了本文所述控制無人機(jī)方法的可用性.為了驗(yàn)證手勢控制方法的普遍適用性,進(jìn)行了無人機(jī)的實(shí)時控制實(shí)驗(yàn).由于實(shí)時系統(tǒng)要求系統(tǒng)處理到給出控制交互指令的時間間隔越短越好[27],為了保證在手勢識別精確性的前提下提高無人機(jī)控制的實(shí)時性,我們進(jìn)行了手勢數(shù)據(jù)點(diǎn)長度準(zhǔn)確性檢驗(yàn).
如圖9所示,顯示了ConvBLSTM和其他三種算法BiLSTM、KNN、SVM對手勢數(shù)據(jù)點(diǎn)長度和準(zhǔn)確率的含誤差線的對比圖,誤差線代表10名被試不同手勢數(shù)據(jù)點(diǎn)長度準(zhǔn)確率在該點(diǎn)的標(biāo)準(zhǔn)差.
可以觀察到ConvBLSTM在每個數(shù)據(jù)點(diǎn)長度的平均準(zhǔn)確率相較于其他機(jī)器學(xué)習(xí)算法均為最高.ConvBLSTM在300ms時平均準(zhǔn)確率已經(jīng)達(dá)到了95%以上.用300ms滑動窗口進(jìn)行實(shí)時手勢識別控制無人機(jī)實(shí)驗(yàn).為了避免誤操作,添加空閑態(tài)檢測機(jī)制,設(shè)定輸出閾值為0.5,當(dāng)最大概率比第二大概率超過設(shè)定閾值時輸出為最大概率對應(yīng)手勢,否則輸出空閑手勢.
圖9 數(shù)據(jù)點(diǎn)長度準(zhǔn)確性檢驗(yàn)Fig.9 Data point length accuracy test
劃定3m×3m的方形任務(wù)區(qū)域,以區(qū)域一角為起始點(diǎn),無人機(jī)由起始位置起飛,繞區(qū)域四個角飛行一圈落回原點(diǎn),記錄飛行時間.我們將10名被試者樣本均勻混合,采用5折交叉驗(yàn)證,獲得全體數(shù)據(jù)集的有訓(xùn)練模型.參與數(shù)據(jù)采集的S1-S10被試依次進(jìn)行三次飛行實(shí)驗(yàn),每名被試由起飛到降落執(zhí)行飛行任務(wù)平均所用時間如圖10所示.
圖10 每名被試執(zhí)行飛行任務(wù)平均所用時間Fig.10 Average time for each participant to perform a mission
誤差線代表該被試執(zhí)行三次飛行實(shí)驗(yàn)的標(biāo)準(zhǔn)差,十名被試平均任務(wù)時間為122.8s,平均用時最短者為S4(std=7.93),平均用時最長者為S8(std=22.91),S3被試最不穩(wěn)定(std=45.17).
樣本分布反應(yīng)了如下情況:1)S4、S7(std=5.56)、S9(std=5.44)三名被試離線準(zhǔn)確率最高,實(shí)際控制用時最短,樣本數(shù)據(jù)質(zhì)量好,ConvBLTM模型表征能力強(qiáng),手勢區(qū)分度顯著,執(zhí)行任務(wù)效率高.2)S3雖然不是平均用時最長者,但標(biāo)準(zhǔn)差為45.17,相較其余被試最不穩(wěn)定,與離線訓(xùn)練中較低的識別準(zhǔn)確率相對應(yīng).3)除被試數(shù)據(jù)質(zhì)量好壞有區(qū)分度之外,被試適應(yīng)手勢操控?zé)o人機(jī)的能力不同,也會在一定程度上影響任務(wù)時間.
無人機(jī)實(shí)時控制驗(yàn)證了本文所述方法的普遍適用性,達(dá)到了預(yù)期效果.
本文介紹了用于手勢動作捕捉的數(shù)據(jù)手套的設(shè)計和開發(fā),并使用所提出的ConvBLSTM框架進(jìn)行手勢識別.采用低成本的慣性傳感器來捕獲手勢,提出了基于6個6軸IMU提出了新型數(shù)據(jù)手套.微型化與簡單化等優(yōu)點(diǎn)表明所提出的數(shù)據(jù)手套優(yōu)于其他數(shù)據(jù)手套.性能評估驗(yàn)證了所提議的數(shù)據(jù)手套可以準(zhǔn)確地捕獲手勢,并且基于ConvBLSTM的方法可以直接工作在原始傳感器數(shù)據(jù)上并準(zhǔn)確地識別手勢,有訓(xùn)練平均識別準(zhǔn)確率達(dá)99.2%,無訓(xùn)練平均識別準(zhǔn)確率為95.01%,顯著優(yōu)于BiLSTM、SVM和KNN方法.進(jìn)一步,我們提出了一種手勢控制無人機(jī)方法,通過手勢裝置來控制無人機(jī),無人機(jī)響應(yīng)預(yù)定義的手勢并相應(yīng)地移動.對手勢控制無人機(jī)實(shí)驗(yàn)進(jìn)行了分析和討論.下一步計劃采用無線模塊,結(jié)合EMG和IMU進(jìn)行手勢識別研究.