楊觀賜,韓海峰,劉賽賽,蔣亞汶,李楊
(貴州大學 a.機械工程學院 b.現代制造技術教育部重點實驗室 c.省部共建公共大數據國家重點實驗室,貴陽 550025)
據全國殘疾人調查情況數據顯示:中國的聽障人數超過2 000 萬[1]。聽障患者因溝通障礙導致難以融入社會工作,給他們帶來沉重壓力。手語是聽障患者與人交流的最常用方式,但是手語比較抽象,學習成本較高,若不經過系統訓練,人們與聽障患者交流較為困難[2]。隨著人工智能技術的發展,越來越多的研究關注手語識別,試圖通過手語識別技術將手語翻譯成文本或者語音輸出,進而緩解人們與聽障患者的溝通障礙[3]。
根據手語數據獲取方式的不同,手語識別類型可以分為基于傳感器的識別和基于視覺的識別[4]。數據手套和臂環等傳感器可以捕獲佩戴者的手部關節信息和運動軌跡并識別佩戴者的表達意圖。文獻[5]針對使用者個體差異的問題,使用雙線性模型來處理肌電信號,然后使用LSTM 網絡對20 個手語動作進行識別,表現出了較高的識別精度。為減少環境對傳感數據的影響,文獻[6]針對九軸慣性傳感器特性,利用反饋控制融合姿態計算提高姿態獲取的實時性,然后對支持向量機、K-近鄰法和前饋神經網絡分類器進行自適應模型集成進行手語分類,識別率有所提高。文獻[7]通過臂環收集手臂的表面肌電信號和慣性傳感器數據,經過歸一化和濾波處理后,運用滑動窗口分割數據。將單個手語詞信號平均分為n組,并每次取出n–1 組按原順序組合成新數據,進行多次識別,提高連續手語語句識別率。雖然基于傳感器的手語識別精度較高,但依賴于硬件設備,并且需要穿戴傳感器,導致用戶體驗較差。
文獻[8]使用上下文信息作為先驗知識,使用一個生成器從視頻序列中提取時空特征來提高手語語句識別連貫性,并用一個判別器對文本信息進行建模以評估生成器的預測效果。文獻[9]改進了融合雙流3維卷積神經網絡模型的相關參數和結構以提高模型的收斂速度和穩定性,使用批量歸一化優化網絡,在中國手語數據集(CSL)[10-11]識別率達到了90.76%,但是存在網絡層數較深、超參數較多等問題,導致網絡的訓練和優化較困難。關鍵幀是包含關鍵手勢和語義變換的視頻幀,文獻[12]根據關鍵幀圖片特征和日常手語習慣,利用卷積自編碼器提取視頻幀的深度特征,對其進行K-means 聚類,在每類視頻幀中選取最清晰的視頻幀作為關鍵幀;再利用手語動作中關鍵手勢時的停頓,通過點密度篩選出視頻關鍵幀以消除冗余信息構建最優序列,但仍然存在一些關鍵幀丟失的問題。
為提高連續手語識別準確率,圍繞手語的手部形狀、位置和方向變化多樣性等導致的特征信息丟失問題,文中研究了基于全局注意力機制和LSTM 的連續手語識別算法(Continuous Sign Language Recognition Algorithm Based on Global Attention Mechanism and LSTM,CSLR-GAML)。
為快速精確識別視頻中的連續手語,此節提出了基于全局注意力機制和LSTM 的連續手語識別算法,見圖1。首先,使用幀間差分方法提取手語視頻的關鍵幀,進而去除冗余信息;其次,采用深度殘差網絡逐個對視頻關鍵幀進行特征提取,并將其轉換為時序特征序列;再次,利用LSTM 網絡處理經過注意力加權的有用信息,學習到上下文關系;最后經過Softmax網絡輸出完整的文本信息以達到手語視頻識別的目的。算法1 詳細流程如下所述。

