張 磊
(淮北職業(yè)技術學院 機電工程系 安徽淮北 235000)
手勢識別有著廣泛的應用,包括人機交互、機器人和手語識別等。大多數手勢識別方法都是基于識別孤立的手勢[1-3],其中輸入視頻被手動分割成片段,每個片段包含一個孤立的手勢。在連續(xù)執(zhí)行手勢的真實世界場景中,基于孤立手勢的方法不直接適用。因此,最近的方法[4-6]旨在識別到連續(xù)輸入視頻中的手勢,其中包括多個手勢類別,包括手勢和非手勢動作。這些連續(xù)手勢識別方法有兩種形式:兩階段[5-7]和單階段[8]方法。兩階段方法是圍繞使用兩個模型構建的:一個模型用于執(zhí)行手勢檢測,另一個用于手勢分類。在[6]中,筆者提出了一種兩階段方法,其中手勢首先由淺層3D卷積神經網絡進行檢測,當檢測到手勢時,它激活深層3D卷積神經網絡分類模型。與兩階段方法相比,單階段方法僅使用直接執(zhí)行手勢分類的單個模型。圖1展示出了單階段方法的典型結構,其中通過將所有姿勢類與非姿勢類一起考慮來執(zhí)行識別。除比兩階段方法簡單外,單階段方法還避免了錯誤在階段之間傳播的潛在問題。文章提出了一種新的單階段連續(xù)手勢識別方法。通過使用單階段方法,期望分類模型學習手勢和非手勢之間的自然轉換。然而,直接從連續(xù)的未分段視頻中學習手勢十分困難,因為它需要模型來檢測手勢類別之間的轉換并同時識別手勢/非手勢。為了提高性能,考慮了多模態(tài)輸入,并引入了一種新的融合模塊,該模塊從多模態(tài)輸入流中提取多個特征子序列,并考慮它們的時間順序。所提出的融合模塊保持了這種時間順序,并且能夠從可用模態(tài)中學習有區(qū)別的特征向量。為了幫助模型學習,筆者提出了一種新的基于中點的損失函數,并進行了額外的實驗來證明所提出的損失的有效性。
圖1為文章提出支持多模態(tài)單階段手勢識別的框架結構示意圖。在模型的第一階段,通過特征提取器從每個模態(tài)中提取出語義特征,并且提取的特征送入單模態(tài)特征映射塊。為每個流維護單獨的特征映射塊,所有塊的輸出結果送入融合模塊學習多模態(tài)時空關系以支持識別過程。融合模型的輸出送入執(zhí)行最終分類的多模態(tài)特征映射模塊。該模型被設計用來處理可變長度的視頻序列,可以用于分割或未分割的視頻,這些視頻可以由一個或多個手勢類組成,并支持任意數量模態(tài)的信息融合。
圖1 單階段連續(xù)手勢識別框架結構示意圖
1.1單模態(tài)特征映射模塊
給定模態(tài)的視頻幀通過各自的特征提取器,捕獲與特定模態(tài)相關的顯著特征,并學習適合于后續(xù)特征融合的特征向量。如圖2所示,這種單模態(tài)網絡由時間卷積層和多個膨脹殘差塊組成,其中每個膨脹殘差塊由一個膨脹卷積層、一個非線性激活函數和一個1×1卷積-批歸一化-ReLU層組成,并利用殘差連接來促進梯度流動。如同在文獻[9]和文獻[13]中一樣,在每層使用加倍的膨脹因子,并且每層由相等數量的卷積濾波器組成。
圖2 單模態(tài)特征映射模塊示意圖
1.2融合塊
單模態(tài)特征映射塊的輸出向量送入融合塊,融合塊從單模態(tài)序列中提取出時序特征,考慮它們與當前時間步長的時間一致性,再使用注意力參數執(zhí)行特征融合。此參數指定了在給定時間應從每個單模態(tài)特征映射塊的輸出向量中所需要選擇的特征單元。圖3給出了一個注意力級別參數的可視化例子。
圖3注意力級別參數的示意圖
一旦計算了iinc和idec,在t時刻,從每個特征向量中選擇t-idec到t+iinc的單元。該子特征向量由下式給出:
(1)
其中,t=1,2,…,M。如圖4所示,當注意力級別為4時,從單模態(tài)特征映射模塊的每個向量中需要選擇4個特征單元(從t-1到t+2)。
圖4 當A=4時的融合過程示意圖
(2)
如果每個特征單元的維數為d,注意力級別為A,那么ηt的大小為:[d,A×M]。然后,利用所提出的特征增強器模塊,該模塊受中激勵模塊的啟發(fā),允許模型從融合的多模態(tài)特征中識別信息特征,增強相關特征單元并抑制非信息特征[13]。激勵塊考慮了整體2D/3D卷積層輸出,并考慮了它們在通道上的分布來增強特征[13]。相比之下,提出為每個t時刻增強子特征向量Vi內的特征。通過特征增強塊,每個子特征向量的特征通過顯式建模通道之間的相互依賴來進行增強,進一步支持多模態(tài)融合。為了利用子特征之間的相關性,首先執(zhí)行全局平均池化,以檢索子特征向量的每個d通道內的信息:
(3)
然后使用Sigmoid激活來過濾掉d內的信息通道:
βt=σ(W2×ReLU(W1×zt)),
(4)
生成的增強特征向量βt尺度也為[d,A×M]。通過考慮所有的模態(tài)輸入,其中有用的信息會被增強。
1.3多模態(tài)特征映射模塊
(5)
1.4損失函數
利用交叉熵作為分類損失:
(6)
僅使用逐幀分類損失來學習手勢分割是不夠的,并且可能導致過度分割錯誤。因此,也使用文獻[9]中提出的平滑損失。這種平滑損失逐幀使用對數概率的截斷均方誤差:
(7)
其中,T,C,yt,c分別定義了每個序列的幀數,類的個數和C類在時間T的概率。在平滑損失計算過程中,它只考慮預測序列,而不考慮其對應的標注真實序列。此外,觀察到它阻礙了手勢的轉換過程??紤]到這一局限性,提出了一個新的損失函數,即中點平滑損失。
受信號去噪中值濾波的啟發(fā),定義了中點平滑損失來促進平滑預測。文章提出在標注真值和預測結果之間的距離進行平滑,而不僅僅對預測結果進行平滑,在計算損失時加入平滑效應作為正則化項進行約束。
令ω表示一個有N個元素的滑動窗口。首先,在窗口ω的中點獲得標注的手勢結果:
(8)
其中n∈ω。類似地,在中點獲得預測的手勢類別:
(9)
然后定義中點平滑損失為:
(10)
最后,所有3個損失函數相加形成最終損失:
L=Lce+λ1Lsm+λ2Lmid,
(11)
其中,λ1和λ2是決定不同損失權重的超參。
2.1數據集
文章選取了兩個具有挑戰(zhàn)性的公開數據集上評估了的模型,EgoGesture[10]和IPN手數據集[4]。這兩個數據集都由未分段的視頻組成,每個視頻包含多個手勢。EgoGesture[10]是可用于分段和非分段(連續(xù))手勢分類的手勢數據集,由靜態(tài)和動態(tài)手勢組成。該數據集包含各種具有挑戰(zhàn)性的場景,包括具有動態(tài)背景的靜態(tài)對象、具有動態(tài)背景的行走對象、雜亂背景以及面對強烈陽光的對象。文章主要利用未分段的連續(xù)手勢數據,這更具挑戰(zhàn)性,因為它要求在一次通過中分段并識別手勢。該數據集由記錄在6個不同室內和室外環(huán)境中的84個類別(83個手勢類別和非手勢類別)組成。數據集分別包含1239、411和431個視頻用于訓練、驗證和測試。數據集提供RGB和深度視頻。
IPN手數據集[4]是最近發(fā)布的支持連續(xù)手勢識別的數據集。該數據集包含基于13個靜態(tài)/動態(tài)手勢類和一個非手勢類的視頻。這些手勢由50個不同的主體在28個不同的場景中表演。這些視頻是在極端光照條件下以及靜態(tài)和動態(tài)背景下收集的。該數據集包含總共4218個手勢實例和800491個RGB幀。與其他公開可用的手勢數據集相比,IPN手數據集包含了每個視頻中最大數量的連續(xù)手勢,并且手勢之間的轉換最快速[4]。更重要的是,它提供了多種輸入模態(tài):RGB,光流和手分割數據。
2.2實現細節(jié)
通過使用ResNet50網絡提取預先訓練的特征,并且從拉平(flatten)層提取特征。單模態(tài)特征映射塊由12個擴張剩余層組成,而多模態(tài)特征映射塊塊包含10個擴張剩余層。類似于文獻[9],將每一層的膨脹因子加倍。使用Adam優(yōu)化器,學習率為0.0005。使用PyTorch完成了建議框架的實施。
2.3評價指標
平均Jaccard指數(MJI)。利用MJI指標來評估EgoGesture數據集上的模型性能。對于給定的輸入,Jaccard指數衡量標注和預測的類標簽序列之間的平均相對重疊。第i類的Jaccard指數計算如下:
(12)
其中Gs,i和Ps,i分別表示序列s的第i類標簽的標注和預測結果。那么該序列的Jaccard指數可以通過下式計算:
(13)
其中,L是可用手勢類別的數量,而ls代表唯一的真實標簽。然后,計算所有測試序列的最終平均Jaccard指數:
(14)
Levenshtein準確率(LA)。為了評估IPN手數據集,使用了文獻[4]采用的Levenshtein準確率度量。Levenshtein準確率是通過估計標注和預測序列之間的Levenshtein距離來計算的。Levenshtein距離計算序列之間的項目級別變化的數量,并將一個序列轉換為另一個序列。然而,在獲得Levenshtein距離之后,通過對真實目標類別(Tp)的數量平均該距離,并從1中減去該平均值并乘以100以獲得百分比來計算Levenshtein準確率:
(15)
2.4實驗結果
(1)參數值A的選擇。為了確定注意力級別參數A,通過增加A的值來評估EgoGesture數據集上的模型結果。圖5說明了注意力級別參數對EgoGesture驗證集上的Jaccard指數分數的影響。A=1時為特征的簡單拼接。由于注意力級別為8會產生最好的結果,所以在其余的評估中默認使用A=8。
圖5 Jaccard指數隨著注意力級別參數A變化過程
(2)與其他方法的比較。在表1中,使用EgoGesutre手勢數據集比較了所提方法與當前其他方法的性能。該比較過程是在包含多個手勢的連續(xù)視頻流輸入下完成的(不是每個視頻包含單個手勢的預先分段的視頻)。類似于文獻[10],在評估結果時使用了兩種設置。在這兩種設置中,將滑動窗口(sw)的長度保持在16,同時考慮16(l=16,s=16)和8(l=16,s=8)的步長。在[10]中,作者通過考慮由C3D Softmax預測的每個片段的類別概率來獲得預測結果。在文章中,滑動窗口應用于整個序列以生成視頻片段。對于滑動窗口重疊的設置(即l=16,s=8),通過累加兩個重疊窗口的分類分數來獲得幀標簽預測,并且選擇最可能的類別作為每幀的預測結果。
表1 與其他方法在EgoGesture數據集上的比較
除了利用C3D模型之外,文獻[10]中的作者還通過使用時空轉換模塊[11](sw+C3D+STTM)和LSTM網絡(LSTM+C3D)進一步改進了手勢預測方法。在LSTM+C3D中,每幀的類別標簽由LSTM基于在當前時間片段提取的C3D特征來預測。采用的是隱藏層特征大小為256的LSTM。實驗結果表明LSTM的效果最好。然而,在這兩種情況下,提出的多模態(tài)融合方法能夠以相當大的優(yōu)勢超過當前最先進的方法。當使用第二種設置(即l=16,s=8 )時(滑動窗重疊),獲得了1.9%的MJI指標增益。
還在IPN手數據集[4]上評估了文章提出的模型。如表2所示,為文章提出的融合模型與其他方法的比較。結果使用了Levenshtein準確率度量指標。在最初的工作[4]中,筆者通過使用兩階段方法來執(zhí)行連續(xù)手勢識別,其中在第一階段,使用單獨的檢測模型來檢測序列中的手勢。在第二階段,通過分類模型(ResNet50或ResNetXt-101)對檢測到的手勢進行分類。對于[4]中的整個過程,筆者考慮了不同的數據形式組合,如RGB-Flow和RGBSeg,其中“Flow”和“Seg”分別指光流和語義分割。筆者使用RGB-Flow數據在ResNetXt-101上獲得了最高的分類結果。
表2 與其他方法在IPN手數據集上的比較
與文獻[4]中介紹的兩階段方法相反,使用單階段方法,該方法直接預測視頻的完整幀序列的手勢類別標簽結果。這需要模型具有高水平的區(qū)分能力來分離多個手勢和非手勢類別,顯然的融合模型在IPN手部數據集上的表現優(yōu)于目前最先進的結果。
(3)損失函數的影響。探索了所提出損失函數的影響。如表3所示,顯示了用不同損失函數獲得的EgoGesture手勢數據集上的MJI結果。其中,Lce、Lsm和Lmid分別表示了上文介紹的交叉熵損失、平滑損失和中點平滑損失。所有三種損失的組合是最終的優(yōu)化目標Loverall。表3可觀察到Lmid和Lsm這兩種損失都有助于改善交叉熵損失,其中基于中點的平滑機制顯示出較為顯著的提升效果。然而,當將所有損失一起使用時,能夠取得最好的效果,這說明了基于中點對不同預測窗口和標注窗口進行比較的重要性。
表3 不同損失函數在EgoGesture數據集上的影響
(4)融合塊的可擴展性。為了證明所提出的框架和融合機制對于不同數量的模態(tài)的可擴展性,使用了第三種模態(tài),即IPN手數據集中提供的分割圖。
為了使手部分割圖的特征提取更有意義,使用了文獻[12]中介紹的Pix-to-Pix GAN。首先訓練人工神經網絡來生成類似于IPN手部數據集的手部分割圖,將生成器和判別器中的濾波器數量設置為8,并按照最初的工作來訓練GAN。在神經網絡訓練之后,使用訓練的生成器模型進行第三模態(tài)的特征提取,其中特征是從生成器的瓶頸層獲得的。這些提取的特征向量尺寸為18×18×8=2592。與基于RGB和光流的特征向量提取的單模態(tài)特征映射塊一樣,饋送到第三個單模態(tài)特征映射塊。
正如預期的那樣,通過使用三種不同的模態(tài)數據,能夠將Levenshtein的整體準確性相比于僅使用兩種模態(tài)時提高1.8%,達到69.92%的Levenshtein準確性。通過這種評估方式,證明了所提出的方法可以無縫地擴展到融合來自具有不同特征維度的不同數量模態(tài)的數據。
(5)消融實驗。為了證明所提出的融合機制的重要性,進行了消融實驗。在實驗中,逐步移除所提出框架的各個組件,并使用EgoGesture手勢數據集對模型進行重新訓練和測試。表4報告了采用MJI作為度量指標的五種消融模型的評估結果。消融模型的設置如表4所示。
表4 在EgoGesture數據集上的消融實驗結果。
①只使用RGB。一個單獨的特征映射塊應用于RGB流,并且單模態(tài)塊的輸出直接送入多模態(tài)特征映射塊。因為只使用了一個單一模態(tài)。因此,不再使用所提出的特征增強器。
②只使用深度。該模型類似于“只使用RGB”流的消融模型。使用深度輸入流來代替輸入RGB流。
③簡單融合。沒有引入融合模塊,通過沿著RGB和深度模態(tài)的序列完成簡單的特征拼接來執(zhí)行融合過程。
④不帶特征增強器。使用沒有特征增強模塊的框架。
從實驗結果可知,多模態(tài)特征的原始連接不會為連續(xù)手勢識別生成有用的信息。與所提的方法相比,當應用簡單連接時,性能下降了大約5%,并且與最佳單個模態(tài)(深度)模型相比,簡單連接僅略微改善了整體性能。所提出的時間融合策略以及特征增強塊可以顯著提升了最終的效果。
文章提出了一種單階段連續(xù)手勢識別方法和一種新的融合方法進行多模態(tài)特征融合。該框架可以應用于不同長度的手勢視頻,并且能夠在單個步驟中直接執(zhí)行手勢檢測和分類,而無需額外的檢測器模型的幫助。所提出的融合模型被引入來處理多個模態(tài),而不限制模態(tài)的數量,并且進一步實驗證明了融合方法的可擴展性,并展示了多個流如何補充整個手勢識別過程。利用提出的損失函數,引入的單階段連續(xù)手勢識別框架以相當高的精度學習手勢轉換過程,即使是在快速手勢轉換的情況下。消融實驗進一步強調了所提出的方法的各個組成部分的重要性,該方法在兩個數據集上都顯著優(yōu)于其他的方法。