姚鋒剛
摘要:可穿戴計(jì)算機(jī)已成為各行業(yè)解決特定問題新的手段,手勢識別是許多可穿戴的重要應(yīng)用。利用各類算法識別可穿戴設(shè)備的手勢運(yùn)動是該方面的主要研究內(nèi)容,利用動態(tài)可重構(gòu)算法-低復(fù)雜度復(fù)現(xiàn)神經(jīng)網(wǎng)絡(luò)(RNN)算法形成了兩種動態(tài)手勢識別技術(shù)。一種是基于視頻信號,并采用卷積神經(jīng)網(wǎng)絡(luò)(CNN)和RNN的組合結(jié)構(gòu);另一個(gè)是利用RNN實(shí)現(xiàn)模擬加速度計(jì)數(shù)據(jù),將大多數(shù)權(quán)重量化為兩位的定點(diǎn)優(yōu)化,以優(yōu)化用于權(quán)重存儲的存儲器大小量,同時(shí)降低了系統(tǒng)硬件和軟件的功耗。
關(guān)鍵詞:可穿戴計(jì)算機(jī);手勢識別;可重構(gòu)算法;神經(jīng)網(wǎng)絡(luò);功耗
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)12-0209-02
1 概述
可穿戴計(jì)算機(jī)就是利用先進(jìn)計(jì)算技術(shù)實(shí)現(xiàn)特定的應(yīng)用設(shè)備,當(dāng)前,各專業(yè)公司根據(jù)市場需求制定了不同的智能穿戴設(shè)備,例如智能手表,Google Glass和智能樂隊(duì)等。由于大多數(shù)可穿戴設(shè)備不配備鍵盤或?qū)捰|摸屏,所以非常需要采用語音或手勢識別技術(shù),雖然語音識別可以更通用,但手勢識別也可以方便地用于發(fā)出簡單的命令。在穿戴式設(shè)備中使用手勢技術(shù)有幾項(xiàng)研究和應(yīng)用,例如,Google Glass[1]中采用手腳動作進(jìn)行控制,智能手表[2]采用靈活力傳感器進(jìn)行控制,SixthSense[3]使用相機(jī)和投影機(jī)與現(xiàn)實(shí)世界進(jìn)行交互。
根據(jù)實(shí)際應(yīng)用需求,通常手勢可以分為靜態(tài)和動態(tài)兩種。靜態(tài)手勢通常由手形表示,而動態(tài)手勢根據(jù)手的動作進(jìn)行描述[4]??梢允褂脕碜韵鄼C(jī)或力傳感器的信號來進(jìn)行手勢識別,前者需要視頻處理,后者通過時(shí)變多通道傳感器的輸出信號進(jìn)行分析,那么動態(tài)手勢識別就是采用力傳感器。
近來,國內(nèi)外學(xué)者研究了幾類手勢識別算法。采用兩個(gè)視頻之間的相關(guān)性,采用張量規(guī)范相關(guān)分析(TCCA);基于卷積神經(jīng)網(wǎng)絡(luò)(CNN),利用視頻分析實(shí)現(xiàn)人機(jī)交互(HRI)實(shí)現(xiàn)靜態(tài)手勢識別;使用深度視頻、關(guān)節(jié)姿勢和音頻流來研究多模態(tài)手勢檢測和識別,該文獻(xiàn)中應(yīng)用CNN,以及隱馬爾可夫模型(HMM)的語音識別器和單詞包(BoW)來提取多模態(tài)特征,并且使用了一個(gè)Elman RNN進(jìn)行數(shù)據(jù)融合和手勢分類。來自Leap Motion Controller的紅外LED數(shù)據(jù),其中CNN用于特征提取,采用HMM進(jìn)行時(shí)間序列識別。
動態(tài)可重構(gòu)算法結(jié)合神經(jīng)網(wǎng)絡(luò)被用于許多識別應(yīng)用,包括對象檢測和語音識別。然而,神經(jīng)網(wǎng)絡(luò)需要大量的計(jì)算和大的緩存記憶。例如,單位大小為256的長短期存儲器(LSTM)RNN需要總共約210M權(quán)重,因此,目前的一些可穿戴設(shè)備應(yīng)用程序(如語音識別)使用采用圖形處理單元(GPU)或大功率的多核系統(tǒng)服務(wù)器進(jìn)行操作,所以在實(shí)際應(yīng)用中,穿戴式裝置在僅具有小功率的情況下操作神經(jīng)網(wǎng)絡(luò)算法是非常需要的。
本文開發(fā)了使用適用于硬件或嵌入式系統(tǒng)實(shí)現(xiàn)和低功耗操作的定點(diǎn)循環(huán)神經(jīng)網(wǎng)絡(luò)的動態(tài)姿態(tài)識別技術(shù),實(shí)現(xiàn)兩種手勢識別算法:一個(gè)使用來自相機(jī)的視頻信號,另一個(gè)使用三軸加速度計(jì)。
2 固定點(diǎn)的RNN優(yōu)化
本文采用兩種不同種類的動態(tài)手勢數(shù)據(jù)集。一個(gè)是基于圖像序列,另一個(gè)是三軸加速度數(shù)據(jù)。一下分別對不同的動態(tài)手勢算法進(jìn)行優(yōu)化。
2.1 基于圖像序列的動態(tài)手勢識別
對于基于圖像序列的動態(tài)手勢識別任務(wù),本文采用CNN-LSTM RNN結(jié)構(gòu),為了產(chǎn)生手形特征,選擇三層CNN架構(gòu)的平移不變性。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,圖中層次分別為輸入層、匯集層以及RNN層。輸入層由用于處理具有RGB通道的32×32輸入圖像的3072(= 3×32×32)線性單位組成,第一和第二卷積層具有32個(gè)特征圖,第三卷積層具有64個(gè)特征圖,這三層具有相同的卷積核大小,即5×5,三個(gè)層疊層采用2×2重疊最大池;LSTM RNN可以記錄序列中相當(dāng)長的過去信息,因此,在該識別模型中不需要HMM網(wǎng)絡(luò),輸出層由9個(gè)對應(yīng)于9個(gè)目標(biāo)手勢行為的softmax單位組成。32位浮點(diǎn)格式的網(wǎng)絡(luò)模型需要總共需要0.714 MB(分別為CNN和RNN的79.2K和99.456 K的權(quán)重)內(nèi)存空間。
如圖1所示中,前綴“C”,“S”和“L”分別表示卷積,子采樣和LSTM層。前綴“IG”,“FG”,“OG”表示LSTM層的輸入門,忘記門和輸出門。 “IN-C1”,“S1-C2”,“S2-C3”,“S3-L1”,“L1”和“L1-Out”顯示靈敏度分析的權(quán)重組。虛線和實(shí)線分別表示反復(fù)和正向路徑。
2.2 加速度數(shù)據(jù)序列動態(tài)手勢識別
基于加速度數(shù)據(jù)序列的動態(tài)手勢識別模型也采用了LSTM RNN結(jié)構(gòu),標(biāo)準(zhǔn)LSTM使用三個(gè)門控機(jī)制,稱為輸入門、忘記門及輸出門,分別可以訪問和修改存儲單元。這三個(gè)門的激活功能是邏輯S形,LSTM的輸入和輸出層采用雙曲正切激活函數(shù),該算法將加速度數(shù)據(jù)直接應(yīng)用于RNN。因此,該應(yīng)用比基于圖像序列的動態(tài)手勢識別簡單得多。輸入層包含3個(gè)線性單位以接收3軸加速度數(shù)據(jù),使用一個(gè)大小為128k的LSTM隱藏層,輸出層由對應(yīng)于8個(gè)目標(biāo)手勢運(yùn)動的8個(gè)softmax單元組成。具有N個(gè)單元的LSTM層需要總共4N2+4NM+7N個(gè)權(quán)重,其中M是先前的層大小[10]。因此,權(quán)重總數(shù)約為69K,因此當(dāng)使用浮點(diǎn)格式時(shí),網(wǎng)絡(luò)模型需要276 KB的內(nèi)存空間。
2.3 基于重新測量的權(quán)重和信號量化
信號或權(quán)重的量化效應(yīng)取決于信號流圖,量化的影響可以用靈敏度來表示,每個(gè)層中的權(quán)重和信號被劃分為一組,每個(gè)組采用相同的量化步長Δ。為了優(yōu)化Δ,本文采用L2誤差最小化標(biāo)準(zhǔn)。基于量化步長Δ,分層進(jìn)行權(quán)重和信號的靈敏度分析。如圖1所示顯示了權(quán)重和信號分組結(jié)果。圖中“In-C1”是輸入層和第一卷積層之間的第一個(gè)加權(quán)組,“S3-L1”是最后一個(gè)合并層與LSTM層之間的第四個(gè)權(quán)重組,“C1”是信號第一CNN層的組,“L1”是LSTM層的信號組。
由于直接量化不能形成最好的性能比,因此需要進(jìn)行量化域的再學(xué)習(xí),在學(xué)習(xí)算法的RNN版本中所提及的,在目標(biāo)網(wǎng)絡(luò)中,使用三種不同類型的激活函數(shù)(邏輯Sigmoid、雙曲正切和整流線性單元)。邏輯S形函數(shù)的輸出范圍在0和1之間,雙曲正切的輸出范圍為-1和1,而整流線性單位的輸出范圍在理論上為0和1。因此,邏輯S形和雙曲正切的輸出信號激活函數(shù)用固定大小的Δ量化。然而,整流線性單元的輸出值可以是無限制的,因此,需要以與權(quán)重量化器相似的方法來計(jì)算量化步長Δ,整流線性單元的輸出信號保存在整個(gè)訓(xùn)練集上,以計(jì)算適當(dāng)?shù)牧炕介LΔ與L2誤差最小化。
3 算法實(shí)驗(yàn)論證
實(shí)驗(yàn)過程使用從可穿戴設(shè)備獲得的兩個(gè)數(shù)據(jù)集來評估所提出的算法:一個(gè)是基于圖像的手勢識別數(shù)據(jù)集,另一個(gè)是來自3軸加速度計(jì)的加速度數(shù)據(jù)集。
3.1 基于圖像的動態(tài)手勢識別
該實(shí)驗(yàn)數(shù)據(jù)集由QVGA(320×240)中的9個(gè)手勢類的900個(gè)圖像序列組成,由3個(gè)原始手形(平面,擴(kuò)展和V形)和3個(gè)原始運(yùn)動(左,右和合約)定義,該數(shù)據(jù)集的目標(biāo)任務(wù)是對不同的形狀以及不同的運(yùn)動進(jìn)行分類。同時(shí),每個(gè)類包含100個(gè)圖像序列(5個(gè)不同的照明×10個(gè)任意運(yùn)動×2個(gè)對象)。數(shù)據(jù)集按實(shí)際需要分為訓(xùn)練數(shù)據(jù)占60%(540個(gè)序列),驗(yàn)證的占20%(180個(gè)序列)和測試的占20%(180個(gè)序列)。
3.2 基于加速度計(jì)的動態(tài)手勢識別
本實(shí)驗(yàn)采用SmartWatch手勢數(shù)據(jù)集訓(xùn)練了基于加速度計(jì)的動態(tài)手勢識別模型[13],收集數(shù)據(jù)集用以評估使用手臂手勢與移動應(yīng)用程序交互的幾個(gè)手勢識別算法的驗(yàn)證。實(shí)驗(yàn)包含八個(gè)不同的用戶對、共計(jì)3200個(gè)序列進(jìn)行二十次不同手勢,每個(gè)序列都包含來自第一代Sony Smart Watch的3軸加速度計(jì)的加速度數(shù)據(jù)。RNN訓(xùn)練方法,初步學(xué)習(xí)率為10-5,在訓(xùn)練過程中降至10-7,動量為0.9,AdaDelta被用于體重更新。網(wǎng)絡(luò)規(guī)模為32、64、128和256,由于整個(gè)數(shù)據(jù)集太小,無法訓(xùn)練LSTM RNN,所以測試集的結(jié)果噪聲較大,因此,本文對每個(gè)網(wǎng)絡(luò)大小進(jìn)行10次實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果中32、64、128和256網(wǎng)絡(luò)的浮點(diǎn)訓(xùn)練結(jié)果大小分別為36.02±24:40%(平均值±標(biāo)準(zhǔn)差),22.26±4:00%,18.29±4:86%,16.68±5:72%。
4 結(jié)論
本文主要兩個(gè)不同數(shù)據(jù)集的動態(tài)手勢識別的LSTM RNN是完成對可穿戴設(shè)備的定點(diǎn)實(shí)現(xiàn)?;趧討B(tài)重構(gòu)算法結(jié)合神經(jīng)網(wǎng)絡(luò)進(jìn)行自學(xué)習(xí)判別可穿戴設(shè)備的手勢動作,并且可以通過使用更多的訓(xùn)練數(shù)據(jù)進(jìn)一步改進(jìn)?;谥匦掠?xùn)練的定點(diǎn)優(yōu)化大大減少了計(jì)算所需的信號和字符長度,通過這種優(yōu)化,與浮點(diǎn)實(shí)現(xiàn)相比,權(quán)重所需的存儲空間可以減少到只有6.25%。優(yōu)化的定點(diǎn)網(wǎng)絡(luò)可以在嵌入式實(shí)現(xiàn)中顯示更好的識別性能,因?yàn)闇p少的內(nèi)存大小可以實(shí)現(xiàn)純粹基于片上存儲器的操作。
參考文獻(xiàn):
[1] Z. Lv, L. Feng, H. Li, S. Feng, Hand-free motion interaction on google glass in SIGGRAPH Asia Mobile Graphics and Interactive Applications. ACM, 2014:21.
[2] E. Morganti, L. Angelini, A. Adami, D. Lalanne, L. Lorenzelli, and E. Mugellini, A smart watch with embedded sensors to recognize objects, grasps and forearm gestures. Procedia Engineering, 2012,l(41): 1169-1175.
[3] P. Mistry and P. Maes, Sixthsense: a wearable gestural interface.in ACM SIGGRAPH ASIA 2009 Sketches,2009:11.