圖1 算法1 的網絡架構Fig.1 Network architecture of algorithm 1
算法1:基于全局注意力機制和LSTM 的連續手語識別算法(CSLR-GAML)
輸入:Kinect 攝像頭采集的時序視頻流V。
輸出:手語文本S。
步驟1:初始化殘差網絡、全局注意力機制和LSTM 網絡參數,關鍵幀序列K=?,時間窗口大小為8 s,初始時刻t=0 s。
步驟2:如果t能被8 整除,則采用基于差分方法的關鍵幀提取算法(詳見1.2 節)獲得V的關鍵幀序列K。
步驟3:采用基于ResNet 的特征提取算法(詳見1.3 節),將關鍵幀序列K輸入至殘差網絡中,經過卷積和池化操作,提取圖像的局部特征f,通過全連接層進行拼接,獲得關鍵幀序列特征向量F。
步驟4:將F作為初始狀態輸入到LSTM 網絡,計算出手語詞預測的概率P。
步驟5:采用基于全局注意力機制的LSTM 手語語義信息提取算法(詳見1.4 節),更新特征向量權重W輸出手語文本S。
步驟6:如果攝像頭數據為空,則結束,否則返回步驟2。
針對手語視頻中存在大量冗余信息的問題,使用差分方法提取關鍵幀以篩選出視頻中的關鍵信息。通過衡量幀間圖像相對平均像素的強度變化來確定關鍵幀,從而設計基于差分方法的關鍵幀提取算法。算法2 詳細流程如下所述。
算法2:基于差分方法的關鍵幀提取算法
輸入:手語視頻流V。
輸出:關鍵幀序列K。
步驟1:初始化K=?。
步驟2:對視頻流V逐幀進行灰度化處理,經過濾波處理后得到由q張圖片構成的集合P={p0,p1,…,pt,…,pq}。
步驟3:對P進行圖像二值化操作并求和輸出絕對差分值I={I0,I1,…,It,…,Iq}。
步驟4:使用平滑方法去除干擾項峰值,獲得新的I={I0,I1,…,It,…,Iq}。之后,計算所有相鄰幀間的差分值 |It-It-1|的算術平均值作為標準差分值T。
步驟5:從t=1 開始到t=q,將 |It-It-1|與T進行比較,若 |It-It-1|>T,則K=K∪pt。
步驟6:輸出關鍵幀序列K。
需要說明的是,在步驟2 中,原始圖像大小為1 280×720×3,利用加權平均方法的灰度化圖像,然后通過高斯濾波,統一圖像大小為224×224×3。計算過程見式(1)。

式中:x、y為像素坐標值;σ為像素標準差。
在步驟3 中,利用灰度圖像計算所有像素值的均值作為閾值,實現圖像二值化。
在步驟4 中,計算標準差分值過程見式(2)。

步驟5 中,通過判定相鄰幀間的差分值與T的關系,確定關鍵幀,判定過程見式(3)。

ResNet[13]在獲取局部特征方面具有優勢。為了獲得由于光照及背景變化而丟失的特征,設計了基于ResNet 的特征提取算法,以獲得更多有效的特征信息。其計算過程見圖2,算法3 詳細流程如下所述。

