程淑紅, 楊鎮(zhèn)豪, 王 唱
(1.燕山大學(xué) 電氣工程學(xué)院,河北 秦皇島 066004;2.燕山大學(xué) 機(jī)械工程學(xué)院,河北 秦皇島 066004)
船舶操縱模擬平臺(tái)是利用電子設(shè)備、計(jì)算機(jī)和顯示設(shè)備在實(shí)驗(yàn)室環(huán)境下模擬船舶海上航行狀況[1],用以提升海員對(duì)船只的實(shí)時(shí)操作能力。隨著虛擬現(xiàn)實(shí)技術(shù)的發(fā)展,船舶操縱模擬平臺(tái)開始利用三維仿真技術(shù)搭建船舶和水體虛擬模型[2,3],但采用的人機(jī)交互方式依然以鍵盤、鼠標(biāo)等傳統(tǒng)交互方式為主,面對(duì)虛擬場景存在操作繁瑣的問題[4]。船舶操縱模擬平臺(tái)需要一種更自然有效的人機(jī)交互方式。
手勢是人與人之間最自然的交流方式之一,具有通用性和抗干擾能力強(qiáng)的優(yōu)點(diǎn)。實(shí)現(xiàn)手勢識(shí)別主要有3類方法: 第1類需要使用可穿戴設(shè)備。如李秀艷等[5]和李露等[6]分別利用傳感器采集了手腕和手指部分的手勢數(shù)據(jù),通過對(duì)數(shù)據(jù)處理實(shí)現(xiàn)手勢分類;或者通過手勢設(shè)備采集大量的數(shù)據(jù),如Zhang X L等[7]和Shin S O等[8]分別利用數(shù)據(jù)手套和可穿戴IMU設(shè)備檢測手部運(yùn)動(dòng)數(shù)據(jù)并建立龐大數(shù)據(jù)庫; 前者采用LSTM網(wǎng)絡(luò)建立手勢分類模型,后者采用隱馬爾可夫模型作為用戶姿態(tài)精度的確定方法。該類方法需要穿戴的設(shè)備往往比較昂貴,設(shè)備本身也限制了手的靈活性。第2類是通過處理雷達(dá)傳感器識(shí)別來自目標(biāo)手勢的反射信號(hào)來實(shí)現(xiàn)手勢識(shí)別。如Hazra S等[9]將手勢的反射信號(hào)生成距離多普勒圖像,Smith K A等[10]使用機(jī)器學(xué)習(xí)記錄每個(gè)手勢的雷達(dá)特征。但這類方法使用的毫米波雷達(dá)傳感器容易受到外來雜波的影響,器件成本較高。
相比于前兩類手勢識(shí)別方法,第3類是基于視覺的手勢識(shí)別采集圖像。該類設(shè)備成本更低,無需額外穿戴設(shè)備,人機(jī)交互更自然流暢。如Ahuja M K等[11]采用一種閾值分割法和模板匹配法匹配出正確手勢,但該方法對(duì)輸入手勢圖像要求較高,容易受到光線、角度因素影響,因此時(shí)夢麗等[12]采用一種超像素手勢識(shí)別算法,實(shí)現(xiàn)了在較復(fù)雜環(huán)境下手勢識(shí)別;宋一凡等[13]利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖像數(shù)據(jù)良好的特征提取能力來提取手勢特征,提高了手勢識(shí)別準(zhǔn)確率。
針對(duì)目前船舶操縱模擬平臺(tái)缺乏自然流暢的人機(jī)交互模式的問題,本文提出一種多通道融合的手勢識(shí)別算法,以YOLOv4目標(biāo)檢測算法為基礎(chǔ),實(shí)現(xiàn)多視角手勢識(shí)別,將多個(gè)識(shí)別結(jié)果通過一種多數(shù)據(jù)融合算法來降低誤識(shí)率。同時(shí)設(shè)計(jì)一船舶虛擬交互平臺(tái),通過手勢指令實(shí)現(xiàn)對(duì)虛擬船舶的操作。
手勢識(shí)別船舶虛擬交互平臺(tái)主要由手勢識(shí)別部分和虛擬場景搭建2部分構(gòu)成,如圖1所示。手勢識(shí)別部分在多視角下采集手勢圖像,經(jīng)過手勢識(shí)別算法框架和多數(shù)據(jù)融合算法后輸出最終手勢指令,實(shí)現(xiàn)對(duì)虛擬船舶的各種操作。
圖1 手勢識(shí)別船舶虛擬交互平臺(tái)構(gòu)成
手勢識(shí)別部分又分為多視角手勢圖像獲取、通過YOLOv4手勢識(shí)別模型識(shí)別手勢和多識(shí)別結(jié)果數(shù)據(jù)融合3個(gè)階段。多通道融合手勢識(shí)別算法框架如圖2所示。
圖2 多通道融合手勢識(shí)別算法框架
2.1.1 YOLOv4目標(biāo)檢測算法
YOLO[14~16]是一種端到端的基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測和定位算法,具有識(shí)別速度快、準(zhǔn)確率高的特點(diǎn)。
YOLOv4相較之前的版本在主干網(wǎng)絡(luò)上引入CSPNet網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)成CSPDarknet,這種網(wǎng)絡(luò)結(jié)構(gòu)可以將梯度信息變化從開始到結(jié)束都集成在特征圖中,在保證準(zhǔn)確率的同時(shí)減少了計(jì)算負(fù)擔(dān);YOLOv4在主干網(wǎng)絡(luò)后引入SPPNet,減少了輸入圖像在經(jīng)過圖像尺寸變換后造成的信息丟失,增強(qiáng)了網(wǎng)絡(luò)的魯棒性;YOLOv4利用PANet結(jié)構(gòu)將網(wǎng)絡(luò)底層定位信息傳遞到高層,同時(shí)減少了高層到底層信息流通所需經(jīng)過的卷積層數(shù),進(jìn)一步提升了YOLOv4網(wǎng)絡(luò)對(duì)特征的提取能力,提升了對(duì)小目標(biāo)檢測的準(zhǔn)確率。YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)
2.1.2 手勢識(shí)別通訊方案及多數(shù)據(jù)融合算法
如圖2所示,設(shè)計(jì)在3個(gè)不同設(shè)備上分別實(shí)現(xiàn)對(duì)手勢的識(shí)別,將3個(gè)識(shí)別結(jié)果發(fā)送到主設(shè)備的數(shù)據(jù)庫,并通過多數(shù)據(jù)融合算法得到最終識(shí)別結(jié)果。在進(jìn)行手勢識(shí)別結(jié)果的實(shí)時(shí)發(fā)送時(shí),采用多設(shè)備同時(shí)讀寫MySQL數(shù)據(jù)庫方式。MySQL是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有良好的讀寫文件速度和魯棒性。多數(shù)據(jù)融合算法流程如圖4所示。
圖4 多數(shù)據(jù)融合算法流程
融合算法采用投票機(jī)制和加權(quán)機(jī)制:如果3端結(jié)果一致或者兩方結(jié)果一致,排除未識(shí)別結(jié)果(f(x)=0)后,取此時(shí)票數(shù)最大一方的結(jié)果進(jìn)行輸出。若3者結(jié)果均不同,此時(shí)算法轉(zhuǎn)換為加權(quán)比較機(jī)制,即將左中右3端設(shè)備采集的置信度數(shù)據(jù)結(jié)果乘以各自的權(quán)重系數(shù),然后比較三視角的最終置信度大小,輸出此時(shí)置信度最大的手勢識(shí)別結(jié)果。f1、f2、f3和f4的表達(dá)式如下:
f1=f(x1)
(1)
(2)
(3)
f4=f(c4)
(4)
c1=x1
(5)
c2=max(x1,x2,x3)
(6)
c3=max(x1,x2,x3)
(7)
(8)
式中:x1、x2和x3分別是3個(gè)手勢識(shí)別結(jié)果的置信度;f(x1)、f(x2)和f(x3)分別是置信度所對(duì)應(yīng)的手勢種類;c1、c2、c3和c4分別是輸出結(jié)果f1、f2、f3和f4對(duì)應(yīng)的最終置信度;w1、w2和w3是3個(gè)識(shí)別結(jié)果置信度的權(quán)重系數(shù);wmax是置信度加權(quán)比較后最大值的權(quán)重系數(shù)。
本文基于Unity3D開發(fā)引擎搭建船舶虛擬平臺(tái),以實(shí)現(xiàn)手勢識(shí)別技術(shù)與船舶虛擬平臺(tái)的交互驗(yàn)證。Unity3D是一個(gè)由Unity Technologies開發(fā)的用于創(chuàng)建三維游戲、實(shí)時(shí)三維動(dòng)畫等互動(dòng)類型的開發(fā)工具。使用Unity3D的主要優(yōu)點(diǎn)是支持平臺(tái)發(fā)布、支持導(dǎo)入多種模型文件格式以及支持外接VR設(shè)備。
本文搭建的基于Unity3D的船舶虛擬交互平臺(tái)如圖5所示。該平臺(tái)主要包括船舶在海浪中航行的虛擬場景和搭載于船舶之上的自由度穩(wěn)定平臺(tái)的轉(zhuǎn)動(dòng)的虛擬場景。
圖5 基于Unity3D搭建的船舶虛擬平臺(tái)
在船舶實(shí)體建模時(shí),首先,通過系統(tǒng)自帶文件的宏命令輸入型值點(diǎn),再執(zhí)行宏程序生成船體型線;然后,運(yùn)用“多界面曲面”命令由船體型線生成曲面,分船首、船中和船尾分別生成;最后,檢查曲面是否存在縫隙并對(duì)其進(jìn)行修補(bǔ)。搭建虛擬船舶后通過“凸臺(tái)拉伸”等命令分別繪制駕駛甲板以及船舶甲板等,并在零件圖中繪制自由度穩(wěn)定平臺(tái)和錨機(jī)、欄桿、導(dǎo)覽器以及雷達(dá)桅等,完成對(duì)其在船舶加撥上的安裝。
為增強(qiáng)虛擬場景的真實(shí)感和用戶沉浸體驗(yàn)以及海浪的復(fù)雜性,選擇導(dǎo)入Scrawk制作的Ceto Ocean System資源包。該工具包包含了Ocean基本組件、Wave Spectrum波浪組件等。通過對(duì)這些組件的參數(shù)設(shè)置,即可搭建出海浪場景。在天空場景渲染時(shí),使用Unity3D提供的Skybox資源包,包含了各種天空貼圖,使用這些貼圖即可渲染出一個(gè)虛擬的天空。
目前在大型串并混聯(lián)穩(wěn)定跟蹤系統(tǒng)中,船載自由度穩(wěn)定平臺(tái)具有重要的應(yīng)用價(jià)值,該平臺(tái)的控制主要通過操作傳感和按鈕等方式。本文研究旨在通過手勢實(shí)現(xiàn)對(duì)虛擬船載穩(wěn)定平臺(tái)的智能控制,促進(jìn)傳統(tǒng)控制方式的智能化和多樣性。
本次實(shí)驗(yàn)設(shè)計(jì)的攝像頭組包括3個(gè)200萬像素高清USB攝像頭,分別從中間、左邊和右邊獲取手勢圖像;為保證在3個(gè)視角下采集的手勢在圖像中大小占比一致,要求中間攝像頭6 mm焦距,左右攝像頭8 mm焦距,3個(gè)攝像頭處于同一高度且間隔50 cm,左右攝像頭與中間攝像頭構(gòu)成120°夾角,手掌距離中間攝像頭40 cm到80 cm,左右偏移 40 cm。3個(gè)攝像頭擺放位置如圖6所示。
圖6 3個(gè)攝像頭擺放位置
搭建YOLOv4手勢識(shí)別框架的3樣設(shè)備分別為2個(gè)JETSON AGX Xavier開發(fā)板和1臺(tái)主控計(jì)算機(jī);程序運(yùn)行環(huán)境為Ubuntu18.04、CUDA10.0、PyTorch。
船舶航行面臨的惡劣光照環(huán)境一般是在夜間航行時(shí)受到的光污染[17]。這些光污染源使光照環(huán)境明暗交替不定,手勢圖像受干擾嚴(yán)重。為最大程度還原船舶夜間行駛的光照環(huán)境,在實(shí)驗(yàn)室條件下利用手機(jī)閃光燈直接照射手部來模擬強(qiáng)光環(huán)境;陰天室內(nèi),在無其他光源情況下僅依靠顯示屏亮度來模擬昏暗環(huán)境;使手部隨機(jī)晃動(dòng)來模擬船舶搖晃環(huán)境。
為了能更全面的獲取手勢信息,設(shè)計(jì)了能在3個(gè)視角下對(duì)手勢圖像進(jìn)行采集的攝像頭組,分別在左、中、右采集手勢圖像。因?yàn)橥环N手勢在不同視角下有不同的表現(xiàn),在建立手勢數(shù)據(jù)集時(shí)需采集到每個(gè)手勢在3個(gè)視角下圖像。同時(shí)考慮到手勢與攝像頭距離、焦距因素的影響,又分別在距離較遠(yuǎn)、距離適中、距離較近的情況下對(duì)手勢進(jìn)行樣本采集。
定義如圖7所示21種靜態(tài)手勢。為增強(qiáng)手勢識(shí)別模型的魯棒性和采集的手勢圖像的多樣性,每種手勢分別對(duì)15~20人進(jìn)行采集,平均每種手勢采集400張圖片并使用數(shù)據(jù)增廣策略處理手勢圖像。
圖7 21種手勢示意圖
將手勢數(shù)據(jù)集的80%作為訓(xùn)練樣本,經(jīng)過訓(xùn)練優(yōu)化模型參數(shù)后,分別在3個(gè)設(shè)備上搭建手勢識(shí)別算法框架。在實(shí)驗(yàn)室環(huán)環(huán)境下,模擬搖晃、強(qiáng)光、昏暗3種復(fù)雜環(huán)境,并用該算法對(duì)手勢進(jìn)行實(shí)時(shí)識(shí)別。每種手勢隨機(jī)截取50張圖片,分別測試該算法在復(fù)雜環(huán)境下對(duì)21種手勢識(shí)別的準(zhǔn)確率δAcc,并比較在相同條件下單視角的識(shí)別效果。選取前5種手勢識(shí)別結(jié)果如表1和表2所示。
表1 單視角下手勢識(shí)別準(zhǔn)確率
表2 多通道融合手勢識(shí)別準(zhǔn)確率
手勢識(shí)別的準(zhǔn)確率定義如下:
(9)
式中:TP表示該手勢被正確識(shí)別次數(shù);TN表示該手勢被誤識(shí)別次數(shù)。
分析表1數(shù)據(jù),在單視角下手勢出現(xiàn)劇烈搖晃情況對(duì)手勢識(shí)別準(zhǔn)確率影響最大。因?yàn)樵趧×覔u晃時(shí),攝像頭捕捉的手勢圖像會(huì)出現(xiàn)殘影、模糊現(xiàn)象,手勢特征會(huì)發(fā)生不確定改變,導(dǎo)致對(duì)手勢的誤識(shí)別。如圖8所示單視角下手勢在劇烈搖晃時(shí)出現(xiàn)的手勢誤識(shí)別情況。
圖8 單視角誤識(shí)別情況
分析表2數(shù)據(jù),在多視角下對(duì)5種手勢識(shí)別的準(zhǔn)確率相較單視角得到提升。數(shù)據(jù)計(jì)算得到通道融合手勢識(shí)別算法在正常、搖晃、強(qiáng)光和昏暗4種情況下對(duì)手勢識(shí)的平均準(zhǔn)確率分別為:99.2%、91.6%、97.2%、96.4%,在復(fù)雜環(huán)境下對(duì)手勢的平均識(shí)別準(zhǔn)確率達(dá)到95.06%。因?yàn)槭謩荼欢鄠€(gè)相機(jī)采集并識(shí)別可以更全面的提取手勢特征,通過多數(shù)據(jù)融合算法綜合比較多個(gè)識(shí)別結(jié)果,剔除單一視角識(shí)別出的置信度較低的手勢,輸出識(shí)別次數(shù)最多且置信度較高的手勢識(shí)別結(jié)果,降低誤識(shí)別次數(shù),提升系統(tǒng)的魯棒性。
如圖9所示多通道融合手勢識(shí)別算法在手勢劇烈晃動(dòng)情況下的識(shí)別結(jié)果和置信度。
圖9 多通道融合手勢識(shí)別算法識(shí)別劇烈晃動(dòng)手勢
分析圖9識(shí)別情況,3個(gè)攝像頭分別對(duì)手勢進(jìn)行識(shí)別。其中,手勢1的右視角、手勢4的左視角和手勢5的右視角分別出現(xiàn):“識(shí)別出當(dāng)前手勢置信度過低”、“識(shí)別錯(cuò)誤”、“正確識(shí)別當(dāng)前手勢其他較高置信度手勢”。但通過多數(shù)據(jù)融合算法與其他兩個(gè)視角結(jié)果進(jìn)行比較,剔除識(shí)別的錯(cuò)誤種類和低置信度手勢,最終輸出正確識(shí)別結(jié)果并保留最高置信度。實(shí)驗(yàn)結(jié)果說明多通道融合手勢識(shí)別算法具有較高的識(shí)別準(zhǔn)確率和魯棒性。
環(huán)境的復(fù)雜性與交互的穩(wěn)定性密切相關(guān)。本文基于手勢與船舶虛擬平臺(tái)的交互測試面向室內(nèi)環(huán)境,以船舶自由度穩(wěn)定平臺(tái)操作為例,定義順時(shí)針旋轉(zhuǎn)和逆時(shí)針旋轉(zhuǎn)2種旋轉(zhuǎn)形態(tài),以60°為最小旋轉(zhuǎn)單位,使用兩類不同的手勢分別執(zhí)行順時(shí)針和逆時(shí)針旋轉(zhuǎn)指令。使用手勢19和手勢20分別表示自由度穩(wěn)定平臺(tái)的順時(shí)針和逆時(shí)針旋轉(zhuǎn)。手勢指令實(shí)現(xiàn)人與虛擬船舶的人機(jī)交互如圖10所示。其中對(duì)手勢識(shí)別的置信度達(dá)到99%,平均響應(yīng)時(shí)間小于0.1 s,證明該手勢識(shí)別算法在船舶虛擬交互平臺(tái)具有優(yōu)越的識(shí)別準(zhǔn)確率和響應(yīng)速度。
圖10 使用手勢指令實(shí)現(xiàn)船舶虛擬交互
為促進(jìn)船舶虛擬交互平臺(tái)從傳統(tǒng)交互模式向智能化轉(zhuǎn)變,本文提出一種多通道融合下的手勢識(shí)別算法,同時(shí)實(shí)現(xiàn)了通過手勢對(duì)虛擬船舶穩(wěn)定平臺(tái)的操作。該手勢識(shí)別算法在3個(gè)設(shè)備上搭建基于YOLOv4的手勢識(shí)別模型,利用多攝像頭組采集手勢并通過多數(shù)據(jù)融合算法決策出最終識(shí)別結(jié)果。結(jié)果顯示該手勢識(shí)別方法在復(fù)雜環(huán)境下仍能保持95%以上的準(zhǔn)確率。
實(shí)驗(yàn)測試?yán)檬謩葜噶顚?shí)現(xiàn)對(duì)虛擬船舶的自由度穩(wěn)定平臺(tái)的操作,自由度穩(wěn)定平臺(tái)能根據(jù)手勢指令迅速做出響應(yīng),在整個(gè)操作過程中實(shí)現(xiàn)了手勢識(shí)別人機(jī)交互模式的自然感和高流暢度。