圖2 基于ResNet 的特征提取過程Fig.2 Feature extraction process based on ResNet
算法3:基于ResNet 的特征提取算法
輸入:關鍵幀序列K。
輸出:關鍵幀序列特征向量F。
步驟1:初始化網絡參數,殘差塊數量n=8,卷積核大小為3,步長為2,F=?。
步驟2:對于?kt∈K:
步驟2.1:將kt輸入第一層網絡進行卷積和池化操作,得到特征向量。
步驟2.4:i=i+1,若i>8,輸出特征向量ft,否則跳到步驟2.3。
步驟 2.5:將ft輸入到全局平均池化層生成1×1×512 維的特征向量ft。
步驟2.6:F=F∪ft;t=t+1。
步驟2.7:若t>m,轉到步驟3,否則,轉到步驟2.1。
步驟3:F={f0,f1,…,ft,…,fm}。
步驟2.1 中輸入圖像維度為224×224×3,卷積后得到的特征圖大小為112×112×64,再經過池化后得到56×56×64 的特征向量,作為殘差單元的輸入。步驟2.2 中采用線性整流函數作為激活函數,以避免梯度爆炸和梯度消失的問題。
LSTM 作為針對時間序列的訓練模型,雖然能夠考慮歷史信息對當前狀態的影響,但是在網絡層數多及時間跨度大的情況下,容易丟失有效信息。針對上述問題,文中在LSTM[14]中引入全局注意力機制[15]作為解碼器,來考慮每一個時間步長的隱藏狀態,與解碼器前一步的輸出一同輸入到下一步解碼器中進行運算。與此同時,研究者注意到全局注意力模型的中心思想是在推導上下文向量時考慮編碼器的所有隱藏狀態。此模型通過對有效信息加權,以提高其與當前隱藏層狀態的關聯程度,避免信息丟失,以提高識別的準確率。受上述啟發,此節提出了基于全局注意力機制的LSTM 手語語義信息提取算法,詳細流程見算法4。
算法4:基于全局注意力機制的LSTM 手語語義信息提取算法
輸入:F={f0,f1,…,fk,…,fm},手語詞庫L={l0,l1,…,lt,…,lz}。
輸出:文本信息S。
步驟1:隨機初始化權重W,S=?,k=0;
步驟2:將手語詞庫L={l0,l1,…,lt,…,lz}導入到Embedding 網絡層,利用word2vec 詞向量模型生成詞向量L′= {l0',… ,lt' , …,lz'}。
步驟3:將高維語義特征向量F與詞向量L′經過Padding 操作轉換成相同的維度;
步驟4:將fk和L′作為LSTM 網絡的原始狀態輸入,通過注意力加權解碼器計算L中每個詞lt的預測概率分布;
步驟5:通過softmax 輸出概率最大的詞lt,S=S∪tl。
步驟6:k=k+1;若k<=m,轉到步驟4。
步驟7:輸出S。
在步驟1 中,生成空序列S,用于存儲手語語義信息;在步驟2 中,手語詞庫L={l0,l1,…,lt,…lz}包含演示視頻所有動作所對應的單詞,用于網絡識別判斷與輸出;在步驟4 中,利用LSTM 網絡計算由注意力加權過的詞向量l't輸出詞lt的概率tlP,選取概率最大的單詞作為輸出,解碼器輸出見式(4)。

式中:ft表示特征向量;lt為手語詞庫的子集;htw-1表示上下文隱藏狀態。遍歷F和L′,利用Softmax函數輸出預測結果。
選用中國科學技術大學公開發布的中文連續手語視頻數據集CSL 作為測試數據集。CSL 數據集由微軟 Kinect 攝像頭記錄,提供RGB 信息、深度信息和肢體骨架信息。文中實驗取RGB 信息。選取語料庫中100 個主要用于日常交流的句子,每個句子平均由4 個單詞組成,共178 個中文單詞,數據集中每個句子由50 個不同的表演者完成。其中每一個表演者演示5 次,在這個數據集中一共有25 000 個手語視頻。
采用識別準確率(A)評價算法識別性能,以詞錯誤率(W)、B1、Cr、RL及MR評價翻譯性能。
1)準確率。識別準確率A的計算過程見式(5)。

式中:TP表示預測樣本為正例且實際為正例;TN表示預測樣本為負例而實際樣本為負例,FP表示預測樣本為正例而實際為負例;FN表示預測樣本為負例而實際為正例。
2)詞錯誤率。詞錯誤率(W)常用于評判識別出來的詞序列和標準的詞序列之間的一致性,計算過程見式(6)。

式中:s表示替換詞數目;d表示刪除詞數目;i表示插入詞數目;n表示標簽句子中的單詞數目。在測試時,首先在真實文本中替換、插入或刪除一個單詞,然后重復這個操作幾次。插入或替換的新單詞從訓練集中的詞匯表中選取。這樣可以得到一個偽視頻文本,與標準文本進行比對從而得到詞錯誤率(W)評價指標。
3)BLEU-1(B1)[16]是手語識別任務中的常見評價指標,主要用于評估翻譯語句中的詞準確率,其結果可以表示為翻譯結果中詞的正確匹配次數與所有詞出現次數的比值。ROUGE-L(RL)[17]是一種基于召回率的相似性度量方法。用于評價預測結果與實際文本中詞的共現率。用于評價手語識別中譯文的流暢性METEOR(MR)[18],考慮了基于整個語料庫上的準確率和召回率,能夠得出最佳識別結果和目標標簽之間的準確率和召回率的調和,解決了BLEU 標準中一些固有的缺陷。CIDEr(Cr)[19]指標將每個句子看成文檔,通過計算TF-IDF 獲取向量余弦距離來度量文本相似性。
實驗在Dell Tower 5810 工作站上完成,使用Microsoft Kinect V2 深度攝像頭,顯卡配置為NVIDIA Tesla V100,處理器為Intel Xeon 5218,內存為32 GB,軟件環境為:Ubuntu18.04,Python3.7,PyTorch1.7.0,Opencv3.4.2。
實驗參數設置如下:epoch 為50,批處理參數為4,編碼器學習率設置為0.001,解碼器學習率設置為0.004,權重衰減率為0.000 5。
實驗過程中將100 個中文句子細分為4 個小的類別,見表1。在每個類別下取10%的視頻作為測試數據集,剩余部分作為訓練數據集。

表1 數據集的句子類別情況Tab.1 Sentence category of data set
選取5 種手語識別算法作為對比算法進行實驗,分別是HLSTM-attn[20]、HMM-DTC[21]、HRF-Fusion[22]、LSTM&CTC[14,23]及S2VT(3 layers)[18]。
根據表1 的設置運行所提出的CSLR-GAML 算法。c1、c2、c3和c4類別下連續手語視頻訓練過程中的算法訓練準確率統計結果見圖3。觀察圖3 可知,c1的準確率最高,為92.094%;c2的準確率為91.848%;c3的準確率為91.294%;c4的準確率最低,為89.099%。訓練過程中,網絡在迭代5 次后開始收斂,c1和c2中句子的類型較為單一,組成成分基本為主謂賓結構,在訓練過程中表現良好。c3的句子成分稍微復雜,但是重復出現的單詞較多,也取得不錯的識別效果。c4句子成分復雜,且語句之間差別較大,在訓練過程中沒有特別好的表現。

圖3 訓練準確率Fig.3 Training accuracy
針對以上4 個類別的手語視頻識別,分別運行CSLR-GAML,HLSTM-attn[20]、HMM-DTC[21]、HRFFusion[22]、LSTM&CTC[14,23]及S2VT(3 layers)[18]算法,識別準確率A的統計結果見圖4 所示。從圖4a 可知,HLSTM-attn 算法準確率較高,但算法在不同類別下的識別準確率波動較大,表現不穩定;觀察圖4b 可知,HMM-DTC 算法在不同類別下的識別準確率波動較小,但識別精度不高;而由圖4c—圖4e 可知,這些算法對應的盒子圖矩形框面積大,這表明在單一類別上的識別準確率分布較散。相反,文中所提算法對應的圖4f,不同類別間的矩形分布高度相對一致,矩形框的面積也相對較小,精度也高于比較算法,在4 類數據集的平均識別率準確率是90.08%,這表明此文算法具有更好的識別準確率和魯棒性。

圖4 識別準確率AFig.4 Recognition accuracy a
各算法的B1、Cr、RL、MR及W統計結果見表2。由表2 可知,對比算法在4 個分類中的平均W值分別為0.419、0.728、0.716、0.761、0.608,此文算法的平均W值為41.2%,比其中最好的結果高出0.7%,但是在c4類別中,文中算法的W值略低于HLSTMattn 算法的結果,這表明在小樣本無規律詞組下此文算法依舊有待改進。在其他指標下,此文算法的表現依然優于其他算法的結果。與最好的HLSTM-attn 算法相比,B1、Cr、RL及MR指標下此文算法分別提高了0.3%、0.9%、0.5%及0.8%。與最差的LSTM&CTC相比,B1、Cr、RL以及MR指標下,文中算法分別提高了27.6%、36.4%、28%以及13.8%。

表2 B1、Cr、RL、MR 及W 統計結果Tab.2 Statistical results of B1, Cr, RL ,MR and W
為了觀察各算法的運行效率,分別從4 個類別中選取20 個手語視頻段統計其識別的時間,不同算法識別相同數量手語視頻段的時間統計結果見表3。觀察表3 可知,HLSTM-attn、HMM-DTC、HRF-Fusion、LSTM&CTC 和S2VT 這5 種算法平均運算時間分別為0.564、0.706、0.698、0.656 和0.642 s,此文算法平均運算時間為0.646 s,雖然略差于HLSTM- attn和S2VT 的表現,但優于其他3 種算法。這表明文中算法雖然在識別率上與其他算法存在優勢,但是在運算效率上還需要進一步改進。

表3 時間統計結果Tab.3 Time statistics
綜上所述,在識別準確率與翻譯性能上文中算法優于所比較的5 種算法。
高性能的視覺手語識別算法在幫助聽障人群日常交流中具有廣闊的應用前景,對促進聽障人群無障礙融入社會方面具有非常積極的意義。文中提出了一種基于全局注意力機制和LSTM 網絡的連續手語識別方法。首先,利用差分方法進行關鍵幀提取,有效去除冗余幀;然后,使用ResNet 提取圖片特征,有效解決由于手語的手部形狀、位置和方向變化多樣性等導致的特征提取困難問題,避免特征丟失;最后利用全局注意力機制獲取更加全面的序列信息,保證算法的識別準確性。實驗表明,此文方法在連續手語識別中具有較高的識別性能以及翻譯性能。本研究的實驗數據集選用RGB 信息,GRB+深度信息實驗也是值得深入的工作。與此同時,結合具體的應用場景,研制使用友好的系統是值得進一步推進的方向。